KR102023777B1 - Method for network inspection saving packet and system performing the same - Google Patents

Method for network inspection saving packet and system performing the same 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
Korean (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 KR1020180055291A priority Critical patent/KR102023777B1/en
Priority to PCT/KR2018/013374 priority patent/WO2019221346A1/en
Priority to US17/055,423 priority patent/US11528199B2/en
Application granted granted Critical
Publication of KR102023777B1 publication Critical patent/KR102023777B1/en

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

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)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Disclosed are a system capable of gradually generating a flow and a session by collecting packets on a network, conducting a traffic inspection only with a small number of packets based on generated information, and searching for a packet at a high speed while reducing a packet storage capacity, and a method thereof. According to an embodiment of the present invention, the network inspection method includes: a step in which a network inspection system receives a plurality of packets from a network; a step in which the network inspection system generates a plurality of flows formed by the packets based on the packets; a step in which the network inspection system extracts at least one session formation flow forming the same session from the flows based on information about the flows; a step in which the network inspection system specifies session information about the session based on information about the extracted session formation flow; and a step in which the network inspection system stores the specified session information and a payload of K bytes (here, K is a natural number) included in the session by matching the information with the payload.

Description

패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 시스템{Method for network inspection saving packet and system performing the same}Method for network inspection saving packet and system performing the same

본 발명은 패킷 저장을 수행하는 네트워크 검사 방법 및 이를 수행하는 네트워크 검사 시스템에 관한 것이다. 보다 상세하게는 네트워크 상의 패킷들을 수집하여 플로우 및 세션을 단계적으로 생성하고, 생성된 정보에 기초하여 소량의 패킷만으로도 트래픽 검사를 수행할 수 있고, 패킷의 저장용량을 줄일 수 있으면서도 고속으로 패킷을 서치할 수 있는 시스템 및 그 방법에 관한 것이다.The present invention relates to a network inspection method for performing packet storage and a network inspection system for performing the same. More specifically, flows and sessions can be generated step by step by collecting packets on the network, and traffic inspection can be performed with only a small amount of packets based on the generated information, and the packets can be searched at high speed while reducing the storage capacity of the packets. The present invention relates to a system and a method thereof.

기존의 네트워크 제어 및 관리 장비들은 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)를 찾아서 검출하고, 검출된 패킷을 제어하는 방법을 채택하고 있다. 이러한 시그너쳐를 검출함으로써 어떤 클라이언트 즉, 애플리케이션이 현재 네트워크에서 패킷을 생성 및/또는 전송하고 있는지를 알게 되고, 소정의 정책에 따라 적절한 네트워크 제어를 수행하게 된다.Existing network control and management devices are based on packet information of a transport layer protocol (TCP) / UDP (user datagram protocol) or an IP (Internet protocol), such as routing, quality of service (QoS), Efforts have been made to achieve Distributed Denial of Service (DDoS) prevention. However, the packet-based approach ignores the information related to the communication relationship of the upper applications and relies only on the information contained in each separate packet, which is a temporary information transmission unit, thereby reducing the processing speed and largely the applicability. Due to their limitations, they are offered in the form of a single system for independent goals such as routers for packet routing, dedicated systems to defend against DDoS attacks, or deep packet inspection (DPI) systems for traffic control. Among these, the DPI system adopts a method of finding and detecting well-known port numbers and payload signatures used by a specific application or client (eg, a P2P client), and controlling the detected packets. Doing. By detecting these signatures, it is known which client, i.e., the application, is currently generating and / or transmitting packets in the network, and performs appropriate network control in accordance with certain policies.

하지만, 종래의 DPI 시스템은 전송되는 모든 패킷의 페이로드를 검사해야 하므로 프로세싱의 오버헤드가 너무 크다는 단점이 있다. 즉, 모든 패킷의 페이로드를 검출하기 위해서는 고속 및 고가의 장비가 필요한 문제점이 있다. 더구나, 페이로드가 암호화된 패킷일 경우에는 암호화를 풀 수 있는 방법이 없으므로 시그너쳐를 검출할 수도 없을 수 있다. 또한, 암호화가 되어 있지 않더라도 반드시 시그너쳐가 찾아진다는 보장도 없고, 실제로 모든 시그너처를 찾기도 어려운 문제점이 있다. However, the conventional DPI system has a disadvantage in that the processing overhead is too large because the payload of every packet to be transmitted must be checked. In other words, high speed and expensive equipment is required to detect payloads of all packets. In addition, when the payload is an encrypted packet, the signature may not be detected because there is no way to solve the encryption. In addition, even if it is not encrypted, there is no guarantee that the signature is necessarily found, and there is a problem that it is difficult to find all the signatures.

이러한 문제점을 해결하기 위해 본 발명자는 한국특허출원(출원번호 10-2011-0019891, "네트워크 검사 시스템 및 그 제공방법")을 출원하기도 하였다. In order to solve this problem, the present inventor has filed a Korean patent application (Application No. 10-2011-0019891, "Network inspection system and its providing method").

하지만 이러한 선출원은 패킷에 기반하여 플로우만을 생성하므로, 세션 정보를 알 수 없는 문제점이 있었고, 또한 세션에 비해 플로우는 매우 그 숫자가 많을 수밖에 없어서 네트워크 레코딩 시스템 등과 같이 다수의 패킷들이 저장된 경우에 패킷 서치를 수행할 때 많은 시간이 걸린다는 문제점이 있다.However, since such a first-generation application generates only flows based on packets, there is a problem in that session information is not known. In addition, compared to sessions, flows have to be very large, so that a large number of packets are stored, such as a network recording system. There is a problem that it takes a lot of time to perform.

이러한 문제점을 해결하기 위하여, 본 발명자는 세션을 형성하는 패킷 중 초기 일부의 선행 패킷을 저장하고 이에 대한 보안 검사를 수행하는 방안(이하, '종래 방안'이라고 함)을 한국 특허출원 제10-2015-0020375호를 통해 제안한 바 있다. 그런데, 종래 방안에서는 공격자가 페이로드를 포함하고 있지 않은 패킷(예를 들어, TCP SYN 패킷 등)을 여러 번 전송한 이후 공격을 시도하는 경우 이를 탐지하지 못하는 문제점이 있었다.In order to solve this problem, the present inventors have proposed a method of storing the preceding packet of the initial part of the packets forming the session and performing a security check for it (hereinafter, referred to as a 'prior method') Korean Patent Application No. 10-2015 Proposed by -0020375. However, in the conventional scheme, when an attacker attempts to attack after transmitting a packet (for example, a TCP SYN packet) that does not include a payload several times, there is a problem of not detecting this.

한국특허출원(출원번호 10-2008-0126888, "네트워크 컨트롤 시스템 및 네트워크 컨트롤 방법")Korean patent application (application number 10-2008-0126888, "Network control system and network control method") 한국특허출원(출원번호 10-2011-0019891, "네트워크 검사 시스템 및 그 제공방법")Korean patent application (Application No. 10-2011-0019891, "Network inspection system and its provision method") 한국특허출원(출원번호 10-2015-0020375, "패킷 저장을 수행하는 네트워크 검사 시스템 및 그 제공방법")Korean Patent Application (Application No. 10-2015-0020375, "Network Inspection System for Packet Storage and Its Provision Method")

본 발명은 이러한 문제점을 해결하고자 안출된 발명으로써, 본 발명이 이루고자 하는 기술적 과제는 실시간으로 패킷을 읽고 검사하여 세션의 초기 일부 패킷만을 저장하도록 하여 효과적으로 패킷에 대한 보안 검사가 수행될 수 있는 방법 및 그 시스템을 제공하는 것이다.The present invention has been made to solve the above problems, and the technical problem to be achieved by the present invention is to read and examine the packet in real time to store only the first partial packet of the session and to effectively perform a security check on the packet and To provide that system.

또한, 네트워크 트래픽을 기록함에 있어 패킷의 저장개수를 현저히 줄일 수 있고, 고속의 패킷 서치를 지원할 수 있는 방법 및 그 시스템을 제공하는 것이다. In addition, the present invention provides a method and system capable of significantly reducing the number of packets stored in recording network traffic and supporting high-speed packet search.

특히, 공격자가 세션 초기에 아무런 정보(페이로드)도 포함하고 있지 않은 패킷을 여러 번 보낸 후 공격을 하는 형태의 공격에도 대처할 수 있는 방법 및 시스템을 제공하는 것이다.In particular, the present invention provides a method and system that can cope with an attack in which an attacker sends a packet several times at the beginning of a session that does not contain any information (payload).

본 발명의 일 측면에 따르면, 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계; 상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계; 상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계; 상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하는 네트워크 검사 방법이 제공된다.According to an aspect of the present invention, a network inspection system, comprising: receiving a plurality of packets from a network; Generating, by the network inspection system, a plurality of flows formed by the plurality of packets based on the received plurality of packets; Extracting, by the network inspection system, at least one session forming flow forming a same session among the plurality of flows based on the information on the generated plurality of flows; Specifying, by the network inspection system, session information for the session based on the extracted information about the at least one session establishment flow; And associating and storing specific session information with a payload of K bytes (where K is a natural number) included in the session.

일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 선행 페이로드를 대응시켜 저장하는 단계는, 상기 세션을 구성하는 패킷 중 페이로드를 포함하는 최초의 페이로드 패킷을 특정하는 단계; 및 특정한 상기 세션 정보와, 상기 세션을 구성하는 패킷 중 상기 최초의 페이로드 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, M은 상기 최초의 페이로드 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.In one embodiment, the step of storing the specific session information in association with a preceding payload of K bytes (where K is a natural number) included in the session may include: firstly including a payload of packets constituting the session. Specifying a payload packet of; And correspondingly storing the specific session information and M subsequent packets from the first payload packet of the packets constituting the session, wherein M is stored in the M packets from the first payload packet. It may be the smallest natural number whose payload size is greater than or equal to K bytes, where K is a natural number.

일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는, 특정한 상기 세션 정보와, 상기 세션의 초기 M개의 선행 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, M은 상기 세션의 최초 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.In an embodiment, the storing of the specific session information and the payload of K bytes (where K is a natural number) included in the session may include: storing the specific session information and initial M preceding packets of the session. And storing Ms as corresponding to each other, wherein M may be the smallest natural number whose payload size included in M packets from the first packet of the session is equal to or larger than K bytes (where K is a natural number).

일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는, 특정한 상기 세션 정보와, 상기 세션의 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, M은 상기 세션의 N 번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.In one embodiment, the step of storing the specific session information and the payload of K bytes (where K is a natural number) included in the session may correspond to the specific session information and the N th packet of the session (where N corresponds to M subsequent packets from the natural number, where M is the size of the payload contained in the M subsequent packets from the N th packet of the session, where K is the byte. Natural water).

일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는, 특정한 상기 세션 정보와, 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수이며, M은 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.In one embodiment, the step of storing the specific session information and a payload of K bytes (where K is a natural number) included in the session may correspond to the specific session information and M from the Nth packet of the session. And storing the subsequent packets correspondingly, where N is the smallest natural number whose payload size included in the N subsequent packets from the first packet of the session is at least G bytes, where G is a natural number, M may be the smallest natural number whose payload size included in M subsequent packets from the Nth packet of the session is equal to or greater than K bytes (where K is a natural number).

본 발명의 다른 일 측면에 따르면, 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계; 상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계; 상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계; 상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계를 포함하는 네트워크 검사 방법이 제공된다.According to another aspect of the invention, the network inspection system, receiving a plurality of packets from the network; Generating, by the network inspection system, a plurality of flows formed by the plurality of packets based on the received plurality of packets; Extracting, by the network inspection system, at least one session forming flow forming a same session among the plurality of flows based on the information on the generated plurality of flows; Specifying, by the network inspection system, session information for the session based on the extracted information about the at least one session establishment flow; And associating and storing specific session information with M packets (where M is a natural number) included in the session.

일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계는, 상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함할 수 있다.In one embodiment, the storing of the specific session information and the M packets included in the session (where M is a natural number) may include: storing the specific session information and an Nth packet included in the session (where , N is a natural number).

일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계는, 상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수일 수 있다.In one embodiment, the step of storing the specific session information and M packets included in the session (where M is a natural number) in correspondence may include the specific session information and M from the Nth packet included in the session. And storing the corresponding subsequent packets, where N is the smallest natural number whose payload size contained in the N subsequent packets from the first packet of the session is greater than or equal to G bytes, where G is a natural number. have.

일 실시예에서, 상기 네트워크 검사 방법은, 상기 네트워크 검사 시스템이, 상기 K바이트의 페이로드에 대한 보안 검사를 수행하는 단계를 더 포함할 수 있다.In one embodiment, the network inspection method may further include performing, by the network inspection system, a security inspection on the payload of K bytes.

일 실시예에서, 상기 네트워크 검사 방법은, 상기 네트워크 검사 시스템이, 상기 N 개의 패킷에 대한 보안 검사를 수행하는 단계를 더 포함할 수 있다.In one embodiment, the network inspection method may further include performing, by the network inspection system, a security inspection on the N packets.

일 실시예에서, 상기 세션 정보는, 상기 세션을 형성하는 상기 적어도 하나의 세션 형성 플로우의 식별정보를 포함하는 것을 특징으로 할 수 있다.In an embodiment, the session information may include identification information of the at least one session establishment flow forming the session.

일 실시예에서, 상기 네트워크 검사 방법은, 상기 적어도 하나의 세션 형성 플로우 각각에 대한 플로우 정보를 저장하는 단계를 더 포함할 수 있다.In one embodiment, the network inspection method may further comprise storing flow information for each of the at least one session establishment flow.

일 실시예에서, 상기 네트워크 검사 방법은, 상기 저장장치에 저장되는 패킷 서치 요청을 수신하는 단계; 상기 패킷 서치 요청에 응답하여 상기 패킷 서치에 상응하는 세션 정보를 특정하고, 특정된 세션 정보에 기초하여 상기 패킷 서치에 상응하는 세션 형성 플로우를 특정하고, 특정된 세션 형성 플로우에 기초하여 상기 패킷 서치 요청에 상응하는 패킷을 추출하는 단계를 더 포함할 수 있다.In one embodiment, the network inspection method comprises: receiving a packet search request stored in the storage device; Specify session information corresponding to the packet search in response to the packet search request, specify a session formation flow corresponding to the packet search based on the specified session information, and determine the packet search based on the specified session formation flow The method may further include extracting a packet corresponding to the request.

본 발명의 다른 일 측면에 따르면, 데이터 처리장치에 설치되며 상술한 방법을 수행하기 위한 기록된 컴퓨터 프로그램이 제공된다.According to another aspect of the present invention, there is provided a recorded computer program installed in a data processing apparatus for performing the above-described method.

본 발명의 다른 일 측면에 따르면, 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈; 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고, 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K는 자연수)의 페이로드를 대응시켜 저장하는 세션 생성모듈을 포함하는 네트워크 검사 시스템이 제공된다.According to another aspect of the invention, a flow generation module for generating a plurality of flows formed by the plurality of packets based on a plurality of packets received from the network; Extracting at least one session forming flow that forms the same session among the plurality of flows based on the generated information about the plurality of flows, and extracting at least one session forming flow based on the extracted information about the at least one session forming flow There is provided a network inspection system including a session generation module for specifying session information and associating and storing particular session information with a payload of K bytes (where K is a natural number) included in the session.

일 실시예에서, 상기 세션 생성모듈은, 상기 세션을 구성하는 패킷 중 페이로드를 포함하는 최초의 페이로드 패킷을 특정하고, 특정한 상기 세션 정보와, 상기 세션을 구성하는 패킷 중 상기 최초의 페이로드 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되, 여기서, M은 상기 최초의 페이로드 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.In one embodiment, the session creation module specifies a first payload packet including a payload among the packets constituting the session, specifies the specific session information and the first payload among the packets constituting the session. Store M subsequent packets from the packets correspondingly, where M may be the smallest natural number whose payload size contained in the M packets from the first payload packet is greater than or equal to K bytes (where K is a natural number). .

일 실시예에서, 상기 세션 생성모듈은, 특정한 상기 세션 정보와, 상기 세션의 초기 M개의 선행 패킷을 대응시켜 저장하되, 여기서, M은 상기 세션의 최초 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다..In one embodiment, the session generation module stores the specific session information and the initial M preceding packets of the session in correspondence, wherein M is a value of a payload included in the M packets from the first packet of the session. It may be the smallest natural number that is at least K bytes in size, where K is a natural number.

일 실시예에서, 상기 세션 생성모듈은, 특정한 상기 세션 정보와, 상기 세션의 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하되, 여기서, M은 상기 세션의 N 번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.In one embodiment, the session generation module associates the particular session information with M subsequent packets from the Nth packet of the session, where N is a natural number, where M is the Nth of the session. The payload included in the M subsequent packets from the packet may be the smallest natural number of K bytes or more, where K is a natural number.

일 실시예에서, 상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는, 특정한 상기 세션 정보와, 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되, 여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수이며, M은 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수일 수 있다.In one embodiment, the step of storing the specific session information and a payload of K bytes (where K is a natural number) included in the session may correspond to the specific session information and M from the Nth packet of the session. And storing the subsequent packets correspondingly, where N is the smallest natural number whose payload size included in the N subsequent packets from the first packet of the session is at least G bytes, where G is a natural number, M may be the smallest natural number whose payload size included in M subsequent packets from the Nth packet of the session is equal to or greater than K bytes (where K is a natural number).

본 발명의 다른 일 측면에 따르면, 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈; 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고, 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 세션 생성모듈을 포함하는 네트워크 검사 시스템이 제공된다.According to another aspect of the invention, a flow generation module for generating a plurality of flows formed by the plurality of packets based on a plurality of packets received from the network; Extracting at least one session forming flow that forms the same session among the plurality of flows based on the generated information about the plurality of flows, and extracting at least one session forming flow based on the extracted information about the at least one session forming flow A network inspection system is provided that includes a session generation module that specifies session information, and associates specific session information with M packets included in the session, where M is a natural number.

일 실시예에서, 상기 세션 생성모듈은, 상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장할 수 있다.In one embodiment, the session generation module may store the specific session information in association with M subsequent packets from an N th packet (where N is a natural number) included in the session.

일 실시예에서, 상기 세션 생성모듈은, 상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되, 여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수일 수 있다.In one embodiment, the session generation module stores the specific session information and M subsequent packets from the Nth packet included in the session, where N is N subsequent packets from the first packet of the session. May be the smallest natural number whose payload is greater than or equal to G bytes, where G is a natural number.

일 실시예에서, 상기 네트워크 검사 시스템은, 상기 K바이트의 페이로드에 대해서 보안 검사를 수행하기 위한 보안 검사모듈을 더 포함할 수 있다.In one embodiment, the network inspection system may further include a security inspection module for performing a security inspection on the payload of K bytes.

일 실시예에서, 상기 네트워크 검사 시스템은, 상기 N 개의 패킷에 대한 보안 검사를 수행하기 위한 보안 검사모듈을 더 포함할 수 있다.In one embodiment, the network inspection system may further include a security inspection module for performing a security inspection on the N packets.

일 실시예에서, 상기 세션 정보는, 상기 세션을 형성하는 상기 적어도 하나의 세션 형성 플로우의 식별정보를 포함하는 것을 특징으로 하며, 상기 플로우 생성모듈은, 상기 세션 형성 플로우 각각에 대한 플로우 정보를 저장할 수 있다.The session information may include identification information of the at least one session formation flow for forming the session, and the flow generation module may store flow information for each of the session formation flows. Can be.

일 실시예에서, 상기 네트워크 검사 시스템은, 상기 네트워크 검사 시스템에 의해 저장된 패킷의 패킷 서치 요청을 수신하고, 상기 패킷 서치 요청에 응답하여 상기 패킷 서치에 상응하는 세션 정보를 특정하고, 특정된 세션 정보에 기초하여 상기 패킷 서치에 상응하는 세션 형성 플로우를 특정하고, 특정된 세션 형성 플로우에 기초하여 상기 패킷 서치 요청에 상응하는 패킷을 추출하는 패킷 서치 모듈을 더 포함할 수 있다.In one embodiment, the network inspection system receives a packet search request of a packet stored by the network inspection system, specifies session information corresponding to the packet search in response to the packet search request, and specifies the specified session information. The apparatus may further include a packet search module configured to specify a session establishment flow corresponding to the packet search based on the first and to extract a packet corresponding to the packet search request based on the specified session establishment flow.

본 발명의 기술적 사상에 따르면, 고속으로 패킷을 검사하면서 플로우 및 플로우에 기반한 세션에 대한 정보를 생성할 수 있어서, 세션을 구성해는 패킷 중 초기 일부만을 검사할 수 있도록 하여 고속 네트워크 환경에서 실시간으로 보안 검사가 수행될 수 있는 효과가 있다.According to the technical idea of the present invention, it is possible to generate information about a flow and a session based on a flow while inspecting a packet at a high speed, so that only an initial part of the packets constituting the session can be inspected in real time in a high speed network environment. There is an effect that a security check can be performed.

또한, 네트워크를 기록하기 위해 필요한 패킷의 저장개수를 현저히 줄일 수 있고, 세션 정보 및 플로우 정보에 기초하여 고속의 패킷 서치를 지원할 수 있는 효과가 있다.In addition, the number of packets stored for recording a network can be significantly reduced, and high speed packet search can be supported based on session information and flow information.

또한 공격자가 세션 초기에 아무런 정보(페이로드)도 포함하고 있지 않은 패킷을 여러 번 보낸 후 공격을 하는 형태의 공격에도 대처할 수 있는 효과가 있다.It also has the effect that an attacker can cope with an attack in which the attacker sends a packet several times without any information (payload) at the beginning of the session.

또한 공격자가 세션 초기에 정상적인 패킷을 일부 보낸 후 공격을 하는 형태의 공격에도 대처할 수 있는 효과가 있다.It also has the effect that an attacker can cope with an attack that sends an attack after sending a normal packet at the beginning of the session.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 검사 시스템의 개략적인 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시 예에 따른 네트워크 검사 방법을 위한 세션, 플로우, 및 패킷을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 네트워크 검사 방법에 따른 패킷 서치를 수행하는 개념을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 네트워크 검사 방법에서 특정 세션 내의 일정 크기의 최초 선행 페이로드를 저장하는 방법에 대하여 설명하기 위한 도면이다.
도 5는 본 발명의 다른 일 실시예에 따른 네트워크 검사 방법에서 세션의 중간부터 일정한 크기 혹은 개수의 패킷을 저장하는 방법에 대하여 설명하기 위한 도면이다.
BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.
BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.
1 is a view showing a schematic configuration of a network inspection system according to an embodiment of the present invention.
2 is a diagram illustrating a session, a flow, and a packet for a network inspection method according to an embodiment of the present invention.
3 is a diagram illustrating a concept of performing a packet search according to a network inspection method according to an embodiment of the present invention.
FIG. 4 is a diagram for describing a method of storing a first preceding payload of a predetermined size in a specific session in a network checking method according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a method of storing a predetermined size or number of packets from the middle of a session in a network checking method according to another embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of the present invention. In the following description of the present invention, if it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise.

본 명세서에 있어서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described in the specification, one or more other It is to be understood that the present invention does not exclude the possibility of the presence or the addition of features, numbers, steps, operations, components, parts, or a combination thereof.

또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. 반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.In addition, in the present specification, when one component 'transmits' data to another component, the component may directly transmit the data to the other component, or through at least one other component. Means that the data may be transmitted to the other component. On the contrary, when one component 'directly transmits' data to another component, it means that the data is transmitted from the component to the other component without passing through the other component.

이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 중심으로 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일 실시 예에 따른 네트워크 검사 시스템의 개략적인 구성을 나타내는 도면이다. 상기 네트워크 검사 시스템은 본 발명의 기술적 사상에 따른 네트워크 검사 방법을 수행할 수 있다.1 is a view showing a schematic configuration of a network inspection system according to an embodiment of the present invention. The network inspection system may perform a network inspection method according to the spirit of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 네트워크 검사 시스템(100)은 플로우 생성모듈(120) 및 세션 생성모듈(130)을 포함한다. 상기 네트워크 검사 시스템(100)은 패킷 추출모듈(110)를 더 포함할 수 있다. 또한, 상기 네트워크 검사 시스템(100)은 패킷 서치모듈(140)을 더 포함할 수 있다. 또한, 상기 네트워크 검사 시스템(100)은 보안 검사모듈(150) 및/또는 저장장치(160)를 더 포함할 수 있다.Referring to FIG. 1, the network inspection system 100 according to an exemplary embodiment of the present invention includes a flow generation module 120 and a session generation module 130. The network inspection system 100 may further include a packet extraction module 110. In addition, the network inspection system 100 may further include a packet search module 140. In addition, the network inspection system 100 may further include a security inspection module 150 and / or storage device (160).

일 실시예에서, 상기 네트워크 검사 시스템(100)은 여러 대의 네트워크 단위를 연결하여 네트워크를 구성하는 통신 장치일수 있다. 상기 네트워크 검사 시스템(100)은 허브, 액세스 포인트, 공유기 등일 수 있다. 또는 상기 네트워크 검사 시스템(100)은 이러한 통신 장치(허브, 액세스 포인트, 공유기 등)와 연결되어 있는 시스템일 수 있다.In one embodiment, the network inspection system 100 may be a communication device configuring a network by connecting a plurality of network units. The network inspection system 100 may be a hub, an access point, a router, or the like. Alternatively, the network inspection system 100 may be a system connected to such a communication device (hub, access point, router, etc.).

상기 네트워크 검사 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 필요한 하드웨어 리소스(resource) 및/또는 소프트웨어를 구비할 수 있으며, 반드시 하나의 물리적인 구성요소를 의미하거나 하나의 장치를 의미하는 것은 아니다. 즉, 상기 네트워크 검사 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 구비되는 하드웨어 및/또는 소프트웨어의 논리적인 결합을 의미할 수 있으며, 필요한 경우에는 서로 이격된 장치에 설치되어 각각의 기능을 수행함으로써 본 발명의 기술적 사상을 구현하기 위한 논리적인 구성들의 집합으로 구현될 수도 있다. 또한, 상기 네트워크 검사 시스템(100)은 본 발명의 기술적 사상을 구현하기 위한 각각의 기능 또는 역할별로 별도로 구현되는 구성들의 집합을 의미할 수도 있다.The network inspection system 100 may include hardware resources and / or software necessary to implement the technical idea of the present invention, and means one physical component or one device. no. That is, the network inspection system 100 may mean a logical combination of hardware and / or software provided to implement the technical idea of the present invention. If necessary, the network inspection system 100 may be installed in devices spaced apart from each other. It may be implemented as a set of logical configurations for implementing the technical idea of the present invention by performing. In addition, the network inspection system 100 may refer to a set of components that are separately implemented for each function or role for implementing the technical idea of the present invention.

본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.In the present specification, the module may mean a functional and structural combination of hardware for performing the technical idea of the present invention and software for driving the hardware. For example, the module may mean a logical unit of a predetermined code and a hardware resource for performing the predetermined code, and means a physically connected code or does not necessarily mean one kind of hardware. It can be easily inferred by the average expert in the art.

상기 저장장치(160)는 본 발명의 기술적 사상을 구현하는데 필요한 데이터 및/또는 정보를 저장하는 장치일 수 있다. 일 실시예에서 상기 저장장치(160)는 데이터베이스, 비휘발성 스토리지(예를 들면, HDD, SDD 등)일 수 있다.The storage device 160 may be a device for storing data and / or information necessary to implement the technical idea of the present invention. In one embodiment, the storage device 160 may be a database, non-volatile storage (eg, HDD, SDD, etc.).

상기 패킷 추출모듈(110)은 네트워크로부터 복수의 패킷들을 수신할 수 있다. 상기 패킷 추출모듈(110)은 네트워크상의 소정의 위치에 설치되어 네트워크를 통해 이동하는 패킷들을 수집할 수 있다. 일 예에 의하면 상기 패킷 추출모듈(110)은 도 1에 도시된 바와 같이 네트워크로부터 패킷들을 태핑(tapping)하는 장비로부터 상기 패킷들을 받는 태핑 모드로 상기 네트워크상에 구현될 수 있으나, 이에 한정되지 않고 상기 패킷들이 여타의 다른 방법으로 패킷 추출모듈로 인가될 수 있다. The packet extraction module 110 may receive a plurality of packets from a network. The packet extraction module 110 may be installed at a predetermined position on the network to collect packets moving through the network. According to an example, the packet extracting module 110 may be implemented on the network in a tapping mode that receives the packets from a device tapping packets from the network as shown in FIG. 1, but is not limited thereto. The packets can be applied to the packet extraction module in any other way.

상기 패킷 추출모듈(110)을 통과하여 네트워크상에서 이동되도록 인라인(In-line)모드로 상기 네트워크 상에 구현될 수도 있다.It may be implemented on the network in an in-line mode to move on the network through the packet extraction module 110.

상기 패킷 추출모듈(110)은 예컨대, 소정의 로컬 에어리어 네트워크(LAN) 상에 존재하는 게이트웨이(gateway)의 전단 및/또는 후단에 위치하여 본 발명의 기술적 사상에 따라 네트워크 데이터를 수집할 수 있다. 그러면 상기 네트워크 검사 시스템(100)은 검사결과를 이용하여 따라 네트워크/트래픽을 컨트롤할 수 있다. 네트워크/트래픽을 컨트롤 한다 함은 소정의 세션, 플로우 및/또는 패킷별로 대역폭, 전송 속도를 조절하거나 전송을 차단하는 등의 인위적 행위를 의미할 수 있다. 상기 패킷 추출모듈(110)은 예컨대 소정의 NIC(Network Interface Card)로 구현될 수 있지만, 이에 한정되는 것은 아니다.The packet extraction module 110 may, for example, be located at the front end and / or the rear end of a gateway existing on a predetermined local area network (LAN) to collect network data according to the spirit of the present invention. The network inspection system 100 may then control the network / traffic according to the inspection result. Controlling the network / traffic may refer to artificial actions such as adjusting bandwidth, transmission rate or blocking transmission for each session, flow, and / or packet. The packet extraction module 110 may be implemented with, for example, a predetermined network interface card (NIC), but is not limited thereto.

상기 플로우 생성모듈(120)은 상기 패킷 추출모듈(110)에 의해 수신되는 패킷들에 기초하여 복수의 플로우들을 생성할 수 있다. 상기 패킷 추출모듈(110)은 상기 플로우 생성모듈(120)로 순차적으로 패킷들을 출력할 수 있다. 그러면, 상기 플로우 생성모듈(120) 플로우를 생성할 수 있다. 플로우를 생성한다고 함은 후술할 바와 같이 플로우 정보를 생성하는 것을 의미할 수 있다. 구현 예에 따라서는, 선택적으로 상기 플로우 생성모듈(120)은 플로우에 포함되는 패킷을 추출하여 상기 저장장치(160)에 저장할 수도 있다. 상기 플로우 생성모듈(120)은 소정의 플로우에 해당하는 모든 패킷들을 저장토록 할 수도 있지만, 구현 예에 따라서는 후술할 바와 같이 상기 플로우를 포함하는 세션의 초기 일부 패킷만을 최종적으로 상기 저장장치(160)에 저장토록 할 수도 있다.The flow generation module 120 may generate a plurality of flows based on the packets received by the packet extraction module 110. The packet extraction module 110 may sequentially output packets to the flow generation module 120. Then, the flow generating module 120 may generate a flow. Generating a flow may mean generating flow information as described below. According to an embodiment, the flow generation module 120 may optionally extract the packets included in the flow and store them in the storage device 160. The flow generation module 120 may store all packets corresponding to a predetermined flow, but according to an implementation example, only the first partial packet of the session including the flow may be finally stored as described later. It can also be stored in).

물론, 상기 플로우 생성모듈(120)은 플로우 및 해당 플로우에 포함된 모든 패킷을 임시로 상기 저장장치(160)에 저장하고, 상기 세션 생성모듈(130)이 저장된 패킷들 중 선택적으로 일부만 저장하고 나머지는 삭제할 수도 있다.Of course, the flow generation module 120 temporarily stores the flow and all the packets included in the flow in the storage device 160, and selectively stores only a part of the packets stored by the session generation module 130 and the rest. Can also be deleted.

본 명세서에서 플로우(flow)라 함은, 제한된 시간 내에 연속적으로 전달되는 IP 패킷들의 집합을 의미한다. 따라서, IP 플로우는 애플리케이션의 주소 쌍(송신자 주소, 송신자 포트 번호, 수신자 주소, 수신자 포트 번호), 호스트 쌍(송신자 네트워크 주소, 수신자 네트워크 주소), AS 번호 쌍(송신자 AS 번호, 수신자 AS 번호) 등으로 명세되는 제한된 시간 내에 연속적으로 전달되는 IP 패킷들의 흐름으로 정의될 수 있다. 이러한 플로우에 대한 개념 및 플로우를 형성하는 방식에 대해서는 상기한 선행기술문헌에 상세히 개시되어 있으므로 본 명세서에서는 상세한 설명은 생략하도록 한다. 또한, 본 명세서에서 플로우에 대한 개념, 플로우의 생성 방법에 대해서는 상기한 선행기술문헌에 개시된 기술적 사상 및 기재를 본 명세서의 레퍼런스로 포함하며, 본 명세서의 기재에 포함되는 것으로 취급할 수 있다.In the present specification, the term "flow" refers to a set of IP packets continuously delivered within a limited time. Thus, IP flows can include the application's address pairs (sender address, sender port number, receiver address, receiver port number), host pairs (sender network address, receiver network address), AS number pairs (sender AS number, receiver AS number), and so on. It can be defined as the flow of IP packets continuously delivered within the limited time specified by. The concept of the flow and the manner of forming the flow is described in detail in the above-mentioned prior art document, so the detailed description thereof will be omitted. In addition, the concept of the flow and the method of generating the flow in the present specification include the technical idea and description disclosed in the above-mentioned prior art document as a reference of the present specification, and may be treated as being included in the description of the present specification.

패킷들의 속성 중 플로우를 생성하기 위한 일 예로 5-튜플(tuple)을 이용할 수 있다. 즉, 플로우 프로세서(110)는 네트워크 상에서 패킷들을 입력으로 받아서 패킷들의 연속된 집합인 플로우를 생성하거나, 플로우를 형성하는 패킷들 중 일부를 추출할 수 있다. 플로우를 생성하거나 플로우 패킷을 검출하는 조건은 패킷들의 속성(예컨대, 5-Tuple(Source Address, Destination Address, Source Port, Destination Port, Protocol))를 비교하여 동일한 속성(예컨대, 5-튜플(tuple) 값)을 가지는 패킷이 존재하지 않으면 새로운 플로우를 생성하고, 만약에 동일한 값을 가지는 패킷이 존재하면 그 플로우의 플로우 정보를 업데이트할 수 있다.An example of generating a flow among the attributes of packets may use a 5-tuple. That is, the flow processor 110 may receive packets as inputs on the network to generate a flow, which is a continuous set of packets, or extract some of the packets forming the flow. The conditions for generating a flow or detecting a flow packet are compared with the attributes of the packets (eg, 5-Tuple (Source Address, Destination Address, Source Port, Destination Port, Protocol)) to compare the same attributes (eg, 5-tuple). If a packet having a value) does not exist, a new flow may be created. If a packet having the same value exists, the flow information of the flow may be updated.

패킷들의 연속된 집합이라 함은 반드시 물리적으로 연속된 패킷들을 의미하는 것이 아니라, 시간적으로 제한된 시간 내에 도달한 패킷의 속성이 동일한 패킷을 포함하는 의미로 사용될 수 있다. A contiguous set of packets does not necessarily mean packets that are physically contiguous, but may be used to mean that an attribute of a packet reached within a time limited time includes the same packet.

상기 플로우 정보는 패킷의 5-튜플 정보를 포함하며, 플로우 사이즈(Flow Size), 지속기간(Duration) 즉, 플로우의 시작 시간(S.T) 및 종료 시간(E.T), 패킷 카운트(Packet Count, P.C), 평균 패킷 사이즈(Average Packet Size), 평균 레이트(Average Rate), 플래그(예컨대, 프로토콜을 위한 특별한 신호(SYN, FIN 등)) 및/또는 폴로우 사이즈 등을 포함할 수 있다. 상기 플로우 정보는 저장장치(160)로 출력되어 저장될 수 있다. 상기 플로우 생성모듈(120)은 상기 저장장치(160)에 소정의 플로우에 대한 플로우 정보 및 상기 플로우에 포함되는 패킷 중 적어도 일부를 서로 대응시켜 저장할 수 있다. 이러한 과정을 상기 플로우 생성모듈(120)이 플로우를 생성한다고 정의할 수 있다. 예컨대, 플로우 정보 및 플로우에 포함된 패킷이 물리적으로 연속되도록 저장될 수도 있고, 테이블, 링크 등과 같이 물리적으로는 분리되어 있더라도 용이하게 탐색될 수 있는 다양한 형태로 저장될 수 있다.The flow information includes 5-tuple information of a packet, and includes a flow size, a duration, that is, a start time (ST) and an end time (ET) of a flow, and a packet count (PC). , Average Packet Size, Average Rate, Flags (eg, special signals for protocols (SYN, FIN, etc.)) and / or follow size. The flow information may be output to the storage device 160 and stored. The flow generation module 120 may store the flow information for a predetermined flow and at least some of the packets included in the flow in the storage device 160 in correspondence with each other. This process may be defined as the flow generation module 120 generating a flow. For example, the flow information and the packets included in the flow may be stored to be physically continuous, or may be stored in various forms that can be easily searched even though they are physically separated, such as a table or a link.

이렇게 저장된 패킷들 중 일부는 상기 세션 생성모듈(130)에 의해 생성되는 세션 정보에 기초하여 삭제될 수도 있다. 예를 들어, 세션의 초기 N 개의 선행패킷을 제외하고는 삭제될 수도 있다. 또는 세션 초기의 N바이트의 페이로드를 포함하고 있는 선행패킷을 제외하고는 삭제될 수 있다. 또한 구현 예에 따라서는 특정 플로우에 대해서는 플로우 정보만 저장되고, 상기 특정 플로우에 해당하는 패킷은 저장되지 않을 수도 있다.Some of the packets thus stored may be deleted based on the session information generated by the session generation module 130. For example, it may be deleted except for the initial N preceding packets of the session. Or it can be deleted except for the preceding packet which contains the payload of N bytes at the beginning of the session. In some implementations, only flow information may be stored for a specific flow, and packets corresponding to the specific flow may not be stored.

상기 세션 생성모듈(130)은 상기 플로우 생성모듈(120)에 의해 복수의 플로우들이 생성되면, 상기 복수의 플로우들에 대한 정보에 기초하여 세션을 생성할 수 있다. 세션을 생성한다고 함은 생성된 복수의 플로우들 중에서 동일한 세션을 형성하는 플로우들을 추출하고, 추출된 플로우들에 대한 식별정보를 포함하는 세션 정보를 생성하여 상기 저장장치(160)에 저장하는 것을 의미할 수 있다.When a plurality of flows are generated by the flow generation module 120, the session generation module 130 may generate a session based on the information on the plurality of flows. Creating a session means extracting flows forming the same session among a plurality of generated flows, generating session information including identification information of the extracted flows, and storing the generated session information in the storage device 160. can do.

일 실시예에서, 플로우와 세션은 다음과 같은 방식으로 생성될 수 있다.In one embodiment, flows and sessions may be created in the following manner.

상기 플로우 생성모듈(120)은 패킷의 5-tuple을 기준으로 판단하여 해당 패킷이 종료되지 않고 남아있는 플로우에 포함되면(5-tuple, 정보가 동일하면) 해당 플로우 정보를 수정하고, 해당 패킷이 해당 플로우에 종속됨을 표시할 수 있다.The flow generation module 120 determines based on the 5-tuple of the packet and corrects the flow information if the packet is included in the remaining flow without being terminated (5-tuple, if the information is the same), and the packet is You can indicate that you are dependent on the flow.

만약 해당 패킷의 5-tuple 정보를 기준으로 판단하여 해당 패킷이 특정 플로우에 속하지 않으면 새로운 플로우를 생성하여 해당 패킷이 새로 생성된 플로우에 종속됨을 표시할 수 있다. If it is determined based on the 5-tuple information of the packet, if the packet does not belong to a specific flow, a new flow may be generated to indicate that the packet depends on the newly generated flow.

새로운 플로우가 생성되면, 상기 세션 생성모듈(130)은 플로우의 5-tuple 정보를 기준으로 판단하여 해당 플로우가 종료되지 않고 남아있는 세션에 포함되면 해당 세션 정보를 수정하고, 해당 플로우를 해당 세션에 종속됨을 표시할 수 있다. 만약 해당 플로우의 5-tuple 정보를 기초로 판단하여, 특정 세션에 속하지 않으면 새로운 세션을 생성하고 해당 플로우가 새로 생성된 세션에 종속됨을 표시할 수 있다. 만약 세션의 끝을 알리는 패킷이 수신되면 해당 패킷이 포함되는 플로우와 세션을 종료하고 저장장치(160)에 저장할 수 있다. 종료되지 않고 남아있는 플로우, 세션의 경우, 일정시간 동안 해당 플로우나 세션에 포함되는 패킷이 수신되지 않으면 해당 플로우와 세션은 종료될 수 있다.When a new flow is generated, the session generation module 130 determines based on the 5-tuple information of the flow, modifies the corresponding session information when the flow is included in the remaining session without ending the flow, and assigns the flow to the session. You can indicate that you are dependent. If it is determined based on the 5-tuple information of the flow, if it does not belong to a specific session, a new session may be created and the flow may be dependent on the newly created session. If a packet notifying the end of the session is received, the flow and the session including the packet may be terminated and stored in the storage device 160. In the case of a flow or a session that is not terminated, if the packet included in the flow or the session is not received for a predetermined time, the flow and the session may be terminated.

또한 세션을 생성한다고 함은 상기 세션 정보와 함께 상기 세션에 포함된 패킷들 중 일부를 상기 세션 정보에 대응되도록 저장하는 과정을 포함하는 의미일 수 있다. 예를 들어, 세션 형성 시 상기 세션 생성모듈(130)은 상기 세션에 포함된 패킷들 중 초기 M 개의 선행패킷을 상기 세션 정보에 대응되도록 저장할 수 있다. 혹은 상기 세션에 포함된 패킷들 중 N번째 패킷부터 M개의 후속 패킷을 상기 세션 정보에 대응되도록 저장할 수 있다. 또는 상기 세션 생성모듈(130)은 상기 세션 정보와 함께 상기 세션에 포함된 패킷들 중 상기 세션의 초기 K바이트의 페이로드를 포함하는 패킷을 상기 세션 정보에 대응되도록 저장할 수도 있다. 또는 상기 세션 생성모듈(130)은 N번째 패킷부터 K 바이트의 페이로드를 포함하는 후속 패킷을 상기 세션 정보에 대응되도록 저장할 수도 있다. 이에 대해서는 후에 보다 상세하게 설명하기로 한다.In addition, generating a session may mean storing a part of the packets included in the session together with the session information so as to correspond to the session information. For example, during session establishment, the session generation module 130 may store initial M preceding packets among packets included in the session to correspond to the session information. Alternatively, M subsequent packets from Nth packets among the packets included in the session may be stored to correspond to the session information. Alternatively, the session generation module 130 may store a packet including a payload of an initial K byte of the session among the packets included in the session, together with the session information so as to correspond to the session information. Alternatively, the session generation module 130 may store a subsequent packet including a payload of N bytes to K bytes so as to correspond to the session information. This will be described later in more detail.

일부 패킷을 상기 세션 정보에 대응되도록 저장하는 과정은 이미 상기 플로우 생성모듈(120)에 의해 저장된 패킷들 중 상기 일부 패킷을 제외하고 삭제하는 과정일 수 있다. 또는 세션 정보 및 패킷은 별도로 저장될 수도 있다. 이러한 경우에는 해당 패킷은 이중으로 저장될 수도 있다.The storing of some packets to correspond to the session information may be a process of deleting some of the packets already stored by the flow generation module 120 except for some of the packets. Alternatively, session information and packets may be stored separately. In this case, the packet may be stored in duplicate.

또는 일부 패킷을 상기 세션 정보에 대응되도록 저장하는 과정은 저장될 대상이 되는 패킷만을 휘발성 메모리에 임시 저장하고 저장 대상이 아닌 패킷은 버리게 되며, 세션 종료 시 휘발성 메모리에 저장되어 있는 패킷이 상기 저장장치(160)에 저장될 수도 있다.Alternatively, the process of storing some packets to correspond to the session information temporarily stores only the packets to be stored in the volatile memory and discards the packets that are not to be stored, and the packets stored in the volatile memory are terminated at the end of the session. And may be stored at 160.

상기 세션 생성모듈(130)이 세션을 생성하는 개념은 도 2를 참조하여 설명하도록 한다.The concept of generating a session by the session generation module 130 will be described with reference to FIG. 2.

도 2는 본 발명의 일 실시 예에 따른 네트워크 검사 방법을 위한 세션, 플로우, 및 패킷을 설명하기 위한 도면이다.2 is a diagram illustrating a session, a flow, and a packet for a network inspection method according to an embodiment of the present invention.

도 1 및 도 2를 참조하면, 소정의 장치들끼리 세션(S)이 형성되면, 상기 세션(S)은 적어도 하나의 플로우(F)로 구성될 수 있다. 또한, 상기 적어도 하나의 플로우는 각각 적어도 하나의 패킷(P)으로 구성될 수 있다.1 and 2, when sessions S are formed between predetermined devices, the session S may be configured of at least one flow F. Referring to FIG. In addition, the at least one flow may be composed of at least one packet (P), respectively.

본 발명의 기술적 사상에 의하면, 상기 네트워크 검사 시스템(100)은 소정의 네트워크상의 일 지점을 경유하는 패킷들을 수집할 수 있다. 이는 상기 패킷 추출모듈(110)에 의해 수행될 수 있다.According to the spirit of the present invention, the network inspection system 100 may collect packets passing through a point on a predetermined network. This may be performed by the packet extraction module 110.

그리고 수집되는 패킷들의 패킷 속성(예컨대, 5튜플 등)에 기초하여 상기 네트워크 검사 시스템(100)은 플로우를 생성할 수 있다. 플로우의 생성방법에 대해서는 상술한 바와 같다. 이러한 플로우의 생성은 플로우 생성모듈(120)에 의해 수행될 수 있다. 각각의 플로우는 하나의 패킷만으로 구성될 수도 있고, 복수의 패킷들로 구성될 수도 있다. 또한 플로우별로 플로우 사이즈가 다를 수도 있다.The network inspection system 100 may generate a flow based on packet attributes (eg, 5 tuples) of the collected packets. The method of generating the flow is as described above. The generation of such a flow may be performed by the flow generating module 120. Each flow may consist of only one packet or may consist of a plurality of packets. In addition, the flow size may be different for each flow.

한편, 이처럼 플로우가 생성되면 상기 세션 생성모듈(130)은 세션을 생성할 수 있다. On the other hand, when the flow is generated in this way, the session generation module 130 may generate a session.

세션을 생성하기 위해 상기 세션 생성모듈(130)은 저장장치(160)에 저장된 플로우 정보를 확인할 수 있다. 동일한 세션에 포함되는 플로우들은 공통되는 특성을 가질 수 있다. 따라서 상기 세션 생성모듈(130)은 상기 저장장치(160)에 저장된 플로우들 중 상기 공통되는 특성을 가진 플로우들을 탐색할 수 있다. 또한 플로우 정보(예컨대, 플로우 정보에 포함되는 S.T, E.T 등의 정보)에 기초하여 각각의 플로우의 시간적 우선순위를 파악할 수 있다. 상기 세션 생성모듈(130)은 각각의 세션 형성 플로우의 플로우 정보에 포함되는 플래그 정보에 기초하여 해당 세션의 최선 플로우 및 최후 플로우를 파악할 수도 있다.In order to generate a session, the session generation module 130 may check flow information stored in the storage device 160. Flows included in the same session may have common characteristics. Accordingly, the session generation module 130 may search for flows having the common characteristics among the flows stored in the storage device 160. In addition, the temporal priority of each flow can be determined based on the flow information (for example, information of S.T, E.T, etc. included in the flow information). The session generation module 130 may grasp the best flow and the last flow of the session based on the flag information included in the flow information of each session establishment flow.

따라서 상기 세션 생성모듈(130)은 특정 세션에 포함되는 적어도 하나의 플로우 즉, 세션 형성 플로우를 추출할 수 있다. 상기 세션 형성 플로우는 하나의 플로우일 수도 있고, 복수의 플로우들을 포함할 수도 있다.Therefore, the session generation module 130 may extract at least one flow included in a specific session, that is, session formation flow. The session establishment flow may be one flow or may include a plurality of flows.

이처럼 본 발명의 기술적 사상에 따른 네트워크 검사 시스템(100)이 플로우만을 생성하는 것이 아니라, 생성한 플로우에 기초하여 세션을 생성하는 것은 세션의 초기 일부의 데이터에 의해 해당 세션의 중요한 특성들이 모두 파악될 수 있기 때문이다. 따라서 종래의 선행기술들이 수집되는 모든 패킷을 저장하고 검사(예컨대, DPI)하거나, 각각의 플로우별로 일정 개수의 선행패킷을 저장 및 검사하는 것에 비해 보다 적은 수의 보안 검사만으로도 소정의 애플리케이션의 특성 또는 원하는 정보를 검사할 수 있다. 일반적으로 세션의 초기 5개 내외에 패킷을 검사하는 정도면 상기 세션에 포함되는 모든 패킷을 검사하는 것에 비해 검사의 품질에 큰 차이가 없음이 알려져 있다. 물론, 서비스 주체의 판단에 따라 세션의 모든 패킷을 저장할 수도 있다. As such, the network inspection system 100 according to the spirit of the present invention not only generates a flow but also generates a session based on the generated flow, so that all important characteristics of the session can be identified by data of an initial part of the session. Because it can. Therefore, compared to storing and inspecting all packets for which the prior arts are collected (e.g., DPI), or storing and inspecting a certain number of preceding packets for each flow, a smaller number of security checks can be used to determine the characteristics of a given application or You can check the information you want. In general, it is known that there is no significant difference in the quality of inspection as compared to the inspection of all packets included in the session as much as the inspection of packets in the initial five of the session. Of course, at the discretion of the service subject, all packets of the session may be stored.

또한, 본 발명의 기술적 사상에 의하면 상기 네트워크 검사 시스템(100)이 네트워크 레코딩 서비스를 제공하는 경우에 종래의 선행기술들에 비해 적은 수의 패킷들만을 저장할 수 있게 되는 효과가 있다. 따라서 스토리지에 대한 이득이 발생할 수 있는 효과가 있다.In addition, according to the technical idea of the present invention, when the network inspection system 100 provides a network recording service, there is an effect that only a small number of packets can be stored as compared with the prior art. Therefore, there is an effect that a gain in storage can occur.

또한, 본 발명의 기술적 사상과 같이 패킷으로부터 플로우를 생성하고, 생성된 플로우를 이용하여 세션까지 생성하는 경우에는 특정 서비스 이용자가 패킷을 서치할 때에도 고속의 패킷 서치가 가능한 효과가 있다. 즉, 상기 네트워크 검사 시스템(100)이 세션의 초기 일부의 선행패킷 (혹은 초기 일부의 페이로드)만을 저장하는 것이 아니라 수집되는 모든 패킷을 저장할 수도 있는데, 이러한 경우에는 세션을 생성함으로써 생성되는 세션정보를 가장 먼저 탐색하여 원하는 패킷에 상응하는 세션을 탐색하고, 탐색된 세션으로부터 원하는 패킷에 상응하는 플로우를 탐색한 후 탐색된 플로우에 기초하여 패킷을 검색함으로써 고속의 다운드릴 서치가 가능한 효과가 발생한다. 왜냐하면 플로우만을 생성하는 경우에는 최악의 경우에 플로우의 개수만큼 서치를 수행한 후에 패킷을 서치할 수 있지만, 세션이 형성된 경우에는 최악의 경우에 세션의 개수만큼만 서치를 수행한 후, 빠른 시간에 해당 패킷에 상응하는 플로우 및 패킷을 탐색할 수 있기 때문이다. 물론, 초기 일부의 선행패킷 (혹은 초기 일부의 페이로드)만을 저장하는 경우에도 이러한 효과는 여전히 존재한다. 또한, 패킷을 서치하고자 하는 서비스 이용자는 세션에 대한 정보는 알고 있을 수 있지만, 플로우에 대한 정보는 알지 못하는 경우도 존재할 수 있다. 따라서 본 발명의 기술적 사상과 같이 세션을 생성하는 경우에는 네트워크 리코딩 서비스에서 효율적이고 고속의 패킷 서칭이 가능해지는 효과가 있다.In addition, in the case of generating a flow from a packet and generating a session using the generated flow as in the technical idea of the present invention, even when a specific service user searches for a packet, high-speed packet search is possible. That is, the network inspection system 100 may store not only the preceding packets (or the payloads of the initial part of the initial part of the session) but all packets collected, in this case, the session information generated by creating the session. By searching first, the session corresponding to the desired packet is searched, the flow corresponding to the desired packet is searched from the searched session, and then the packet is searched based on the found flow, thereby enabling a fast downdrill search. . If you create only flows, you can search packets after performing the number of flows in the worst case, but in the worst case, you can search for the number of sessions in the worst case. This is because the flow and the packet corresponding to the packet can be searched. Of course, this effect still exists even when storing only the initial part of the preceding packet (or the initial part of the payload). In addition, a service user who wants to search for a packet may know information about a session, but may not know information about a flow. Therefore, when a session is created as in the technical spirit of the present invention, an efficient and high speed packet search is enabled in a network recording service.

다시 도 1을 참조하면, 상기 세션 생성모듈(130)은 상기 플로우 생성모듈(120)이 생성한 복수의 플로우들에 기초하여 세션을 생성할 수 있다. 즉, 세션정보를 생성할 수 있다. Referring back to FIG. 1, the session generation module 130 may generate a session based on a plurality of flows generated by the flow generation module 120. That is, session information can be generated.

상기 세션 정보는 적어도 상기 세션에 포함되는 적어도 하나의 플로우 즉, 세션 형성 플로우들 각각의 인덱스(식별정보)를 포함할 수 있다. 또한, 상기 세션의 특성을 나타내는 다양한 정보들이 상기 세션 정보에 더 포함될 수 있다.The session information may include at least one flow included in the session, that is, an index (identification information) of each session formation flow. In addition, various information representing the characteristics of the session may be further included in the session information.

이러한 세션 정보의 생성을 통해 전술한 바와 같이 고속의 패킷 서칭이 가능할 수 있으며, 또한 세션의 생성을 통해 저장 대상이 되는 일부 패킷을 특정할 수도 있다.As described above, high-speed packet search may be performed through the generation of the session information, and some packets to be stored may be specified through the generation of the session.

도 3을 참조하여 본 발명의 패킷들이 저장되는 개념적인 구조를 설명하면 다음과 같을 수 있다. Referring to FIG. 3, a conceptual structure in which packets of the present invention are stored may be described as follows.

도 3은 본 발명의 일 실시 예에 따른 네트워크 검사 방법에 따른 패킷 서치를 수행하는 개념을 설명하기 위한 도면이다. 3 is a diagram illustrating a concept of performing a packet search according to a network inspection method according to an embodiment of the present invention.

도 3을 참조하면, 상기 세션 생성모듈(130)은 전술한 바와 같이 소정의 세션을 생성할 수 있다. 세션의 생성을 통해 생성되는 세션 정보에는 도 3에 도시된 바와 같이 적어도 상기 세션에 포함되는 세션 형성 플로우의 식별정보가 포함될 수 있다.Referring to FIG. 3, the session generation module 130 may generate a predetermined session as described above. The session information generated through the creation of the session may include at least identification information of the session establishment flow included in the session, as shown in FIG. 3.

또한, 상기 세션 정보에는 상기 세션의 5-튜플에 대한 정보, 시작시간(S.T) 및 종료시간(E.T), 패킷 카운트(P.C), 세션 사이즈(S.S)등에 대한 정보들이 더 포함될 수 있다.The session information may further include information on 5-tuple of the session, start time (S.T) and end time (E.T), packet count (P.C), session size (S.S), and the like.

상기 네트워크 검사 시스템(100)에 포함된 패킷 서치모듈(140)은 서비스 이용자의 단말기(미도시)로부터 수신되는 패킷 서치 요청에 응답하여, 상기 패킷 서치 요청에 상응하는 세션을 가장 먼저 탐색할 수 있다. 상기 패킷 서치 요청에는 상기 세션정보에 포함된 정보들이 적어도 하나 포함될 수 있음은 물론이다. 예컨대, 송신자 주소, 수신자 주소, 및 시간 정보 등이 상기 패킷 서치요청에 포함될 수 있다.The packet search module 140 included in the network inspection system 100 may first search for a session corresponding to the packet search request in response to a packet search request received from a terminal (not shown) of a service user. . The packet search request may include at least one information included in the session information. For example, a sender address, a receiver address, time information, and the like may be included in the packet search request.

그러면 상기 패킷 서치모듈(140)은 상기 세션 정보에 포함된 세션 형성 플로우들 각각의 플로우 정보를 탐색하여 패킷 서치 요청에 상응하는 플로우를 탐색할 수 있다. 그리고 상기 패킷 서치 요청에 상응하는 플로우가 탐색되면, 상기 패킷 서치모듈(140)은 용이하게 상기 패킷 서치 요청에 상응하는 패킷을 상기 저장장치(160)로부터 탐색할 수 있다. 물론, 구현 예에 따라 상기 네트워크 검사 시스템(100)이 선행패킷만을 저장하는 경우에는 패킷 서치 요청에 상응하는 패킷은 존재하지 않을 수도 있다. 또한 모든 패킷들을 저장하는 경우에는 패킷 서치 요청에 상응하는 패킷은 탐색됨이 보장될 수도 있다.Then, the packet search module 140 may search for flow corresponding to the packet search request by searching for flow information of each of the session establishment flows included in the session information. When a flow corresponding to the packet search request is searched, the packet search module 140 may easily search for a packet corresponding to the packet search request from the storage device 160. Of course, when the network inspection system 100 stores only the preceding packet according to an embodiment, a packet corresponding to the packet search request may not exist. In addition, when storing all packets, it may be guaranteed that a packet corresponding to a packet search request is searched.

결국, 본 발명의 기술적 사상은 패킷으로부터 플로우를 생성하고, 플로우로부터 세션을 생성한 후, 패킷을 서치할 때에는 세션, 플로우, 및 패킷 순으로 다운드릴 고속 서치가 가능해지는 효과가 있다.As a result, the technical idea of the present invention is to generate a flow from a packet, generate a session from the flow, and then search for a packet, thereby enabling high-speed downdrill search in the order of session, flow, and packet.

다시 도 1을 참조하면, 상기 보안 검사모듈(150)은 전술한 바와 같이 각각의 세션에 종속되는 패킷들을 대상으로 보안 검사를 수행할 수 있다. 보안 검사를 수행하는 방식은 다양할 수 있으며, 예컨대 종래의 IDS(Intrusion Detection System) 등이 이용될 수도 있다. 상기 보안 검사모듈(150)의 검사결과는 상기 저장장치(160)에 저장될 수 있음은 물론이다. 또한 보안 검사모듈(150)에 의해 전체 세션이 아니라 세션에 포함된 일부 패킷(예를 들어, 세션의 초기 N개의 선행패킷)에 대해서만 보안 검사가 수행될 수 있으므로, 세션이 종료되기 전에 상기 세션에 대한 보안 검사가 실시간으로 완료될 수 있으며 이에 따라 상기 네트워크 검사 시스템(100)은 상기 세션에 대한 소정의 네트워크 컨트롤(예컨대, 차단, 대역폭 조정 등)을 수행할 수 있다.Referring back to FIG. 1, the security check module 150 may perform a security check on packets dependent on each session as described above. The method of performing the security check may vary, for example, a conventional IDS (Intrusion Detection System) or the like may be used. Of course, the test result of the security test module 150 may be stored in the storage device (160). In addition, the security check module 150 may perform the security check only on some packets (eg, the initial N preceding packets of the session) included in the session, not the entire session. The security check may be completed in real time, and thus the network inspection system 100 may perform predetermined network control (eg, blocking, bandwidth adjustment, etc.) for the session.

한편, 본 발명의 기술적 사상에 의하면, 전술한 바와 같이 상기 네트워크 검사 시스템(100)은 네트워크 리코딩 서비스에 이용될 수도 있다. 네트워크 리코딩을 위해서는 종래에는 수집되는 모든 패킷들을 저장해야 했지만, 본 발명의 기술적 사상에 의하면 세션을 형성함으로써 세션의 일부 패킷(예를 들면, 초기 M개의 선행 패킷 또는 초기 K 바이트의 페이로드를 포함하는 패킷)만을 저장함으로써 저장 패킷의 양을 확연히 줄이면서도 중요한 정보들은 저장할 수 있게 된다. 이러한 경우 전체 패킷을 수집/저장하는 것에 비해 스토리지의 절약효과가 존재한다.Meanwhile, according to the spirit of the present invention, as described above, the network inspection system 100 may be used for a network recording service. In the past, network recording had to store all collected packets. However, according to the inventive concept, a session is formed to include some packets of a session (for example, an initial M preceding packet or an initial K byte of payload). By storing only packets, the amount of stored packets can be significantly reduced while important information can be stored. In this case, there is a saving of storage compared to collecting / saving the entire packet.

또한 본 발명의 기술적 사상에 의하면, 상기 네트워크 검사 시스템(100)은 미리 정해진 종류의 세션에 해당하는 패킷들만 저장할 수도 있다. 예컨대, 상기 네트워크 검사 시스템(100)은 HTTP, TCP 세션 등 미리 정해진 세션에 대해서만 네트워크 레코딩을 수행할 수 있다. 또한 네트워크 서비스 포트(port) 별로 저장 방법을 달리하여 레코딩을 수행할 수 있다. 예를들어 443 포트를 사용하는 패킷에 대해서는 패킷을 전혀 저장하지 않고, 80 포트를 사용하는 패킷에 대해서는 세션 초기 K 바이트만 저장하고, 22 포트를 사용하는 패킷에 대해서는 모든 패킷을 저장하도록 할 수 있다. 또한 특정 IP에 의해 송신되거나 수신되는 패킷에 대해서는 저장하지 않도록 할 수도 있다.In addition, according to the spirit of the present invention, the network inspection system 100 may store only packets corresponding to a predetermined type of session. For example, the network inspection system 100 may perform network recording only for a predetermined session such as an HTTP or TCP session. In addition, recording can be performed by using a different storage method for each network service port. For example, you can store no packets at all for packets using port 443, only the initial K bytes of the session for packets using port 80, and all packets for packets using port 22. . It is also possible not to store a packet transmitted or received by a specific IP.

이처럼 미리 정해진 세션이나 포트, IP에 대해서만 네트워크 레코딩을 수행하는 기능은 상기 플로우 생성모듈(120)에 의해 수행될 수도 있고, 상기 세션 생성모듈(130)에 의해 생성될 수도 있다. 예컨대, 상기 플로우 생성모듈(120)은 패킷 추출모듈(110)에 의해 수집되는 패킷들 중 미리 정해진 세션에 해당하는 패킷들만을 대상으로 플로우를 생성할 수 있다. 또는 상기 플로우 생성모듈(120)은 모든 패킷들을 대상으로 플로우를 생성한 후, 상기 세션 생성모듈(130)이 생성된 플로우 중 미리 정해진 세션에 해당하지 않는 플로우는 상기 저장장치(160)로부터 삭제할 수도 있다.Such a function of performing network recording only for a predetermined session, port, or IP may be performed by the flow generating module 120 or may be generated by the session generating module 130. For example, the flow generation module 120 may generate a flow targeting only packets corresponding to a predetermined session among the packets collected by the packet extraction module 110. Alternatively, after the flow generation module 120 generates a flow for all packets, a flow that does not correspond to a predetermined session among the flows generated by the session generation module 130 may be deleted from the storage device 160. have.

상기 미리 정해진 세션에 해당하는지 여부는 패킷들의 포트정보에 기초하여 파악할 수 있다. 즉, 세션의 종류에 따라 포트번호가 바인딩(binding)될 수 있고, 이러한 포트번호에 기초하여 미리 정해진 세션에 해당하는 패킷 또는 플로우인지가 판단될 수 있다. Whether it corresponds to the predetermined session may be determined based on port information of the packets. That is, a port number may be bound according to the type of session, and it may be determined whether a packet or a flow corresponds to a predetermined session based on the port number.

구현 예에 따라서는, 상기 패킷 추출모듈(110)이 미리 정해진 세션에 해당하는 패킷만을 상기 플로우 생성모듈(120)로 전송할 수도 있다.According to an implementation example, the packet extraction module 110 may transmit only a packet corresponding to a predetermined session to the flow generation module 120.

어떠한 경우든 상기 네트워크 검사 시스템(100)은 미리 정해진 세션에 대해서만 네트워크 레코딩을 수행할 수도 있다.In any case, the network inspection system 100 may perform network recording only for a predetermined session.

결국, 본 발명의 기술적 사상에 의하면 종래의 네트워크 레코딩에 비해 저장되는 패킷의 절대적인 양이 줄어들 수 있고, 또한 원하는 세션에 대해서만 네트워크 레코딩이 수행될 수도 있다. As a result, according to the technical concept of the present invention, an absolute amount of packets to be stored may be reduced as compared with a conventional network recording, and network recording may be performed only for a desired session.

본 발명의 기술적 사상에 따른 네트워크 검사 시스템(100)은 특정 세션에 포함되는 패킷들 전부를 저장하는 것이 아니라, 일부 패킷(예를 들어, K 바이트의 초기 페이로드를 포함하는 패킷 등)만을 저장할 수 있으므로 각 세션별로 저장되는 패킷의 양이 줄어들 수 있는 효과가 있다.The network inspection system 100 according to the spirit of the present invention may store only some packets (for example, packets including an initial payload of K bytes) instead of storing all packets included in a specific session. Therefore, the amount of packets stored in each session can be reduced.

또한, 본 발명의 기술적 사상에 따른 네트워크 검사 시스템(100)은 모든 세션들에 대해 패킷을 저장하는 것이 아니라, 미리 정해진 종류의 세션만을 저장할 수 있으므로 미리 정해진 종류에 해당하지 않는 세션들에 대해서는 아예 패킷 저장이 이루어지지 않을 수 있는 효과가 있다. In addition, the network inspection system 100 according to the spirit of the present invention does not store packets for all sessions, but can store only a predetermined type of sessions, and thus, no packets for sessions that do not correspond to a predetermined type. There is an effect that the storage may not be made.

이처럼 본 발명의 기술적 사상에 의하면 저장하는 패킷의 절대적인 양을 줄이면서도 보안 검사에 유의미한 패킷들만 선택적으로 저장함으로 고속의 패킷 서치가 가능해지는 효과가 있다. 이와 동시에 전술한 바와 같이 세션 정보, 플로우 정보 순으로의 드릴다운 서치를 통해 고속의 패킷 서치가 가능해지는 효과가 있다.As described above, according to the technical concept of the present invention, it is possible to reduce the absolute amount of packets to be stored and to selectively store only packets that are significant for the security check, thereby enabling high-speed packet search. At the same time, as described above, high-speed packet search is possible through the drill-down search in the order of session information and flow information.

앞서 설명한 바와 같이 본 발명의 일 실시예에 따른 네트워크 검사 시스템(100)은 각 세션의 일부 패킷(예를 들면, K 바이트의 초기 페이로드를 포함하는 패킷 등)을 저장함으로써, 저장하는 패킷의 양을 줄이면서도 고속의 패킷 서치를 가능하게 한다. 그런데, 만약 네트워크 공격자가 의미 없는, 즉, 헤더만을 포함하며 아무런 페이로드를 포함하지 않은 패킷(예를 들면, SYN, ACK, FIN 등)을 연속적으로 보낸 이후 네트워크에 위협이 될 수 있는 실제 공격 패킷을 보내는 경우에는 이를 검출할 수 없는 문제가 발생할 수 있게 된다. 따라서, 본 발명의 다른 일 실시예에 따른 네트워크 검사 시스템(100) 은 각 세션의 초기 N개의 선행 패킷을 저장하는 대신, 각 세션마다 일정 크기 K 바이트의 초기 선행 페이로드 혹은 K 바이트의 초기 선행 페이로드를 포함하고 있는 패킷을 세션 정보와 대응시켜 저장할 수도 있는데, 이에 대하여 도 4를 참조하여 설명하기로 한다. 여기서 K는 미리 지정된 자연수일 수 있다.As described above, the network inspection system 100 according to an embodiment of the present invention stores some packets (eg, packets including an initial payload of K bytes) of each session, thereby storing the amount of packets to be stored. Enables high-speed packet search while reducing However, if a network attacker sends out packets that are meaningless, that is, include only headers and no payloads (for example, SYN, ACK, FIN, etc.), the actual attack packets may be a threat to the network. In case of sending a message, a problem may occur that cannot be detected. Therefore, instead of storing the initial N preceding packets of each session, the network inspection system 100 according to another embodiment of the present invention, the initial leading payload of a certain size K bytes or the initial leading pay of K bytes for each session A packet including a load may be stored in association with session information, which will be described with reference to FIG. 4. Here, K may be a predetermined natural number.

도 4는 세션을 구성하는 패킷 중 초기 5개의 패킷은 헤더만을 가지는 패킷이며, 6번째 이후의 패킷부터 페이로드를 포함하고 있는 예를 도시하고 있다.4 shows an example in which the initial five packets of the packets constituting the session are packets having only a header, and include payloads from the sixth and subsequent packets.

이하에서는 도 4의 세션 S의 임의의 i번째 패킷을 Pi라고 표현하고, 패킷 Pi의 페이로드를 Li라고 표현하고, 페이로드 Li의 크기를 |Li|로 표현하기로 한다.Will be represented as | hereinafter described as an arbitrary i-th packet of the session S in Fig. 4 P i, and the size of the packet P i of the expression is referred to as the payload L i, and the payload L i | L i.

본 발명의 일 실시예에 따른 네트워크 검사 시스템(100)에 포함된 세션 생성모듈(130)은 페이로드를 포함하고 있는 최초의 패킷(혹은 패킷의 페이로드)부터 저장할 수 있다. 또한 상기 세션 생성모듈(130)은 저장되는 패킷의 페이로드의 합이 소정의 K바이트가 될 때까지 패킷(혹은 패킷의 페이로드)을 저장할 수 있다.The session generation module 130 included in the network inspection system 100 according to an embodiment of the present invention may store the first packet (or packet payload) including the payload. In addition, the session generation module 130 may store the packet (or the payload of the packet) until the sum of payloads of the stored packets becomes a predetermined K byte.

도 4의 예에서 상기 세션 생성모듈(130)은 페이로드를 포함하고 있는 최초의 패킷인 P6 의 페이로드인 L6부터 저장할 수 있다. 또한 도 4의 예에서 |L6|+|L7|+|L8|+|L9|+|L10|+|L11| = K라면, 상기 세션 생성모듈(130)은 P11의 페이로드인 L11까지 저장할 수 있다.In the example of FIG. 4, the session generation module 130 may store L 6 , which is the payload of P 6 , which is the first packet including the payload. Also in the example of FIG. 4, | L 6 | + | L 7 | + | L 8 | + | L 9 | + | L 10 | + | L 11 | If = K, the session generation module 130 may store up to L 11 , which is a payload of P 11 .

구현 예에 따라 상기 세션 생성모듈(130)은 선행 페이로드만을 저장할 수도 있으나, 해당 선행 페이로드를 포함하고 있는 패킷을 저장할 수도 있다. 즉 도 4의 예에서 상기 세션 생성모듈(130)은 페이로드를 포함하고 있는 최초의 패킷인 P6부터 저장되는 페이로드의 합이 K바이트가 되는 패킷인 P11까지 저장할 수도 있다.According to an implementation example, the session generation module 130 may store only the preceding payload, but may also store a packet including the preceding payload. That is, in the example of FIG. 4, the session generation module 130 may store up to P 11 , the packet in which the sum of payloads is K bytes, from P 6 , which is the first packet including the payload.

한편, 특정 패킷에 포함된 페이로드 중간 부분까지의 합이 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까지 저장할 수 있다.On the other hand, when the sum to the middle portion of the payload included in a particular packet is K bytes, depending on the embodiment, only the middle portion of the payload of the packet whose sum is K may be stored, or the entire packet packet may be stored. You can also save everything. That is, in the example of FIG. 5, | L 6 | + | L 7 | + | L 8 | + | L 9 | + | L 10 | + | L 11 | >K> | L 6 | + | L 7 | + | L 8 | + | L 9 | + | L 10 | If so, the session generation module 130, i) according to the implementation, i) to store the L 6 to the middle of L 11 so that the total sum of the size is K bytes, or ii) L 6 to L 11 , or iii) P 6 to P 11 can be stored.

또는 구현 예에 따라 상기 세션 생성모듈(130)은 해더만을 포함하는 패킷까지 저장할 수도 있다. 즉, 상기 세션 생성모듈(130)은 각 세션의 최초 패킷부터 저장하기 시작하여 페이로드의 합이 K가 될 때까지 저장할 수 있다. 도 4를 예로 들어 설명하면, 상기 세션 생성모듈(130)은 P1부터 P11까지 저장할 수 있다.Alternatively, according to an implementation example, the session generation module 130 may store a packet including only a header. That is, the session generation module 130 may start storing from the first packet of each session and store until the sum of payloads is K. Referring to FIG. 4 as an example, the session generation module 130 may store P 1 to P 11 .

한편, 공격자가 정상적인 패킷을 일부 보낸 후에 네트워크에 위협이 될 수 있는 실제 공격 패킷을 보내는 경우에도 이를 검출할 수 있어야 하므로 본 발명의 다른 일 실시예에서는 세션의 초기 일부 패킷을 스킵하고 다음부터 일정 수의 패킷을 저장할 수도 있는데, 이하에서는 도 5를 참조하여 설명하기로 한다.Meanwhile, since an attacker should be able to detect a real attack packet that may be a threat to the network after sending some normal packets, another embodiment of the present invention skips some initial packets of a session and then a certain number of times from next time. Packet may be stored, which will be described below with reference to FIG. 5.

도 5는 세션의 초기 N개의 패킷을 스킵하고 N+1번째 패킷부터 M개의 패킷을 저장하는 예를 도시하고 있다. 도 5의 예에서, N 및 M은 소정의 자연수일 수 있다.FIG. 5 shows an example of skipping initial N packets of a session and storing M packets from the N + 1 th packet. In the example of FIG. 5, N and M may be any natural number.

세션 S의 임의의 i번째 패킷을 Pi라고 표현하면, 도 5의 실시예에서, 상기 세션 생성모듈(130)은 P1 내지 PN은 스킵하고, P1+1 내지 PN+M까지 저장할 수 있다.Expressing any i th packet of session S as P i , in the embodiment of FIG. 5, the session creation module 130 skips P 1 to P N and stores P 1 + 1 to P N + M. Can be.

한편, 저장되는 패킷의 개수인 M은 미리 지정된 값일 수도 있으나, 실시예에 따라서는 저장되는 페이로드의 크기 K에 의해 산출되는 값일 수도 있다. 패킷 Pi의 페이로드를 Li라고 표현하고, 페이로드 Li의 크기를 |Li|로 표현하기로 한다면, M은 |Ln+1| + |Ln+2| … + |Ln+m| >= K 바이트인 가장 작은 자연수일 수 있다.Meanwhile, M, the number of packets to be stored, may be a predetermined value, but in some embodiments, M may be a value calculated by the size K of the payload to be stored. If the payload of the packet P i is expressed as L i and the size of the payload L i is expressed as | L i |, then M is | L n + 1 | + | L n + 2 | … + | L n + m | It can be the smallest natural number> = K bytes.

한편, 스킵되는 초기 패킷의 수인 N 역시 미리 지정된 값일 수도 있으나, 실시예에 따라서는 스킵되는 페이로드의 크기 G(G는 소정의 자연수)에 의해 산출되는 값일 수 있다. 즉, N은 M은 |L1| + |L2| … + |Ln| >= G 바이트인 가장 작은 자연수일 수 있다.한편, 상기 네트워크 검사 시스템(100)은 저장되는 선행 페이로드 혹은 선행 페이로드를 포함하고 있는 패킷에 대하여 앞서 설명한 보안 검사 등을 동일한 방식에 의해 수행할 있음은 물론이다.Meanwhile, although N, the number of skipped initial packets, may also be a predetermined value, in some embodiments, it may be a value calculated by the size G (G is a predetermined natural number) of the skipped payload. N is M is | L 1 | + | L 2 | … + | L n | It may be the smallest natural number> = G bytes. Meanwhile, the network inspection system 100 may perform the aforementioned security check and the like on the packet including the preceding payload or the preceding payload stored in the same manner. Of course.

한편, 구현 예에 따라서, 상기 네트워크 검사 시스템(100)는 적어도 하나의 프로세서 및 상기 프로세서에 의해 실행되는 프로그램을 저장하는 메모리를 포함할 수 있다. 상기 프로세서는 싱글 코어 CPU혹은 멀티 코어 CPU를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치, 또는 기타 비휘발성 고체상태 메모리 장치와 같은 비휘발성 메모리를 포함할 수도 있다. 프로세서 및 기타 구성 요소에 의한 메모리로의 액세스는 메모리 컨트롤러에 의해 제어될 수 있다.In some implementations, the network inspection system 100 may include at least one processor and a memory storing a program executed by the processor. The processor may include a single core CPU or a multi core CPU. The memory may include fast random access memory and may include nonvolatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other nonvolatile solid state memory devices. Access to memory by the processor and other components may be controlled by the memory controller.

한편, 본 발명의 실시예에 따른 네트워크 검사 방법은 컴퓨터가 읽을 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.On the other hand, the network test method according to an embodiment of the present invention may be implemented in the form of computer-readable program instructions may be stored in a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored.

기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the recording medium may be those specially designed and constructed for the present invention, or may be known and available to those skilled in the software art.

컴퓨터로 읽을 수 있는 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, floppy disks, and the like. Included are hardware devices specifically configured to store and execute the same magneto-optical media and program instructions such as ROM, RAM, flash memory, and the like. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Examples of program instructions include not only machine code generated by a compiler, but also devices that process information electronically using an interpreter, for example, high-level language code that can be executed by a computer.

상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the present invention is intended for illustration, and it will be understood by those skilled in the art that the present invention may be easily modified in other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. .

Claims (26)

삭제delete 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하되,
상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는,
상기 세션을 구성하는 패킷 중 페이로드를 포함하는 최초의 페이로드 패킷을 특정하는 단계; 및
특정한 상기 세션 정보와, 상기 세션을 구성하는 패킷 중 상기 최초의 페이로드 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되,
여기서, M은 상기 최초의 페이로드 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 방법.
Receiving, by the network inspection system, a plurality of packets from the network;
Generating, by the network inspection system, a plurality of flows formed by the plurality of packets based on the received plurality of packets;
Extracting, by the network inspection system, at least one session forming flow forming a same session among the plurality of flows based on the information on the generated plurality of flows;
Specifying, by the network inspection system, session information for the session based on the extracted information about the at least one session establishment flow; And
And storing the corresponding session information and the payload of K bytes (where K is a natural number) included in the session in correspondence.
The step of storing the specific session information and a payload of K bytes (where K is a natural number) included in the session in correspondence with each other may include:
Specifying a first payload packet including a payload among the packets constituting the session; And
Associating and storing the specific session information with M subsequent packets from the first payload packet among packets constituting the session,
Wherein M is the smallest natural number whose payload size contained in the M packets from the first payload packet is equal to or larger than K bytes, where K is a natural number.
삭제delete 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하되,
상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는,
특정한 상기 세션 정보와, 상기 세션의 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되,
여기서, M은 상기 세션의 N 번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 방법.
Receiving, by the network inspection system, a plurality of packets from the network;
Generating, by the network inspection system, a plurality of flows formed by the plurality of packets based on the received plurality of packets;
Extracting, by the network inspection system, at least one session forming flow forming a same session among the plurality of flows based on the information on the generated plurality of flows;
Specifying, by the network inspection system, session information for the session based on the extracted information about the at least one session establishment flow; And
And storing the corresponding session information and the payload of K bytes (where K is a natural number) included in the session in correspondence.
The step of storing the specific session information and a payload of K bytes (where K is a natural number) included in the session in correspondence with each other may include:
Associating and storing M subsequent packets from the particular session information and the Nth packet of the session, where N is a natural number,
Wherein M is the smallest natural number whose payload size contained in M subsequent packets from the Nth packet of the session is at least K bytes, where K is a natural number.
네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계를 포함하되,
상기 특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K은 자연수)의 페이로드를 대응시켜 저장하는 단계는,
특정한 상기 세션 정보와, 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되,
여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수이며, M은 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 방법.
Receiving, by the network inspection system, a plurality of packets from the network;
Generating, by the network inspection system, a plurality of flows formed by the plurality of packets based on the received plurality of packets;
Extracting, by the network inspection system, at least one session forming flow forming a same session among the plurality of flows based on the information on the generated plurality of flows;
Specifying, by the network inspection system, session information for the session based on the extracted information about the at least one session establishment flow; And
And storing the corresponding session information and the payload of K bytes (where K is a natural number) included in the session in correspondence.
The step of storing the specific session information and a payload of K bytes (where K is a natural number) included in the session in correspondence with each other may include:
Associating and storing said specific session information with M subsequent packets from the Nth packet of said session,
Where N is the smallest natural number whose payload size contained in the N subsequent packets from the first packet of the session is at least G bytes (where G is a natural number), and M is M subsequent packets from the Nth packet of the session. A network inspection method in which the size of the payload contained in is the smallest natural number of K bytes or more, where K is a natural number.
삭제delete 네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계를 포함하되,
상기 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계는,
상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하는 네트워크 검사 방법.
Receiving, by the network inspection system, a plurality of packets from the network;
Generating, by the network inspection system, a plurality of flows formed by the plurality of packets based on the received plurality of packets;
Extracting, by the network inspection system, at least one session forming flow forming a same session among the plurality of flows based on the information on the generated plurality of flows;
Specifying, by the network inspection system, session information for the session based on the extracted information about the at least one session establishment flow; And
And storing the corresponding session information in correspondence with M packets included in the session, where M is a natural number.
The step of storing the specific session information and M packets included in the session (where M is a natural number) in association with each other may include:
And associating the specific session information with M subsequent packets from an N th packet (where N is a natural number) included in the session.
네트워크 검사 시스템이, 네트워크로부터 복수의 패킷을 수신하는 단계;
상기 네트워크 검사 시스템이, 수신된 상기 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 단계;
상기 네트워크 검사 시스템이 생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하는 단계;
상기 네트워크 검사 시스템이, 추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하는 단계; 및
특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계를 포함하되,
상기 특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 단계는,
상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하는 단계를 포함하되,
여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 방법.
Receiving, by the network inspection system, a plurality of packets from the network;
Generating, by the network inspection system, a plurality of flows formed by the plurality of packets based on the received plurality of packets;
Extracting, by the network inspection system, at least one session forming flow forming a same session among the plurality of flows based on the information on the generated plurality of flows;
Specifying, by the network inspection system, session information for the session based on the extracted information about the at least one session establishment flow; And
And storing the corresponding session information in correspondence with M packets included in the session, where M is a natural number.
The step of storing the specific session information and M packets included in the session (where M is a natural number) in association with each other may include:
Storing the specific session information in association with M subsequent packets from an Nth packet included in the session,
Where N is the smallest natural number whose payload size contained in the N subsequent packets from the first packet of the session is at least G bytes (where G is a natural number).
제2항, 제4항 또는 제5항에 있어서, 상기 네트워크 검사 방법은,
상기 네트워크 검사 시스템이, 상기 K바이트의 페이로드에 대한 보안 검사를 수행하는 단계를 더 포함하는 네트워크 검사 방법.
The network inspection method according to claim 2, 4 or 5, wherein
And performing, by the network inspection system, a security check on the K bytes of payload.
제7항 또는 제8항에 있어서, 상기 네트워크 검사 방법은,
상기 네트워크 검사 시스템이, 상기 M 개의 패킷에 대한 보안 검사를 수행하는 단계를 더 포함하는 네트워크 검사 방법.
The method of claim 7 or 8, wherein the network inspection method,
The network inspection system, further comprising performing a security check on the M packets.
제2항, 제4항, 제5항, 제7항 또는 제8항에 있어서, 상기 세션 정보는,
상기 세션을 형성하는 상기 적어도 하나의 세션 형성 플로우의 식별정보를 포함하는 것을 특징으로 하는 네트워크 검사 방법.
The method of claim 2, 4, 5, 7, or 8, wherein the session information,
And identification information of the at least one session establishment flow forming the session.
제11항에 있어서, 상기 네트워크 검사 방법은,
상기 적어도 하나의 세션 형성 플로우 각각에 대한 플로우 정보를 저장하는 단계를 더 포함하는 네트워크 검사 방법.
The method of claim 11, wherein the network inspection method,
Storing flow information for each of the at least one session establishing flow.
제12항에 있어서, 상기 네트워크 검사 방법은,
상기 네트워크 검사 시스템에 의해 저장된 패킷의 패킷 서치 요청을 수신하는 단계;
상기 패킷 서치 요청에 응답하여 상기 패킷 서치에 상응하는 세션 정보를 특정하고, 특정된 세션 정보에 기초하여 상기 패킷 서치에 상응하는 세션 형성 플로우를 특정하고, 특정된 세션 형성 플로우에 기초하여 상기 패킷 서치 요청에 상응하는 패킷을 추출하는 단계를 더 포함하는 네트워크 검사 방법.
The method of claim 12, wherein the network inspection method,
Receiving a packet search request for a packet stored by the network inspection system;
Specify session information corresponding to the packet search in response to the packet search request, specify a session formation flow corresponding to the packet search based on the specified session information, and determine the packet search based on the specified session formation flow Extracting a packet corresponding to the request.
데이터 처리장치에 설치되며 제2항, 제4항, 제5항, 제7항 또는 제8항에 기재된 방법을 수행하기 위하여 컴퓨터 판독가능 기록매체에 기록된 컴퓨터 프로그램.
A computer program installed in a data processing apparatus and recorded on a computer readable recording medium for carrying out the method of claim 2, 4, 5, 7, or 8.
삭제delete 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K는 자연수)의 페이로드를 대응시켜 저장하는 세션 생성모듈을 포함하되,
상기 세션 생성모듈은,
상기 세션을 구성하는 패킷 중 페이로드를 포함하는 최초의 페이로드 패킷을 특정하고,
특정한 상기 세션 정보와, 상기 세션을 구성하는 패킷 중 상기 최초의 페이로드 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되,
여기서, M은 상기 최초의 페이로드 패킷으로부터 M개의 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 시스템.
A flow generation module for generating a plurality of flows formed by the plurality of packets based on the plurality of packets received from a network;
Extracting at least one session forming flow that forms the same session among the plurality of flows based on the generated information about the plurality of flows,
Specify session information on the session based on the extracted information on the at least one session establishment flow,
It includes a session generation module for storing the corresponding session information and the payload of K bytes (where K is a natural number) included in the session in association with each other,
The session generation module,
Specifying a first payload packet including a payload among the packets constituting the session,
Storing the specific session information in correspondence with M subsequent packets from the first payload packet among packets constituting the session,
Wherein M is the smallest natural number whose payload size contained in the M packets from the first payload packet is at least K bytes, where K is a natural number.
삭제delete 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K는 자연수)의 페이로드를 대응시켜 저장하는 세션 생성모듈을 포함하되,
상기 세션 생성모듈은,
특정한 상기 세션 정보와, 상기 세션의 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하되,
여기서, M은 상기 세션의 N 번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 시스템.
A flow generation module for generating a plurality of flows formed by the plurality of packets based on the plurality of packets received from a network;
Extracting at least one session forming flow that forms the same session among the plurality of flows based on the generated information about the plurality of flows,
Specify session information on the session based on the extracted information on the at least one session establishment flow,
It includes a session generation module for storing the corresponding session information and the payload of K bytes (where K is a natural number) included in the session in association with each other,
The session generation module,
Store the corresponding session information in correspondence with M subsequent packets from the Nth packet of the session, where N is a natural number,
Wherein M is the smallest natural number whose payload size contained in M subsequent packets from the Nth packet of the session is at least K bytes, where K is a natural number.
네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
특정한 세션 정보와, 상기 세션에 포함된 K바이트(여기서, K는 자연수)의 페이로드를 대응시켜 저장하는 세션 생성모듈을 포함하되,
상기 세션 생성모듈은,
특정한 상기 세션 정보와, 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되,
여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수이며, M은 상기 세션의 N번째 패킷으로부터 M개의 후속 패킷에 포함된 페이로드의 크기가 K바이트(여기서, K는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 시스템.
A flow generation module for generating a plurality of flows formed by the plurality of packets based on the plurality of packets received from a network;
Extracting at least one session forming flow that forms the same session among the plurality of flows based on the generated information about the plurality of flows,
Specify session information on the session based on the extracted information on the at least one session establishment flow,
It includes a session generation module for storing the corresponding session information and the payload of K bytes (where K is a natural number) included in the session in association with each other,
The session generation module,
Storing the specific session information in association with M subsequent packets from the Nth packet of the session,
Where N is the smallest natural number whose payload size contained in the N subsequent packets from the first packet of the session is at least G bytes (where G is a natural number), and M is M subsequent packets from the Nth packet of the session. The network inspection system, which is the smallest natural number whose payload size is greater than or equal to K bytes, where K is a natural number.
삭제delete 네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 세션 생성모듈을 포함하되,
상기 세션 생성모듈은,
상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷(여기서, N은 자연수)으로부터 M개의 후속 패킷을 대응시켜 저장하는 네트워크 검사 시스템.
A flow generation module for generating a plurality of flows formed by the plurality of packets based on the plurality of packets received from a network;
Extracting at least one session forming flow that forms the same session among the plurality of flows based on the generated information about the plurality of flows,
Specify session information on the session based on the extracted information on the at least one session establishment flow,
And a session generation module for storing specific session information and M packets (where M is a natural number) included in the session in correspondence with each other.
The session generation module,
And storing M specific packets in correspondence with the specific session information from an Nth packet included in the session, where N is a natural number.
네트워크로부터 수신되는 복수의 패킷에 기초하여 상기 복수의 패킷이 형성하는 복수의 플로우를 생성하는 플로우 생성모듈;
생성된 상기 복수의 플로우에 대한 정보에 기초하여 상기 복수의 플로우 중 동일한 세션을 형성하는 적어도 하나의 세션 형성 플로우를 추출하고,
추출한 상기 적어도 하나의 세션 형성 플로우에 대한 정보에 기초하여 상기 세션에 대한 세션 정보를 특정하고,
특정한 세션 정보와, 상기 세션에 포함된 M 개의 패킷(여기서, M은 자연수)을 대응시켜 저장하는 세션 생성모듈을 포함하되,
상기 세션 생성모듈은,
상기 특정한 세션 정보와, 상기 세션에 포함된 N번째 패킷으로부터 M개의 후속 패킷을 대응시켜 저장하되,
여기서, N은 상기 세션의 최초 패킷으로부터 N개의 후속 패킷에 포함된 페이로드의 크기가 G바이트(여기서, G는 자연수) 이상인 가장 작은 자연수인 네트워크 검사 시스템.
A flow generation module for generating a plurality of flows formed by the plurality of packets based on the plurality of packets received from a network;
Extracting at least one session forming flow that forms the same session among the plurality of flows based on the generated information about the plurality of flows,
Specify session information on the session based on the extracted information on the at least one session establishment flow,
And a session generation module for storing specific session information and M packets (where M is a natural number) included in the session in correspondence with each other.
The session generation module,
Storing the specific session information and M subsequent packets from the Nth packet included in the session,
Where N is the smallest natural number whose payload size contained in the N subsequent packets from the first packet of the session is at least G bytes (where G is a natural number).
제16항, 제18항 또는 제19항에 있어서, 상기 네트워크 검사 시스템은,
상기 K바이트의 페이로드에 대해서 보안 검사를 수행하기 위한 보안 검사모듈을 더 포함하는 네트워크 검사 시스템.
The network inspection system according to claim 16, 18 or 19,
And a security check module for performing a security check on the payload of K bytes.
제21항 또는 제22항에 있어서, 상기 네트워크 검사 시스템은,
상기 M 개의 패킷에 대한 보안 검사를 수행하기 위한 보안 검사모듈을 더 포함하는 네트워크 검사 시스템.
The network inspection system according to claim 21 or 22,
And a security check module for performing a security check on the M packets.
제16항, 제18항, 제19항, 제21항 또는 제22항에 있어서, 상기 세션 정보는,
상기 세션을 형성하는 상기 적어도 하나의 세션 형성 플로우의 식별정보를 포함하는 것을 특징으로 하며,
상기 플로우 생성모듈은,
상기 세션 형성 플로우 각각에 대한 플로우 정보를 저장하는 네트워크 검사 시스템.
23. The method of claim 16, 18, 19, 21 or 22, wherein the session information,
Characterized in that it comprises identification information of the at least one session establishment flow forming the session,
The flow generation module,
A network inspection system for storing flow information for each of the session establishment flows.
제25항에 있어서, 상기 네트워크 검사 시스템은,
상기 네트워크 검사 시스템에 의해 저장된 패킷의 패킷 서치 요청을 수신하고, 상기 패킷 서치 요청에 응답하여 상기 패킷 서치에 상응하는 세션 정보를 특정하고, 특정된 세션 정보에 기초하여 상기 패킷 서치에 상응하는 세션 형성 플로우를 특정하고, 특정된 세션 형성 플로우에 기초하여 상기 패킷 서치 요청에 상응하는 패킷을 추출하는 패킷 서치 모듈을 더 포함하는 네트워크 검사 시스템.

The system of claim 25, wherein the network inspection system,
Receiving a packet search request of a packet stored by the network inspection system, specifying session information corresponding to the packet search in response to the packet search request, and establishing a session corresponding to the packet search based on the specified session information And a packet search module for specifying a flow and extracting a packet corresponding to the packet search request based on the specified session establishment flow.

KR1020180055291A 2018-05-15 2018-05-15 Method for network inspection saving packet and system performing the same KR102023777B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180055291A KR102023777B1 (en) 2018-05-15 2018-05-15 Method for network inspection saving packet and system performing the same
PCT/KR2018/013374 WO2019221346A1 (en) 2018-05-15 2018-11-06 Network inspection method performing packet storage and system for performing same
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 (en) 2018-05-15 2018-05-15 Method for network inspection saving packet and system performing the same

Publications (1)

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

Family

ID=68067637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180055291A KR102023777B1 (en) 2018-05-15 2018-05-15 Method for network inspection saving packet and system performing the same

Country Status (3)

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

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 (en) 2009-08-21 2011-03-02 삼성전자주식회사 Remote date back-up method and remote data back-up system
KR20140064149A (en) * 2012-11-19 2014-05-28 서울대학교산학협력단 Apparatus and method for traffic analysis
KR20150020375A (en) 2013-08-13 2015-02-26 장준수 Input shaft and the manufacture method for car gearbox
KR101715107B1 (en) * 2015-04-07 2017-03-27 엑사비스 주식회사 System and providing method for retroactive network inspection

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100868569B1 (en) 2007-04-05 2008-11-13 (주) 시스메이트 Network forensic apparatus and method thereof
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 (en) 2008-12-15 2010-06-24 주식회사 마하넷 Network control system and method of network control
KR101528928B1 (en) 2008-12-22 2015-06-16 주식회사 케이티 Apparatus and method for managing network traffic based on flow and session
KR101211147B1 (en) 2011-03-07 2012-12-11 주식회사 크레블 System for network inspection and providing method thereof
KR101280910B1 (en) 2011-12-15 2013-07-02 한국전자통신연구원 Two-stage intrusion detection system for high speed packet process using network processor and method thereof
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 (en) 2015-02-10 2016-12-20 엑사비스 주식회사 System and providing method for network inspection saving packet
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 (en) 2009-08-21 2011-03-02 삼성전자주식회사 Remote date back-up method and remote data back-up system
KR20140064149A (en) * 2012-11-19 2014-05-28 서울대학교산학협력단 Apparatus and method for traffic analysis
KR20150020375A (en) 2013-08-13 2015-02-26 장준수 Input shaft and the manufacture method for car gearbox
KR101715107B1 (en) * 2015-04-07 2017-03-27 엑사비스 주식회사 System and providing method for retroactive network inspection

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3717836B2 (en) Dynamic load balancer
US8817792B2 (en) Data forwarding method, data processing method, system and relevant devices
KR102050089B1 (en) System and method for network security performing adaptive rule-set setting
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 (en) Data packet analysis method and device
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 (en) System and providing method for retroactive network inspection
KR102149531B1 (en) Method for connection fingerprint generation and traceback based on netflow
KR101684456B1 (en) System and providing method for network inspection saving packet
KR102174462B1 (en) Method for network security and system performing the same
CN102035750A (en) Peer-to-peer (P2P) flow recognizing method and device
JP6783501B2 (en) Information transmission system, information communication device, information transmission device, and program
KR101211147B1 (en) System for network inspection and providing method thereof
KR102023777B1 (en) Method for network inspection saving packet and system performing the same
KR102120795B1 (en) Method for network inspection saving packet adoptively and system performing the same
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