KR101906437B1 - 네트워크 보안 정책을 테스트하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

네트워크 보안 정책을 테스트하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101906437B1
KR101906437B1 KR1020160169263A KR20160169263A KR101906437B1 KR 101906437 B1 KR101906437 B1 KR 101906437B1 KR 1020160169263 A KR1020160169263 A KR 1020160169263A KR 20160169263 A KR20160169263 A KR 20160169263A KR 101906437 B1 KR101906437 B1 KR 101906437B1
Authority
KR
South Korea
Prior art keywords
packet
controller
switch
security function
network
Prior art date
Application number
KR1020160169263A
Other languages
English (en)
Other versions
KR20180067871A (ko
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 KR1020160169263A priority Critical patent/KR101906437B1/ko
Publication of KR20180067871A publication Critical patent/KR20180067871A/ko
Application granted granted Critical
Publication of KR101906437B1 publication Critical patent/KR101906437B1/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/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 보안 정책을 테스트하는 방법은, 컨트롤러에서, 테스트 대상 보안 기능에 대한 TCP SYN 패킷을 패킷 아웃 메시지로 상기 보안 기능에 연결된 스위치에 전송하는 A 단계; 상기 컨트롤러에서, 상기 TCP SYN 패킷에 대한 SYN 응답 패킷을 패킷 인 메시지로 상기 스위치로부터 수신하면, 상기 보안 기능에 장애가 발생한 것으로 판단하는 B 단계; 및 상기 컨트롤러에서, 장애 발생 보안 기능과 관련된 패킷을 드랍하도록 지시하는 임시 조치 플로우 룰을 상기 스위치에 전송하는 C 단계를 포함하는 것을 특징으로 한다.

Description

네트워크 보안 정책을 테스트하는 방법, 장치 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR TESTING NETWORK SECURITY POLICY}
본 발명은 네트워크 보안 정책을 테스트하는 방법에 대한 것이다. 보다 구체적으로 본 발명은 소프트웨어 정의 네트워킹에서 오픈플로우 프로토콜과 TCP 프로토콜을 이용하여 네트워크 보안을 테스트하는 방법에 대한 것이다.
소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다.
SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다.
도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 컨트롤러 서버 (100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.
컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러 서버(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 응용 프로그램이 탑재된 형태로 구현될 수 있다.
네트워크 장비(200)는 컨트롤러 서버(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다.
소프트웨어 정의 네트워크에서 컨트롤러 서버(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고 받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우 (OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다.
오픈플로우 프로토콜을 따르면, 스위치(200)는 컨트롤 채널(Control Channel)을 통해 컨트롤러 서버(100)와 정보를 교환하고, 파이프라인(Pipeline) 프로세싱을 위한 하나 이상의 플로우 테이블(Flow table), 그룹 테이블, 미터 테이블 및/또는 패킷 전달을 위한 네트워크 인터페이스로 하나 이상의 포트를 가질 수 있다.
Open Networking Foundation, “OpenFlow Specification 1.2.0”
본 발명은 소프트웨어 정의 네트워킹에서 별도의 에이전트 또는 호스트 설치 없이 네트워크 보안 정책을 테스트하고, 보안 기능의 장애에 대한 신속한 조치를 취하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 보안 정책을 테스트하는 방법은, 컨트롤러에서, 테스트 대상 보안 기능에 대한 TCP SYN 패킷을 패킷 아웃 메시지로 상기 보안 기능에 연결된 스위치에 전송하는 A 단계; 상기 컨트롤러에서, 상기 TCP SYN 패킷에 대한 SYN 응답 패킷을 패킷 인 메시지로 상기 스위치로부터 수신하면, 상기 보안 기능에 장애가 발생한 것으로 판단하는 B 단계; 및 상기 컨트롤러에서, 장애 발생 보안 기능과 관련된 패킷을 드랍하도록 지시하는 임시 조치 플로우 룰을 상기 스위치에 전송하는 C 단계를 포함하는 것을 특징으로 한다.
나아가 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 보안 정책을 테스트하는 시스템은, 네트워크의 보안 기능을 수행하는 적어도 하나 이상의 보안 장치; 및 테스트 대상 보안 장치에 대한 TCP SYN 패킷을 패킷 아웃 메시지로 상기 보안 장치에 연결된 스위치에 전송하고, 상기 TCP SYN 패킷에 대한 SYN 응답 패킷을 패킷 인 메시지로 상기 스위치로부터 수신하면, 상기 보안 장치에 장애가 발생한 것으로 판단하고, 장애 발생 보안 장치와 관련된 패킷을 드랍하도록 지시하는 임시 조치 플로우 룰을 상기 스위치에 전송하는 컨트롤러를 포함하는 것을 특징으로 한다.
한편 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 보안 정책을 테스트하기 위하여 컴퓨터 판독가능한 저장매체에 기록된 컴퓨터 프로그램은, 컨트롤러에서, 테스트 대상 보안 기능에 대한 TCP SYN 패킷을 패킷 아웃 메시지로 상기 보안 기능에 연결된 스위치에 전송하는 기능; 상기 컨트롤러에서, 상기 TCP SYN 패킷에 대한 SYN 응답 패킷을 패킷 인 메시지로 상기 스위치로부터 수신하면, 상기 보안 기능에 장애가 발생한 것으로 판단하는 기능; 및 상기 컨트롤러에서, 장애 발생 보안 기능과 관련된 패킷을 드랍하도록 지시하는 임시 조치 플로우 룰을 상기 스위치에 전송하는 기능을 수행하는 것을 특징으로 한다.
본 발명에 따르면, 별도의 에이전트 설치 없이 오픈플로우 프로토콜과 TCP 프로토콜을 이용하여 네트워크 보안을 테스트할 수 있고, 공격자 정보를 획득할 수 있는 효과가 있다. 나아가 본 발명에 따르면 보안 기능의 장애에 대한 신속한 대처가 가능해 네트워크를 효율적으로 운용할 수 있는 효과가 있다.
도 1은 소프트웨어 정의 네트워킹을 설명하기 위한 도면
도 2는 소프트웨어 정의 네트워킹의 보안 시스템을 설명하기 위한 도면
도 3은 본 발명의 실시예를 따르는 보안 기능 테스트 방법을 설명하기 위한 도면
도 4는 본 발명의 실시예를 따라 네트워크 보안 정책 위반 및 보안 기능 장애에 대처하는 방법을 설명하기 위한 도면
본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다.
한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.
본 발명의 명세서에서 “플로우 룰”의 용어는 해당 업계의 통상의 기술자 입장에서 소프트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다.
나아가 본 명세서에서 스위치는 오픈플로우 프로토콜만을 지원하는 스위치, 오픈플로우 프로토콜을 지원하는 가상 스위치, 오픈플로우 프로토콜을 지원하는 일반적인 L2 스위치를 포함하는 개념으로 이해될 수 있다.
도 2는 소프트웨어 정의 네트워킹의 보안 시스템을 설명하기 위한 도면이다.
도 2에 도시된 네트워크는 스위치 (226, 228, 229), 호스트 (230, 232, 234, 236, 238) 및 네트워크 보안을 위한 장치 (240, 246)가 포함되어 있다. 특히 도 2의 예에서 240 및 246은 방화벽 기능을 수행하고 있으며, 도 2의 네트워크가 소프트웨어 정의 네트워킹이 적용된 경우, 상기 네트워크를 제어하는 컨트롤러 210가 더 포함될 수 있다.
방화벽은 보안 기능을 제공하는 소프트웨어와 하드웨어가 일체로 결합된 전용 네트워크 장비의 형태로 설치될 수 있다. 도 2의 예에서 240이 전용 방화벽 장비인 경우, 240은 네트워크에 대한 접근 제어, 감시 추적, 인증 등의 기능을 수행할 수 있다.
나아가 방화벽은 범용 서버에서 네트워크 기능 가상화 기술을 적용하여 구현한 가상 방화벽 기능의 형태로 설치될 수도 있다. 도 2의 예에서 246이 가상 방화벽 기능으로 구현된 경우, 246은 서버 238에 대한 접근 제어, 감시 추적, 인증 등의 기능을 수행할 수 있다.
방화벽은 악의적인 공격 및/또는 방화벽 설정 오류 등의 원인으로 인하여 장애가 발생할 수 있다. 방화벽에 발생한 장애는 해당 네트워크의 보안에 큰 위협 요소가 되기 때문에 방화벽은 주기적으로 모니터링될 필요가 있다.
그런데 방화벽 테스트를 위해서 종래에는 테스트 전용 호스트를 네트워크에 설치하거나 또는 임의의 호스트에 테스트 전용 에이전트를 설치하는 방법이 사용되었다. 그리고 방화벽의 장애가 감지되면, 이를 복구할 때까지 특별한 조치를 취하기 쉽지 않았다.
도 2의 예에서, 종래 방법을 따르면 호스트 230에 방화벽 테스트 에이전트를 설치하고 상기 에이전트에서 테스트 패킷을 생성하여 테스트 대상 방화벽에 주기적으로 전송하고, 해당 패킷에 대한 방화벽의 동작을 모니터링하는 방식으로 방화벽 테스트가 진행될 수 있다. 나아가 상기 네트워크가 소프트웨어 정의 네트워킹으로 구현된 경우, 테스트 패킷의 처리에 대한 플로우 룰을 스위치들에 적용할 필요가 있었다
그러나 이와 같은 방법은, 방화벽 테스트를 위한 별도의 에이전트 또는 서버 설치가 요구되며, 방화벽 테스트를 위한 별도의 플로우 테이블 생성 및 적용이 필요하기 때문에 네트워크 자원이 소모되는 문제가 있다.
본 발명은 상기와 같은 문제를 해결하기 위한 것이다.
본 발명의 실시예를 따르면 오픈플로우 프로토콜과 TCP 프로토콜을 이용하여, 별도의 에이전트 설치 없이 네트워크 보안 정책을 테스트할 수 있다. 나아가 본 발명의 실시예를 따르면 소프트웨어 정의 네트워킹을 이용하여 공격자 정보를 수집하고, 네트워크 보안 정책의 위반 및/또는 방화벽의 장애가 감지되면 복구 전까지 신속한 조치가 가능하기 때문에 네트워크를 효율적으로 운용할 수 있다.
예를 들어, 도 2의 예에서 네트워크를 제어하는 컨트롤러 (210)은 아래의 표 1과 같은 방화벽 (246, 240)의 상태 리스트를 작성하고 네트워크의 보안을 관리할 수 있다. (표 1은 호스트 238의 IP 주소를 10.0.2.5, 호스트 236의 IP 주소를 10.0.2.6 으로 가정)
Firewall List
Server/Host Port status Info
10.0.2.5 21 Fine FTP
22 Fine SSH
23 Fine TELNET
10.0.2.6 21 Fine FTP
22 Fine SSH
23 Fine TELNET
컨트롤러 210은 방화벽 (240, 246)의 장애 발생 여부를 테스트하기 위하여 일정한 주기에 따라 스위치의 방화벽 연결 포트를 스캔 할 수 있다. 이를 위해 컨트롤러는 패킷 아웃 메시지로 해당 포트에 대한 TCP SYN 패킷을 스위치 229에 전송하여 포트가 방화벽에 의해 제대로 닫혀 있는지 확인할 수 있다.
TCP 프로토콜은 두 호스트 사이의 연결과 관련하여 3-way handshaking 방식을 택하고 있다. TCP 프로토콜에 따르면 제 1 호스트가 SYN 패킷을 제 2 호스트에 전송하면, 제 1 호스트가 연결을 시도하는 제 2 호스트의 포트가 열려 있는 경우, 제 2 호스트는 상기 제 1 호스트가 전송한 SYN 패킷에 대한 응답 패킷을 전송하게 된다.
본 발명은 이러한 TCP 프로토콜에 주목하였다. 본 발명의 실시예를 따르면 컨트롤러가 스캔 대상 포트에 대한 SYN 패킷을 전송하고, 상기 SYN 패킷에 대한 응답 패킷이 패킷인 메시지로 컨트롤러에 수신되면, 해당 포트가 제대로 닫혀 있지 않고 방화벽에 장애가 발생한 것으로 판단할 수 있다.
예를 들어 도 2의 예에서, 스위치 229가 스위치 228과 연결된 포트가 5번, 스위치 229에서 호스트 238와 연결된 포트가 1번이라고 가정하면, 컨트롤러는 아래와 같은 패킷 아웃 메시지를 스위치 229에 전송할 수 있다.
제 1 패킷 아웃 메시지 : 아웃포트 5, dst Port 22, dst IP 10.0.2.6, SYN 패킷
제 2 패킷 아웃 메시지 : 아웃포트 1, dst Port 22, dst IP 10.0.2.5, SYN 패킷
상기 제 1 패킷 아웃 메시지는 방화벽 240의 SSH를 처리하는 포트 22에 대한 테스트를 위한 것이고, 상기 제 2 패킷 아웃 메시지는 방화벽 246의 SSH를 처리하는 포트 22에 대한 테스트를 위한 것이다.
그런데 악의적인 공격자가 포트 22에 대한 방화벽 246 설정을 해지한 경우라면, 제 2 패킷 아웃 메시지로 전송된 SYN 패킷은 방화벽 246에 의해 드랍되지 않고 호스트 238에 도착하게 될 것이다. 이 경우, 호스트 238은 SYN 패킷에 대한 응답 패킷을 생성하여 스위치 229로 전달할 것이다.
스위치 229는 상기 SYN 응답 패킷의 처리를 위해 플로우 테이블을 조회하고, 상기 응답 패킷은 플로우 테이블에서 정의하지 않은 패킷에 해당하기 때문에 컨트롤러 210에 상기 응답 패킷을 패킷인 메시지로 전달하게 될 것이다. 컨트롤러로 SYN 응답 패킷이 수신되면, 컨트롤러는 방화벽 246의 포트 22에 장애가 발생한 것을 파악할 수 있다.
이 경우, 컨트롤러는 표 1의 방화벽 상태 리스트를 아래의 표 2와 같이 변경하고, 방화벽 246의 장애 발생을 노티스할 것이다.
Firewall List
Server/Host Port status Info
10.0.2.5 21 Fine FTP
22 Error SSH
23 Fine TELNET
10.0.2.6 21 Fine FTP
22 Fine SSH
23 Fine TELNET
나아가 본 발명의 실시예를 따르면, 방화벽 246의 장애가 복구될 까지 컨트롤러는 해당 포트에 대한 임시 조치를 취할 수 있다. 위의 예에서, 컨트롤러는 스위치 229에 아래의 표 3과 같은 플로우 룰을 추가하여 스위치 229에서 호스트 238를 목적지로 하는 SSH 패킷을 전부 드랍시키도록 조치할 수 있다.
Match Fields Instructions
dst_IP : 10.0.2.5 TCP_dst_Port : 22 Drop
한편, 컨트롤러 210는 소프트웨어 정의 네트워킹을 이용하여 방화벽 246을 공격한 공격자의 정보를 수집할 수 있다.
예를 들어 도 2에서 공격자가 호스트 230에 악성 소프트웨어를 설치하여 방화벽 246을 공격하는 경우, 호스트 230을 소스로 하는 패킷이 비정상적으로 발생할 것이다.
이러한 정보는 패킷인 메시지로 컨트롤러에 보고될 것이며, 컨트롤러는 네트워크에서 수집한 정보를 이용하여 아래와 같은 표 4 형태의 공격자 정보 테이블을 생성하고 관리할 수 있다. 표 4는 공격 호스트 230의 IP 주소를 10.0.2.100로, 호스트 230이 스위치 226의 포트 1에 연결된 것을 가정하였다.
Attack Info
src_IP Dst Port Dst_IP DPID, Port
10.0.2.100 20 10.0.2.5 226, 1
21 10.0.2.5 226, 1
22 10.0.2.5 226, 1
나아가 본 발명의 실시예를 따르면, 공격 호스트 230에 대한 조치가 취해질 때까지 컨트롤러는 공격자에 대한 임시 조치를 취할 수 있다. 위의 예에서, 컨트롤러는 스위치 226에 아래의 표 5와 같은 플로우 룰을 추가하여 스위치 226에서 호스트 230의 패킷들을 전부 드랍시키도록 조치할 수 있다.
Match Fields Instructions
src_IP : 10.0.2.100 Drop
한편, 컨트롤러는 방화벽을 다시 SYN 패킷을 이용하여 확인하고, 장애가 복구된 것으로 판단되면, 임지조치를 위한 플로우 룰을 삭제할 수 있다.
앞의 예에서 컨트롤러 210은 장애 발생 방화벽 246의 포트 22에 대한 TCP SYN 패킷 (패킷아웃 : 아웃포트 1, dst Port 22, dst IP 10.0.2.5, SYN 패킷)을 스위치 229에 전송하여 방화벽이 다시 동작하여 해당 포트가 제대로 닫혀 있는지 확인할 수 있다.
방화벽이 제대로 동작하는 경우, 패킷 아웃 메시지로 전송된 SYN 패킷은 방화벽 246에 의해 드랍되어 호스트 238에 도착하지 않을 것이다. 이 경우, 호스트 238은 아무런 동작을 취하지 않아, 컨트롤러는 해당 SYN 패킷에 대한 응답 패킷을 수신할 수 없을 것이다.
컨트롤러 210은 미리 설정된 시간 동안 SYN 응답 패킷에 대한 패킷인 메시지가 수신되지 않으면 방화벽 246의 포트 22에 장애가 복구된 것으로 판단하고, 표 2의 방화벽 상태 테이블을 표 1과 같이 업데이트할 것이다.
나아가 방화벽 246에 대한 임시 조치를 위한 플로우 룰 (표 3)을 삭제하는 플로우 룰 (Flow_Mod : DELETE, dst_IP : 10.0.2.5, TCP_dst_Port : 22)을 스위치 229에 전송하여 상황을 해제할 수 있다.
본 발명의 실시예를 따르면, 플로우 룰의 형태로 방화벽의 장애에 대한 신속한 대처가 가능하고, 방화벽이 복구되면 임시 조치를 위한 플로우 룰이 즉시 삭제될 수 있기 때문에 효율적인 네트워크 운용이 가능한 효과가 있다.
나아가 공격 호스트 230에 대한 조치가 취해져 공격 패킷이 더 이상 네트워크에 존재하지 않은 경우라면, 표 4의 공격자 정보 테이블에 해당 사실을 반영하여 업데이트할 수 있다. 이후 컨트롤러 210은 공격자 230에 대한 임시 조치를 위한 플로우 룰 (표 5)를 삭제하는 플로우 룰을 스위치 226에 전송하여 상황을 해제할 수 있다.
도 3은 본 발명의 실시예를 따르는 방화벽 테스트 방법을 설명하기 위한 순서도이다.
단계 320에서 컨트롤러는 네트워크에 설치된 방화벽의 상태에 대한 리스트를 작성하고 이를 관리할 수 있다. 상기 방화벽은 보안 기능을 제공하는 소프트웨어와 하드웨어가 일체로 결합된 전용 네트워크 장비의 형태로 네트워크에 설치되거나, 범용 서버에서 네트워크 기능 가상화 기술을 적용하여 구현한 가상 방화벽 기능의 형태로 설치될 수도 있다.
단계 325에서 컨트롤러는 방화벽의 상태를 점검하기 위해 SYN 패킷을 전송하는 타이머를 설정할 수 있다. 타이머가 동작하면, 컨트롤러는 테스트 방화벽의 테스트 대상 포트를 특정하여 SYN 패킷을 전송할 것이다. 상기 SYN 패킷은 패킷 아웃 메시지를 이용하여 테스트 대상 방화벽과 연결 (단계 310)된 스위치에 전송될 수 있다 (단계 330)
상기 SYN 패킷은 스위치에서 방화벽으로 전달될 것이며 (단계 335) 방화벽이 제대로 동작하여 테스트 대상 방화벽의 테스트 대상 포트가 닫혀있는 경우라면, (단계 340) 상기 SYN 패킷은 방화벽에 의해 드랍될 것이다. (단계 350)
그러나 방화벽에 장애가 발생하여 테스트 대상 포트가 열려있는 경우라면 (단계 340) 상기 SYN 패킷은 드랍되지 않고, 방화벽을 통과하여 호스트로 전달될 것이다. (단계 345)
SYN 패킷을 수신한 호스트는 TCP 프로토콜에 따라 SYN 패킷에 대한 응답 패킷을 생성하여 스위치로 전송할 것이다. (단계 355) 이후 스위치는 자신의 플로우 테이블을 조회하고, 해당 패킷의 처리를 위하여 상기 응답 패킷을 패킷인 메시지로 컨트롤러에 전송할 것이다. (단계 360)
결과적으로 SYN 패킷에 대한 응답 패킷을 수신한 컨트롤러는 테스트 대상 방화벽의 테스트 대상 포트가 제대로 닫혀 있지 않고 방화벽에 장애가 발생한 것으로 판단할 수 있다.
한편, 컨트롤러는 네트워크에서 수집한 정보를 이용하여 공격자 정보를 파악할 수 있다. (단계 365) 소프트웨어 정의 네트워킹에서는 네트워크에 존재하는 패킷에 대한 정보가 컨트롤러에 보고되기 때문에, 컨트롤러는 임계값 이상으로 발생하는 패킷의 소스 IP, 목적지 IP, 포트 정보 등에 대한 정보를 수집하여 방화벽에 대한 공격자 정보를 획득할 수 있다.
나아가 컨트롤러는 방화벽에 장애가 발생한 것으로 판단되면, 이에 대한 정보를 방화벽 리스트에 업데이트 할 것이다. (단계 370)
도 4는 본 발명의 실시예를 따라 방화벽 장애에 대처하는 방법을 설명하기 위한 순서도이다.
본 발명의 실시예를 따르면, 방화벽에 장애가 발생하면, 플로우 룰의 형태로 방화벽의 장애에 대한 신속한 대처가 가능하다.
보다 구체적으로 단계 410에서 컨트롤러는 방화벽의 장애에 대한 임시 조치를 위한 플로우 룰을 스위치에 적용할 수 있다. 예를 들어 컨트롤러는 장애 발생 방화벽의 장애 발생 포트에 대한 패킷을 전부 드랍하도록 스위치를 제어하는 플로우 룰을 플로우 모드 메시지의 형태로 스위치에 추가할 수 있다.
이후 스위치는 임시 조치 플로우 룰을 자신의 플로우 테이블에 반영하고, 문제될 수 있는 패킷을 전부 드랍할 것이다. (단계 415)
한편, 단계 420에서 컨트롤러는 방화벽을 다시 SYN 패킷을 이용하여 확인하고, 장애가 복구된 것으로 판단되면, 임시 조치를 위한 플로우 룰을 삭제할 수 있다.
보다 구체적으로 단계 425에서 컨트롤러는 장애 발생 방화벽의 장애 발생 포트에 대한 TCP SYN 패킷을 패킷 아웃 메시지를 이용하여 스위치에 전송할 것이다. 이후, 스위치에서 방화벽으로 전달된 SYN 패킷은, 방화벽에 의해 드랍되며, 호스트는 아무런 동작을 취하지 않을 것이다.
컨트롤러는 미리 설정된 시간 동안 SYN 패킷에 대한 응답이 수신되지 않으면, 컨트롤러는 방화벽의 장애가 복구된 것으로 판단하고, 방화벽 상태 리스트를 업데이트 하고 (단계 440) 임시 조치를 위한 플로우 룰을 삭제하여 상황을 종료시킬 수 있다. (단계 445)
본 명세서와 도면에 게시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식 가진 자에 자명한 것이다.

Claims (6)

  1. 소프트웨어 정의 네트워크에서 보안 정책을 테스트하는 방법에 있어서,
    컨트롤러에서, 테스트 대상 보안 기능에 대한 TCP SYN 패킷을 패킷 아웃 메시지로 상기 보안 기능에 연결된 스위치에 전송하는 A 단계;
    상기 컨트롤러에서, 상기 TCP SYN 패킷에 대한 SYN 응답 패킷을 패킷 인 메시지로 상기 스위치로부터 수신하면, 상기 보안 기능에 장애가 발생한 것으로 판단하는 B 단계; 및
    상기 컨트롤러에서, 장애 발생 보안 기능과 관련된 패킷을 드랍하도록 지시하는 임시 조치 플로우 룰을 상기 스위치에 전송하는 C 단계를 포함하는 것을 특징으로 하는 보안 정책 테스트 방법.
  2. 제 1항에 있어서, 상기 C 단계는,
    상기 컨트롤러에서, 수집된 패킷인 메시지를 이용하여 네트워크의 공격자 정보를 획득하는 단계; 및
    상기 컨트롤러에서, 상기 공격자 정보와 관련된 패킷을 드랍하도록 지시하는 플로우 룰을 상기 공격자와 연결된 스위치에 전송하는 단계를 포함하는 것을 특징으로 하는 보안 정책 테스트 방법.
  3. 제 1항에 있어서, 상기 C 단계 이후에,
    상기 컨트롤러에서, 상기 장애 발생 보안 기능에 대한 TCP SYN 패킷을 패킷 아웃 메시지로 방화벽에 연결된 스위치에 전송하는 단계;
    상기 컨트롤러에서, 상기 TCP SYN 패킷에 대한 SYN 응답 패킷이 수신되지 않으면, 상기 임시 조치 플로우 룰을 삭제하도록 상기 스위치를 제어하는 단계를 포함하는 것을 특징으로 하는 보안 정책 테스트 방법.
  4. 제 1항에 있어서,
    상기 A 단계는, 상기 컨트롤러에서, 상기 테스트 대상 보안 기능의 테스트 대상 포트에 대한 TCP SYN 패킷을 전송하는 단계이며,
    상기 TCP SYN 패킷은, 목적지 IP가 호스트 및/또는 네트워크의 IP이며, 목적지 포트가 상기 보안 기능의 테스트 대상 포트이며,
    상기 패킷 아웃 메시지는, 아웃 포트 (out_port)가 상기 보안 기능의 방어 대상 호스트 및/또는 네트워크와 연결된 포트인 것을 특징으로 하는 보안 정책 테스트 방법.
  5. 소프트웨어 정의 네트워크에서 보안 정책을 테스트하는 시스템에 있어서,
    네트워크의 보안 기능을 수행하는 적어도 하나 이상의 보안 장치; 및
    테스트 대상 보안 장치에 대한 TCP SYN 패킷을 패킷 아웃 메시지로 상기 보안 장치에 연결된 스위치에 전송하고, 상기 TCP SYN 패킷에 대한 SYN 응답 패킷을 패킷 인 메시지로 상기 스위치로부터 수신하면, 상기 보안 장치에 장애가 발생한 것으로 판단하고, 장애 발생 보안 장치와 관련된 패킷을 드랍하도록 지시하는 임시 조치 플로우 룰을 상기 스위치에 전송하는 컨트롤러를 포함하는 것을 특징으로 하는 보안 정책 테스트를 위한 시스템.
  6. 소프트웨어 정의 네트워크에서 보안 정책을 테스트하기 위하여 컴퓨터 판독가능한 저장매체에 기록된 컴퓨터 프로그램에 있어서,
    컨트롤러에서, 테스트 대상 보안 기능에 대한 TCP SYN 패킷을 패킷 아웃 메시지로 상기 보안 기능에 연결된 스위치에 전송하는 기능;
    상기 컨트롤러에서, 상기 TCP SYN 패킷에 대한 SYN 응답 패킷을 패킷 인 메시지로 상기 스위치로부터 수신하면, 상기 보안 기능에 장애가 발생한 것으로 판단하는 기능; 및
    상기 컨트롤러에서, 장애 발생 보안 기능과 관련된 패킷을 드랍하도록 지시하는 임시 조치 플로우 룰을 상기 스위치에 전송하는 기능을 수행하는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020160169263A 2016-12-13 2016-12-13 네트워크 보안 정책을 테스트하는 방법, 장치 및 컴퓨터 프로그램 KR101906437B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160169263A KR101906437B1 (ko) 2016-12-13 2016-12-13 네트워크 보안 정책을 테스트하는 방법, 장치 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160169263A KR101906437B1 (ko) 2016-12-13 2016-12-13 네트워크 보안 정책을 테스트하는 방법, 장치 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20180067871A KR20180067871A (ko) 2018-06-21
KR101906437B1 true KR101906437B1 (ko) 2018-10-10

Family

ID=62806775

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160169263A KR101906437B1 (ko) 2016-12-13 2016-12-13 네트워크 보안 정책을 테스트하는 방법, 장치 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR101906437B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101580466B1 (ko) 2015-01-21 2016-01-04 아토리서치(주) 소프트웨어 정의 네트워킹을 이용하여 네트워크 장비를 테스트하는 방법, 장치 및 컴퓨터 프로그램
KR101710385B1 (ko) 2015-10-12 2017-02-27 아토리서치(주) Arp 패킷을 관리하는 방법, 장치 및 컴퓨터 프로그램
KR101767439B1 (ko) 2016-02-19 2017-08-24 아토리서치(주) 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101580466B1 (ko) 2015-01-21 2016-01-04 아토리서치(주) 소프트웨어 정의 네트워킹을 이용하여 네트워크 장비를 테스트하는 방법, 장치 및 컴퓨터 프로그램
KR101710385B1 (ko) 2015-10-12 2017-02-27 아토리서치(주) Arp 패킷을 관리하는 방법, 장치 및 컴퓨터 프로그램
KR101767439B1 (ko) 2016-02-19 2017-08-24 아토리서치(주) 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
KR20180067871A (ko) 2018-06-21

Similar Documents

Publication Publication Date Title
US10798638B2 (en) Apparatus and method for controller and slice-based security gateway for 5G
Cui et al. On the fingerprinting of software-defined networks
JP5880560B2 (ja) 通信システム、転送ノード、受信パケット処理方法およびプログラム
EP2557731B1 (en) Method and system for independently implementing fault location by intermediate node
EP2951957A1 (en) Network switch simulation
KR20140072343A (ko) Sdn 망의 장애 대처 방법
WO2017073089A1 (ja) 通信装置及びシステム及び方法
CN107534655A (zh) 控制器生成的网际控制报文协议回声请求的防火墙认证
US10623278B2 (en) Reactive mechanism for in-situ operation, administration, and maintenance traffic
EP3070891B1 (en) Packet processing method and device
KR101658824B1 (ko) 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 방법, 장치 및 컴퓨터 프로그램
KR101710385B1 (ko) Arp 패킷을 관리하는 방법, 장치 및 컴퓨터 프로그램
JP4208707B2 (ja) ルータ
CN108353027B (zh) 一种用于检测端口故障的软件定义网络系统及方法
US9256416B1 (en) Methods and apparatus for automatic session validation for distributed access points
CN115885502A (zh) 对中间网络节点进行诊断
CN107347014B (zh) 一种网络故障检测方法和系统
KR101906437B1 (ko) 네트워크 보안 정책을 테스트하는 방법, 장치 및 컴퓨터 프로그램
US10708163B1 (en) Methods, systems, and computer readable media for automatic configuration and control of remote inline network monitoring probe
Bentstuen et al. On bootstrapping in-band control channels in software defined networks
KR101767472B1 (ko) Sdn 기반의 제어기의 데이터 경로 변경 방법
KR101625399B1 (ko) 소프트웨어 정의 네트워크에서의 tcp 연결 제어 방법 및 장치
KR102092015B1 (ko) 소프트웨어 정의 네트워크에서 네트워크 장비를 인식하는 방법, 장치 및 컴퓨터 프로그램
WO2012128883A1 (en) Verifying availability and reachability through a network device
KR101969304B1 (ko) 패킷-아웃 메시지를 이용한 소프트웨어 정의 네트워킹 환경에서의 장애 처리 방법 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant