KR100640004B1 - Session state management device and method - Google Patents
Session state management device and method Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L2001/125—Arrangements for preventing errors in the return channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial 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
도 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
패킷이 입력되면, 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
상태 관리부(130)는 입력 패킷이 해당하는 세션을 생성, 관리, 삭제하는 기능을 수행한다. 이를 위하여, 상태 관리자(130)는 2-단계 상태 테이블 관리 기법을 이용하여 적은 리소스를 사용하면서 수십에서 수백만 개의 세션을 효율적으로 관리하고, 메모리 관리를 통하여 Dos 공격에 대응한다. 이에 대하여서는, 후에 보다 상세히 서술하기로 한다. The
상태 정보 생성부(140)는 상태 관리부(130)의 2-단계 상태 테이블을 통해 관리되는 입력 패킷에 해당하는 세션의 상태 정보를 생성하고, 이 정보를 침입탐지부(101)에 전달한다. The state
패킷 포워딩부(150)는 상태 정보 생성부(140)를 통해 세션의 상태 정보를 침입탐지부(101)에 전달한다. The
TCP 재조합부(160)는 상태 관리부(130)에서 전달된 패킷 정보와 상태 정보 생성부(140)에서 전달된 세션의 상태정보를 이용하여 TCP 패킷을 재조합한 후 패킷 포워딩부(150)를 통하여 이를 침입탐지부(101)에 전달한다. The TCP
침입탐지부(101)는 상태 정보 생성부(140), 패킷 포워딩부(150)로부터 수신한 정보를 기초로 침입 탐지 기능을 수행한다. The
상태 관리부(130)는 TCP 핸드쉐이킹 동안 세션의 상태정보를 추적하여 비정상 상태로 전이(transition)되는 패킷에 대해 경보를 발생하고, 침입 대응부(102)에서 해당 공격에 대한 대응을 수행한다. The
도 2 는 세션 상태 관리 장치를 도시한다. 2 shows a session state management apparatus.
세션 상태 관리 장치(200)는 세션 인덱스부(210), 상세 정보 관리부(220), 요약 정보 관리부(230), 검색부(240), 갱신부(250)를 포함한다. The session
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
인덱스는 입력 패킷에 대응하는 세션의 상태정보가 상세 정보 관리부(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
상세 정보 관리부(220)는 세션의 연결 성립 전후 소정 시간 이내의 세션에 대하여, 상기 인덱스 생성시 상기 입력 패킷에서 침입 탐지에 대응하기 위한 세션의 상태 정보를 추출하여 엔트리를 생성, 관리한다.The detailed
상세 정보 관리부(220)는 아직 TCP 3-way 핸드쉐이킹이 이루어지고 있는 세션과 세션 연결이 성립된 후 시간이 오래 경과하지 않은 세션은 보다 상세하고 많은 상태 정보를 관리함으로써, TCP 공격에 대응한다. 상세 정보 관리부(220)의 바람직한 일 실시예는 도 4에 도시되었다. The detailed
요약 정보 관리부(230)는 세션의 연결 성립 후 소정 시간 경과 후의 세션에 대하여, 상기 입력 패킷이 해당하는 세션의 연결, 종료 상태 정보 및 패킷의 방향성 정보를 포함한 엔트리를 생성, 관리한다. The
요약 정보 관리부(230)는 세션 연결이 성립된 후 비교적 시간이 오래 경과한 세션에 대하여서는 간략한 세션의 상태 정보만을 생성, 관리함으로써 메모리 리소스를 상당히 감소시키면서 다수의 세션의 상태 정보를 제공할 수 있다. 요약 정보 관리부(230)의 바람직한 일 실시예는 도 5에 도시되었다. The
검색부(240)는 입력 TCP 패킷이 해당하는 세션의 인덱스가 상기 세션 인덱스 부(210)에 존재하는지 검색하고 상기 인덱스가 존재하지 않는 경우 세션의 연결 성립 후에는 상기 요약 정보 관리부(230)를 검색한다. The
세션의 연결을 요청하는 SYN 패킷 입력시 검색부(240)에서 이에 대응하는 세션의 인덱스를 검색할 수 없는 경우, 세션 인덱스부(210)는 새로운 인덱스 생성시 세션 인덱스부(210)가 풀(Full)인지 여부를 확인한 후 세션 인덱스부(210)가 풀(Full)인 경우 LRU(Least Recently Used) 알고리듬을 이용하여 가장 오래 사용된 인덱스를 삭제하고, 세션의 5-튜플 정보를 포함한 새로운 인덱스를 생성한다. 보다 상세한 설명은 도 6에서 후술하기로 한다. When the
검색부(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
해쉬 어드레스는 입력 패킷이 해당하는 세션의 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
갱신부(250)는 SYN(Synchronize Sequence number)패킷에 대한 응답으로 SYN/ACK 패킷이 들어오면, 세션 인덱스부(210)를 검색하고, 검색 결과 인덱스가 검 색되면 인덱스가 포인트 하고 있는 상세 정보 관리부(220)를 갱신한다. 다만, SYN/ACK 패킷 수신시, 상기 세션 인덱스부(210) 내에서 인덱스가 검색되지 않는 경우, 이는 SYN 패킷의 전송이 없었음에도 수신된 비정상 패킷이므로, 경보를 발생한다.The
도 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
인덱스 생성시, 입력 패킷의 각 필드에서 추출된 세션 상태의 상세한 정보들이 상세 정보 관리부(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
해쉬 키 생성기(330)는 인덱스 내에 포함된 세션 5-튜플 정보를 기초로 해쉬 어드레스를 생성하고, 해쉬 어드레스는 요약 정보 관리부(340) 내의 입력 세션이 해당하는 엔트리를 포인트 한다. The
도 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
이를 위하여, 상세 정보 관리부(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
도 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
이러한 세션의 간략화된 상태 정보의 일 예로서, 입력된 패킷이 현재 연결된 세션인지 여부를 표시하는 세션의 연결, 종료 상태 정보 및 패킷의 방향성 정보 등이 있다.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
다만, 상기 서술된 것은 일 실시예로서, 요약 정보 관리부(230)에 저장되는 정보는 확장 가능함을 유의하여야 한다. However, it should be noted that the above-described information is an example, and the information stored in the
도 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 (
상세 정보 관리부는 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)는 현재 세션이 할당되지 않은 링크들이 연결된 리스트로서, 본 발명은 새로운 세션이 생성되면 IDLE Link(610)의 헤드에서 링크를 할당하여 새롭게 생성된 링크드 리스트의 테일에 세션을 추가하고, 상기 세션이 시간 초과로 삭제되면 상기 링크를 IDLE Link(610)의 테일부분으로 반환하여 삽입하는 메모리 관리를 수행한다.In more detail,
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
이 때, 엔트리가 하나의 링크에서 다음 링크로 이동하여 다음 링크의 테일에 추가되는 시간을 네트워크 관리자에 의하여 설정할 수 있다. 즉, 네트워크 관리자 는 이동 시간에 소정의 임계값(이하, 타임아웃(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
이러한 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
도 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)를 검색하여 패킷이 해당하는 세션 엔트리가 존재하지 않는 경우, 세션 인덱스부가 풀(Full)이 아닌 경우, 새로운 인덱스를 생성하고(S1040, S1050), 세션 인덱스부가 풀(Full)인 경우 LRU 알고리듬을 이용하여 가장 오래된 인덱스를 삭제한 후, 새로운 인덱스를 생성한다(S1040, S1041).If the session entry corresponding to the packet does not exist by searching the
도 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/ACK Link(630)에서 세션 엔트리가 검색되면 SYN/ACK 패킷이 재전송된 것이므로 해당 세션 상태 정보를 갱신하고, 링크는 같은 SYN/ACK Link(630)에서 테일부분으로 이동하도록 조정한다. When the SYN /
도 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 /
SYN/ACK Link(630)에서 세션 엔트리가 검색되면 EST Link(640)로 엔트리를 이동하고, 요약 정보 관리부에 세션의 간략화된 상태 정보를 저장한다(S1230- S1234). If the session entry is found in the SYN /
상세 정보 관리부에서 세션 엔트리를 검색하지 못한 경우, 요약 정보 관리부를 검색하고 세션의 간략화된 상태 정보를 지닌 엔트리를 생성하여 저장한 후 패킷을 포워딩한다(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)
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)
| 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 |
-
2005
- 2005-09-14 KR KR1020050085591A patent/KR100640004B1/en not_active Expired - Fee Related
Cited By (8)
| 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 |