KR102023777B1 - 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템 - Google Patents

패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템 Download PDF

Info

Publication number
KR102023777B1
KR102023777B1 KR1020180055291A KR20180055291A KR102023777B1 KR 102023777 B1 KR102023777 B1 KR 102023777B1 KR 1020180055291 A KR1020180055291 A KR 1020180055291A KR 20180055291 A KR20180055291 A KR 20180055291A KR 102023777 B1 KR102023777 B1 KR 102023777B1
Authority
KR
South Korea
Prior art keywords
session
packets
information
packet
flow
Prior art date
Application number
KR1020180055291A
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 KR1020180055291A priority Critical patent/KR102023777B1/ko
Priority to PCT/KR2018/013374 priority patent/WO2019221346A1/ko
Priority to US17/055,423 priority patent/US11528199B2/en
Application granted granted Critical
Publication of KR102023777B1 publication Critical patent/KR102023777B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • 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

Abstract

네트워크 상의 패킷들을 수집하여 플로우 및 세션을 단계적으로 생성하고, 생성된 정보에 기초하여 소량의 패킷만으로도 트래픽 검사를 수행할 수 있고, 패킷의 저장용량을 줄일 수 있으면서도 고속으로 패킷을 서치할 수 있는 시스템 및 그 방법이 개시된다. 본 발명의 일 측면에 따르면, 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계; 상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계; 상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계; 상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하는 네트워크 검사 방법이 제공된다.

Description

패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템{Method for network inspection saving packet and system performing the same}
본 발명은 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 네트워크 검사 시스템에 관한 것이다. 보다 상세하게는 네트워크 상의 패킷들을 수집하여 플로우 및 세션을 단계적으로 생성하고, 생성된 정보에 기초하여 소량의 패킷만으로도 트래픽 검사를 수행할 수 있고, 패킷의 저장용량을 줄일 수 있으면서도 고속으로 패킷을 서치할 수 있는 시스템 및 그 방법에 관한 것이다.
기존의 네트워크 제어 및 관리 장비들은 TCP(transport layer protocol)/UDP(user datagram protocol) 또는 IP(Internet protocol)의 패킷 정보를 기반으로, 해당 장비들의 특정 단위 목표인 라우팅이나 QoS(Quality of Service), DDoS(Distributed Denial of Service)방지 등을 달성하기 위해 노력해 왔다. 그러나 패킷 기반의 접근 방법은 상위 애플리케이션들의 통신 관계에 따른 정보들을 무시하고, 단순히 일시적인 정보 전달 단위인 각각의 분리된 패킷에 담겨 있는 정보들에만 의존함으로써, 적게는 처리 속도의 한계성과 크게는 적용성의 한계로 인해 패킷 라우팅을 위한 라우터, DDoS 공격을 방어하는 전용 시스템, 또는 트래픽 제어를 위한 DPI(Deep Packet Inspection) 시스템 등과 같은 독립적인 목표를 위한 단일 시스템의 형태로 제공되고 있다. 이 중 DPI 시스템은 특정 애플리케이션 또는 클라이언트(예컨대, P2P 클라이언트(client))가 사용하는 잘 알려진 포트 번호와 페이로드(Payload)의 시그너쳐(Signature)를 찾아서 검출하고, 검출된 패킷을 제어하는 방법을 채택하고 있다. 이러한 시그너쳐를 검출함으로써 어떤 클라이언트 즉, 애플리케이션이 현재 네트워크에서 패킷을 생성 및/또는 전송하고 있는지를 알게 되고, 소정의 정책에 따라 적절한 네트워크 제어를 수행하게 된다.
하지만, 종래의 DPI 시스템은 전송되는 모든 패킷의 페이로드를 검사해야 하므로 프로세싱의 오버헤드가 너무 크다는 단점이 있다. 즉, 모든 패킷의 페이로드를 검출하기 위해서는 고속 및 고가의 장비가 필요한 문제점이 있다. 더구나, 페이로드가 암호화된 패킷일 경우에는 암호화를 풀 수 있는 방법이 없으므로 시그너쳐를 검출할 수도 없을 수 있다. 또한, 암호화가 되어 있지 않더라도 반드시 시그너쳐가 찾아진다는 보장도 없고, 실제로 모든 시그너처를 찾기도 어려운 문제점이 있다.
이러한 문제점을 해결하기 위해 본 발명자는 한국특허출원(출원번호 10-2011-0019891, "네트워크 검사 시스템 및 그 제공방법")을 출원하기도 하였다.
하지만 이러한 선출원은 패킷에 기반하여 플로우만을 생성하므로, 세션 정보를 알 수 없는 문제점이 있었고, 또한 세션에 비해 플로우는 매우 그 숫자가 많을 수밖에 없어서 네트워크 레코딩 시스템 등과 같이 다수의 패킷들이 저장된 경우에 패킷 서치를 수행할 때 많은 시간이 걸린다는 문제점이 있다.
이러한 문제점을 해결하기 위하여, 본 발명자는 세션을 형성하는 패킷 중 초기 일부의 선행 패킷을 저장하고 이에 대한 보안 검사를 수행하는 방안(이하, '종래 방안'이라고 함)을 한국 특허출원 제10-2015-0020375호를 통해 제안한 바 있다. 그런데, 종래 방안에서는 공격자가 페이로드를 포함하고 있지 않은 패킷(예를 들어, TCP SYN 패킷 등)을 여러 번 전송한 이후 공격을 시도하는 경우 이를 탐지하지 못하는 문제점이 있었다.
한국특허출원(출원번호 10-2008-0126888, "네트워크 컨트롤 시스템 및 네트워크 컨트롤 방법") 한국특허출원(출원번호 10-2011-0019891, "네트워크 검사 시스템 및 그 제공방법") 한국특허출원(출원번호 10-2015-0020375, "패킷 저장을 수행하는 네트워크 검사 시스템 및 그 제공방법")
본 발명은 이러한 문제점을 해결하고자 안출된 발명으로써, 본 발명이 이루고자 하는 기술적 과제는 실시간으로 패킷을 읽고 검사하여 세션의 초기 일부 패킷만을 저장하도록 하여 효과적으로 패킷에 대한 보안 검사가 수행될 수 있는 방법 및 그 시스템을 제공하는 것이다.
또한, 네트워크 트래픽을 기록함에 있어 패킷의 저장개수를 현저히 줄일 수 있고, 고속의 패킷 서치를 지원할 수 있는 방법 및 그 시스템을 제공하는 것이다.
특히, 공격자가 세션 초기에 아무런 정보(페이로드)도 포함하고 있지 않은 패킷을 여러 번 보낸 후 공격을 하는 형태의 공격에도 대처할 수 있는 방법 및 시스템을 제공하는 것이다.
본 발명의 일 측면에 따르면, 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계; 상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계; 상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계; 상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하는 네트워크 검사 방법이 제공된다.
일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 선행 페이로드를 대응시켜 저장하는 단계는, 상기 세션을 구성하는 패킷 중 페이로드를 포함하는 최초의 페이로드 패킷을 특정하는 단계; 및 특정한 상기 세션 정보와, 상기 세션을 구성하는 패킷 중 상기 최초의 페이로드 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, M은 상기 최초의 페이로드 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.
일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는, 특정한 상기 세션 정보와, 상기 세션의 초기 M개의 선행 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, M은 상기 세션의 최초 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.
일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는, 특정한 상기 세션 정보와, 상기 세션의 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, M은 상기 세션의 N 번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.
일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는, 특정한 상기 세션 정보와, 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수이며, M은 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.
본 발명의 다른 일 측면에 따르면, 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계; 상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계; 상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계; 상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계를 포함하는 네트워크 검사 방법이 제공된다.
일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계는, 상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계는, 상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수일 수 있다.
일 실시예에서, 상기 네트워크 검사 방법은, 상기 네트워크 검사 시스템이, 상기 K바이트의 페이로드에 대한 보안 검사를 수행하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 네트워크 검사 방법은, 상기 네트워크 검사 시스템이, 상기 N 개의 패킷에 대한 보안 검사를 수행하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 세션 정보는, 상기 세션을 형성하는 상기 적어도 하나의 세션 형성 플로우의 식별정보를 포함하는 것을 특징으로 할 수 있다.
일 실시예에서, 상기 네트워크 검사 방법은, 상기 적어도 하나의 세션 형성 플로우 각각에 대한 플로우 정보를 저장하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 네트워크 검사 방법은, 상기 저장장치에 저장되는 패킷 서치 요청을 수신하는 단계; 상기 패킷 서치 요청에 응답하여 상기 패킷 서치에 상응하는 세션 정보를 특정하고, 특정된 세션 정보에 기초하여 상기 패킷 서치에 상응하는 세션 형성 플로우를 특정하고, 특정된 세션 형성 플로우에 기초하여 상기 패킷 서치 요청에 상응하는 패킷을 추출하는 단계를 더 포함할 수 있다.
본 발명의 다른 일 측면에 따르면, 데이터 처리장치에 설치되며 상술한 방법을 수행하기 위한 기록된 컴퓨터 프로그램이 제공된다.
본 발명의 다른 일 측면에 따르면, 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈; 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고, 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K는 자연수)의 페이로드를 대응시켜 저장하는 세션 생성모듈을 포함하는 네트워크 검사 시스템이 제공된다.
일 실시예에서, 상기 세션 생성모듈은, 상기 세션을 구성하는 패킷 중 페이로드를 포함하는 최초의 페이로드 패킷을 특정하고, 특정한 상기 세션 정보와, 상기 세션을 구성하는 패킷 중 상기 최초의 페이로드 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되, 여기서, M은 상기 최초의 페이로드 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.
일 실시예에서, 상기 세션 생성모듈은, 특정한 상기 세션 정보와, 상기 세션의 초기 M개의 선행 패킷을 대응시켜 저장하되, 여기서, M은 상기 세션의 최초 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다..
일 실시예에서, 상기 세션 생성모듈은, 특정한 상기 세션 정보와, 상기 세션의 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하되, 여기서, M은 상기 세션의 N 번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.
일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는, 특정한 상기 세션 정보와, 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수이며, M은 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.
본 발명의 다른 일 측면에 따르면, 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈; 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고, 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 세션 생성모듈을 포함하는 네트워크 검사 시스템이 제공된다.
일 실시예에서, 상기 세션 생성모듈은, 상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장할 수 있다.
일 실시예에서, 상기 세션 생성모듈은, 상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되, 여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수일 수 있다.
일 실시예에서, 상기 네트워크 검사 시스템은, 상기 K바이트의 페이로드에 대해서 보안 검사를 수행하기 위한 보안 검사모듈을 더 포함할 수 있다.
일 실시예에서, 상기 네트워크 검사 시스템은, 상기 N 개의 패킷에 대한 보안 검사를 수행하기 위한 보안 검사모듈을 더 포함할 수 있다.
일 실시예에서, 상기 세션 정보는, 상기 세션을 형성하는 상기 적어도 하나의 세션 형성 플로우의 식별정보를 포함하는 것을 특징으로 하며, 상기 플로우 생성모듈은, 상기 세션 형성 플로우 각각에 대한 플로우 정보를 저장할 수 있다.
일 실시예에서, 상기 네트워크 검사 시스템은, 상기 네트워크 검사 시스템에 의해 저장된 패킷의 패킷 서치 요청을 수신하고, 상기 패킷 서치 요청에 응답하여 상기 패킷 서치에 상응하는 세션 정보를 특정하고, 특정된 세션 정보에 기초하여 상기 패킷 서치에 상응하는 세션 형성 플로우를 특정하고, 특정된 세션 형성 플로우에 기초하여 상기 패킷 서치 요청에 상응하는 패킷을 추출하는 패킷 서치 모듈을 더 포함할 수 있다.
본 발명의 기술적 사상에 따르면, 고속으로 패킷을 검사하면서 플로우 및 플로우에 기반한 세션에 대한 정보를 생성할 수 있어서, 세션을 구성해는 패킷 중 초기 일부만을 검사할 수 있도록 하여 고속 네트워크 환경에서 실시간으로 보안 검사가 수행될 수 있는 효과가 있다.
또한, 네트워크를 기록하기 위해 필요한 패킷의 저장개수를 현저히 줄일 수 있고, 세션 정보 및 플로우 정보에 기초하여 고속의 패킷 서치를 지원할 수 있는 효과가 있다.
또한 공격자가 세션 초기에 아무런 정보(페이로드)도 포함하고 있지 않은 패킷을 여러 번 보낸 후 공격을 하는 형태의 공격에도 대처할 수 있는 효과가 있다.
또한 공격자가 세션 초기에 정상적인 패킷을 일부 보낸 후 공격을 하는 형태의 공격에도 대처할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 검사 시스템의 개략적인 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시 예에 따른 네트워크 검사 방법을 위한 세션, 플로우, 및 패킷을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 네트워크 검사 방법에 따른 패킷 서치를 수행하는 개념을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 네트워크 검사 방법에서 특정 세션 내의 일정 크기의 최초 선행 페이로드를 저장하는 방법에 대하여 설명하기 위한 도면이다.
도 5는 본 발명의 다른 일 실시예에 따른 네트워크 검사 방법에서 세션의 중간부터 일정한 크기 혹은 개수의 패킷을 저장하는 방법에 대하여 설명하기 위한 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에 있어서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. 반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 중심으로 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 검사 시스템의 개략적인 구성을 나타내는 도면이다. 상기 네트워크 검사 시스템은 본 발명의 기술적 사상에 따른 네트워크 검사 방법을 수행할 수 있다.
도 1을 참조하면, 본 발명의 실시 예에 따른 네트워크 검사 시스템(100)은 플로우 생성모듈(120) 및 세션 생성모듈(130)을 포함한다. 상기 네트워크 검사 시스템(100)은 패킷 추출모듈(110)를 더 포함할 수 있다. 또한, 상기 네트워크 검사 시스템(100)은 패킷 서치모듈(140)을 더 포함할 수 있다. 또한, 상기 네트워크 검사 시스템(100)은 보안 검사모듈(150) 및/또는 저장장치(160)를 더 포함할 수 있다.
일 실시예에서, 상기 네트워크 검사 시스템(100)은 여러 대의 네트워크 단위를 연결하여 네트워크를 구성하는 통신 장치일수 있다. 상기 네트워크 검사 시스템(100)은 허브, 액세스 포인트, 공유기 등일 수 있다. 또는 상기 네트워크 검사 시스템(100)은 이러한 통신 장치(허브, 액세스 포인트, 공유기 등)와 연결되어 있는 시스템일 수 있다.
상기 네트워크 검사 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 필요한 하드웨어 리소스(resource) 및/또는 소프트웨어를 구비할 수 있으며, 반드시 하나의 물리적인 구성요소를 의미하거나 하나의 장치를 의미하는 것은 아니다. 즉, 상기 네트워크 검사 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 구비되는 하드웨어 및/또는 소프트웨어의 논리적인 결합을 의미할 수 있으며, 필요한 경우에는 서로 이격된 장치에 설치되어 각각의 기능을 수행함으로써 본 발명의 기술적 사상을 구현하기 위한 논리적인 구성들의 집합으로 구현될 수도 있다. 또한, 상기 네트워크 검사 시스템(100)은 본 발명의 기술적 사상을 구현하기 위한 각각의 기능 또는 역할별로 별도로 구현되는 구성들의 집합을 의미할 수도 있다.
본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
상기 저장장치(160)는 본 발명의 기술적 사상을 구현하는데 필요한 데이터 및/또는 정보를 저장하는 장치일 수 있다. 일 실시예에서 상기 저장장치(160)는 데이터베이스, 비휘발성 스토리지(예를 들면, HDD, SDD 등)일 수 있다.
상기 패킷 추출모듈(110)은 네트워크로부터 복수의 패킷들을 수신할 수 있다. 상기 패킷 추출모듈(110)은 네트워크상의 소정의 위치에 설치되어 네트워크를 통해 이동하는 패킷들을 수집할 수 있다. 일 예에 의하면 상기 패킷 추출모듈(110)은 도 1에 도시된 바와 같이 네트워크로부터 패킷들을 태핑(tapping)하는 장비로부터 상기 패킷들을 받는 태핑 모드로 상기 네트워크상에 구현될 수 있으나, 이에 한정되지 않고 상기 패킷들이 여타의 다른 방법으로 패킷 추출모듈로 인가될 수 있다.
상기 패킷 추출모듈(110)을 통과하여 네트워크상에서 이동되도록 인라인(In-line)모드로 상기 네트워크 상에 구현될 수도 있다.
상기 패킷 추출모듈(110)은 예컨대, 소정의 로컬 에어리어 네트워크(LAN) 상에 존재하는 게이트웨이(gateway)의 전단 및/또는 후단에 위치하여 본 발명의 기술적 사상에 따라 네트워크 데이터를 수집할 수 있다. 그러면 상기 네트워크 검사 시스템(100)은 검사결과를 이용하여 따라 네트워크/트래픽을 컨트롤할 수 있다. 네트워크/트래픽을 컨트롤 한다 함은 소정의 세션, 플로우 및/또는 패킷별로 대역폭, 전송 속도를 조절하거나 전송을 차단하는 등의 인위적 행위를 의미할 수 있다. 상기 패킷 추출모듈(110)은 예컨대 소정의 NIC(Network Interface Card)로 구현될 수 있지만, 이에 한정되는 것은 아니다.
상기 플로우 생성모듈(120)은 상기 패킷 추출모듈(110)에 의해 수신되는 패킷들에 기초하여 복수의 플로우들을 생성할 수 있다. 상기 패킷 추출모듈(110)은 상기 플로우 생성모듈(120)로 순차적으로 패킷들을 출력할 수 있다. 그러면, 상기 플로우 생성모듈(120) 플로우를 생성할 수 있다. 플로우를 생성한다고 함은 후술할 바와 같이 플로우 정보를 생성하는 것을 의미할 수 있다. 구현 예에 따라서는, 선택적으로 상기 플로우 생성모듈(120)은 플로우에 포함되는 패킷을 추출하여 상기 저장장치(160)에 저장할 수도 있다. 상기 플로우 생성모듈(120)은 소정의 플로우에 해당하는 모든 패킷들을 저장토록 할 수도 있지만, 구현 예에 따라서는 후술할 바와 같이 상기 플로우를 포함하는 세션의 초기 일부 패킷만을 최종적으로 상기 저장장치(160)에 저장토록 할 수도 있다.
물론, 상기 플로우 생성모듈(120)은 플로우 및 해당 플로우에 포함된 모든 패킷을 임시로 상기 저장장치(160)에 저장하고, 상기 세션 생성모듈(130)이 저장된 패킷들 중 선택적으로 일부만 저장하고 나머지는 삭제할 수도 있다.
본 명세서에서 플로우(flow)라 함은, 제한된 시간 내에 연속적으로 전달되는 IP 패킷들의 집합을 의미한다. 따라서, IP 플로우는 애플리케이션의 주소 쌍(송신자 주소, 송신자 포트 번호, 수신자 주소, 수신자 포트 번호), 호스트 쌍(송신자 네트워크 주소, 수신자 네트워크 주소), AS 번호 쌍(송신자 AS 번호, 수신자 AS 번호) 등으로 명세되는 제한된 시간 내에 연속적으로 전달되는 IP 패킷들의 흐름으로 정의될 수 있다. 이러한 플로우에 대한 개념 및 플로우를 형성하는 방식에 대해서는 상기한 선행기술문헌에 상세히 개시되어 있으므로 본 명세서에서는 상세한 설명은 생략하도록 한다. 또한, 본 명세서에서 플로우에 대한 개념, 플로우의 생성 방법에 대해서는 상기한 선행기술문헌에 개시된 기술적 사상 및 기재를 본 명세서의 레퍼런스로 포함하며, 본 명세서의 기재에 포함되는 것으로 취급할 수 있다.
패킷들의 속성 중 플로우를 생성하기 위한 일 예로 5-튜플(tuple)을 이용할 수 있다. 즉, 플로우 프로세서(110)는 네트워크 상에서 패킷들을 입력으로 받아서 패킷들의 연속된 집합인 플로우를 생성하거나, 플로우를 형성하는 패킷들 중 일부를 추출할 수 있다. 플로우를 생성하거나 플로우 패킷을 검출하는 조건은 패킷들의 속성(예컨대, 5-Tuple(Source Address, Destination Address, Source Port, Destination Port, Protocol))를 비교하여 동일한 속성(예컨대, 5-튜플(tuple) 값)을 가지는 패킷이 존재하지 않으면 새로운 플로우를 생성하고, 만약에 동일한 값을 가지는 패킷이 존재하면 그 플로우의 플로우 정보를 업데이트할 수 있다.
패킷들의 연속된 집합이라 함은 반드시 물리적으로 연속된 패킷들을 의미하는 것이 아니라, 시간적으로 제한된 시간 내에 도달한 패킷의 속성이 동일한 패킷을 포함하는 의미로 사용될 수 있다.
상기 플로우 정보는 패킷의 5-튜플 정보를 포함하며, 플로우 사이즈(Flow Size), 지속기간(Duration) 즉, 플로우의 시작 시간(S.T) 및 종료 시간(E.T), 패킷 카운트(Packet Count, P.C), 평균 패킷 사이즈(Average Packet Size), 평균 레이트(Average Rate), 플래그(예컨대, 프로토콜을 위한 특별한 신호(SYN, FIN 등)) 및/또는 폴로우 사이즈 등을 포함할 수 있다. 상기 플로우 정보는 저장장치(160)로 출력되어 저장될 수 있다. 상기 플로우 생성모듈(120)은 상기 저장장치(160)에 소정의 플로우에 대한 플로우 정보 및 상기 플로우에 포함되는 패킷 중 적어도 일부를 서로 대응시켜 저장할 수 있다. 이러한 과정을 상기 플로우 생성모듈(120)이 플로우를 생성한다고 정의할 수 있다. 예컨대, 플로우 정보 및 플로우에 포함된 패킷이 물리적으로 연속되도록 저장될 수도 있고, 테이블, 링크 등과 같이 물리적으로는 분리되어 있더라도 용이하게 탐색될 수 있는 다양한 형태로 저장될 수 있다.
이렇게 저장된 패킷들 중 일부는 상기 세션 생성모듈(130)에 의해 생성되는 세션 정보에 기초하여 삭제될 수도 있다. 예를 들어, 세션의 초기 N 개의 선행패킷을 제외하고는 삭제될 수도 있다. 또는 세션 초기의 N바이트의 페이로드를 포함하고 있는 선행패킷을 제외하고는 삭제될 수 있다. 또한 구현 예에 따라서는 특정 플로우에 대해서는 플로우 정보만 저장되고, 상기 특정 플로우에 해당하는 패킷은 저장되지 않을 수도 있다.
상기 세션 생성모듈(130)은 상기 플로우 생성모듈(120)에 의해 복수의 플로우들이 생성되면, 상기 복수의 플로우들에 대한 정보에 기초하여 세션을 생성할 수 있다. 세션을 생성한다고 함은 생성된 복수의 플로우들 중에서 동일한 세션을 형성하는 플로우들을 추출하고, 추출된 플로우들에 대한 식별정보를 포함하는 세션 정보를 생성하여 상기 저장장치(160)에 저장하는 것을 의미할 수 있다.
일 실시예에서, 플로우와 세션은 다음과 같은 방식으로 생성될 수 있다.
상기 플로우 생성모듈(120)은 패킷의 5-tuple을 기준으로 판단하여 해당 패킷이 종료되지 않고 남아있는 플로우에 포함되면(5-tuple, 정보가 동일하면) 해당 플로우 정보를 수정하고, 해당 패킷이 해당 플로우에 종속됨을 표시할 수 있다.
만약 해당 패킷의 5-tuple 정보를 기준으로 판단하여 해당 패킷이 특정 플로우에 속하지 않으면 새로운 플로우를 생성하여 해당 패킷이 새로 생성된 플로우에 종속됨을 표시할 수 있다.
새로운 플로우가 생성되면, 상기 세션 생성모듈(130)은 플로우의 5-tuple 정보를 기준으로 판단하여 해당 플로우가 종료되지 않고 남아있는 세션에 포함되면 해당 세션 정보를 수정하고, 해당 플로우를 해당 세션에 종속됨을 표시할 수 있다. 만약 해당 플로우의 5-tuple 정보를 기초로 판단하여, 특정 세션에 속하지 않으면 새로운 세션을 생성하고 해당 플로우가 새로 생성된 세션에 종속됨을 표시할 수 있다. 만약 세션의 끝을 알리는 패킷이 수신되면 해당 패킷이 포함되는 플로우와 세션을 종료하고 저장장치(160)에 저장할 수 있다. 종료되지 않고 남아있는 플로우, 세션의 경우, 일정시간 동안 해당 플로우나 세션에 포함되는 패킷이 수신되지 않으면 해당 플로우와 세션은 종료될 수 있다.
또한 세션을 생성한다고 함은 상기 세션 정보와 함께 상기 세션에 포함된 패킷들 중 일부를 상기 세션 정보에 대응되도록 저장하는 과정을 포함하는 의미일 수 있다. 예를 들어, 세션 형성 시 상기 세션 생성모듈(130)은 상기 세션에 포함된 패킷들 중 초기 M 개의 선행패킷을 상기 세션 정보에 대응되도록 저장할 수 있다. 혹은 상기 세션에 포함된 패킷들 중 N번째 패킷부터 M개의 후속 패킷을 상기 세션 정보에 대응되도록 저장할 수 있다. 또는 상기 세션 생성모듈(130)은 상기 세션 정보와 함께 상기 세션에 포함된 패킷들 중 상기 세션의 초기 K바이트의 페이로드를 포함하는 패킷을 상기 세션 정보에 대응되도록 저장할 수도 있다. 또는 상기 세션 생성모듈(130)은 N번째 패킷부터 K 바이트의 페이로드를 포함하는 후속 패킷을 상기 세션 정보에 대응되도록 저장할 수도 있다. 이에 대해서는 후에 보다 상세하게 설명하기로 한다.
일부 패킷을 상기 세션 정보에 대응되도록 저장하는 과정은 이미 상기 플로우 생성모듈(120)에 의해 저장된 패킷들 중 상기 일부 패킷을 제외하고 삭제하는 과정일 수 있다. 또는 세션 정보 및 패킷은 별도로 저장될 수도 있다. 이러한 경우에는 해당 패킷은 이중으로 저장될 수도 있다.
또는 일부 패킷을 상기 세션 정보에 대응되도록 저장하는 과정은 저장될 대상이 되는 패킷만을 휘발성 메모리에 임시 저장하고 저장 대상이 아닌 패킷은 버리게 되며, 세션 종료 시 휘발성 메모리에 저장되어 있는 패킷이 상기 저장장치(160)에 저장될 수도 있다.
상기 세션 생성모듈(130)이 세션을 생성하는 개념은 도 2를 참조하여 설명하도록 한다.
도 2는 본 발명의 일 실시 예에 따른 네트워크 검사 방법을 위한 세션, 플로우, 및 패킷을 설명하기 위한 도면이다.
도 1 및 도 2를 참조하면, 소정의 장치들끼리 세션(S)이 형성되면, 상기 세션(S)은 적어도 하나의 플로우(F)로 구성될 수 있다. 또한, 상기 적어도 하나의 플로우는 각각 적어도 하나의 패킷(P)으로 구성될 수 있다.
본 발명의 기술적 사상에 의하면, 상기 네트워크 검사 시스템(100)은 소정의 네트워크상의 일 지점을 경유하는 패킷들을 수집할 수 있다. 이는 상기 패킷 추출모듈(110)에 의해 수행될 수 있다.
그리고 수집되는 패킷들의 패킷 속성(예컨대, 5튜플 등)에 기초하여 상기 네트워크 검사 시스템(100)은 플로우를 생성할 수 있다. 플로우의 생성방법에 대해서는 상술한 바와 같다. 이러한 플로우의 생성은 플로우 생성모듈(120)에 의해 수행될 수 있다. 각각의 플로우는 하나의 패킷만으로 구성될 수도 있고, 복수의 패킷들로 구성될 수도 있다. 또한 플로우별로 플로우 사이즈가 다를 수도 있다.
한편, 이처럼 플로우가 생성되면 상기 세션 생성모듈(130)은 세션을 생성할 수 있다.
세션을 생성하기 위해 상기 세션 생성모듈(130)은 저장장치(160)에 저장된 플로우 정보를 확인할 수 있다. 동일한 세션에 포함되는 플로우들은 공통되는 특성을 가질 수 있다. 따라서 상기 세션 생성모듈(130)은 상기 저장장치(160)에 저장된 플로우들 중 상기 공통되는 특성을 가진 플로우들을 탐색할 수 있다. 또한 플로우 정보(예컨대, 플로우 정보에 포함되는 S.T, E.T 등의 정보)에 기초하여 각각의 플로우의 시간적 우선순위를 파악할 수 있다. 상기 세션 생성모듈(130)은 각각의 세션 형성 플로우의 플로우 정보에 포함되는 플래그 정보에 기초하여 해당 세션의 최선 플로우 및 최후 플로우를 파악할 수도 있다.
따라서 상기 세션 생성모듈(130)은 특정 세션에 포함되는 적어도 하나의 플로우 즉, 세션 형성 플로우를 추출할 수 있다. 상기 세션 형성 플로우는 하나의 플로우일 수도 있고, 복수의 플로우들을 포함할 수도 있다.
이처럼 본 발명의 기술적 사상에 따른 네트워크 검사 시스템(100)이 플로우만을 생성하는 것이 아니라, 생성한 플로우에 기초하여 세션을 생성하는 것은 세션의 초기 일부의 데이터에 의해 해당 세션의 중요한 특성들이 모두 파악될 수 있기 때문이다. 따라서 종래의 선행기술들이 수집되는 모든 패킷을 저장하고 검사(예컨대, DPI)하거나, 각각의 플로우별로 일정 개수의 선행패킷을 저장 및 검사하는 것에 비해 보다 적은 수의 보안 검사만으로도 소정의 애플리케이션의 특성 또는 원하는 정보를 검사할 수 있다. 일반적으로 세션의 초기 5개 내외에 패킷을 검사하는 정도면 상기 세션에 포함되는 모든 패킷을 검사하는 것에 비해 검사의 품질에 큰 차이가 없음이 알려져 있다. 물론, 서비스 주체의 판단에 따라 세션의 모든 패킷을 저장할 수도 있다.
또한, 본 발명의 기술적 사상에 의하면 상기 네트워크 검사 시스템(100)이 네트워크 레코딩 서비스를 제공하는 경우에 종래의 선행기술들에 비해 적은 수의 패킷들만을 저장할 수 있게 되는 효과가 있다. 따라서 스토리지에 대한 이득이 발생할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상과 같이 패킷으로부터 플로우를 생성하고, 생성된 플로우를 이용하여 세션까지 생성하는 경우에는 특정 서비스 이용자가 패킷을 서치할 때에도 고속의 패킷 서치가 가능한 효과가 있다. 즉, 상기 네트워크 검사 시스템(100)이 세션의 초기 일부의 선행패킷 (혹은 초기 일부의 페이로드)만을 저장하는 것이 아니라 수집되는 모든 패킷을 저장할 수도 있는데, 이러한 경우에는 세션을 생성함으로써 생성되는 세션정보를 가장 먼저 탐색하여 원하는 패킷에 상응하는 세션을 탐색하고, 탐색된 세션으로부터 원하는 패킷에 상응하는 플로우를 탐색한 후 탐색된 플로우에 기초하여 패킷을 검색함으로써 고속의 다운드릴 서치가 가능한 효과가 발생한다. 왜냐하면 플로우만을 생성하는 경우에는 최악의 경우에 플로우의 개수만큼 서치를 수행한 후에 패킷을 서치할 수 있지만, 세션이 형성된 경우에는 최악의 경우에 세션의 개수만큼만 서치를 수행한 후, 빠른 시간에 해당 패킷에 상응하는 플로우 및 패킷을 탐색할 수 있기 때문이다. 물론, 초기 일부의 선행패킷 (혹은 초기 일부의 페이로드)만을 저장하는 경우에도 이러한 효과는 여전히 존재한다. 또한, 패킷을 서치하고자 하는 서비스 이용자는 세션에 대한 정보는 알고 있을 수 있지만, 플로우에 대한 정보는 알지 못하는 경우도 존재할 수 있다. 따라서 본 발명의 기술적 사상과 같이 세션을 생성하는 경우에는 네트워크 리코딩 서비스에서 효율적이고 고속의 패킷 서칭이 가능해지는 효과가 있다.
다시 도 1을 참조하면, 상기 세션 생성모듈(130)은 상기 플로우 생성모듈(120)이 생성한 복수의 플로우들에 기초하여 세션을 생성할 수 있다. 즉, 세션정보를 생성할 수 있다.
상기 세션 정보는 적어도 상기 세션에 포함되는 적어도 하나의 플로우 즉, 세션 형성 플로우들 각각의 인덱스(식별정보)를 포함할 수 있다. 또한, 상기 세션의 특성을 나타내는 다양한 정보들이 상기 세션 정보에 더 포함될 수 있다.
이러한 세션 정보의 생성을 통해 전술한 바와 같이 고속의 패킷 서칭이 가능할 수 있으며, 또한 세션의 생성을 통해 저장 대상이 되는 일부 패킷을 특정할 수도 있다.
도 3을 참조하여 본 발명의 패킷들이 저장되는 개념적인 구조를 설명하면 다음과 같을 수 있다.
도 3은 본 발명의 일 실시 예에 따른 네트워크 검사 방법에 따른 패킷 서치를 수행하는 개념을 설명하기 위한 도면이다.
도 3을 참조하면, 상기 세션 생성모듈(130)은 전술한 바와 같이 소정의 세션을 생성할 수 있다. 세션의 생성을 통해 생성되는 세션 정보에는 도 3에 도시된 바와 같이 적어도 상기 세션에 포함되는 세션 형성 플로우의 식별정보가 포함될 수 있다.
또한, 상기 세션 정보에는 상기 세션의 5-튜플에 대한 정보, 시작시간(S.T) 및 종료시간(E.T), 패킷 카운트(P.C), 세션 사이즈(S.S)등에 대한 정보들이 더 포함될 수 있다.
상기 네트워크 검사 시스템(100)에 포함된 패킷 서치모듈(140)은 서비스 이용자의 단말기(미도시)로부터 수신되는 패킷 서치 요청에 응답하여, 상기 패킷 서치 요청에 상응하는 세션을 가장 먼저 탐색할 수 있다. 상기 패킷 서치 요청에는 상기 세션정보에 포함된 정보들이 적어도 하나 포함될 수 있음은 물론이다. 예컨대, 송신자 주소, 수신자 주소, 및 시간 정보 등이 상기 패킷 서치요청에 포함될 수 있다.
그러면 상기 패킷 서치모듈(140)은 상기 세션 정보에 포함된 세션 형성 플로우들 각각의 플로우 정보를 탐색하여 패킷 서치 요청에 상응하는 플로우를 탐색할 수 있다. 그리고 상기 패킷 서치 요청에 상응하는 플로우가 탐색되면, 상기 패킷 서치모듈(140)은 용이하게 상기 패킷 서치 요청에 상응하는 패킷을 상기 저장장치(160)로부터 탐색할 수 있다. 물론, 구현 예에 따라 상기 네트워크 검사 시스템(100)이 선행패킷만을 저장하는 경우에는 패킷 서치 요청에 상응하는 패킷은 존재하지 않을 수도 있다. 또한 모든 패킷들을 저장하는 경우에는 패킷 서치 요청에 상응하는 패킷은 탐색됨이 보장될 수도 있다.
결국, 본 발명의 기술적 사상은 패킷으로부터 플로우를 생성하고, 플로우로부터 세션을 생성한 후, 패킷을 서치할 때에는 세션, 플로우, 및 패킷 순으로 다운드릴 고속 서치가 가능해지는 효과가 있다.
다시 도 1을 참조하면, 상기 보안 검사모듈(150)은 전술한 바와 같이 각각의 세션에 종속되는 패킷들을 대상으로 보안 검사를 수행할 수 있다. 보안 검사를 수행하는 방식은 다양할 수 있으며, 예컨대 종래의 IDS(Intrusion Detection System) 등이 이용될 수도 있다. 상기 보안 검사모듈(150)의 검사결과는 상기 저장장치(160)에 저장될 수 있음은 물론이다. 또한 보안 검사모듈(150)에 의해 전체 세션이 아니라 세션에 포함된 일부 패킷(예를 들어, 세션의 초기 N개의 선행패킷)에 대해서만 보안 검사가 수행될 수 있으므로, 세션이 종료되기 전에 상기 세션에 대한 보안 검사가 실시간으로 완료될 수 있으며 이에 따라 상기 네트워크 검사 시스템(100)은 상기 세션에 대한 소정의 네트워크 컨트롤(예컨대, 차단, 대역폭 조정 등)을 수행할 수 있다.
한편, 본 발명의 기술적 사상에 의하면, 전술한 바와 같이 상기 네트워크 검사 시스템(100)은 네트워크 리코딩 서비스에 이용될 수도 있다. 네트워크 리코딩을 위해서는 종래에는 수집되는 모든 패킷들을 저장해야 했지만, 본 발명의 기술적 사상에 의하면 세션을 형성함으로써 세션의 일부 패킷(예를 들면, 초기 M개의 선행 패킷 또는 초기 K 바이트의 페이로드를 포함하는 패킷)만을 저장함으로써 저장 패킷의 양을 확연히 줄이면서도 중요한 정보들은 저장할 수 있게 된다. 이러한 경우 전체 패킷을 수집/저장하는 것에 비해 스토리지의 절약효과가 존재한다.
또한 본 발명의 기술적 사상에 의하면, 상기 네트워크 검사 시스템(100)은 미리 정해진 종류의 세션에 해당하는 패킷들만 저장할 수도 있다. 예컨대, 상기 네트워크 검사 시스템(100)은 HTTP, TCP 세션 등 미리 정해진 세션에 대해서만 네트워크 레코딩을 수행할 수 있다. 또한 네트워크 서비스 포트(port) 별로 저장 방법을 달리하여 레코딩을 수행할 수 있다. 예를들어 443 포트를 사용하는 패킷에 대해서는 패킷을 전혀 저장하지 않고, 80 포트를 사용하는 패킷에 대해서는 세션 초기 K 바이트만 저장하고, 22 포트를 사용하는 패킷에 대해서는 모든 패킷을 저장하도록 할 수 있다. 또한 특정 IP에 의해 송신되거나 수신되는 패킷에 대해서는 저장하지 않도록 할 수도 있다.
이처럼 미리 정해진 세션이나 포트, IP에 대해서만 네트워크 레코딩을 수행하는 기능은 상기 플로우 생성모듈(120)에 의해 수행될 수도 있고, 상기 세션 생성모듈(130)에 의해 생성될 수도 있다. 예컨대, 상기 플로우 생성모듈(120)은 패킷 추출모듈(110)에 의해 수집되는 패킷들 중 미리 정해진 세션에 해당하는 패킷들만을 대상으로 플로우를 생성할 수 있다. 또는 상기 플로우 생성모듈(120)은 모든 패킷들을 대상으로 플로우를 생성한 후, 상기 세션 생성모듈(130)이 생성된 플로우 중 미리 정해진 세션에 해당하지 않는 플로우는 상기 저장장치(160)로부터 삭제할 수도 있다.
상기 미리 정해진 세션에 해당하는지 여부는 패킷들의 포트정보에 기초하여 파악할 수 있다. 즉, 세션의 종류에 따라 포트번호가 바인딩(binding)될 수 있고, 이러한 포트번호에 기초하여 미리 정해진 세션에 해당하는 패킷 또는 플로우인지가 판단될 수 있다.
구현 예에 따라서는, 상기 패킷 추출모듈(110)이 미리 정해진 세션에 해당하는 패킷만을 상기 플로우 생성모듈(120)로 전송할 수도 있다.
어떠한 경우든 상기 네트워크 검사 시스템(100)은 미리 정해진 세션에 대해서만 네트워크 레코딩을 수행할 수도 있다.
결국, 본 발명의 기술적 사상에 의하면 종래의 네트워크 레코딩에 비해 저장되는 패킷의 절대적인 양이 줄어들 수 있고, 또한 원하는 세션에 대해서만 네트워크 레코딩이 수행될 수도 있다.
본 발명의 기술적 사상에 따른 네트워크 검사 시스템(100)은 특정 세션에 포함되는 패킷들 전부를 저장하는 것이 아니라, 일부 패킷(예를 들어, K 바이트의 초기 페이로드를 포함하는 패킷 등)만을 저장할 수 있으므로 각 세션별로 저장되는 패킷의 양이 줄어들 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상에 따른 네트워크 검사 시스템(100)은 모든 세션들에 대해 패킷을 저장하는 것이 아니라, 미리 정해진 종류의 세션만을 저장할 수 있으므로 미리 정해진 종류에 해당하지 않는 세션들에 대해서는 아예 패킷 저장이 이루어지지 않을 수 있는 효과가 있다.
이처럼 본 발명의 기술적 사상에 의하면 저장하는 패킷의 절대적인 양을 줄이면서도 보안 검사에 유의미한 패킷들만 선택적으로 저장함으로 고속의 패킷 서치가 가능해지는 효과가 있다. 이와 동시에 전술한 바와 같이 세션 정보, 플로우 정보 순으로의 드릴다운 서치를 통해 고속의 패킷 서치가 가능해지는 효과가 있다.
앞서 설명한 바와 같이 본 발명의 일 실시예에 따른 네트워크 검사 시스템(100)은 각 세션의 일부 패킷(예를 들면, K 바이트의 초기 페이로드를 포함하는 패킷 등)을 저장함으로써, 저장하는 패킷의 양을 줄이면서도 고속의 패킷 서치를 가능하게 한다. 그런데, 만약 네트워크 공격자가 의미 없는, 즉, 헤더만을 포함하며 아무런 페이로드를 포함하지 않은 패킷(예를 들면, SYN, ACK, FIN 등)을 연속적으로 보낸 이후 네트워크에 위협이 될 수 있는 실제 공격 패킷을 보내는 경우에는 이를 검출할 수 없는 문제가 발생할 수 있게 된다. 따라서, 본 발명의 다른 일 실시예에 따른 네트워크 검사 시스템(100) 은 각 세션의 초기 N개의 선행 패킷을 저장하는 대신, 각 세션마다 일정 크기 K 바이트의 초기 선행 페이로드 혹은 K 바이트의 초기 선행 페이로드를 포함하고 있는 패킷을 세션 정보와 대응시켜 저장할 수도 있는데, 이에 대하여 도 4를 참조하여 설명하기로 한다. 여기서 K는 미리 지정된 자연수일 수 있다.
도 4는 세션을 구성하는 패킷 중 초기 5개의 패킷은 헤더만을 가지는 패킷이며, 6번째 이후의 패킷부터 페이로드를 포함하고 있는 예를 도시하고 있다.
이하에서는 도 4의 세션 S의 임의의 i번째 패킷을 Pi라고 표현하고, 패킷 Pi의 페이로드를 Li라고 표현하고, 페이로드 Li의 크기를 |Li|로 표현하기로 한다.
본 발명의 일 실시예에 따른 네트워크 검사 시스템(100)에 포함된 세션 생성모듈(130)은 페이로드를 포함하고 있는 최초의 패킷(혹은 패킷의 페이로드)부터 저장할 수 있다. 또한 상기 세션 생성모듈(130)은 저장되는 패킷의 페이로드의 합이 소정의 K바이트가 될 때까지 패킷(혹은 패킷의 페이로드)을 저장할 수 있다.
도 4의 예에서 상기 세션 생성모듈(130)은 페이로드를 포함하고 있는 최초의 패킷인 P6 의 페이로드인 L6부터 저장할 수 있다. 또한 도 4의 예에서 |L6|+|L7|+|L8|+|L9|+|L10|+|L11| = K라면, 상기 세션 생성모듈(130)은 P11의 페이로드인 L11까지 저장할 수 있다.
구현 예에 따라 상기 세션 생성모듈(130)은 선행 페이로드만을 저장할 수도 있으나, 해당 선행 페이로드를 포함하고 있는 패킷을 저장할 수도 있다. 즉 도 4의 예에서 상기 세션 생성모듈(130)은 페이로드를 포함하고 있는 최초의 패킷인 P6부터 저장되는 페이로드의 합이 K바이트가 되는 패킷인 P11까지 저장할 수도 있다.
한편, 특정 패킷에 포함된 페이로드 중간 부분까지의 합이 K 바이트인 경우, 구현 예에 따라서는, 합이 K가 되는 해당 패킷의 페이로드의 중간부분까지만을 저장할 수도 있고, 해당 패킷 패킷 전체를 모두 저장할 수도 있다. 즉, 도 5의 예에서, |L6|+|L7|+|L8|+|L9|+|L10|+|L11| > K > |L6|+|L7|+|L8|+|L9|+|L10| 라면, 상기 세션 생성모듈(130)은, 구현 예에 따라, i) 크기의 총 합이 K바이트가 되도록 L6부터 L11의 중간부분까지 저장하거나, ii) L6부터 L11까지 저장하거나, iii) P6부터 P11까지 저장할 수 있다.
또는 구현 예에 따라 상기 세션 생성모듈(130)은 해더만을 포함하는 패킷까지 저장할 수도 있다. 즉, 상기 세션 생성모듈(130)은 각 세션의 최초 패킷부터 저장하기 시작하여 페이로드의 합이 K가 될 때까지 저장할 수 있다. 도 4를 예로 들어 설명하면, 상기 세션 생성모듈(130)은 P1부터 P11까지 저장할 수 있다.
한편, 공격자가 정상적인 패킷을 일부 보낸 후에 네트워크에 위협이 될 수 있는 실제 공격 패킷을 보내는 경우에도 이를 검출할 수 있어야 하므로 본 발명의 다른 일 실시예에서는 세션의 초기 일부 패킷을 스킵하고 다음부터 일정 수의 패킷을 저장할 수도 있는데, 이하에서는 도 5를 참조하여 설명하기로 한다.
도 5는 세션의 초기 N개의 패킷을 스킵하고 N+1번째 패킷부터 M개의 패킷을 저장하는 예를 도시하고 있다. 도 5의 예에서, N 및 M은 소정의 자연수일 수 있다.
세션 S의 임의의 i번째 패킷을 Pi라고 표현하면, 도 5의 실시예에서, 상기 세션 생성모듈(130)은 P1 내지 PN은 스킵하고, P1+1 내지 PN+M까지 저장할 수 있다.
한편, 저장되는 패킷의 개수인 M은 미리 지정된 값일 수도 있으나, 실시예에 따라서는 저장되는 페이로드의 크기 K에 의해 산출되는 값일 수도 있다. 패킷 Pi의 페이로드를 Li라고 표현하고, 페이로드 Li의 크기를 |Li|로 표현하기로 한다면, M은 |Ln+1| + |Ln+2| … + |Ln+m| >= K 바이트인 가장 작은 자연수일 수 있다.
한편, 스킵되는 초기 패킷의 수인 N 역시 미리 지정된 값일 수도 있으나, 실시예에 따라서는 스킵되는 페이로드의 크기 G(G는 소정의 자연수)에 의해 산출되는 값일 수 있다. 즉, N은 M은 |L1| + |L2| … + |Ln| >= G 바이트인 가장 작은 자연수일 수 있다.한편, 상기 네트워크 검사 시스템(100)은 저장되는 선행 페이로드 혹은 선행 페이로드를 포함하고 있는 패킷에 대하여 앞서 설명한 보안 검사 등을 동일한 방식에 의해 수행할 있음은 물론이다.
한편, 구현 예에 따라서, 상기 네트워크 검사 시스템(100)는 적어도 하나의 프로세서 및 상기 프로세서에 의해 실행되는 프로그램을 저장하는 메모리를 포함할 수 있다. 상기 프로세서는 싱글 코어 CPU혹은 멀티 코어 CPU를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치, 또는 기타 비휘발성 고체상태 메모리 장치와 같은 비휘발성 메모리를 포함할 수도 있다. 프로세서 및 기타 구성 요소에 의한 메모리로의 액세스는 메모리 컨트롤러에 의해 제어될 수 있다.
한편, 본 발명의 실시예에 따른 네트워크 검사 방법은 컴퓨터가 읽을 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 읽을 수 있는 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (26)

  1. 삭제
  2. 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
    상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
    상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
    상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
    특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하되,
    상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는,
    상기 세션을 구성하는 패킷 중 페이로드를 포함하는 최초의 페이로드 패킷을 특정하는 단계; 및
    특정한 상기 세션 정보와, 상기 세션을 구성하는 패킷 중 상기 최초의 페이로드 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되,
    여기서, M은 상기 최초의 페이로드 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 방법.
  3. 삭제
  4. 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
    상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
    상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
    상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
    특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하되,
    상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는,
    특정한 상기 세션 정보와, 상기 세션의 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되,
    여기서, M은 상기 세션의 N 번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 방법.
  5. 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
    상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
    상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
    상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
    특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하되,
    상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는,
    특정한 상기 세션 정보와, 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되,
    여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수이며, M은 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 방법.
  6. 삭제
  7. 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
    상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
    상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
    상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
    특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계를 포함하되,
    상기 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계는,
    상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하는 네트워크 검사 방법.
  8. 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
    상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
    상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
    상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
    특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계를 포함하되,
    상기 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계는,
    상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되,
    여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 방법.
  9. 제2항, 제4항 또는 제5항에 있어서, 상기 네트워크 검사 방법은,
    상기 네트워크 검사 시스템이, 상기 K바이트의 페이로드에 대한 보안 검사를 수행하는 단계를 더 포함하는 네트워크 검사 방법.
  10. 제7항 또는 제8항에 있어서, 상기 네트워크 검사 방법은,
    상기 네트워크 검사 시스템이, 상기 M 개의 패킷에 대한 보안 검사를 수행하는 단계를 더 포함하는 네트워크 검사 방법.
  11. 제2항, 제4항, 제5항, 제7항 또는 제8항에 있어서, 상기 세션 정보는,
    상기 세션을 형성하는 상기 적어도 하나의 세션 형성 플로우의 식별정보를 포함하는 것을 특징으로 하는 네트워크 검사 방법.
  12. 제11항에 있어서, 상기 네트워크 검사 방법은,
    상기 적어도 하나의 세션 형성 플로우 각각에 대한 플로우 정보를 저장하는 단계를 더 포함하는 네트워크 검사 방법.
  13. 제12항에 있어서, 상기 네트워크 검사 방법은,
    상기 네트워크 검사 시스템에 의해 저장된 패킷의 패킷 서치 요청을 수신하는 단계;
    상기 패킷 서치 요청에 응답하여 상기 패킷 서치에 상응하는 세션 정보를 특정하고, 특정된 세션 정보에 기초하여 상기 패킷 서치에 상응하는 세션 형성 플로우를 특정하고, 특정된 세션 형성 플로우에 기초하여 상기 패킷 서치 요청에 상응하는 패킷을 추출하는 단계를 더 포함하는 네트워크 검사 방법.
  14. 데이터 처리장치에 설치되며 제2항, 제4항, 제5항, 제7항 또는 제8항에 기재된 방법을 수행하기 위하여 컴퓨터 판독가능 기록매체에 기록된 컴퓨터 프로그램.
  15. 삭제
  16. 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
    생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
    추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
    특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K는 자연수)의 페이로드를 대응시켜 저장하는 세션 생성모듈을 포함하되,
    상기 세션 생성모듈은,
    상기 세션을 구성하는 패킷 중 페이로드를 포함하는 최초의 페이로드 패킷을 특정하고,
    특정한 상기 세션 정보와, 상기 세션을 구성하는 패킷 중 상기 최초의 페이로드 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되,
    여기서, M은 상기 최초의 페이로드 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 시스템.
  17. 삭제
  18. 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
    생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
    추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
    특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K는 자연수)의 페이로드를 대응시켜 저장하는 세션 생성모듈을 포함하되,
    상기 세션 생성모듈은,
    특정한 상기 세션 정보와, 상기 세션의 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하되,
    여기서, M은 상기 세션의 N 번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 시스템.
  19. 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
    생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
    추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
    특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K는 자연수)의 페이로드를 대응시켜 저장하는 세션 생성모듈을 포함하되,
    상기 세션 생성모듈은,
    특정한 상기 세션 정보와, 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되,
    여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수이며, M은 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 시스템.
  20. 삭제
  21. 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
    생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
    추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
    특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 세션 생성모듈을 포함하되,
    상기 세션 생성모듈은,
    상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 네트워크 검사 시스템.
  22. 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
    생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
    추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
    특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 세션 생성모듈을 포함하되,
    상기 세션 생성모듈은,
    상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되,
    여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 시스템.
  23. 제16항, 제18항 또는 제19항에 있어서, 상기 네트워크 검사 시스템은,
    상기 K바이트의 페이로드에 대해서 보안 검사를 수행하기 위한 보안 검사모듈을 더 포함하는 네트워크 검사 시스템.
  24. 제21항 또는 제22항에 있어서, 상기 네트워크 검사 시스템은,
    상기 M 개의 패킷에 대한 보안 검사를 수행하기 위한 보안 검사모듈을 더 포함하는 네트워크 검사 시스템.
  25. 제16항, 제18항, 제19항, 제21항 또는 제22항에 있어서, 상기 세션 정보는,
    상기 세션을 형성하는 상기 적어도 하나의 세션 형성 플로우의 식별정보를 포함하는 것을 특징으로 하며,
    상기 플로우 생성모듈은,
    상기 세션 형성 플로우 각각에 대한 플로우 정보를 저장하는 네트워크 검사 시스템.
  26. 제25항에 있어서, 상기 네트워크 검사 시스템은,
    상기 네트워크 검사 시스템에 의해 저장된 패킷의 패킷 서치 요청을 수신하고, 상기 패킷 서치 요청에 응답하여 상기 패킷 서치에 상응하는 세션 정보를 특정하고, 특정된 세션 정보에 기초하여 상기 패킷 서치에 상응하는 세션 형성 플로우를 특정하고, 특정된 세션 형성 플로우에 기초하여 상기 패킷 서치 요청에 상응하는 패킷을 추출하는 패킷 서치 모듈을 더 포함하는 네트워크 검사 시스템.

KR1020180055291A 2018-05-15 2018-05-15 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템 KR102023777B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180055291A KR102023777B1 (ko) 2018-05-15 2018-05-15 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템
PCT/KR2018/013374 WO2019221346A1 (ko) 2018-05-15 2018-11-06 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템
US17/055,423 US11528199B2 (en) 2018-05-15 2018-11-06 Method for network inspection saving packet and system performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180055291A KR102023777B1 (ko) 2018-05-15 2018-05-15 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템

Publications (1)

Publication Number Publication Date
KR102023777B1 true KR102023777B1 (ko) 2019-09-20

Family

ID=68067637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180055291A KR102023777B1 (ko) 2018-05-15 2018-05-15 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템

Country Status (3)

Country Link
US (1) US11528199B2 (ko)
KR (1) KR102023777B1 (ko)
WO (1) WO2019221346A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0126888B1 (en) 1993-12-20 1998-04-08 Shinko Wire Company Kk Stainless steel wire product
KR20110019891A (ko) 2009-08-21 2011-03-02 삼성전자주식회사 원격 데이터 백업 방법 및 이를 이용한 원격 데이터 백업 시스템
KR20140064149A (ko) * 2012-11-19 2014-05-28 서울대학교산학협력단 트래픽 분석 장치 및 방법
KR20150020375A (ko) 2013-08-13 2015-02-26 장준수 자동차 변속기용 인풋 샤프트 및 그 제조방법
KR101715107B1 (ko) * 2015-04-07 2017-03-27 엑사비스 주식회사 리트로액티브 네트워크 검사 시스템 및 그 제공방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100868569B1 (ko) 2007-04-05 2008-11-13 (주) 시스메이트 네트워크 패킷 저장 장치 및 그 방법
US8964548B1 (en) * 2008-04-17 2015-02-24 Narus, Inc. System and method for determining network application signatures using flow payloads
US9479405B1 (en) * 2008-04-17 2016-10-25 Narus, Inc. Transaction based network application signatures for text based protocols
US8494985B1 (en) * 2011-05-17 2013-07-23 Narus, Inc. System and method for using network application signatures based on modified term transition state machine
US8577817B1 (en) * 2011-03-02 2013-11-05 Narus, Inc. System and method for using network application signatures based on term transition state machine
KR20100068508A (ko) 2008-12-15 2010-06-24 주식회사 마하넷 네트워크 컨트롤 시스템 및 네트워크 컨트롤 방법
KR101528928B1 (ko) 2008-12-22 2015-06-16 주식회사 케이티 플로우 및 세션 기반의 네트워크 트래픽 관리 장치 및 그 방법
KR101211147B1 (ko) 2011-03-07 2012-12-11 주식회사 크레블 네트워크 검사 시스템 및 그 제공방법
KR101280910B1 (ko) 2011-12-15 2013-07-02 한국전자통신연구원 고속 패킷 처리를 위한 네트워크 프로세서 기반 2단계 침입탐지장치 및 방법
US8578024B1 (en) * 2012-01-05 2013-11-05 Narus, Inc. Network application signatures for binary protocols
US8843627B1 (en) * 2012-10-19 2014-09-23 Narus, Inc. System and method for extracting signatures from seeded flow groups to classify network traffic
US9426071B1 (en) * 2013-08-22 2016-08-23 Fireeye, Inc. Storing network bidirectional flow data and metadata with efficient processing technique
KR101684456B1 (ko) 2015-02-10 2016-12-20 엑사비스 주식회사 패킷 저장을 수행하는 네트워크 검사 시스템 및 그 제공방법
US20170237640A1 (en) * 2016-02-11 2017-08-17 Barracuda Networks, Inc. System and method for correlating captured network packet with metadata
US10250511B2 (en) * 2016-06-10 2019-04-02 International Business Machines Corporation Persistent flow identifiers enabling disparate applications
US10498612B2 (en) * 2016-09-27 2019-12-03 Mellanox Technologies Tlv Ltd. Multi-stage selective mirroring
US10771394B2 (en) * 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US11398987B2 (en) * 2019-07-23 2022-07-26 Vmware, Inc. Host-based flow aggregation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0126888B1 (en) 1993-12-20 1998-04-08 Shinko Wire Company Kk Stainless steel wire product
KR20110019891A (ko) 2009-08-21 2011-03-02 삼성전자주식회사 원격 데이터 백업 방법 및 이를 이용한 원격 데이터 백업 시스템
KR20140064149A (ko) * 2012-11-19 2014-05-28 서울대학교산학협력단 트래픽 분석 장치 및 방법
KR20150020375A (ko) 2013-08-13 2015-02-26 장준수 자동차 변속기용 인풋 샤프트 및 그 제조방법
KR101715107B1 (ko) * 2015-04-07 2017-03-27 엑사비스 주식회사 리트로액티브 네트워크 검사 시스템 및 그 제공방법

Also Published As

Publication number Publication date
US11528199B2 (en) 2022-12-13
US20210119887A1 (en) 2021-04-22
WO2019221346A1 (ko) 2019-11-21

Similar Documents

Publication Publication Date Title
JP3717836B2 (ja) ダイナミック・ロード・バランサ
US8817792B2 (en) Data forwarding method, data processing method, system and relevant devices
KR102050089B1 (ko) 적응적 룰셋 세팅을 수행하는 네트워크 보안 시스템 및 그 방법
US7636305B1 (en) Method and apparatus for monitoring network traffic
US7307999B1 (en) Systems and methods that identify normal traffic during network attacks
EP2434689A1 (en) Method and apparatus for detecting message
US20060174324A1 (en) Method and system for mitigating denial of service in a communication network
CN110166480B (zh) 一种数据包的分析方法及装置
US10498618B2 (en) Attributing network address translation device processed traffic to individual hosts
US20130294449A1 (en) Efficient application recognition in network traffic
US10050892B2 (en) Method and apparatus for packet classification
US10264004B2 (en) System and method for connection fingerprint generation and stepping-stone traceback based on netflow
US9183382B2 (en) Method for blocking a denial-of-service attack
Khattak et al. Dofur: Ddos forensics using mapreduce
KR101715107B1 (ko) 리트로액티브 네트워크 검사 시스템 및 그 제공방법
KR102149531B1 (ko) 넷플로우 기반 연결 핑거프린트 생성 및 경유지 역추적 방법
KR101684456B1 (ko) 패킷 저장을 수행하는 네트워크 검사 시스템 및 그 제공방법
KR102174462B1 (ko) 네트워크 보안 방법 및 이를 수행하는 시스템
CN102035750A (zh) 点对点流量识别方法及装置
JP6783501B2 (ja) 情報伝送システム、情報通信装置、情報伝送装置、及びプログラム
KR101211147B1 (ko) 네트워크 검사 시스템 및 그 제공방법
KR102023777B1 (ko) 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템
KR102120795B1 (ko) 적응적으로 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템
US20210067525A1 (en) System and method for network security performing adaptive rule-set setting
US11496438B1 (en) Methods for improved network security using asymmetric traffic delivery and devices thereof

Legal Events

Date Code Title Description
GRNT Written decision to grant