KR102386232B1 - Sdn 웹 인터페이스에 대한 csrf 취약점을 탐지하는 방법 및 장치 - Google Patents

Sdn 웹 인터페이스에 대한 csrf 취약점을 탐지하는 방법 및 장치 Download PDF

Info

Publication number
KR102386232B1
KR102386232B1 KR1020200138388A KR20200138388A KR102386232B1 KR 102386232 B1 KR102386232 B1 KR 102386232B1 KR 1020200138388 A KR1020200138388 A KR 1020200138388A KR 20200138388 A KR20200138388 A KR 20200138388A KR 102386232 B1 KR102386232 B1 KR 102386232B1
Authority
KR
South Korea
Prior art keywords
csrf
test
sdn
request
sdn controller
Prior art date
Application number
KR1020200138388A
Other languages
English (en)
Inventor
손수엘
위성일
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020200138388A priority Critical patent/KR102386232B1/ko
Application granted granted Critical
Publication of KR102386232B1 publication Critical patent/KR102386232B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Abstract

SDN 웹 인터페이스에 대한 CSRF 취약점을 탐지하는 방법 및 장치를 개시한다.
본 발명의 일 실시예에 의하면, SDN(software defined network) 웹 인터페이스(web interface)에 대한 CSRF(cross-site request forgery) 취약점을 탐지하는 방법으로서, SDN 컨트롤러(controller)의 상태를 변화시키는 하나 이상의 테스트 CSRF 요청을 획득하는 단계 - 상기 테스트 CSRF 요청은 상기 SDN 웹 인터페이스를 통해 생성됨 -; 상기 테스트 CSRF 요청을 상기 SDN 컨트롤러로 제공하는 단계; 및 상기 전송된 테스트 CSRF 요청에 대한 테스트 응답에 기반하여, 상기 SDN 웹 인터페이스의 취약점을 탐지하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.

Description

SDN 웹 인터페이스에 대한 CSRF 취약점을 탐지하는 방법 및 장치{METHOD AND APPARATUS FOR DETECTING CROSS-SITE REQUEST FORGERY VULNERABILITIES FOR WEB INTERFACE OF SOFTWARE DEFINED NETWORK}
본 발명은 SDN 웹 인터페이스에 존재하는 CSRF 취약점을 진단하기 위한 기술로서, 구체적으로 브라우저 자동화 테스팅 기법을 기반으로 실제 CSRF 공격과 동일한 시뮬레이션 과정을 거치는 탐지 방법 및 REST API 메시지에 대한 응답을 참고하여 CSRF 공격에 대한 검증을 수행하는 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근 주목 받고 있는 소프트웨어 정의 네트워크(software-defined network, SDN)는 복잡하고 경직되어 있는 트래픽 흐름을 중앙 집권화된 시각으로 유연하게 관리하고, 설정을 효율적으로 갱신하기 위하여 도입된 네트워크 인프라이다. SDN은 트래픽 경로를 지정하는 제어 평면(control plane)과 제어 평면의 트래픽 제어에 따라 트래픽 전송을 수행하는 데이터 평면(data plane)을 개념적으로 분리하는 차세대 네트워킹 기술이다. SDN 인프라 내의 중앙 집권화된 제어 평면은 소프트웨어 프로그래밍을 통해 네트워크의 경로 설정 및 오케스트레이션(orchestration) 등의 복잡한 운용 관리를 유연하게 수행할 수 있다.
Floodlight, OpenDaylight 등과 같이 널리 알려진 SDN 컨트롤러(SDN 제어기)는 관리자에게 (SDN) 웹 인터페이스를 제공하여 사용의 편의성을 더하고 있다. 관리자는 해당 웹 인터페이스를 통하여 시각적으로 네트워크의 정보를 얻거나 통제하는 것이 가능하다.
예를 들어, 관리자는 Floodlight의 웹 사이트에서 (1) 'Access Control List(ACL)' 메뉴를 클릭하고, (2) 'Create Rule' 버튼을 클릭하며, (3) Source IP, Destination IP, ACL Rule을 입력한 후에, (4) 'Create' 버튼을 클릭하는 과정을 통하여 ACL 규칙을 SDN 컨트롤러에 설치할 수 있다. 이러한 과정들을 통해, 관리자는 특정 IP간의 트래픽 송수신을 허용/금지시킬 수 있다. 즉, 관리자는 웹 인터페이스에서의 설정을 통하여 SDN 컨트롤러의 상태를 변화시킬 수 있다.
관리자가 'Create' 버튼을 클릭할 경우에, 웹 인터페이스 상에서 ACL 규칙이 명세된 REST API 메시지가 생성되며, 해당 REST API 메시지가 SDN 컨트롤러로 전송된다. 또한, REST API 메시지를 수신한 SDN 컨트롤러는 해당 규칙을 내부에 설치하고, 규칙이 성공적으로 생성 또는 설치되었는지 여부에 대한 응답을 웹 사이트로 회신한다. 이러한 세부 과정들을 통하여 SDN 컨트롤러에 규칙이 생성된다(SDN 컨트롤러의 상태가 변화된다).
SDN에 대한 산업화 및 개방화가 급격하게 이뤄짐에 따라, SDN과 관련된 사이버 보안의 문제가 대두되고 있다. 특히, 중앙 집권화된 제어 평면에서의 보안 위협은 네트워크 전체에 문제를 일으킬 수 있는 치명적인 영향을 가지고 있다. 때문에, SDN 시스템 전반에 대한 보안 테스트 및 보안 취약점 탐지의 중요성이 높아지고 있다.
한편, 사이트 간 요청 위조(cross-site request forgery, CSRF)는 웹 애플리케이션의 취약점 중 하나로서, 사용자 또는 관리자의 인지 및 동의와는 무관하게, 공격자가 의도한 행위(데이터 생성, 수정, 상제, 등록 등)를 특정 웹 사이트로 요청하게 하는 공격이다. 특히, 사용자 또는 관리자가 공격 웹 사이트에 접속함으로써 발생되는 악의적인 요청은 사용자 또는 관리자의 브라우저를 통해 SDN 웹 서버로 전송되므로, 사용자 또는 관리자가 실제로 의도한 요청과 따로 구별될 수 없다.
SDN 웹 인터페이스에 대하여 CSRF 공격이 성공했을 경우, 이로 인하여 SDN 시스템에 미치는 영향 및 파급 효과는 막대하다. 예를 들어, 해당 공격으로 인하여 발생한 특정 요청은 관리자의 의도와 상관없이 발생하기 때문에, 관리자가 인지하지 못한 채 Flow, ACL 규칙, Firewall 규칙 등이 변경될 수 있다. 따라서, SDN 컨트롤러의 상태가 변경되거나 정책이 바뀌게 되며, 심지어 SDN 컨트롤러의 실행이 중단되어 네트워크 전체에 영향을 미칠 수도 있다.
종래의 SDN 테스팅 기술들은 대부분 SDN 컨트롤러 자체에 내재되어 있는 보안 결합의 검사에만 초점을 맞추고 있을 뿐, SDN의 요소 중 하나인 SDN 웹 인터페이스에 대한 검사를 고려하지 않고 있다.
또한, OWASP ZAP 또는 Burp Suite Pro와 같은 종래의 웹 스캐너들은 해당 툴에서 제공하는 CSRF Proof-of-Concept (PoC) Generator에서의 수동적인 조작(클릭)에 의해 웹 페이지를 생성하고, 이에 대한 수동적인 접속 및 확인을 통하여 CSRF 공격을 탐지한다. 따라서, 종래의 웹 스캐너들도 SDN 웹 인터페이스에 잠재하는 CSRF 공격을 효율적으로 탐지할 수 없는 한계를 가지고 있다. 나아가, 종래의 웹 스캐너들은 탐지된 CSRF 취약점을 검증하기 위하여, 공격 payload를 가지고 있는 웹 요청의 생성 시에 필요한 리퍼러(referrer) 헤더를 임의의 도메인으로 변형시키거나 삭제하는 방법 또는 수동적인 방법을 채용하고 있다. 따라서, 종래의 웹 스캐너들은 검증 과정에서 많은 오탐(false positive)을 발생시키는 한계도 가지고 있다.
이러한 종래의 SDN 테스팅 기술들과 웹 스캐너들의 한계를 극복하기 위해서는 웹 애플리케이션의 내부 상태가 CSRF 공격 요청에 의해 변경되었는지 여부를 확인해야 하지만, 이를 위한 방법은 현재 존재하지 않는 상황이다. 또한, SDN 웹 인터페이스 상에 잠재하는 CSRF 취약점을 자동으로 탐지하는 기술도 전무한 상황이다.
웹 애플리케이션의 내부 상태의 변화를 탐지하기 위해서는 (1) 요청의 문맥과 의미를 이해해야 하고, (2) SDN 컨트롤러 상의 공격 대상을 특정하여 내부를 검사하는 작업이 요구되는 데, 이를 위한 범용적인 검증 과정을 설계하는 것은 매우 어려운 작업이다.
Lee, S., Yoon, C., Lee, C., Shin, S., Yegneswaran, V., Porras, P.A.: DELTA: A security assessment framework for software-defined networks. In: Proceedings of the Network and Distributed System Security Symposium (2017) Jero, S., Bu, X., Nita-Rotaru, C., Okhravi, H., Skowyra, R., Fahmy, S.: BEADS: Automated attack discovery in openflow-based SDN systems. In: Proceedings of the International Conference on Research in Attacks, Intrusions, and Defenses. pp. 311-333 (2017)
본 발명의 일 실시예는, 브라우저 자동화 테스팅을 기반으로 작동하는 새로운 CSRF 탐지 방법을 제공하는 데 주된 목적이 있다.
또한, 본 발명의 다른 일 실시예는, 실제 CSRF 공격과 동일한 시뮬레이션 과정을 거친 이후에, CSRF 요청이 실제로 공격을 성공했는지 여부를 자동으로 정확하게 검증하는 과정을 통하여, SDN 컨트롤러의 웹 인터페이스 상에 존재하는 CSRF 취약점을 정확하게 찾아내는 데 목적이 있다.
본 발명의 일 실시예에 의하면, SDN(software defined network) 웹 인터페이스(web interface)에 대한 CSRF(cross-site request forgery) 취약점을 탐지하는 방법으로서, SDN 컨트롤러(controller)의 상태를 변화시키는 하나 이상의 테스트 CSRF 요청을 획득하는 단계 - 상기 테스트 CSRF 요청은 상기 SDN 웹 인터페이스를 통해 생성됨 -; 상기 테스트 CSRF 요청을 상기 SDN 컨트롤러로 제공하는 단계; 및 상기 전송된 테스트 CSRF 요청에 대한 테스트 응답에 기반하여, 상기 SDN 웹 인터페이스의 취약점을 탐지하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.
본 발명의 다른 일 실시예에 의하면, SDN(software defined network) 웹 인터페이스(web interface)에 대한 CSRF(cross-site request forgery) 취약점 탐지를 위한 프로그램이 저장된 저장부; 및 상기 저장부에 저장된 프로그램을 실행하는 제어부를 포함하고, 상기 제어부는, 상기 SDN 웹 인터페이스를 통해 생성된 하나 이상의 테스트 CSRF 요청을 획득하고, 상기 테스트 CSRF 요청을 상기 SDN 컨트롤러(controller)로 제공하며, 상기 전송된 테스트 CSRF 요청에 대한 테스트 응답에 기반하여, 상기 SDN 웹 인터페이스의 취약점을 탐지하고, 상기 테스트 CSRF 요청은, SDN 컨트롤러의 상태를 변화시키는 것을 특징으로 하는 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, SDN 웹 인터페이스 상에 존재하는 CSRF 보안 취약점을 효율적이며 정확하게 탐지할 수 있다.
또한, 본 발명의 다른 일 실시예에 의하면, CSRF 취약점을 탐지하는 방법이 자동화되므로, 종래의 수동적인 탐지 방법의 한계를 극복할 수 있다.
도 1은 SDN 웹 인터페이스의 취약점을 탐지하는 장치의 구성 및 관련 구성을 나타내는 예시도이다.
도 2는 SDN 웹 인터페이스의 취약점을 탐지하는 방법의 일 예를 설명하기 위한 순서도이다.
도 3은 테스트 CSRF 요청을 생성하는 방법을 나타내는 예시도이다.
도 4는 테스트 CSRF 요청을 제공하는 방법을 설명하기 위한 순서도이다.
도 5는 테스트 CSRF 공격의 성공 여부를 판단하는 방법을 설명하기 위한 순서도이다.
도 6은 본 발명에 대한 시뮬레이션 결과이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
SDN 웹 인터페이스의 취약점을 탐지하는 장치(이하에서는 '탐지 장치'로 지칭한다)(100)의 구성 및 관련 구성을 나타내는 예시도가 도 1에 나타나 있다.
SDN(또는, SDN 웹 서버)는 제어 평면(control plane)과 데이터 평면(data plane)을 포함하여 구성될 수 있다. 제어 평면은 트래픽 경로를 지정하고, 데이터 평면은 제어 평면의 트래픽 제어에 따라 트래픽 전송한다.
제어 평면에는 SDN 컨트롤러(SDN controller) 및 웹 인터페이스(Web interface)가 배치된다. 웹 인터페이스를 통해 SDN 컨트롤러의 상태가 설정 또는 변경될 수 있다. 데이터 평면에는 트래픽 전송을 위한 SDN 스위치(Switch 0, Switch 1, Switch 2)가 하나 이상 배치될 수 있다. SDN 컨트롤러와 SDN 스위치 사이의 인터페이스 규격은 OpenFlow, NetConf, OVSDB 등과 같은 프로토콜로 정의된다.
탐지 장치(100)는 인터페이스부(110), 제어부(120) 및 저장부(130)를 포함하여 구성될 수 있다.
인터페이스부(110)는 SDN과의 데이터 송수신 및 SDN으로의 접속(access)을 담당한다. 후술되는 테스트 CSRF 요청의 전송 및 테스트 응답의 수신이 인터페이스부(110)에 의해 수행될 수 있다.
저장부(130)에는 SDN 웹 인터페이스의 취약점을 탐지하기 위한 하나 이상의 프로그램이 저장된다. 또한, 저장부(130)에는 획득된 테스트 CSRF 요청, 취약점 탐지의 결과, 공격 웹 사이트에 대한 정보들이 저장될 수 있다.
제어부(120)는 저장부(130)에 저장된 프로그램을 실행하여 취약점 탐지 방법을 제어할 수 있다. 구체적으로, 제어부(120)는 테스트 CSRF 요청의 획득 과정을 제어하거나, 테스트 CSRF 요청을 SDN으로 제공하는 과정을 제어할 수 있다. 또한, 제어부(120)는 테스트 응답에 기반하여 SDN 웹 인터페이스의 취약점을 탐지 또는 판단하는 과정을 제어할 수 있다. 나아가, 제어부(120)는 취약점 판단 결과에 해당하는 테스트 CSRF 요청 및 공격 웹 사이트에 대한 정보의 출력 과정을 제어할 수도 있다.
SDN 웹 인터페이스의 취약점을 탐지하는 방법(이하에서는 '탐지 방법'으로 지칭한다)의 일 예가 도 2에 나타나 있다.
먼저, 제어부(120)는 테스트 CSRF 요청의 획득 과정(S230)을 제어할 수 있다. S230 과정은 CSRF 공격의 테스팅에 활용되는 테스트 CSRF 요청(위조된 요청)을 수집하는 과정으로서, 테스트 CSRF 요청은 시드(seed)에 해당할 수 있다.
테스트 CSRF 요청은 다양한 방법을 통해 획득될 수 있다. 일 예로, 테스트 CSRF 요청은 SDN에 의해 제공되는 웹 인터페이스를 통해 생성될 수 있다(S210). 이 경우, 웹 인터페이스를 통해 생성된 테스트 CSRF 요청은 인터페이스부(110)를 통해 탐지 장치(100)로 전송(S220)되어 획득될 수 있다.
웹 인터페이스를 통해 테스트 CSRF 요청(SDN 컨트롤러의 상태를 변화시키는 ACL 규칙이 명세된 REST API 메시지 포함)을 생성하는 방법을 나타내는 예시도가 도 3에 나타나 있다.
테스트 CSRF 요청을 생성하는 방법은 (1) index.html 불러오기(도 3의 (a)) 과정, (2) ACL 기능 선택(도 3의 (b)) 과정, (3) Add New 기능 선택(도 3의 (c)) 과정, (4) ACL 규칙 내용 입력(도 3의 (d)) 과정 및 (5) Creat 기능 선택(도 3의 (e)) 과정으로 구성될 수 있다.
위 과정들을 통해 SDN 컨트롤러의 상태를 변화시키는 새로운 ACL 규칙(이 ACL 규칙이 명세된 REST API 메시지를 포함하는 테스트 CSRF 요청)이 생성될 수 있다.
위 과정들(시뮬레이션 과정들)은 실제 CSRF 공격에 대한 공격자의 행동 순서들과 동일할 수 있다. 따라서, 본 발명은 실제 CSRF 공격에 더욱 대응되는 CSRF 공격을 구현할 수 있게 되고, 이로 인하여 SDN의 취약점을 더욱 정확하게 탐지할 수 있게 된다.
테스트 CSRF 요청을 획득하는 다른 예로, 테스트 CSRF 요청은 저장부(130)에 미리 저장될 수도 있다. 이 경우, 제어부(120)는 저장부(130)에 접속함으로써, 테스트 CSRF 요청을 획득할 수 있다.
테스트 CSRF 요청은 SDN 컨트롤러의 상태를 변화 또는 변경시킬 수 있는 다양한 요청들 중에서 어느 하나일 수 있다. 예를 들어, 테스트 CSRF 요청은 Flow 규칙, ACL 규칙, Firewall 규칙 중에서 어느 하나일 수 있다. 예를 들어, 테스트 CSRF 요청은 SDN 컨트롤러의 상태를 변화시키는 ACL 규칙이 명세된 REST API 메시지를 포함할 수 있다. SDN 컨트롤러의 상태 변화에는 규칙들의 제거, 추가 등이 포함될 수 있으며, SDN 컨트롤러의 기능들의 활성화, 비활성화, 변경, 종료 등이 포함될 수 있다.
제어부(120)는 테스트 CSRF 요청이 SDN으로 제공되도록 제어할 수 있다(S250). S250 과정 및 S260 과정은 위조된 요청을 SDN으로 전송하는 과정이거나, 획득된 테스트 CSRF 요청을 활용하여 CSRF 공격을 시뮬레이션하는 과정이다. 테스트 CSRF 요청이 SDN으로 제공되도록 하는 제어부(120)의 제어에 의해, 테스트 CSRF 요청이 인터페이스부(110)를 통해 SDN으로 전송될 수 있다(S260).
SDN(SDN 컨트롤러)는 전송된 테스트 CSRF 요청의 내용에 기반하여 SDN 컨트롤러의 상태를 변화시키고(S280), 상태 변화에 대한 결과인 테스트 응답을 생성한다(S290).
생성된 테스트 응답에는 (HTTP 응답) 상태 코드와 문자열이 포함될 수 있다. 상태 코드는 특정 요청이 성공적으로 완료되었는지 여부를 알려주는 코드로서, 테스트 응답에 포함되는 상태 코드는 테스트 CSRF 요청이 요구한 상태 변화가 SDN에서 처리되었는지 여부를 알려준다. 테스트 응답에 포함되는 문자열은 테스트 CSRF 요청이 요구한 상태 변화가 SDN에 성공적으로 설치 또는 적용되었는지 여부를 알려준다.
생성된 테스트 응답은 인터페이스부(110)를 통해 SDN으로부터 탐지 장치(100)로 전송될 수 있다(S292). 제어부(120)는 테스트 응답에 기반하여 SDN 웹 인터페이스의 취약점을 탐지할 수 있다(S294). S294 과정은 테스트 CSRF 요청으로 인한 공격의 성공 여부를 검증하고 판단하는 과정이다. 또한, 제어부(120)는 탐지 결과를 출력할 수 있다(S296). 탐지 결과에는 테스트 CSRF 요청 및 CSRF 요청 웹 사이트(공격 웹 사이트)에 대한 정보가 포함될 수 있다. CSRF 요청 웹 사이트는 테스트 CSRF 요청을 SDN에 전송하기 위해 이용된 웹 사이트이다.
테스트 CSRF 요청을 제공하는 방법을 설명하기 위한 순서도가 도 4에 나타나 있다.
제어부(120)는 테스트 CSRF 요청을 SDN에 전송하기 위해 이용되는 공격 웹 사이트(CSRF 요청 웹 사이트)를 생성하고, 생성된 공격 웹 사이트에 접속(access)하는 과정을 통해 테스트 CSRF 요청을 SDN에 제공할 수 있다.
구체적으로, 제어부(120)는 테스트 CSRF 요청으로부터 Target URL, HTTP Method, Content-Type, Content 등을 추출하고, 추출된 내용들이 테스트 CSRF 요청에 반영되도록 XMLHttpRequest(XHR) 스크립트를 생성할 수 있다. 이 후, 제어부(120)는 HTML 코드를 삽입하여 웹 페이지를 생성할 수 있다(S410).
제어부(120)는 SDN에 공격 웹 사이트가 생성되도록, 웹 페이지를 SDN에 호스팅하며(S420). SDN은 웹 페이지가 호스팅되면 공격 웹 사이트를 생성할 수 있다(S430).
공격 웹 사이트가 생성되면, 제어부(120)는 브라우저 환경을 이용하여 공격 웹 사이트에 접속할 수 있다(S440). 또한, 제어부(120)는 공격 웹 사이트와의 접속을 통해 테스트 CSRF 요청이 SDN으로 전송되도록(S450) 제어할 수 있다.
이와 같이, 본 발명은 독립적인 프로그램에서 소켓을 통하여 SDN으로 악의적인 요청을 전송하는 것이 아니라, 브라우저 및 웹 사이트 환경에 직접 접속하여 악의적인 요청을 전송할 수 있다. 따라서, 본 발명은 CSRF 공격에 대해 보다 정확한 테스팅 및 시뮬레이션을 수행할 수 있다. 또한, 본 발명은 종래의 수동적인 클릭을 통한 웹 페이지 생성 및 접속과 달리, 자동화된 웹 페이지 생성 및 접속을 이용하므로, 더욱 효율적일 수 있다.
테스트 CSRF 공격의 성공 여부를 판단하는 방법(탐지 방법)을 설명하기 위한 순서도의 일 예가 도 5에 나타나 있다.
앞서 설명된 바와 같이, SDN은 테스트 CSRF 요청의 내용에 기반하여 SDN 컨트롤러의 상태를 변화시키고, 상태 변화에 대한 결과인 테스트 응답을 생성한다. 생성된 테스트 응답에는 상태 코드와 문자열이 포함될 수 있다.
예를 들어, REST API 메시지에 명세된 ACL 규칙이 성공적으로 설치된 경우에는 '200 OK'의 상태 코드 및 미리 설정된 문자열(예를 들어, Success! New rule added)이 테스트 응답에 포함될 수 있다. 본 발명은 이러한 테스트 응답의 특성을 고려하여, 미리 설정된 상태 코드 및 미리 설정된 문자열이 테스트 응답에 포함되어 있는지 여부를 기준으로 테스트 CSRF 공격의 성공 여부를 판단하는 새로운 방법을 제안한다.
여기서, 미리 설정된 상태 코드는 테스트 CSRF 요청이 요구한 상태 변화가 SDN에서 처리되었음을 나타내는 상태 코드이고, 미리 설정된 문자열은 테스트 CSRF 요청이 요구한 상태 변화가 SDN에 성공적으로 설치 또는 적용되었음을 나타내는 문자열이다. 미리 설정된 문자열은 사용자 또는 관리자에 의해 설정되거나, 그 설정이 변경될 수 있다.
먼저, 인터페이스부(110)를 통해 테스트 응답이 수신되면(S510), 제어부(120)는 테스트 응답의 상태 코드가 미리 설정된 상태 코드(예를 들어, 200 OK)와 같은지 여부를 판단할 수 있다(S520). 제어부(120)는 테스트 응답의 상태 코드와 미리 설정된 상태 코드가 같은 경우에 테스트 응답의 문자열을 검사한다(S530).
테스트 응답의 문자열과 미리 설정된 문자열이 같은 경우(S540), 제어부(120)는 테스트 CSRF 요청을 이용한 공격이 성공(취약)한 것으로 판단할 수 있다(S550). 이와 달리, 테스트 응답의 상태 코드와 미리 설정된 상태 코드가 다르거나(S520), 테스트 응답의 문자열과 미리 설정된 문자열이 다른 경우에, 제어부(120)는 테스트 CSRF 요청을 이용한 공격이 실패(안전)한 것으로 판단할 수 있다(S560).
이상에서는, '테스트 응답의 상태 코드가 미리 설정된 상태 코드와 같은지 여부를 기준으로 하여 공격의 성공 여부를 판단하는 과정(제1과정)'이 먼저 수행된 후에, '테스트 응답의 문자열이 미리 설정된 문자열과 같은지 여부를 기준으로 하여 공격의 성공 여부를 판단하는 과정(제2과정)'이 수행되는 것으로 설명하였다. 그러나, 실시형태에 따라, '테스트 응답의 문자열이 미리 설정된 문자열과 같은지 여부를 기준으로 하여 공격의 성공 여부를 판단하는 과정'이 먼저 수행된 후에, '테스트 응답의 상태 코드가 미리 설정된 상태 코드와 같은지 여부를 기준으로 하여 공격의 성공 여부를 판단하는 과정'이 수행될 수도 있다. 즉, 제1과정과 제2과정은 그 순서가 서로 변경될 수 있다.
본 발명에 대한 시뮬레이션 결과가 도 6에 나타나 있다.
시뮬레이션은 Floodlight v1.2를 대상으로 CSRF 공격 탐지를 수행하였다. 사용자 행동 수집(테스트 CSRF 요청 생성), 시뮬레이션(테스트 CSRF 요청 제공) 및 공격 웹 사이트로의 접속을 위해, 브라우저 환경에서 자동화된 테스팅을 구현할 수 있는 프레임워크인 Selenium을 사용하였다. 브라우저에서 송수신되는 메시지들을 수집하기 위해 browsermob-proxy를 사용하였다. 공격 웹 페이지를 호스팅하기 위해 Apache 2 웹 서버를 사용하였다.
표 6에 나타낸 바와 같이, SDN 컨트롤러의 상태를 변화시킬 수 있는 총 10가지의 기능(테스트 CSRF 요청의 내용)들을 적용하였으며, 그에 따라 발생하는 REST API 메시지들(테스트 CSRF 요청들)을 수집하였다.
HTTP Method 열(column)에서는 각 REST API 메시지에 대한 메서드(method)를 나타낸다. CSRF 공격 결과(탐지 결과) 열에서, '○' 표시는 해당 공격이 성공하였음(취약점)을 나타내고, 'X' 표시는 해당 공격이 실패하였음(안전)을 나타낸다.
표 6의 결과에 나타나는 바와 같이, 총 4가지의 알려지지 않은 새로운 취약점들(ACL 규칙 추가, Firewall 규칙 추가, Subnet Mask 변경 및 컨트롤러 종료)이 발견되었다. 이를 통해, 공격자가 관리자의 의도와 무관하게 자신이 의도한 공격 행위(ACL 규칙 추가, Firewall 규칙 추가, Subnet Mask 변경 및 컨트롤러 종료)를 SDN 웹 인터페이스로 요청할 수 있음을 알 수 있다.
CSRF 공격으로부터 안전하다고 판단된 총 6가지(ACL 규칙 제거, Firewall 활성화, Firewall 비활성화, Firewall 규칙 제거, Statistics 활성화 및 Statistics 비활성화)는 모두 DELETE 및 PUT 요청에 의해 실행되는 기능에 해당함을 알 수 있다.
도 2, 도 4 및 도 5에서는 각 과정들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 2, 도 4 및 도 5에 기재된 순서를 변경하여 실행하거나 각 과정들 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이다. 따라서, 도 2, 도 4 및 도 5은 시계열적인 순서로 한정되는 것은 아니다.
한편, 도 2, 도 4 및 도 5에 도시된 과정들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등의 비일시적인(non-transitory) 매체일 수 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 탐지 장치

Claims (11)

  1. SDN(software defined network) 웹 인터페이스(web interface)에 대한 CSRF(cross-site request forgery) 취약점을 탐지하는 방법으로서,
    SDN 컨트롤러(controller)의 상태를 변화시키는 하나 이상의 테스트 CSRF 요청을 획득하는 단계 - 상기 테스트 CSRF 요청은 상기 SDN 웹 인터페이스를 통해 생성됨 -;
    상기 테스트 CSRF 요청을 상기 SDN 컨트롤러로 제공하는 단계; 및
    상기 전송된 테스트 CSRF 요청에 대한 테스트 응답에 기반하여, 상기 SDN 웹 인터페이스의 취약점을 탐지하는 단계를 포함하고,
    상기 테스트 CSRF 요청은 상기 SDN 컨트롤러의 상태를 변화시키는 ACL(access control list) 규칙이 명세된 REST API 메시지를 포함하며,
    상기 탐지하는 단계는,
    상기 ACL 규칙이 상기 SDN 컨트롤러에서 처리되었음을 나타내는 상태 코드가 상기 테스트 응답에 포함되었는지 여부를 판단하는 단계; 및
    상기 상태 코드가 상기 테스트 응답에 포함된 경우에, 상기 ACL 규칙이 상기 SDN 컨트롤러에 설치되었음을 나타내는 문자열이 상기 테스트 응답에 포함되었는지 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제공하는 단계는,
    상기 REST API 메시지에 포함된 정보들을 참고하여 웹 페이지를 생성하는 단계;
    공격 웹 사이트가 생성되도록, 상기 웹 페이지를 상기 SDN 컨트롤러가 포함된 SDN 서버에 호스팅하는 단계; 및
    상기 공격 웹 사이트로의 접속을 통해, 상기 테스트 CSRF 요청을 상기 SDN 컨트롤러로 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 삭제
  5. 제3항에 있어서,
    상기 SDN 웹 인터페이스의 취약점으로 탐지된 테스트 CSRF 요청 및 상기 공격 웹 사이트에 대한 정보를 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항, 제3항, 및 제5항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체.
  7. SDN(software defined network) 웹 인터페이스(web interface)에 대한 CSRF(cross-site request forgery) 취약점 탐지를 위한 프로그램이 저장된 저장부; 및
    상기 저장부에 저장된 프로그램을 실행하는 제어부를 포함하고,
    상기 제어부는,
    상기 SDN 웹 인터페이스를 통해 생성된 하나 이상의 테스트 CSRF 요청을 획득하고, 상기 테스트 CSRF 요청을 SDN 컨트롤러(controller)로 제공하며, 상기 전송된 테스트 CSRF 요청에 대한 테스트 응답에 기반하여, 상기 SDN 웹 인터페이스의 취약점을 탐지하고,
    상기 테스트 CSRF 요청은 상기 SDN 컨트롤러의 상태를 변화시키는 ACL(access control list) 규칙이 명세된 REST API 메시지를 포함하며,
    상기 제어부는, 상기 ACL 규칙이 상기 SDN 컨트롤러에 설치되었음을 나타내는 상태 코드가 상기 테스트 응답에 포함되었는지 여부를 판단하고, 상기 상태 코드가 상기 테스트 응답에 포함된 경우에, 상기 ACL 규칙이 상기 SDN 컨트롤러에 설치되었음을 나타내는 문자열이 상기 테스트 응답에 포함되었는지 여부를 판단하는 것을 특징으로 하는 장치.
  8. 삭제
  9. 제7항에 있어서,
    상기 제어부는,
    상기 REST API 메시지에 포함된 정보들을 참고하여 웹 페이지를 생성하고,
    공격 웹 사이트가 생성되도록, 상기 웹 페이지를 상기 SDN 컨트롤러가 포함된 SDN 서버에 호스팅하며,
    상기 공격 웹 사이트로의 접속을 통해, 상기 테스트 CSRF 요청을 상기 SDN 컨트롤러로 제공하는 것을 특징으로 하는 장치.
  10. 삭제
  11. 제9항에 있어서,
    상기 제어부는,
    상기 SDN 웹 인터페이스의 취약점으로 탐지된 테스트 CSRF 요청 및 상기 공격 웹 사이트에 대한 정보를 출력하는 것을 특징으로 하는 장치.
KR1020200138388A 2020-10-23 2020-10-23 Sdn 웹 인터페이스에 대한 csrf 취약점을 탐지하는 방법 및 장치 KR102386232B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200138388A KR102386232B1 (ko) 2020-10-23 2020-10-23 Sdn 웹 인터페이스에 대한 csrf 취약점을 탐지하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200138388A KR102386232B1 (ko) 2020-10-23 2020-10-23 Sdn 웹 인터페이스에 대한 csrf 취약점을 탐지하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102386232B1 true KR102386232B1 (ko) 2022-04-13

Family

ID=81212992

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200138388A KR102386232B1 (ko) 2020-10-23 2020-10-23 Sdn 웹 인터페이스에 대한 csrf 취약점을 탐지하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102386232B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160048005A (ko) * 2014-10-23 2016-05-03 주식회사 케이티 Sdn 환경에서 컨트롤러 관리 방법 및 장치
CN105897728A (zh) * 2016-04-27 2016-08-24 江苏警官学院 一种基于sdn的反病毒系统
KR20160145373A (ko) * 2015-06-10 2016-12-20 한국과학기술원 소프트웨어 정의 네트워크에서 취약점을 분석하는 방법, 장치 및 컴퓨터 프로그램
KR20170079540A (ko) * 2015-12-30 2017-07-10 주식회사 시큐아이 컴포넌트 간 공통 인터페이스를 지원하는 보안 장비
KR20190053540A (ko) * 2017-11-10 2019-05-20 고려대학교 산학협력단 SDN 기반의 Slow HTTP DDoS 공격의 방어 시스템 및 그 방법
KR20190091636A (ko) * 2018-01-29 2019-08-07 주식회사 안랩 디바이스의 정보 획득 장치 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160048005A (ko) * 2014-10-23 2016-05-03 주식회사 케이티 Sdn 환경에서 컨트롤러 관리 방법 및 장치
KR20160145373A (ko) * 2015-06-10 2016-12-20 한국과학기술원 소프트웨어 정의 네트워크에서 취약점을 분석하는 방법, 장치 및 컴퓨터 프로그램
KR20170079540A (ko) * 2015-12-30 2017-07-10 주식회사 시큐아이 컴포넌트 간 공통 인터페이스를 지원하는 보안 장비
CN105897728A (zh) * 2016-04-27 2016-08-24 江苏警官学院 一种基于sdn的反病毒系统
KR20190053540A (ko) * 2017-11-10 2019-05-20 고려대학교 산학협력단 SDN 기반의 Slow HTTP DDoS 공격의 방어 시스템 및 그 방법
KR20190091636A (ko) * 2018-01-29 2019-08-07 주식회사 안랩 디바이스의 정보 획득 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jero, S., Bu, X., Nita-Rotaru, C., Okhravi, H., Skowyra, R., Fahmy, S.: BEADS: Automated attack discovery in openflow-based SDN systems. In: Proceedings of the International Conference on Research in Attacks, Intrusions, and Defenses. pp. 311-333 (2017)
Lee, S., Yoon, C., Lee, C., Shin, S., Yegneswaran, V., Porras, P.A.: DELTA: A security assessment framework for software-defined networks. In: Proceedings of the Network and Distributed System Security Symposium (2017)

Similar Documents

Publication Publication Date Title
US10637880B1 (en) Classifying sets of malicious indicators for detecting command and control communications associated with malware
US10200384B1 (en) Distributed systems and methods for automatically detecting unknown bots and botnets
Buza et al. CryPLH: Protecting smart energy systems from targeted attacks with a PLC honeypot
Mandalari et al. Blocking without breaking: Identification and mitigation of non-essential iot traffic
WO2018084808A1 (en) Computer-implemented method and data processing system for testing device security
Jero et al. Beads: Automated attack discovery in openflow-based sdn systems
WO2017139489A1 (en) Automated honeypot provisioning system
US20100058456A1 (en) IDS Sensor Placement Using Attack Graphs
US11533329B2 (en) Methods, systems and computer readable media for threat simulation and threat mitigation recommendations
US20180020024A1 (en) Methods and Systems for Using Self-learning Techniques to Protect a Web Application
US11647037B2 (en) Penetration tests of systems under test
Antrobus et al. Simaticscan: Towards a specialised vulnerability scanner for industrial control systems
CN113676449B (zh) 网络攻击处理方法及装置
Srinivasa et al. Open for hire: Attack trends and misconfiguration pitfalls of iot devices
Sasaki et al. Exposed infrastructures: Discovery, attacks and remediation of insecure ics remote management devices
Yadav et al. IoT-PEN: An E2E penetration testing framework for IoT
Casola et al. A methodology for automated penetration testing of cloud applications
JP2018503922A (ja) テストネットワークにおいてコンピュータシステムのコンピュータをテストするためのテストシステム
Slunjski et al. Off-the-shelf solutions as potential cyber threats to industrial environments and simple-to-implement protection methodology
CN116318783B (zh) 基于安全指标的网络工控设备安全监测方法及装置
Melo et al. ISM-AC: An immune security model based on alert correlation and software-defined networking
KR102386232B1 (ko) Sdn 웹 인터페이스에 대한 csrf 취약점을 탐지하는 방법 및 장치
Gardiner et al. Controller-in-the-middle: Attacks on software defined networks in industrial control systems
Deshmukh et al. A hands-on modular laboratory environment to foster learning in control system security
US10931713B1 (en) Passive detection of genuine web browsers based on security parameters

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant