[go: up one dir, main page]

KR100640004B1 - Session state management device and method - Google Patents

Session state management device and method Download PDF

Info

Publication number
KR100640004B1
KR100640004B1 KR1020050085591A KR20050085591A KR100640004B1 KR 100640004 B1 KR100640004 B1 KR 100640004B1 KR 1020050085591 A KR1020050085591 A KR 1020050085591A KR 20050085591 A KR20050085591 A KR 20050085591A KR 100640004 B1 KR100640004 B1 KR 100640004B1
Authority
KR
South Korea
Prior art keywords
session
packet
index
entry
information
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020050085591A
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 US11/298,114 priority Critical patent/US7818786B2/en
Application granted granted Critical
Publication of KR100640004B1 publication Critical patent/KR100640004B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L2001/125Arrangements for preventing errors in the return channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service

Landscapes

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

Abstract

본 발명은 세션 상태 관리 장치 및 그 방법에 관한 것으로서, TCP 핸드쉐이킹 과정에서, 입력 패킷이 해당하는 세션의 5 튜플 정보를 포함한 인덱스를 생성 또는 관리하는 세션 인덱스부, 세션의 연결 성립 전후 소정 시간 이내의 세션에 대하여, 인덱스 생성시 입력 패킷에서 침입 탐지에 대응하기 위한 세션의 상태 정보를 추출하여 엔트리를 생성, 관리하는 상세 정보 관리부, 세션의 연결 성립 후 소정 시간 경과 후의 세션에 대하여, 입력 패킷이 해당하는 세션의 연결, 종료 상태 정보 및 입력 패킷의 방향성 정보를 포함한 세션 상태 정보를 지닌 엔트리를 생성, 관리하는 요약 정보 관리부, 및 입력 TCP 패킷이 해당하는 세션의 인덱스가 세션 인덱스부에 존재하는지 검색하고 인덱스가 존재하지 않는 경우 세션의 연결 성립 후에는 요약 정보 관리부를 검색하는 검색부를 포함한다. 이로써, 기가급 인터넷 환경에서도 적은 리소스를 이용하여 보다 정확하게 공격을 탐지해 내는 효과가 있다.The present invention relates to an apparatus and method for managing a session state, comprising: a session index unit for generating or managing an index including 5 tuple information of a session corresponding to an input packet within a TCP handshaking process, within a predetermined time before and after establishing a connection of a session A detailed information management unit which extracts state information of a session corresponding to intrusion detection from an input packet when generating an index and creates and manages an entry for the session of the index, and a session after a predetermined time has elapsed after the session is established. A summary information management unit for generating and managing an entry having session state information including connection, termination state information of the corresponding session, and directional information of the input packet, and searching whether the index of the session corresponding to the input TCP packet exists in the session index unit. If the index does not exist, the summary information manager It comprises a search unit of the color. As a result, even in a giga Internet environment, there is an effect of detecting an attack more accurately using less resources.

Description

세션 상태 관리 장치 및 그 방법{Apparatus and Method for managing Session State}Apparatus and Method for managing Session State

도 1 은 본 발명의 바람직한 일 실시예로서, 세션 상태 기반의 침입탐지 구조도를 도시한다. 1 is a block diagram of an intrusion detection structure based on session state according to an embodiment of the present invention.

도 2 는 세션 상태 관리 장치를 도시한다. 2 shows a session state management apparatus.

도 3 은 본 발명의 세션 상태 관리 장치 및 그 방법에 있어서 2-단계 세션 상태정보를 관리 기법을 도시한다.3 illustrates a method for managing two-step session state information in the apparatus and method for managing session state of the present invention.

도 4 는 도 2 및 도 3의 상세 정보 관리부에 저장된 상세한 세션 상태 정보의 일 실시예를 도시한다. 4 illustrates an embodiment of detailed session state information stored in the detailed information management unit of FIGS. 2 and 3.

도 5 는 도 2 및 도 3의 요약 정보 관리부에 저장된 간략한 세션 상태 정보의 일 실시예를 도시한다. FIG. 5 illustrates one embodiment of brief session state information stored in the summary information management unit of FIGS. 2 and 3.

도 6 은 DoS 공격에 대한 방어 메커니즘을 제공하기 위한 상세 정보 관리부의 메모리 관리 기법을 도시한다. 6 illustrates a memory management scheme of a detail information management unit to provide a defense mechanism against a DoS attack.

도 7 은 본 발명의 바람직한 일 실시예에 따른 상세 정보 관리부의 구조를 도시한다. 7 illustrates a structure of a detailed information management unit according to an exemplary embodiment of the present invention.

도 8 은 본 발명의 바람직한 일 실시예로서, 상세 정보 관리부에서 자체 공격 탐지 기능의 일환으로서 TTL Tracking 하는 과정을 도시한다. FIG. 8 illustrates a process of performing TTL tracking as a part of a self attack detection function in a detailed information management unit according to an embodiment of the present invention.

도 9 는 본 발명의 바람직한 일 실시예로서, 상세 정보 관리부에서 자체 공격 탐지 기능의 일환으로서 Sequence/Acknowledge Number Tracking 하는 과정을 도시한다.FIG. 9 illustrates a process of Sequence / Acknowledge Number Tracking as a part of a self attack detection function in a detailed information management unit according to an embodiment of the present invention.

도 10 은 본 발명의 바람직한 일 실시예로서, SYN 패킷의 처리 흐름도를 도시한다. 10 is a flowchart illustrating the processing of a SYN packet according to a preferred embodiment of the present invention.

도 11 은 본 발명의 바람직한 일 실시예로서, SYN/ACK 패킷의 처리 흐름도를 도시한다. 11 shows a flowchart of processing of a SYN / ACK packet according to a preferred embodiment of the present invention.

도 12 는 본 발명의 바람직한 일 실시예로서, ACK 패킷의 처리 흐름도를 도시한다. 12 is a flowchart illustrating the processing of an ACK packet as a preferred embodiment of the present invention.

도 13 은 본 발명의 바람직한 일 실시예로서, RST 패킷의 처리 흐름도를 도시한다. 13 is a flowchart showing the processing of an RST packet as one preferred embodiment of the present invention.

도 14 는 본 발명의 바람직한 일 실시예로서, FIN 패킷의 처리 흐름도를 도시한다. 14 is a flowchart illustrating the processing of an FIN packet as one preferred embodiment of the present invention.

도 15 는 본 발명의 바람직한 일 실시예로서, 도 10에서 도 14에 도시되지 않은 다른 패킷의 처리 흐름도를 도시한다. FIG. 15 shows a flowchart of processing of another packet not shown in FIG. 10 in FIG. 10 as a preferred embodiment of the present invention.

본 발명은 상태 기반 패킷 검사(Stateful Packet Inspection, 이하, "SPI")를 위한 세션 상태 관리 장치 및 그 방법에 관한 것이다. The present invention relates to an apparatus and method for managing session state for stateful packet inspection (hereinafter referred to as "SPI").

한 시점에 하나의 패킷을 기준으로 침입여부를 판단하는 종래의 침입탐지 시스템(Stateless Analysis System)은 "Stick" 이나 "Snot"과 같은 침입탐지 시스템 회피 공격 툴(IDS Evasion Tool) 로 인하여 거짓 경보(False Positive Alert)를 생성한다. The conventional stateless analysis system, which determines whether an intrusion is based on one packet at a time, is a false alarm (IDS Evasion Tool) due to an intrusion detection system evasion tool such as "Stick" or "Snot". False positive alert).

이러한 문제점을 해결하기 위하여 SPI와 같은 세션 상태 기반의 침입 탐지 기법이 개발되었다. 그러나, 새롭게 개발된 세션 상태 기반의 침입 탐지 기법을 이용하여 보다 효과적인 침입탐지를 위하여 세션 상태 추적(Session State Tracking) 기능을 활성화하여 침입 탐지 기능을 수행할 경우, 현재 개발된 대부분의 제품은 기가급 네트워크 환경으로 급격하게 변화하고 있는 인터넷망 하에서 급격한 성능 저하로 의도한 본래의 기능을 수행하지 못하는 문제점을 지니고 있다. To solve this problem, session state based intrusion detection techniques such as SPI have been developed. However, when intrusion detection is performed by enabling session state tracking for more effective intrusion detection using the newly developed session state-based intrusion detection technique, most of the currently developed products are giga-class. Under the Internet network which is rapidly changing to the network environment, there is a problem that the original function cannot be performed due to the sudden decrease in performance.

따라서 현재 개발된 상태기반 침입 탐지 기법들을 이용하는 시스템은 급격하게 발전하는 인터넷망의 진화 속도를 따를 수 있는 성능 향상이 요구된다. 이를 위하여 기존의 대부분의 소프트웨어 기반의 제품은 하드웨어 기반의 제품으로 변화하는 추세이다. Therefore, the system using the state-based intrusion detection techniques currently developed is required to improve the performance to keep pace with the rapidly evolving Internet network. To this end, most existing software-based products are changing to hardware-based products.

더불어, 하드웨어 기반으로 개발된 제품이라 할지라도 기가급 네트워크 환경으로 급변하는 인터넷망에서 성능을 제대로 발휘하기 위하여 상태기반 침입 탐지 기법은 수십만에서 수백만 개에 달하는 세션들의 정보를 유지 관리, 리소스의 부족 해결, 기가급 네트워크 인터넷망에서 효율적 성능의 발휘를 충족시켜야 하는 과제를 지니고 있다. In addition, even if the product is developed based on hardware, the state-based intrusion detection technique maintains information of hundreds of thousands to millions of sessions and solves resource shortages in order to perform properly in the rapidly changing Internet network. The challenge is to meet the performance of efficient performance in the giga-level network and the Internet.

뿐만 아니라, 세션 상태 기반 침입탐지 시스템은 세션들의 정보를 유지 관리 하므로 근본적으로 SYN 플러딩(SYN Flooding)과 같은 DoS(Denial of Service)공격에 취약하다. 이를 해결하기 위하여 Syn Cache, Syn Cookies, SynDefender, Syn proxying, Synkill 등 다양한 기법들이 제안되고 있으나 해결에 있어 여전히 상당한 어려움을 지니고 있다. In addition, the session state-based intrusion detection system maintains the information of the sessions and is therefore essentially vulnerable to Denial of Service (DoS) attacks such as SYN Flooding. To solve this problem, various techniques such as Syn Cache, Syn Cookies, SynDefender, Syn proxying, and Synkill have been proposed, but there are still considerable difficulties in the solution.

상기와 같은 문제점을 해결하기 위하여, 본 발명의 세션 상태 관리 장치 및 그 방법은 종래의 침입탐지 시스템(Stateless Analysis System)의 침입 경보의 오탐률을 줄이고, 기존의 세션 상태 기반 시스템 활성화시 급격한 시스템의 성능 저하로 인하여 본래의 기능을 수행하지 못하던 문제점을 극복함으로써 효율적인 세션 관리, 메모리 관리 및 Dos 공격에 대한 방어 메커니즘을 제공하기 위한 것이다. In order to solve the above problems, the session state management apparatus and method of the present invention reduces the false alarm rate of the intrusion alarm of the conventional stateless analysis system, the rapid system of activation of the existing session state-based system This is to provide efficient session management, memory management, and defense mechanism against Dos attack by overcoming the problem of inability to perform its original functions due to performance degradation.

본 발명의 바람직한 일 실시예로서, TCP 핸드쉐이킹 과정에 있어서, 세션 상태를 관리하는 장치는 입력 패킷이 해당하는 세션의 5 튜플 정보를 포함한 인덱스를 생성 또는 관리하는 세션 인덱스부; 세션의 연결 성립 전후 소정 시간 이내의 세션에 대하여, 상기 인덱스 생성시 상기 입력 패킷에서 침입 탐지에 대응하기 위한 세션의 상태 정보를 추출하여 엔트리를 생성, 관리하는 상세 정보 관리부; 세션의 연결 성립 후 소정 시간 경과 후의 세션에 대하여, 상기 입력 패킷이 해당하는 세션의 연결, 종료 상태 및 패킷의 방향성 정보를 포함한 엔트리를 생성, 관리하는 요약 정보 관리부; 및 입력 TCP 패킷이 해당하는 세션의 인덱스가 상기 세션 인덱스부에 존재하는지 검색하고 상기 인덱스가 존재하지 않는 경우 세션의 연결 성립 후에는 상기 요약 정보 관리부를 검색하는 검색부;를 포함하는 것을 특징으로 한다. In a preferred embodiment of the present invention, in the TCP handshaking process, the apparatus for managing session state includes a session index unit for generating or managing an index including 5-tuple information of a session corresponding to an input packet; A detailed information manager configured to generate and manage an entry by extracting state information of a session corresponding to intrusion detection from the input packet when generating the index, for a session within a predetermined time before and after establishing a connection of the session; A summary information manager for generating and managing an entry including a connection, an end state, and directional information of a packet corresponding to the input packet, for a session after a predetermined time elapses after the connection is established; And a search unit for searching whether an index of a session corresponding to an input TCP packet exists in the session index unit and searching for the summary information manager after connection establishment of the session if the index does not exist. .

또한, 상기 세션 상태를 관리하는 장치에서 상기 상세 정보 관리부는 초기 링크드 리스트 생성단계, TCP 3-way 핸드쉐이킹 과정에 있어서 SYN 패킷을 수신 단계, SYN/ACK 패킷 전송 단계, ACK 패킷을 수신 단계별로 각각의 링크드 리스트를 생성하고, 상기 각각의 패킷 수신시 상기 패킷에 해당하는 단계의 상기 링크드 리스트의 테일에 상기 엔트리를 추가하고, 상기 엔트리가 상기 링크드 리스트에 추가되는 시간이 소정의 기설정된 임계값을 초과하는 경우, 상기 엔트리를 상기 초기 링크드 리스트의 테일부분에 삽입하는 것을 특징으로 한다. Further, in the apparatus for managing the session state, the detailed information management unit receives an SYN packet in an initial linked list generation step, a TCP 3-way handshaking step, a SYN / ACK packet transmission step, and an ACK packet reception step, respectively. Generate a linked list, add the entry to the tail of the linked list in the step corresponding to the packet upon receipt of each packet, and time for the entry to be added to the linked list is a predetermined threshold. If exceeded, the entry is added to the tail portion of the initial linked list. It is characterized by inserting.

세션 인덱스부는 상기 인덱스를 순차로 저장하고 상기 세션 인덱스부가 풀(FULL)인 경우, 가장 오래 사용된 인덱스부터 삭제하는 LRU 알고리듬이 적용되는 것을 특징으로 한다. The session index unit sequentially stores the index, and when the session index unit is full, an LRU algorithm for deleting the oldest index is applied.

상세 정보 관리부는 상기 엔트리를 순차로 저장하고 상기 상세 정보 관리부가 풀(FULL)인 경우, 가장 오래 사용된 엔트리부터 삭제하는 LRU 알고리듬이 적용되는 것을 특징으로 한다. The detailed information manager stores the entries sequentially, and when the detailed information manager is FULL, an LRU algorithm for deleting the oldest entries is applied.

또한, 본 발명의 바람직한 일 실시예에서 세션 상태를 관리하는 장치는 세션의 연결이 성립되면, 세션에 속한 패킷이 정상인지 여부를 판단하기 위하여 현재 패킷의 TTL 값과 이전 패킷의 TTL 값의 차가 기설정된 임계치를 초과할 경우 경보를 발생하는 TTL 추적 경보부;를 더 포함하는 것을 특징으로 한다. In addition, in an exemplary embodiment of the present invention, when the session connection is established, the apparatus for managing the session state may have a difference between a TTL value of a current packet and a TTL value of a previous packet in order to determine whether a packet belonging to the session is normal. Characterized in that it further comprises; TTL tracking alarm unit for generating an alarm when the set threshold is exceeded.

또한, 본 발명의 바람직한 일 실시예에서 세션 상태를 관리하는 장치는 상기 입력 패킷의 최후 ACK 번호보다 상기 입력 패킷 수신 후 전송한 패킷의 시퀀스 번호가 작은 경우 또는 상기 시퀀스 번호와 페이로드 크기를 합한 값에서 최후 ACK 번호를 뺀 값이 윈도우 크기보다 큰 경우 경보를 발생하는 SEQ/ACK 번호 추적 경보부;를 더 포함하는 것을 특징으로 한다. In addition, according to an embodiment of the present invention, the apparatus for managing session state may include a case in which the sequence number of a packet transmitted after receiving the input packet is smaller than the last ACK number of the input packet or the sum of the sequence number and the payload size. And a SEQ / ACK number tracking alert for generating an alert when the value obtained by subtracting the last ACK number is greater than the window size.

본 발명의 또 다른 바람직한 일 실시예에서, TCP 핸드쉐이킹 과정에 있어서, 세션 상태 관리 방법은 (a) 입력 패킷이 해당하는 세션의 5 튜플 정보를 포함한 인덱스를 생성 또는 관리하여 인덱스 테이블을 구축하는 단계; (b) 세션의 연결 성립 전후 소정 시간 이내의 세션에 대하여, 상기 인덱스 생성시 상기 입력 패킷에서 침입 탐지에 대응하기 위한 세션의 상태 정보를 추출하여 엔트리를 생성, 관리하여 제 1 엔트리 테이블을 생성하는 단계; (c) 세션의 연결 성립 후 소정 시간 경과 후의 세션에 대하여, 상기 입력 패킷이 해당하는 세션의 연결, 종료 상태 정보및 패킷의 방향성 정보를 포함한 엔트리를 생성, 관리하여 제 2 엔트리 테이블을 생성하는 단계; 및 (d) 입력 TCP 패킷이 해당하는 세션의 인덱스가 상기 인덱스 테이블에 존재하는지 검색하고 상기 인덱스가 존재하지 않는 경우 세션의 연결 성립 후에는 상기 제 2 엔트리 테이블을 검색하는 단계;를 포함하는 것을 특징으로 한다. In another preferred embodiment of the present invention, in the TCP handshaking process, the session state management method includes the steps of: (a) creating an index table by creating or managing an index including 5-tuple information of a session corresponding to an input packet; ; (b) generating a first entry table by extracting state information of a session for responding to intrusion detection from the input packet when generating the index, for a session within a predetermined time before and after establishing a connection of the session; step; (c) generating a second entry table by generating and managing an entry in which the input packet includes connection, termination state information, and directionality information of the corresponding packet, for a session after a predetermined time elapses after the connection is established; ; And (d) searching whether an input TCP packet has an index of the corresponding session in the index table, and if the index does not exist, searching the second entry table after establishing a session. It is done.

이하 본 발명의 바람직한 실시예가 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. It should be noted that the same elements among the drawings are denoted by the same reference numerals and symbols as much as possible even though they are shown in different drawings.

하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구 체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.In the following description of the present invention, detailed descriptions of related known functions or configurations will be omitted when it is determined that the detailed description may unnecessarily obscure the subject matter of the present invention.

도 1 은 본 발명의 바람직한 일 실시예로서, 세션 상태 기반의 침입탐지 구조도를 도시한다. 1 is a block diagram of an intrusion detection structure based on session state according to an embodiment of the present invention.

세션 상태 기반의 침입탐지 시스템은 IP De-fragmentation 모듈(110), 패킷 파서(packet parser, 120), 상태 관리부(130), 상태 정보 생성부(140) , 패킷 포워딩부(150), TCP 재조합부(160), 경보 생성부, 침입탐지부(101), 경보 생성부, 경보 관리부, 침입 대응부(102)를 포함한다. Intrusion detection system based on session state includes IP De-fragmentation module 110, packet parser 120, state management unit 130, state information generation unit 140, packet forwarding unit 150, and TCP recombination unit. 160, an alarm generator, an intrusion detector 101, an alarm generator, an alarm manager, and an intrusion counterpart 102.

패킷이 입력되면, IP De-fragmentation 모듈(110)을 거쳐 IP 패킷을 재조합한 후 패킷 파서(packet parser, 120)에서 패킷의 헤더 정보 중 빈번하게 사용되는 Sequence number, Acknowledge number, window size, TCP Flags 등의 정보를 추출한다.When the packet is input, the IP packet is reassembled through the IP De-fragmentation module 110 and the packet parser 120 frequently uses sequence number, acknowledge number, window size, and TCP flags in the packet header information. Extract information such as

상태 관리부(130)는 입력 패킷이 해당하는 세션을 생성, 관리, 삭제하는 기능을 수행한다. 이를 위하여, 상태 관리자(130)는 2-단계 상태 테이블 관리 기법을 이용하여 적은 리소스를 사용하면서 수십에서 수백만 개의 세션을 효율적으로 관리하고, 메모리 관리를 통하여 Dos 공격에 대응한다. 이에 대하여서는, 후에 보다 상세히 서술하기로 한다. The state manager 130 performs a function of creating, managing, and deleting a session corresponding to an input packet. To this end, the state manager 130 efficiently manages tens to millions of sessions while using less resources using a two-stage state table management technique, and responds to Dos attacks through memory management. This will be described later in more detail.

상태 정보 생성부(140)는 상태 관리부(130)의 2-단계 상태 테이블을 통해 관리되는 입력 패킷에 해당하는 세션의 상태 정보를 생성하고, 이 정보를 침입탐지부(101)에 전달한다. The state information generation unit 140 generates state information of a session corresponding to an input packet managed through a two-stage state table of the state management unit 130, and transmits this information to the intrusion detection unit 101.

패킷 포워딩부(150)는 상태 정보 생성부(140)를 통해 세션의 상태 정보를 침입탐지부(101)에 전달한다. The packet forwarding unit 150 transmits the state information of the session to the intrusion detecting unit 101 through the state information generating unit 140.

TCP 재조합부(160)는 상태 관리부(130)에서 전달된 패킷 정보와 상태 정보 생성부(140)에서 전달된 세션의 상태정보를 이용하여 TCP 패킷을 재조합한 후 패킷 포워딩부(150)를 통하여 이를 침입탐지부(101)에 전달한다. The TCP recombination unit 160 reassembles the TCP packet using the packet information transmitted from the state management unit 130 and the state information of the session transmitted from the state information generation unit 140, and then recombines the TCP packet through the packet forwarding unit 150. Transfer to intrusion detection unit 101.

침입탐지부(101)는 상태 정보 생성부(140), 패킷 포워딩부(150)로부터 수신한 정보를 기초로 침입 탐지 기능을 수행한다. The intrusion detection unit 101 performs an intrusion detection function based on the information received from the state information generation unit 140 and the packet forwarding unit 150.

상태 관리부(130)는 TCP 핸드쉐이킹 동안 세션의 상태정보를 추적하여 비정상 상태로 전이(transition)되는 패킷에 대해 경보를 발생하고, 침입 대응부(102)에서 해당 공격에 대한 대응을 수행한다. The state manager 130 tracks state information of the session during TCP handshaking to generate an alert for a packet that is transitioned to an abnormal state, and the intrusion counterpart 102 responds to the attack.

도 2 는 세션 상태 관리 장치를 도시한다. 2 shows a session state management apparatus.

세션 상태 관리 장치(200)는 세션 인덱스부(210), 상세 정보 관리부(220), 요약 정보 관리부(230), 검색부(240), 갱신부(250)를 포함한다. The session state management apparatus 200 includes a session index unit 210, a detailed information manager 220, a summary information manager 230, a searcher 240, and an updater 250.

TCP 상에서의 공격은 TCP 3-way 핸드쉐이킹이 이루어진 직 후, 수 초 안에 공격이 이루어진다. 따라서, 본 발명의 세션 상태 관리 장치에서는 아직 TCP 3-way 핸드쉐이킹이 이루어지고 있는 세션과 세션 연결이 성립된 후 시간이 오래 경과하지 않은 세션은 보다 상세하고 많은 상태 정보를 관리하고, 세션 연결이 성립된 후 비교적 시간이 오래 경과한 세션에 대하여서는 간략한 세션의 상태 정보만을 관리함으로써 상대적으로 적은 리소스로 많은 세션의 상태 정보를 관리하게 된다. 보다 구체화된 구성으로 살펴보면 다음과 같다. Attacks on TCP occur within seconds after TCP 3-way handshaking is performed. Accordingly, in the session state management apparatus of the present invention, a session in which TCP 3-way handshaking is still performed and a session that has not elapsed long time after establishing a session connection manage more detailed and more state information, For sessions that have elapsed since the establishment of time, only state information of brief sessions is managed, so that the state information of many sessions is managed with relatively few resources. Looking at a more detailed configuration as follows.

세션 인덱스부(210)는 입력 패킷이 해당하는 세션의 5 튜플(5-Tuple) 정보(프로토콜, 소스 IP 주소, 목적지 IP 주소, 소스 포트번호, 목적지 포트번호)를 포함한 인덱스를 생성 또는 관리한다. The session index unit 210 generates or manages an index including 5-tuple information (protocol, source IP address, destination IP address, source port number, and destination port number) of a session corresponding to the input packet.

인덱스는 입력 패킷에 대응하는 세션의 상태정보가 상세 정보 관리부(220) 및/또는 요약 정보 관리부(230)에 저장된 엔트리의 주소를 포인트 한다. The index points to an address of an entry in which state information of a session corresponding to an input packet is stored in the detailed information manager 220 and / or the summary information manager 230.

상세 정보 관리부(220)는 세션의 연결 성립 전후 소정 시간 이내의 세션에 대하여, 상기 인덱스 생성시 상기 입력 패킷에서 침입 탐지에 대응하기 위한 세션의 상태 정보를 추출하여 엔트리를 생성, 관리한다.The detailed information management unit 220 generates and manages an entry for a session within a predetermined time before and after establishing a connection, by extracting state information of a session corresponding to intrusion detection from the input packet when generating the index.

상세 정보 관리부(220)는 아직 TCP 3-way 핸드쉐이킹이 이루어지고 있는 세션과 세션 연결이 성립된 후 시간이 오래 경과하지 않은 세션은 보다 상세하고 많은 상태 정보를 관리함으로써, TCP 공격에 대응한다. 상세 정보 관리부(220)의 바람직한 일 실시예는 도 4에 도시되었다. The detailed information management unit 220 responds to the TCP attack by managing more detailed and more state information for the session which has not yet elapsed time since the session and the session connection established with the TCP 3-way handshaking are established. One preferred embodiment of the detail information management unit 220 is shown in FIG.

요약 정보 관리부(230)는 세션의 연결 성립 후 소정 시간 경과 후의 세션에 대하여, 상기 입력 패킷이 해당하는 세션의 연결, 종료 상태 정보 및 패킷의 방향성 정보를 포함한 엔트리를 생성, 관리한다. The summary information manager 230 generates and manages an entry including the connection, the termination status information, and the directional information of the packet corresponding to the input packet for the session after a predetermined time elapses after the connection is established.

요약 정보 관리부(230)는 세션 연결이 성립된 후 비교적 시간이 오래 경과한 세션에 대하여서는 간략한 세션의 상태 정보만을 생성, 관리함으로써 메모리 리소스를 상당히 감소시키면서 다수의 세션의 상태 정보를 제공할 수 있다. 요약 정보 관리부(230)의 바람직한 일 실시예는 도 5에 도시되었다. The summary information manager 230 may provide the state information of a plurality of sessions while significantly reducing memory resources by generating and managing only the state information of a brief session for sessions that have elapsed since the session connection is established. . One preferred embodiment of the summary information manager 230 is illustrated in FIG. 5.

검색부(240)는 입력 TCP 패킷이 해당하는 세션의 인덱스가 상기 세션 인덱스 부(210)에 존재하는지 검색하고 상기 인덱스가 존재하지 않는 경우 세션의 연결 성립 후에는 상기 요약 정보 관리부(230)를 검색한다. The search unit 240 searches whether the session index corresponding to the input TCP packet exists in the session index unit 210. If the index does not exist, the search unit 240 searches the summary information manager 230 after the connection is established. do.

세션의 연결을 요청하는 SYN 패킷 입력시 검색부(240)에서 이에 대응하는 세션의 인덱스를 검색할 수 없는 경우, 세션 인덱스부(210)는 새로운 인덱스 생성시 세션 인덱스부(210)가 풀(Full)인지 여부를 확인한 후 세션 인덱스부(210)가 풀(Full)인 경우 LRU(Least Recently Used) 알고리듬을 이용하여 가장 오래 사용된 인덱스를 삭제하고, 세션의 5-튜플 정보를 포함한 새로운 인덱스를 생성한다. 보다 상세한 설명은 도 6에서 후술하기로 한다. When the search unit 240 cannot search the index of the corresponding session when inputting a SYN packet requesting connection of a session, the session index unit 210 pulls the session index unit 210 when creating a new index. If the session index unit 210 is full, delete the oldest index using the LRU (Least Recently Used) algorithm, and create a new index including 5-tuple information of the session. do. A more detailed description will be described later with reference to FIG. 6.

검색부(240)에서 세션의 연결 성립 후에 입력 TCP 패킷에 해당하는 세션 인덱스가 존재하지 않는 경우에는 요약 정보 관리부(230)를 검색한다. 이 때, 인덱스는 세션의 5 튜플 정보를 기초로 생성된 해쉬 어드레스를 이용하여 상기 입력 패킷에 대응하는 요약 정보 관리부(230) 내의 엔트리를 포인트 한다. 그로써 요약 정보 관리부(230) 내의 엔트리를 보다 빠르게 검색할 수 있다. If the session index corresponding to the input TCP packet does not exist after the connection of the session is established in the searcher 240, the searcher 240 searches the summary information manager 230. At this time, the index points to an entry in the summary information manager 230 corresponding to the input packet by using a hash address generated based on the 5-tuple information of the session. As a result, the entry in the summary information manager 230 may be searched more quickly.

해쉬 어드레스는 입력 패킷이 해당하는 세션의 5 튜플 정보를 키(Key)로 하여 해쉬 키 생성기(Hash Key Generator, 도 3 참고)에서 생성된다. The hash address is generated by a hash key generator (see FIG. 3) using 5 tuple information of a session corresponding to an input packet as a key.

갱신부(250)는 검색부(240)에서 검색결과 입력 TCP 패킷이 해당하는 세션의 인덱스가 상기 세션 인덱스부에 존재하는 경우 인덱스가 포인트 하는 상기 상세 정보 관리부의 엔트리를 갱신한다. The updater 250 updates the entry of the detailed information manager, which the index points to, when the index of the session corresponding to the search result input TCP packet exists in the session index part.

갱신부(250)는 SYN(Synchronize Sequence number)패킷에 대한 응답으로 SYN/ACK 패킷이 들어오면, 세션 인덱스부(210)를 검색하고, 검색 결과 인덱스가 검 색되면 인덱스가 포인트 하고 있는 상세 정보 관리부(220)를 갱신한다. 다만, SYN/ACK 패킷 수신시, 상기 세션 인덱스부(210) 내에서 인덱스가 검색되지 않는 경우, 이는 SYN 패킷의 전송이 없었음에도 수신된 비정상 패킷이므로, 경보를 발생한다.The update unit 250 searches for the session index unit 210 when a SYN / ACK packet is received in response to a SYN (Synchronize Sequence Number) packet, and when the search result index is searched, the detailed information management unit that the index points to. Update 220. However, when the index is not searched in the session index unit 210 when the SYN / ACK packet is received, an alarm is generated because it is an abnormal packet received even though no SYN packet was transmitted.

도 3 은 본 발명의 세션 상태 관리 장치 및 그 방법에 있어서 2-단계로 세션 상태정보를 관리 기법을 도시한다.3 illustrates a method for managing session state information in two steps in the apparatus and method for managing session state of the present invention.

바람직한 실시예로서, TCP 3-way 핸드쉐이킹 과정에 따라 세션 관리 장치에서 2-단계로 세션 상태정보를 관리하는 기법은 다음과 같다. TCP 세션 요청을 하는 SYN 패킷이 들어오면, 세션 인덱스부(310)에서는 세션의 5-튜플 정보를 포함하는 인덱스를 생성한다. 이렇게 생성된 인덱스는 특정 패킷에 대하여 상세 정보 관리부(320) 또는 요약 정보관리부(330)에서 입력 패킷에 해당하는 세션을 검색하기 위하여 이용된다. As a preferred embodiment, a technique for managing session state information in a two-step process in the session management device according to the TCP 3-way handshaking process is as follows. When a SYN packet for requesting a TCP session comes in, the session index unit 310 generates an index including 5-tuple information of the session. The index generated in this way is used by the detailed information manager 320 or the summary information manager 330 to search for a session corresponding to an input packet with respect to a specific packet.

인덱스 생성시, 입력 패킷의 각 필드에서 추출된 세션 상태의 상세한 정보들이 상세 정보 관리부(320)에 채워진다. When the index is generated, detailed information of the session state extracted from each field of the input packet is filled in the detailed information manager 320.

그 후, SYN 패킷에 대한 응답으로 SYN/ACK 패킷이 들어오면 검색부(도2, 240)에서 세션 인덱스부(310)를 검색하고, 입력 패킷에 해당하는 세션의 인덱스가 존재하는 경우 갱신부(도 2, 250)는 상세 정보 관리부(320)를 갱신한다. Thereafter, when a SYN / ACK packet is received in response to the SYN packet, the search unit (FIG. 2, 240) searches for the session index unit 310, and if there is an index of the session corresponding to the input packet, the update unit ( 2 and 250 update the detailed information management unit 320.

그 후 SYN/ACK 패킷에 대한 응답으로 전송한 패킷이 잘 도착 되었음을 알리는 ACK(Acknowledgement) 패킷이 들어오면, 검색부(240)는 세션 인덱스부(310)를 검색하고, 입력 패킷에 해당하는 세션의 인덱스가 존재하는 경우 갱신부(250)는 상 세 정보 관리부(320)를 갱신하고, 요약 정보 관리부(340) 내의 해쉬 테이블에 세션의 간략한 상태 정보를 포함한 엔트리를 생성한다. Then, when an acknowledgment (ACK) packet indicating that the packet transmitted in response to the SYN / ACK packet arrives, the search unit 240 searches for the session index unit 310, and the session corresponding to the input packet of the session is received. If there is an index, the updater 250 updates the detailed information manager 320 and generates an entry including brief state information of the session in a hash table in the summary information manager 340.

해쉬 키 생성기(330)는 인덱스 내에 포함된 세션 5-튜플 정보를 기초로 해쉬 어드레스를 생성하고, 해쉬 어드레스는 요약 정보 관리부(340) 내의 입력 세션이 해당하는 엔트리를 포인트 한다. The hash key generator 330 generates a hash address based on the session 5-tuple information included in the index, and the hash address points to an entry corresponding to an input session in the summary information manager 340.

도 4 는 도 2 및 도 3의 상세 정보 관리부에 저장된 상세한 세션 상태 정보의 일 실시예를 도시한다. 4 illustrates an embodiment of detailed session state information stored in the detailed information management unit of FIGS. 2 and 3.

상세 정보 관리부(220)에 저장되는 세션의 상세한 상태 정보는 침입 탐지에 대응하기 위한 세션의 상태 정보로서, 세션의 연결 상태를 보다 정확하게 판단하기 위한 정보들이다. 즉, 입력 패킷이 정상인지 여부를 판단하기 위하여, 패킷의 필드를 검사하고 추적하기 위한 정보이다. Detailed state information of the session stored in the detailed information manager 220 is state information of a session corresponding to intrusion detection, and is information for more accurately determining a connection state of the session. That is, information for inspecting and tracking the field of the packet to determine whether the input packet is normal.

이를 위하여, 상세 정보 관리부(220)에 저장되는 침입 탐지에 대응하기 위한 세션의 상태 정보로는 클라이언트 상태(Client State)정보, 서버 상태(Server State) 정보, 응용 프로토콜 레벨에서 상태 추적을 위해 확장 가능한 커넥션 상태(Connection State) 정보, 및 도 7 및 도 8에서 일 실시예로 도시된 것과 같은 TTL Tracking 정보, Seq/Ack Number Tracking 을 위한 비정상 패킷 탐지를 위한 정보 등 그 외 필요한 다수의 정보 등이 있다.To this end, as the state information of the session corresponding to the intrusion detection stored in the detailed information management unit 220, client state information, server state information, scalable for state tracking at the application protocol level Connection state information, TTL tracking information as shown in one embodiment in FIGS. 7 and 8, information for abnormal packet detection for Seq / Ack Number Tracking, and other necessary information. .

도 5는 도 2 및 도 3의 요약 정보 관리부에 저장된 간략한 세션 상태 정보의 일 실시예를 도시한다. FIG. 5 illustrates one embodiment of brief session state information stored in the summary information management unit of FIGS. 2 and 3.

요약 정보 관리부(230)에 저장되는 세션의 간략화된 상태 정보는 TCP 공격과 같은 침입 탐지에 있어서, 이용되는 정보 중 가장 핵심이 되는 상태 정보만을 최소화한 정보이다. The simplified state information of the session stored in the summary information management unit 230 is information that minimizes only state information, which is the core of information used in intrusion detection such as a TCP attack.

이러한 세션의 간략화된 상태 정보의 일 예로서, 입력된 패킷이 현재 연결된 세션인지 여부를 표시하는 세션의 연결, 종료 상태 정보 및 패킷의 방향성 정보 등이 있다.As an example of the simplified state information of the session, there is a connection of the session indicating whether the input packet is a currently connected session, termination state information, and directional information of the packet.

또 다른 일 예로서는, 요약 정보 관리부(230)는 상세 정보 관리부(220)와 달리 다량의 상세화된 세션의 상태 정보를 저장하지 않는다. 따라서, 세션의 종료과정을 명확하게 추적하기 어려우므로, 입력되는 FIN 패킷의 개수를 이용하여 간략화된 종료과정의 추적을 위해 Half-Close 정보를 포함한다. Another day As an example, unlike the detailed information manager 220, the summary information manager 230 does not store state information of a large amount of detailed sessions. Therefore, since it is difficult to clearly track the end of the session, Half-Close information is included for tracking the end of the process by using the number of input FIN packets.

다만, 상기 서술된 것은 일 실시예로서, 요약 정보 관리부(230)에 저장되는 정보는 확장 가능함을 유의하여야 한다. However, it should be noted that the above-described information is an example, and the information stored in the summary information manager 230 may be expanded.

도 6 은 DoS 공격에 대한 방어 메커니즘을 제공하기 위한 상세 정보 관리부의 메모리 관리 기법을 도시한다. 6 illustrates a memory management scheme of a detail information management unit to provide a defense mechanism against a DoS attack.

세션 상태를 추적하는 장치는 특성상 SYN Flooding 공격에 취약점을 지닌다. 즉, 네트워크 상의 TCP 클라이언트와 서버 사이에 세션이 개시될 때, 그 세션을 확립하는 핸드쉐이킹을 신속히 처리하기 위해 매우 작은 버퍼가 존재한다. 세션 확립용 패킷에는 메시지 교환의 순서를 인식시키기 위한 SYN 필드가 포함된다. Devices that track session state are inherently vulnerable to SYN Flooding attacks. That is, when a session is initiated between a TCP client and a server on a network, there is a very small buffer to expedite the handshaking that establishes the session. The session establishment packet includes a SYN field for recognizing the order of message exchange.

공격자는 다수의 접속 요청을 매우 빠르게 보낸 후, 아무런 응답 없이 일정 시간이 경과하면 버퍼에 남아있는 패킷은 결국 버려지게 되지만, 많은 량의 가짜 접속 요청으로 인해 정당한 접속 요구 세션이 확립되기 어려운 요인이 되며, 이를 해결하기 위해서 경과 시간의 길이를 조정할 필요가 있다. An attacker sends a large number of connection requests very quickly, and after a certain period of time with no response, the remaining packets in the buffer are eventually discarded, but a large number of fake connection requests make it difficult to establish a legitimate connection request session. In order to solve this problem, the length of the elapsed time needs to be adjusted.

이러한 공격에 대응하기 위해, 본 발명의 상세 정보 관리부는 4개의 링크드 리스트(IDLE Link(610), SYN Link(620), SYN/ACK Link(630), EST Link(640))를 가지고 세션들을 관리한다. To counter this attack, the detailed information management unit manages sessions with four linked lists (IDLE Link 610, SYN Link 620, SYN / ACK Link 630, EST Link 640). do.

상세 정보 관리부는 TCP 3-way 핸드쉐이킹 과정에 있어서 SYN 패킷을 수신 단계, SYN/ACK 패킷 전송 단계, ACK 패킷을 수신 단계별로 각각의 링크드 리스트를 생성한다. TCP 3-way 핸드쉐이킹 동안 패킷들에 의해 세션 엔트리는 IDLE Link(610)에서 EST Link(640)로 이동한다. 이러한 링크의 이동으로 세션의 연결 상태 정보를 관리할 뿐만 아니라 효율적인 메모리 관리가 가능해진다.In the TCP 3-way handshaking process, the detailed information manager generates a linked list for each SYN packet reception step, SYN / ACK packet transmission step, and ACK packet reception step. Session entries are moved from IDLE Link 610 to EST Link 640 by packets during TCP 3-way handshaking. This link movement not only manages the connection state information of the session, but also enables efficient memory management.

보다 상세히, IDLE Link(610)는 현재 세션이 할당되지 않은 링크들이 연결된 리스트로서, 본 발명은 새로운 세션이 생성되면 IDLE Link(610)의 헤드에서 링크를 할당하여 새롭게 생성된 링크드 리스트의 테일에 세션을 추가하고, 상기 세션이 시간 초과로 삭제되면 상기 링크를 IDLE Link(610)의 테일부분으로 반환하여 삽입하는 메모리 관리를 수행한다.In more detail, IDLE Link 610 is a list of links to which a current session is not assigned, and the present invention assigns a link at the head of IDLE Link 610 when a new session is created, thereby assigning a session to a tail of a newly created linked list. If the session is deleted after timeout, the link is returned to the tail portion of the IDLE Link 610 to perform memory management.

SYN 패킷이 입력되어 새로운 세션을 요구하면, IDLE Link(610)에서 링크를 하나 할당하여 SYN Link(620)의 Tail에 세션을 추가한다. 이후 SYN/ACK 패킷이 입력되면 SYN Link(620)에서 SYN/ACK Link(630)로, ACK 패킷이 입력되면 SYN/ACK Link(630)에서 EST Link(640)로 이동한다. When the SYN packet is inputted to request a new session, the IDLE Link 610 allocates a link and adds the session to the Tail of the SYN Link 620. After the SYN / ACK packet is input, the SYN Link 620 moves from the SYN / ACK Link 630, and when the ACK packet is input, the SYN / ACK Link 630 moves from the SYN / ACK Link 630 to the EST Link 640.

이 때, 엔트리가 하나의 링크에서 다음 링크로 이동하여 다음 링크의 테일에 추가되는 시간을 네트워크 관리자에 의하여 설정할 수 있다. 즉, 네트워크 관리자 는 이동 시간에 소정의 임계값(이하, 타임아웃(time-out)값)을 설정하여 네트워크 공격자의 의도적인 공격에 의해 상세 정보 관리부의 엔트리 테이블이 풀(Full)이 되는 것을 적극적으로 방지한다.At this time, the network administrator may set a time at which an entry moves from one link to the next link and is added to the tail of the next link. That is, the network administrator sets a predetermined threshold (hereinafter, a time-out value) at the time of movement to actively prevent the entry table of the detailed information management unit from being pulled due to the intentional attack of the network attacker. To prevent.

네트워크 관리자는 "Embryonic Connection"(650)으로 IDLE Link(610)에서 SYN Link(620)로, SYN Link(620)에서 SYN/ACK Link(630)로 이동시 타임 아웃(Timeout) 값은 아직 세션이 성립이 이루어지지 않은 상태이므로 상대적으로 적은 값으로 설정하고(예, 3초) "Established Connection"(660)으로 SYN/ACK Link(630)에서 EST Link(640)로 이동시 타임 아웃 값은 세션이 성립된 이후이므로 "Embryonic Connection"(650)에 비해 상대적으로 큰 값으로 설정한다(예, 3600초).The network administrator may still use the "Embryonic Connection" (650) from IDLE Link (610) to SYN Link (620) and SYN Link (620) to SYN / ACK Link (630). Is set to a relatively small value (e.g., 3 seconds), and the timeout value is set when the session is established when moving from SYN / ACK Link (630) to EST Link (640) with "Established Connection" (660). Since it is set to a relatively larger value than the "Embryonic Connection" (650) (for example, 3600 seconds).

각 링크에서 타임 아웃이 발생할 경우, 해당 세션 엔트리는 이전 링크드-리스트의 테일로 반납된다. 즉, SYN Link(620)에서 타임아웃이 발생한 경우, 세션 엔트리는 다시 IDLE Link(610)의 테일 부분에 삽입된다. If a timeout occurs on each link, the session entry is returned to the tail of the previous linked-list. That is, when a timeout occurs in the SYN Link 620, the session entry is inserted into the tail portion of the IDLE Link 610 again.

이러한 Aggressive Aging 기법을 이용함으로써, 상세 정보 관리부의 엔트리 테이블이 풀(Full) 상태가 되는 것을 적극적으로 방지함으로써 Syn Flooding과 같은 DoS 공격에 대응한다. 뿐만 아니라, 타임 아웃시 반환되는 세션 엔트리의 정보는 DDoS 나 Internet Warm을 탐지하는데 유용한 정보를 제공한다. By using such an Aggressive Aging technique, the entry table of the detailed information management unit is actively prevented from becoming full, thereby responding to DoS attacks such as Syn Flooding. In addition, the session entry information returned on timeout provides useful information for detecting DDoS or Internet Warm.

링크의 이동은 항상 Tail에 붙임으로써 상세 정보 관리부의 엔트리 테이블이 풀(Full) 되었을 때 가장 오래 사용된 세션이 위치하는 헤더(Header) 부분부터 삭제하여 LRU(Least Recently Used) 알고리즘이 적용되도록 한다. The link movement is always attached to the tail so that when the entry table of the detailed information management unit is full, the header part where the longest used session is located is deleted so that the least recently used algorithm is applied.

왜냐하면, 세션을 관리하는 엔트리 테이블은 용량에 한계가 있으므로, 풀 (Full)이될 가능성이 항상 존재한다. 세션 엔트리가 풀(Full)이 된 경우, 새로운 엔트리를 생성해야 하는 경우 LRU 알고리즘에 의해 가장 오랫동안 사용되지 않은 세션 엔트리를 삭제하고, 새로운 엔트리를 추가한다. 이는 엔트리 테이블이 풀(Full)이 되어도 새로운 공격이 들어오면 탐지해야 하는 세션 상태 기반의 침입탐지 시스템의 기본 요건에 따른 것이다. Because the entry table that manages sessions is limited in capacity, there is always a possibility of being full. If the session entry is full, if it is necessary to create a new entry, the LRU algorithm deletes the oldest unused session entry and adds a new entry. This is according to the basic requirements of the session state based intrusion detection system that should be detected when a new attack comes in even if the entry table is full.

도 7 은 본 발명의 바람직한 일 실시예에 따른 상세 정보 관리부의 구조를 도시한다. 7 illustrates a structure of a detailed information management unit according to an exemplary embodiment of the present invention.

상세 정보 관리부는 각각의 세션 엔트리를 구별하기 위하여 인덱스에 포함된 프로토콜, 소스 IP 주소, 목적지 IP 주소, 소스 포트번호, 목적지 포트번호로 구성된 세션의 5-튜플 정보를 이용한다. The detailed information manager uses 5-tuple information of a session composed of a protocol, a source IP address, a destination IP address, a source port number, and a destination port number included in the index to distinguish each session entry.

본 발명의 바람직한 일 실시예로서, 세션의 5-튜플 정보를 포함한 인덱스는 TCAM(Ternary Content Addressable Memory, 710)에 저장된다. In one preferred embodiment of the present invention, the index including the 5-tuple information of the session is stored in the TCAM (Ternary Content Addressable Memory) 710.

본 발명의 바람직한 일 실시예로서, 입력 패킷에 해당하는 세션의 실질적인 상태 정보를 포함한 상세 정보 관리부는 SRAM(Static Random Access Memory, 720)에 저장된다. In a preferred embodiment of the present invention, the detailed information management unit including the actual state information of the session corresponding to the input packet is stored in the static random access memory (SRAM) 720.

TCAM(710)에 저장된 각 인덱스는 SRAM(720)에 저장된 엔트리의 메모리 주소를 포인트 하고 있다. 이는 본 발명에서 세션 인덱스부와 상세 정보 관리부를 하드웨어로 구현한 일 실시예로서, 기술적 사상을 변형시키지 않는 범위 내에서 치환, 변경, 대체 등이 가능함을 유의하여야 한다. Each index stored in the TCAM 710 points to the memory address of the entry stored in the SRAM 720. This is an embodiment in which the session index unit and the detailed information management unit are implemented in hardware in the present invention, and it should be noted that substitutions, changes, and substitutions can be made without departing from the technical spirit.

도 8 은 본 발명의 바람직한 일 실시예로서, 상세 정보 관리부에서 자체 공격 탐지 기능의 일환으로서 TTL Tracking 하는 과정을 도시한다. FIG. 8 illustrates a process of performing TTL tracking as a part of a self attack detection function in a detailed information management unit according to an embodiment of the present invention.

상세 정보 관리부는 TTL 추적 경보부(도시 안 됨)를 포함하고, TTL 추적 경보부는 세션의 연결이 성립되면, 동일한 세션에 속하는 패킷은 중간에 거치는 홉 카운트가 크게 차이가 나지 않으므로 세션에 속한 패킷이 정상인지 여부를 판단하기 위하여 현재 패킷의 TTL(Time to Live) 값과 이전 패킷의 TTL 값의 차가 기설정된 임계치를 초과할 경우 경보를 발생한다(810, 820). The details management section includes a TTL tracing alert (not shown), and when the session is established, the packets belonging to the session are not normal because the hop counts between packets belonging to the same session are not significantly different. An alarm is generated when a difference between a time to live (TTL) value of a current packet and a TTL value of a previous packet exceeds a preset threshold in order to determine whether the recognition is performed (810, 820).

도 9 는 본 발명의 바람직한 일 실시예로서, 상세 정보 관리부에서 자체 공격 탐지 기능의 일환으로서 Sequence/Acknowledge Number Tracking 하는 과정을 도시한다. FIG. 9 illustrates a process of Sequence / Acknowledge Number Tracking as a part of a self attack detection function in a detailed information management unit according to an embodiment of the present invention.

호스트 A와 B가 서로 통신하고 있다고 가정한 경우, SEQ/ACK 번호 추적 경보부(도 2, 212) 에서 A로 전송된 패킷의 Acknowledge Number와 Window Size 정보(보내는쪽의 Window 크기)를 상세 정보 관리부에 저장한다. 이후 A에서 B로 패킷이 전송되면 이 패킷의 Sequence Number가 B에서 A로 전송된 Last Ack보다 작거나(910), 혹은 시퀀스 넘버에 패이로드 사이즈를 더한값에서 Last Ack를 뺀 값이 Window Size 값보다 크면(920) 비정상 패킷으로 보고 경보를 발생한다.Assuming that hosts A and B are communicating with each other, the Acknowledge Number and Window Size information (window size on the sending side) of the packet transmitted from A to SEQ / ACK number tracking alerting unit (FIGS. Save it. Then, if a packet is transmitted from A to B, the sequence number of this packet is smaller than the last Ack transmitted from B to A (910), or the payload size is subtracted from the last number from the sequence number plus Window Size. If greater than 920, an alarm is reported as an abnormal packet.

도 10 에서 도 15는 TCP Flag 값에 따라 패킷을 처리하는 기법에 대하여 도시한다.10 to 15 illustrate a technique of processing a packet according to a TCP flag value.

도 10 은 본 발명의 바람직한 일 실시예로서, SYN 패킷의 처리 흐름도를 도시한다. SYN(Synchronize Sequence number) Flag는 세션의 연결이 이루어질 때에만 사용되며 데이터를 전송하기에 앞서서 클라이언트와 서버 양쪽의 시퀀스 넘버를 동기화한다.10 is a flowchart illustrating the processing of a SYN packet according to a preferred embodiment of the present invention. The Synchronize Sequence Number (SYN) Flag is used only when a session is connected and synchronizes the sequence number of both the client and server prior to sending data.

도 6을 참고하면 SYN 패킷이 들어오면(S1010) 상세 정보 관리부는 SYN Link(620)를 검색하여 패킷이 해당하는 세션 엔트리가 존재하면(S1020, S1030) SYN 패킷이 재전송된 것이므로 상세 정보 관리부에서 해당 세션의 상태 정보를 지니고 있는 엔트리를 갱신하고, 도 6에 도시된 링크드 리스트의 SYN Link(620)에서 테일 부분으로 이동하도록 조정한다(S1031, S1032).Referring to FIG. 6, when a SYN packet is received (S1010), the detailed information management unit searches for the SYN Link 620, and if a session entry corresponding to the packet exists (S1020, S1030), the SYN packet is retransmitted. The entry containing the session state information is updated and adjusted to move from the SYN Link 620 of the linked list shown in FIG. 6 to the tail portion (S1031, S1032).

SYN Link(620)를 검색하여 패킷이 해당하는 세션 엔트리가 존재하지 않는 경우, 세션 인덱스부가 풀(Full)이 아닌 경우, 새로운 인덱스를 생성하고(S1040, S1050), 세션 인덱스부가 풀(Full)인 경우 LRU 알고리듬을 이용하여 가장 오래된 인덱스를 삭제한 후, 새로운 인덱스를 생성한다(S1040, S1041).If the session entry corresponding to the packet does not exist by searching the SYN Link 620, and if the session index portion is not full, a new index is generated (S1040, S1050), and the session index portion is full. In this case, after deleting the oldest index using the LRU algorithm, new indexes are generated (S1040 and S1041).

도 11 은 본 발명의 바람직한 일 실시예로서, SYN/ACK 패킷의 처리 흐름도를 도시한다. 11 shows a flowchart of processing of a SYN / ACK packet according to a preferred embodiment of the present invention.

도 6을 참고하면 SYN/ACK 패킷이 들어오면(S1110) 상세 정보 관리부는 SYN Link(620)와 SYN/ACK Link(630)를 검색하여(S1120) SYN Link(620)에서 엔트리가 검색되면 SYN/ACK Link(630)로 세션 엔트리를 이동하고, 해당 엔트리의 세션 상태 정보를 갱신한다(S1130, S1131, S1132).Referring to FIG. 6, when a SYN / ACK packet is received (S1110), the detailed information manager searches for SYN Link 620 and SYN / ACK Link 630 (S1120). The session entry is moved to the ACK Link 630, and the session state information of the entry is updated (S1130, S1131, and S1132).

SYN/ACK Link(630)에서 세션 엔트리가 검색되면 SYN/ACK 패킷이 재전송된 것이므로 해당 세션 상태 정보를 갱신하고, 링크는 같은 SYN/ACK Link(630)에서 테일부분으로 이동하도록 조정한다. When the SYN / ACK Link 630 is found, the SYN / ACK packet is retransmitted, so that the corresponding session state information is updated, and the link is adjusted to move to the tail portion in the same SYN / ACK Link 630.

도 12 는 본 발명의 바람직한 일 실시예로서, ACK 패킷의 처리 흐름도를 도시한다. 12 is a flowchart illustrating processing of an ACK packet according to a preferred embodiment of the present invention.

ACK(Acknowledgement) Flag는 전송한 packet 이 잘 도착했음을 알리기 위해 사용되는 것으로, ACK 패킷이 들어오면(S1210), SYN/ACK Link(630)와 EST Link(640)를 검색한다(S1220). The ACK (Acknowledgement) Flag is used to inform that the transmitted packet has arrived well. When an ACK packet is received (S1210), the SYN / ACK Link 630 and the EST Link 640 are searched (S1220).

SYN/ACK Link(630)에서 세션 엔트리가 검색되면 EST Link(640)로 엔트리를 이동하고, 요약 정보 관리부에 세션의 간략화된 상태 정보를 저장한다(S1230- S1234). If the session entry is found in the SYN / ACK Link 630, the entry is moved to the EST Link 640, and the simplified state management unit stores the simplified state information of the session (S1230-S1234).

상세 정보 관리부에서 세션 엔트리를 검색하지 못한 경우, 요약 정보 관리부를 검색하고 세션의 간략화된 상태 정보를 지닌 엔트리를 생성하여 저장한 후 패킷을 포워딩한다(S1240-S1242). If the session information is not retrieved from the detailed information management unit, the summary information management unit is searched, an entry having the simplified state information of the session is generated and stored, and the packet is forwarded (S1240-S1242).

도 13 은 본 발명의 바람직한 일 실시예로서, RST 패킷의 처리 흐름도를 도시한다. 13 is a flowchart showing the processing of an RST packet as one preferred embodiment of the present invention.

RST( Reset ) Flag 는 관련된 세션의 연결상태를 무조건 리셋하는 것으로서, RST 패킷 입력시(S1310), 상세 정보 관리부 및 요약 정보 관리부를 모두 검색하여(S1320, S1340) 입력 패킷이 해당하는 세션의 엔트리가 존재하는 경우(S1330, S1350) 각각 상세 정보 관리부의 엔트리 테이블 및 요약 정보 관리부의 엔트리 테이블에서 엔트리를 삭제한 후, 세션의 상태 정보를 생성하여(S1360) 패킷을 포워딩한다. The RST (Reset) Flag is to unconditionally reset the connection state of a related session. When an RST packet is input (S1310), both the detailed information management unit and the summary information management unit are searched (S1320, S1340) so that an entry of the session corresponding to the input packet is entered. If present (S1330, S1350) deletes the entries in the entry table of the detailed information management unit and the entry table of the summary information management unit, respectively, and generates the state information of the session (S1360) to forward the packet.

도 14 는 본 발명의 바람직한 일 실시예로서, FIN 패킷의 처리 흐름도를 도 시한다.14 is a flowchart illustrating the processing of an FIN packet according to a preferred embodiment of the present invention.

FIN (Finish) Flag는 보내는 쪽의 TCP가 더이상 전송할 데이타가 없으며,세션의 연결상태를 해제하고자 하는 것으로, FIN 패킷 입력시(S1410) 상세 정보 관리부를 검색하여 Fin 패킷이 해당하는 세션의 엔트리가 존재하는지 검색하고(S1430) 세션 엔트리가 존재하는 경우 요약 정보 관리부를 검색하고, 세션 엔트리가 존재하지 않는 경우 세션의 상태 정보를 생성하여 패킷을 포워딩한다. FIN (Finish) Flag indicates that the sending TCP has no data to send anymore, and the session is disconnected. When the FIN packet is input (S1410), the detailed information management unit is searched and an entry of the session corresponding to the Fin packet exists. In step S1430, if there is a session entry, the summary information manager is searched, and if the session entry does not exist, the session information is generated and the packet is forwarded.

도 15 는 본 발명의 바람직한 일 실시예로서, 도 10에서 도 14에 도시되지 않은 다른 패킷의 처리 흐름도를 도시한다. FIG. 15 shows a flowchart of processing of another packet not shown in FIG. 10 in FIG. 10 as a preferred embodiment of the present invention.

SYN, SYN/ACK, ACK, RST, FIN 패킷 이외의 패킷이 들어오면 상세 정보 관리부 및 요약 정보 관리부를 차례로 검색한 후 상세 정보를 생성하여 패킷을 포워딩한다. When packets other than SYN, SYN / ACK, ACK, RST, and FIN packets are received, the detailed information manager and the summary information manager are sequentially searched, and then detailed information is generated to forward the packet.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. The invention can also be embodied as computer readable code on a computer readable recording medium. Computer-readable recording media include all kinds of recording devices that store data that can be read by a computer system.

컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, which are also implemented in the form of carrier waves (for example, transmission over the Internet). It also includes. 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.

이상 도면과 명세서에서 최적 실시예 들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. The best embodiments have been disclosed in the drawings and specification above. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not used to limit the scope of the present invention as defined in the meaning or claims.

그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명은 기가급 인터넷 환경에서 수십만에서 수백만 개의 세션을 보다 적은 리소스에서 보다 효율적인 성능을 발휘한다. The present invention achieves more efficient performance in hundreds of thousands to millions of sessions on fewer resources in a giga-class Internet environment.

세션의 상태 정보를 추적하여 유용한 상태정보를 생성함으로써 침입탐지 엔진에 전달하여 침입 오탐률(False Positive Alert)을 줄일 수 있을 뿐만 아니라 세션 상태 관리 장치가 패킷 정보와 세션의 상태 정보를 이용하여 자체적으로 공격 탐지 및 비정상 패킷(Abnormal Packet)을 탐지할 수 있는 효과가 있다. By tracking the session state information and generating useful state information, it can be delivered to the intrusion detection engine to reduce false positive alerts, and the session state management device uses the packet information and the session state information itself. Attack detection and Abnormal Packets can be detected.

게다가, 본 발명은 메모리 관리 기법을 통하여 SYN 플러딩(SYN Flooding)과 같은 DoS(Denial of Service)공격에 대한 적극적 대응이 가능하다. In addition, the present invention enables active response to Denial of Service (DoS) attacks such as SYN flooding through memory management techniques.

또한, 본 발명은 종래의 하드웨어 기반의 단순 패턴 매칭 침입탐지 기능에 상태 정보를 추가하여 보다 정확하게 공격을 탐지해 낼 수 있다. In addition, the present invention can detect the attack more accurately by adding state information to the conventional hardware-based simple pattern matching intrusion detection function.

뿐만 아니라, 본 발명은 기존의 방화벽(Firewall), VPN(Virtual Private Network), 트래픽 모니터링(Traffic Monotoring), 트래픽 로드 밸런싱(Traffic Load Balancing), 어카운팅 및 과금(Accounting and Charging), 네크워크 침입 탐지 시스템(NIDS: Network Intrusion Detection System)에 다양하게 응용될 수 있다. In addition, the present invention, the existing firewall (Firewall), virtual private network (VPN), traffic monitoring (Traffic Monotoring), traffic load balancing (Traffic Load Balancing), accounting and charging (Accounting and Charging), network intrusion detection system ( It can be applied in various ways to NIDS (Network Intrusion Detection System).

특히 세션 상태 기반의 네트워크 침입 탐지 시스템(Session State-based NIDS)에 응용되면, 기능과 성능 면에서 아주 우수한 결과를 얻을 수 있다. Especially when applied to session state-based network intrusion detection system (Session State-based NIDS), the result is excellent in function and performance.

Claims (23)

TCP 핸드쉐이킹 과정에서, 세션 상태를 관리하는 장치에 있어서, In the TCP handshaking process, apparatus for managing session state, 입력 패킷이 해당하는 세션의 5 튜플 정보를 포함한 인덱스를 생성 또는 관리하는 세션 인덱스부;A session index unit for generating or managing an index including 5-tuple information of a session corresponding to an input packet; 세션의 연결 성립 전후 소정 시간 이내의 세션에 대하여, 상기 인덱스 생성시 상기 입력 패킷에서 침입 탐지에 대응하기 위한 세션의 상태 정보를 추출하여 엔트리를 생성, 관리하는 상세 정보 관리부;A detailed information manager configured to generate and manage an entry by extracting state information of a session corresponding to intrusion detection from the input packet when generating the index, for a session within a predetermined time before and after establishing a connection of the session; 세션의 연결 성립 후 소정 시간 경과 후의 세션에 대하여, 상기 입력 패킷이 해당하는 세션의 연결, 종료 상태 정보 및 상기 입력 패킷의 방향성 정보를 포함한 세션의 상태정보를 지닌 엔트리를 생성, 관리하는 요약 정보 관리부; 및A summary information management unit for generating and managing an entry having session state information including connection, termination state information, and directional information of the input packet of the corresponding session, for a session after a predetermined time elapses after the session is established. ; And 입력 TCP 패킷이 해당하는 세션의 인덱스가 상기 세션 인덱스부에 존재하는지 검색하고 상기 인덱스가 존재하지 않는 경우 세션의 연결 성립 후에는 상기 요약 정보 관리부를 검색하는 검색부;를 포함하는 것을 특징으로 하는 세션 상태 관리 장치.And a search unit for searching whether the index of the session corresponding to the input TCP packet exists in the session index unit and searching for the summary information manager after connection establishment of the session if the index does not exist. State management device. 제 1 항에 있어서, 상기 세션 인덱스부는 The method of claim 1, wherein the session index unit 상기 인덱스를 순차로 저장하고 상기 세션 인덱스부가 풀(FULL)인 경우, 가장 오래 사용된 인덱스부터 삭제하는 LRU 알고리듬이 적용되는 것을 특징으로 하는 세션 상태 관리 장치.And storing the index sequentially and applying the LRU algorithm to delete the longest used index when the session index unit is FULL. 제 1 항에 있어서, 상기 상세 정보 관리부는 The method of claim 1, wherein the detailed information management unit 상기 엔트리를 순차로 저장하고 상기 상세 정보 관리부가 풀(FULL)인 경우, 가장 오래 사용된 엔트리부터 삭제하는 LRU 알고리듬이 적용되는 것을 특징으로 하는 세션 상태 관리 장치.And storing the entries sequentially and if the detailed information management unit is full, an LRU algorithm for deleting the oldest entry first is applied. 제 1 항에 있어서, 상기 상세 정보 관리부는The method of claim 1, wherein the detailed information management unit 초기 링크드 리스트를 지니고 상기 초기 링크드 리스트 외에 TCP 3-way 핸드쉐이킹 과정에 있어서 SYN 패킷을 수신 단계, SYN/ACK 패킷 전송 단계, ACK 패킷을 수신 단계별로 각각의 링크드 리스트를 더 생성하며 상기 각각의 패킷 수신시 상기 패킷에 해당하는 단계의 상기 링크드 리스트의 테일에 상기 엔트리를 추가하고 In addition to the initial linked list, in addition to the initial linked list, in the TCP 3-way handshaking process, each linked list is further generated by receiving a SYN packet, transmitting a SYN / ACK packet, and receiving an ACK packet. Add the entry to the tail of the linked list in the step corresponding to the packet upon receipt 상기 엔트리가 상기 링크드 리스트에 추가되는 시간이 소정의 기설정된 임계값을 초과하는 경우, 상기 엔트리를 상기 초기 링크드 리스트의 테일 부분에 삽입하는 것을 특징으로 하는 세션 상태 관리 장치.If the time the entry is added to the linked list exceeds a predetermined threshold, the entry is added to the tail portion of the initial linked list. Session state management apparatus, characterized in that the insertion. 제 1 항에 있어서, 상기 세션 인덱스부는The method of claim 1, wherein the session index unit SYN 패킷 입력시 이에 해당하는 세션의 인덱스가 상기 검색부에 존재하지 않는 경우, 상기 SYN 패킷이 해당하는 세션의 5 튜플 정보를 포함한 인덱스를 생성하는 것을 특징으로 하는 세션 상태 관리 장치. And a session index corresponding to the SYN packet does not exist in the search unit, when the SYN packet is input, generating an index including 5-tuple information of the corresponding session. 제 1 항에 있어서, 상기 검색부는The method of claim 1, wherein the search unit 입력 TCP 패킷이 해당하는 세션의 인덱스가 상기 세션 인덱스부에 존재하는 경우 상기 상세 정보 관리부의 엔트리를 갱신하는 갱신부;를 더 포함하는 것을 특징으로 하는 세션 상태 관리 장치.And an updating unit for updating an entry of the detailed information management unit when an index of a session corresponding to an input TCP packet exists in the session index unit. 제 1 항에 있어서, 상기 인덱스는 The method of claim 1, wherein Index is 상기 입력 패킷에 대응하는 상기 엔트리의 메모리 주소를 포인트 하는 것을 특징으로 하는 세션 상태 관리 장치.And a memory address of the entry corresponding to the input packet. 제 1 항에 있어서, 상기 인덱스는 The method of claim 1, wherein the index is 상기 세션의 5 튜플 정보를 기초로 생성된 해쉬 어드레스를 이용하여 상기 입력 패킷에 대응하는 상기 요약 정보 관리부 내의 상기 엔트리를 포인트 하는 것을 특징으로 하는 세션 상태 관리 장치.And the entry in the summary information manager corresponding to the input packet using a hash address generated based on the 5-tuple information of the session. 제 1 항에 있어서, 상기 상세 정보 관리부는 The method of claim 1, wherein the detailed information management unit 세션의 연결이 성립되면, 세션에 속한 패킷이 정상인지 여부를 판단하기 위하여 현재 패킷의 TTL 값과 이전 패킷의 TTL 값의 차가 기설정된 임계치를 초과할 경우 경보를 발생하는 TTL 추적 경보부;를 더 포함하는 것을 특징으로 하는 세션 상태 관리 장치.If the session is established, the TTL tracking alarm unit for generating an alarm when the difference between the TTL value of the current packet and the TTL value of the previous packet exceeds a predetermined threshold to determine whether the packet belonging to the session is normal; Session state management apparatus, characterized in that. 제 1 항에 있어서, 상기 상세 정보 관리부는 The method of claim 1, wherein the detailed information management unit 상기 입력 패킷의 최후 ACK 번호보다 상기 입력 패킷 수신 후 전송한 패킷의 시퀀스 번호가 작은 경우 또는 상기 시퀀스 번호와 페이로드 크기를 합한 값에서 최후 ACK 번호를 뺀 값이 윈도우 크기보다 큰 경우 경보를 발생하는 SEQ/ACK 번호 추적 경보부;를 더 포함하는 것을 특징으로 하는 세션 상태 관리 장치.An alarm is generated when the sequence number of the packet transmitted after receiving the input packet is smaller than the last ACK number of the input packet or when the value obtained by subtracting the last ACK number from the sum of the sequence number and the payload size is larger than the window size. Session state management apparatus further comprises; SEQ / ACK number tracking alerting unit. 제 1 항에 있어서, 상기 세션 인덱스부는The method of claim 1, wherein the session index unit TCAM(Ternary Content Addressable Memory)에 구현되는 것을 특징으로 하는 세션 상태 관리 장치.Session state management apparatus, characterized in that implemented in TCAM (Ternary Content Addressable Memory). 제 1 항에 있어서, 상기 상세 정보 관리부는The method of claim 1, wherein the detailed information management unit SRAM(Static Random Access Memory)에 구현되는 것을 특징으로 하는 세션 상태 관리 장치.Session state management apparatus, characterized in that implemented in static random access memory (SRAM). 제 1 항에 있어서, 입력 패킷의 TCP 플래그 값이 RST 인 경우 The method of claim 1, wherein the TCP flag value of the input packet is RST. 상기 상세 정보 관리부 또는 상기 요약 정보 관리부 내에 상태정보를 포함한 엔트리가 존재하는 경우 상기 엔트리를 각각 상기 상세 정보 관리부 또는 상기 요약 정보 관리부에서 삭제하는 것을 특징으로 하는 세션 상태 관리 장치.And when the entry including the status information exists in the detailed information manager or the summary information manager, delete the entry from the detailed information manager or the summary information manager, respectively. TCP 핸드쉐이킹 과정에서, 세션 상태를 관리하는 방법에 있어서,In the TCP handshaking process, a method for managing session state, (a) 입력 패킷이 해당하는 세션의 5 튜플 정보를 포함한 인덱스를 생성 또는 관리하여 인덱스 테이블을 구축하는 단계;(a) creating an index table by generating or managing an index including 5-tuple information of a session corresponding to an input packet; (b) 세션의 연결 성립 전후 소정 시간 이내의 세션에 대하여, 상기 인덱스 생성시 상기 입력 패킷에서 침입 탐지에 대응하기 위한 세션의 상태 정보를 추출하여 엔트리를 생성, 관리하여 제 1 엔트리 테이블을 생성하는 단계;(b) generating a first entry table by extracting state information of a session for responding to intrusion detection from the input packet when generating the index, for a session within a predetermined time before and after establishing a connection of the session; step; (c) 세션의 연결 성립 후 소정 시간 경과 후의 세션에 대하여, 상기 입력 패킷이 해당하는 세션의 연결, 종료 상태 정보 및 상기 입력 패킷의 방향성 정보를 포함한 세션의 상태정보를 지닌 엔트리를 생성, 관리하여 제 2 엔트리 테이블을 생성하는 단계; 및(c) For a session after a predetermined time has elapsed since the connection was established, an entry having the state information of the session including the connection, termination state information of the corresponding session, and directional information of the input packet is generated and managed. Generating a second entry table; And (d) 입력 TCP 패킷이 해당하는 세션의 인덱스가 상기 인덱스 테이블에 존재하는지 검색하고 상기 인덱스가 존재하지 않는 경우 세션의 연결 성립 후에는 상기 제 2 엔트리 테이블을 검색하는 단계;를 포함하는 것을 특징으로 하는 세션 상태 관리 방법.(d) searching whether an index of the session corresponding to an input TCP packet exists in the index table, and if the index does not exist, searching the second entry table after connection establishment of the session; To manage session state. 제 14 항에 있어서, 상기 인덱스 테이블은 15. The system of claim 14, wherein the index table is 상기 인덱스를 순차로 저장하고 상기 세션 인덱스부가 풀(FULL)인 경우, 가장 오래 사용된 인덱스부터 삭제하는 LRU 알고리듬이 적용되는 것을 특징으로 하는 세션 상태 관리 방법.And storing the index sequentially, and when the session index unit is full, an LRU algorithm for deleting from the longest used index is applied. 제 14 항에 있어서, 상기 제 1 엔트리 테이블은 15. The system of claim 14, wherein the first entry table is 상기 엔트리를 순차로 저장하고 상기 상세 정보 관리부가 풀(FULL)인 경우, 가장 오래 사용된 엔트리부터 삭제하는 LRU 알고리듬이 적용되는 것을 특징으로 하는 세션 상태 관리 방법.And storing the entries sequentially and if the detailed information management unit is full, an LRU algorithm for deleting the oldest entry first is applied. 제 14 항에 있어서, 상기 제 1 엔트리 테이블은15. The system of claim 14, wherein the first entry table is 초기 링크드 리스트를 생성하는 단계;Generating an initial linked list; TCP 3-way 핸드쉐이킹 과정에 있어서 SYN 패킷을 수신 단계, SYN/ACK 패킷 전송 단계, ACK 패킷을 수신 단계별로 각각의 링크드 리스트를 생성하는 단계;Generating a linked list for each step of receiving a SYN packet, transmitting a SYN / ACK packet, and receiving an ACK packet in a TCP 3-way handshaking process; 상기 각각의 패킷 수신시 상기 패킷에 해당하는 단계의 상기 링크드 리스트의 테일에 상기 엔트리를 추가하는 단계;Adding the entry to the tail of the linked list of steps corresponding to the packet upon receipt of each packet; 상기 엔트리가 상기 링크드 리스트에 추가되는 시간이 소정의 기설정된 임계값을 초과하는지 판단하는 단계; 및Determining whether a time at which the entry is added to the linked list exceeds a predetermined threshold; And 상기 추가 시간이 상기 기설정된 임계값을 초과하는 경우 상기 엔트리를 상기 초기 링크드 리스트의 테일 부분에 삽입하는 단계;를 포함하는 것을 특징으로 하는 세션 상태 관리 방법.The entry to the tail portion of the initial linked list if the additional time exceeds the preset threshold. Session state management method comprising the ;. 제 14 항에 있어서, 상기 (a) 단계는 The method of claim 14, wherein step (a) 상기 (d) 단계에서 SYN 패킷 입력시 이에 해당하는 세션의 인덱스를 검색하지 못하는 경우, 상기 SYN 패킷이 해당하는 세션의 5 튜플 정보를 포함한 인덱스를 생성하는 것을 특징으로 하는 세션 상태 관리 방법.And when the index of the corresponding session is not found when the SYN packet is input in step (d), generating an index including the 5-tuple information of the corresponding session of the SYN packet. 제 14 항에 있어서, The method of claim 14, (e) 상기 (d) 단계에서 입력 TCP 패킷이 해당하는 세션의 인덱스가 검색결과 존재하는 경우 상기 제 1 엔트리 테이블의 엔트리를 갱신하는 단계;를 더 포함하는 것을 특징으로 하는 세션 상태 관리 방법.(e) updating the entry of the first entry table when the index of the session corresponding to the input TCP packet in step (d) exists as a search result. 제 14 항에 있어서, 상기 제 1 엔트리 테이블은15. The system of claim 14, wherein the first entry table is 세션의 연결이 성립되면, 세션에 속한 패킷이 정상인지 여부를 판단하기 위하여 현재 패킷의 TTL 값과 이전 패킷의 TTL 값의 차가 기설정된 임계치를 초과할 경우 경보를 발생하는 단계;를 더 포함하는 것을 특징으로 하는 세션 상태 관리 방법. When the connection of the session is established, if the difference between the TTL value of the current packet and the TTL value of the previous packet exceeds the predetermined threshold to determine whether the packet belonging to the session; further comprising a; Characterized by session state management methods. 제 14 항에 있어서, 상기 제 1 엔트리 테이블은15. The system of claim 14, wherein the first entry table is 상기 입력 패킷의 최후 ACK 번호보다 상기 입력 패킷 수신 후 전송한 패킷의 시퀀스 번호가 작은 경우 또는 상기 시퀀스 번호와 페이로드 크기를 합한 값에서 최후 ACK 번호를 뺀 값이 윈도우 크기보다 큰 경우 경보를 발생하는 단계;를 더 포함하는 것을 특징으로 하는 세션 상태 관리 방법.An alarm is generated when the sequence number of the packet transmitted after receiving the input packet is smaller than the last ACK number of the input packet or when the value obtained by subtracting the last ACK number from the sum of the sequence number and the payload size is larger than the window size. And session state management method further comprising. 제 14 항에 있어서, 상기 인덱스는 The method of claim 14, wherein Index is 상기 입력 패킷에 대응하는 상기 엔트리의 메모리 주소를 포인트 하는 것을 특징으로 하는 세션 상태 관리 방법.And a memory address of the entry corresponding to the input packet. 제 14 항에 있어서, 상기 인덱스는 15. The method of claim 14, wherein the index is 상기 세션의 5 튜플 정보를 기초로 생성된 해쉬 어드레스를 이용하여 상기 입력 패킷에 대응하는 상기 요약 정보 관리부 내의 상기 엔트리를 포인트 하는 것을 특징으로 하는 세션 상태 관리 방법.And session the entry in the summary information manager corresponding to the input packet using a hash address generated based on the 5-tuple information of the session.
KR1020050085591A 2005-08-19 2005-09-14 Session state management device and method Expired - Fee Related KR100640004B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/298,114 US7818786B2 (en) 2005-08-19 2005-12-08 Apparatus and method for managing session state

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050076454 2005-08-19
KR20050076454 2005-08-19

Publications (1)

Publication Number Publication Date
KR100640004B1 true KR100640004B1 (en) 2006-11-01

Family

ID=37621211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050085591A Expired - Fee Related KR100640004B1 (en) 2005-08-19 2005-09-14 Session state management device and method

Country Status (1)

Country Link
KR (1) KR100640004B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015102213A1 (en) * 2013-12-30 2015-07-09 주식회사 시큐아이 Multithread-based session management method
KR20180086918A (en) 2017-01-24 2018-08-01 한국전자통신연구원 Apparatus and method for searching active network-session
JP2020187801A (en) * 2015-01-20 2020-11-19 サイエンプティブ テクノロジーズ インコーポレイテッド Session security partitioning and application profiler
WO2025079764A1 (en) * 2023-10-11 2025-04-17 주식회사 쿼드마이너 Method and apparatus for processing real-time accumulated data for integrated analysis based on flow

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015102213A1 (en) * 2013-12-30 2015-07-09 주식회사 시큐아이 Multithread-based session management method
JP2020187801A (en) * 2015-01-20 2020-11-19 サイエンプティブ テクノロジーズ インコーポレイテッド Session security partitioning and application profiler
JP2020201979A (en) * 2015-01-20 2020-12-17 サイエンプティブ テクノロジーズ インコーポレイテッド Rolling security platform
US11228593B2 (en) 2015-01-20 2022-01-18 Cyemptive Technologies, Inc. Session security splitting and application profiler
US11601432B2 (en) 2015-01-20 2023-03-07 Cyemptive Technologies, Inc. Rolling security platform
US11985130B2 (en) 2015-01-20 2024-05-14 Cyemptive Technologies, Inc. Session security splitting and application profiler
KR20180086918A (en) 2017-01-24 2018-08-01 한국전자통신연구원 Apparatus and method for searching active network-session
WO2025079764A1 (en) * 2023-10-11 2025-04-17 주식회사 쿼드마이너 Method and apparatus for processing real-time accumulated data for integrated analysis based on flow

Similar Documents

Publication Publication Date Title
US7818786B2 (en) Apparatus and method for managing session state
US9455956B2 (en) Load balancing in a network with session information
US6816910B1 (en) Method and apparatus for limiting network connection resources
US7266754B2 (en) Detecting network denial of service attacks
US8856913B2 (en) Method and protection system for mitigating slow HTTP attacks using rate and time monitoring
Snoeren et al. Single-packet IP traceback
US9270643B2 (en) State-transition based network intrusion detection
US20060098585A1 (en) Detecting malicious attacks using network behavior and header analysis
US20070180511A1 (en) Denial of Service Defense by Proxy
US20060191003A1 (en) Method of improving security performance in stateful inspection of TCP connections
Ricciulli et al. TCP SYN flooding defense
Al-Duwairi et al. ISDSDN: mitigating SYN flood attacks in software defined networks
EP4274179A1 (en) Traffic processing method in protection device, and protection device
CN101272254B (en) Method for generating attack signature database, method and device for preventing network attacks
US20220053018A1 (en) System and method for detection and mitigation of a dos/ddos attack
KR100640004B1 (en) Session state management device and method
CN111031077B (en) Flow cleaning method, flow cleaning system and equipment
CN118413356B (en) Optimization method and system for resisting SYN FLOOD attack
CN118869709B (en) Method and device for processing fragmented messages, firewall and dual-activity firewall cluster
Sun et al. A robust scheme to detect SYN flooding attacks
CN112714102A (en) SYN Flood attack defense method under multi-core heterogeneous platform
Lu et al. A novel path‐based approach for single‐packet IP traceback
CN1741473A (en) A network data packet availability deciding method and system
CN115473680B (en) Application-preventing DDoS method based on online interactive WEB dynamic defense
CN111431942A (en) CC attack detection method and device and network equipment

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

FPAY Annual fee payment

Payment date: 20121011

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

FPAY Annual fee payment

Payment date: 20130923

Year of fee payment: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

FPAY Annual fee payment

Payment date: 20140926

Year of fee payment: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 10

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 11

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 12

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 12

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 13

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 13

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 14

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20201025

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20201025

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000