KR100576013B1 - 통신 네트워크에서 전송 제어 프로토콜 동기 플러드공격을 방어하기 위한 방법 - Google Patents
통신 네트워크에서 전송 제어 프로토콜 동기 플러드공격을 방어하기 위한 방법 Download PDFInfo
- Publication number
- KR100576013B1 KR100576013B1 KR1020040086386A KR20040086386A KR100576013B1 KR 100576013 B1 KR100576013 B1 KR 100576013B1 KR 1020040086386 A KR1020040086386 A KR 1020040086386A KR 20040086386 A KR20040086386 A KR 20040086386A KR 100576013 B1 KR100576013 B1 KR 100576013B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- session
- standard deviation
- network
- reference value
- Prior art date
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/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (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 SYN Flood, 서비스 거부 공격, 분산 서비스 거부, PDSN, GGSN, RAS
Description
도 1은 일반적인 TCP 헤더의 구조를 개략적으로 도시한 도면
도 2는 일반적인 TCP 연결 확립을 위한 핸드셰이크 과정을 개략적으로 도시한 도면
도 3은 일반적인 서비스 거부 공격의 일예를 개략적으로 도시한 도면
도 4는 일반적인 분산 서비스 거부 공격의 일예를 개략적으로 도시한 도면
도 5는 일반적인 CDMA 네트워크와 IP 네트워크의 연결을 개략적으로 도시한 도면
도 6은 본 발명의 실시예에 따른 통신 네트워크의 게이트웨이 역할을 수행하는 장치에 적용되는 TCP SYN Flood 공격을 방어하기 위한 과정을 개략적으로 도시한 도면
본 발명은 인터넷 서비스를 제공하는 통신 네트워크에 관한 것으로서 특히, 통신 네트워크에 전송 제어 프로토콜 동기 플러드 공격으로부터 방어하는 방법에 관한 것이다.
현재 데이터 서비스를 제공하는 네트워크는 그 규모와 크기가 매우 커졌으며, 현재 글로벌 네트워크화 되어 있다. 이러한 글로벌 네트워크에서 서로 다른 서버들이 연결에 대한 문제가 대두되었고 이를 위해서 두 서버 간에 "연결 협약(connection agreement)"을 맺는 방법으로 각자의 데이터 패킷에 특정 헤더를 붙여서 전송할 수 있게 하였다. 이러한 연결을 전송 제어 프로토콜(Transmission Control Protocol, 이하 'TCP'라 칭하기로 한다) 연결이라고 한다. 개개의 TCP 패킷(packet)은 각 패킷의 목적과 내용을 명시하는 플래그 비트(flag bit)를 포함하고 있으며 이를 사용하여 송신측과 수신측에서 연결을 완료하게 된다.
여기서 상기 TCP는 인터넷 프로토콜(Internet Protocol, 이하 'IP'라 칭하기로 한다)이 제공하지 못하는 기능들, 즉, 데이터 누락 검사, 패킷 순서 정렬 등의 데이터 교정과 관련된 기능까지 제공하고 있는 신뢰성 있는 프로토콜이다. 그리고 상기 TCP 는 데이터를 교환하기 전에 TCP를 사용하는 두 어플리케이션(Application) 사이에 서로 TCP 연결이 반드시 성립해야 하는 접속 기반(connection-oriented) 프로토콜이다. 이와 같은 상기 TCP가 사용하는 TCP 패킷의 헤더(header)를 하기에서 도 1을 참조하여 설명하기로 한다.
도 1은 일반적인 TCP 헤더의 구조를 개략적으로 도시한 도면이다.
상기 도 1을 참조하면, 상기 TCP 헤더는 20 바이트(byte)의 기본 필드와 옵 션 필드로 구성되어있다. 우선 상기 기본 필드는 소스 포트(source port), 수신지 포트(destination port), 시퀀스 넘버, ACK 넘버, 헤더의 길이(Header LENgth, 이하 'H LEN'이라 칭하기로 한다), Reserved, 플래그 비트들, 윈도우(Window), 체크섬(Checksum), 긴급(Urgent)으로 구성된다.
상기 소스 포트는 메시지를 보내는 측에서 통신을 위해 사용하는 포트 번호를 나타내는 필드이며, 상기 수신지 포트는 목적지, 즉, 메시지를 받는 측의 통신 포트 번호를 나타내는 필드이다. 또한 상기 시퀀스 넘버는 클라이언트와 서버가 해당 연결 즉, 세션(session)의 유일성과 기밀성을 보장하기 위하여 클라이언트의 TCP SYN 전송시 서버, 즉, 호스트(host)의 규칙에 따라 생성된다. 그리고 상기 ACK 넘버는 다음에 받을 것으로 예상되는 데이터 옥텟(octet)의 번호를 나타내며 상기 H LEN은 상기 TCP 헤더의 길이를 정의하고 있는 필드이다. 또한 상기 Reserved는 사용되지 않고 추후의 사용을 위해서 예약되어 있는 필드이다.
또한 플래그 필드는 제어기능을 수행하며 세션이 수행되는 도중에 사용되어야 할 서비스와 오퍼레이션을 명시한다. 상기 플래그 필드의 URG는 긴급 포인터(Urgent Pointer) 필드의 값이 유효함을 나타내는 필드이고, ACK는 ACK 넘버 필드가 유효함을 나타내는 필드이다. 또한 PSH는 해당 세그먼트의 데이터가 즉각 상위 응용 프로그램에 전달되어야 함을 나타내는 필드이고 RST는 접속의 재설정이나 무효한 세그먼트에 대한 응답을 나타내는 필드이다. SYN은 접속 설정 요청을 나타내는 필드이고 FIN은 양방향 통신 중에서 한 쪽에서 접속을 종료하면, 이 방향으로 더 이상의 데이터의 흐름이 끝났음을 나타내는 필드이다.
그리고 윈도우는 수신측에서 받아들일 수 있는 옥텟의 수를 나타내는 필드다. 그리고 체크섬은 송신측로부터 도착한 세그먼트에 오류가 없는지 검사를 위한 필드이다. 그리고 긴급 포인터에서는 상기 URG 플래그가 설정되어 있는 경우 긴급 데이터에 해당하는 데이터 옥텟의 양을 표시하는 필드이다.
또한 옵션 필드는 옵션+패딩, 데이터로 구성된다. 그래서 상기 옵션 필드는 TCP의 추가적인 정보전달 사항을 위해 고안되어 있는 필드이고 데이터로 구성되는 소정의 필드가 존재한다.
상기 네트워크 상에서 동작하는 네트워크 구성 요소들 간의 접속을 위해서 상기 TCP 연결확립을 하게 된다. 상기한 플래그 비트 중에서 SYN 플래그 비트가 세팅(1)되어 있는 패킷은 송신자와 수신자 사이에 접속을 초기화 한다. 또한 상기 ACK 플래그 비트가 세팅(1)되어 있는 패킷은 송신자로부터 정보를 잘 받았음을 확인하는 것이다. 또한 상기 FIN 플래그가 세팅(1)된 패킷은 송신자와 수신자 사이의 접속을 종료함을 의미한다. 그 중에서도 상기 TCP가 초기 접속을 하여 패킷을 송수신하여 연결 확립을 하는 과정을 하기에 도 2을 참조하여 설명하기로 한다.
도 2은 일반적인 TCP 연결 확립을 위한 핸드셰이크 과정을 개략적으로 도시한 도면이다.
상기 TCP는 연결을 유지하기 위해서 일반적으로 핸드셰이크(handshake)라는 과정을 수행한다. 상기 TCP의 연결 확립 과정은 세 개의 세그먼트가 교환되기 때문에 "쓰리-웨이 핸드셰이크(three-way handshake)"라고도 하며, 세 단계의 과정을 통해서 이루어진다.
도 2을 참조하면, 클라이언트(client)(200)와 서버(server)(250) 사이의 핸드셰이크 과정이 도시되어 있는데, 우선 상기 클라이언트(200)는 서버(250)로 상기 클라이언트의 초기 시퀀스 넘버(Initial Sequence Number, 이하 'ISN'이라 칭하기로 한다)가 명시되어 있는 동기(SYNchronous, 이하 'SYN'라 칭하기로 한다) 패킷을 전송한다(201). 여기서 상기 SYN 패킷을 수신한 서버(250)에서는 서버(250) 자신의 ISN을 포함하고 클라이언트의 ISN에 1을 더한 값을 응답(ACKnowledgemet: 이하 'ACK'라 칭하기로 한다) 넘버로 설정한 SYN-ACK 패킷을 상기 클라이언트(200)로 전송한다(203). 상기 클라이언트(200)는 상기 서버(250)로부터 상기 SYN-ACK 패킷을 수신하면 상기 SYN-ACK에 대한 응답으로 상기 서버의 ISN에 1을 더한 값을 ACK 넘버로 설정하여 ACK 패킷으로 응답한다(205). 그래서 상기한 세 단계의 과정을 거치면 연결을 확립하게 된다.
전송 제어 프로토콜 동기 플러드(TCP synchronous flood, 이하 'TCP SYN Flood'라 칭하기로 한다)는 상기 TCP 자체의 상기한 문제점을 이용한 것으로 상기 서버(250)가 상기 클라이언트(200)에게 상기 SYN-ACK를 보낸 후에 상기 클라이언트(200)로부터 다시 ACK를 받기 이전의 시점에서 발생한다. 이 상태를 불완전한(half open) 연결 이라고 부른다. 상기 서버(250)는 진행중인 연결에 대한 정보 즉, SYN 수신(received) 상태를 저장하기 위해 네트워크의 메모리에 자료구조를 구축하며, 상기 자료구조는 그 크기가 제한되어 있다. 이때 공격이 이루어지는 과정은 다음과 같다. 공격자는 타겟(target) 서버에 TCP 연결을 원하는 SYN을 보낸다. 이때 자신이 아닌 위조 즉, 랜덤 넘버로 생성된 다른 서버 또는 클라이언트의 IP 주소를 사 용한다. 그러나 상기 SYN 패킷에 포함된 근원지가 실제 존재하는 유효한 IP라면 그 주소의 서버 또는 클라이언트로부터 RST 패킷을 사용하여 서버에게 연결요청을 하지 않았다는 것을 알리기 위해 응답한다. 하지만 존재하지 않는 IP라면 상기 SYN-ACK 패킷은 버려지게 되고 상기한 과정을 무수히 반복한다면 계속적인 불완전한 연결을 생성하여 서버의 자원이 고갈된다. 그 결과 상기 타겟 서버에서는 메모리 버퍼가 고갈되어 오버플로우(overflow)가 발생한다.
상기와 같은 TCP SYN Flood는 공격자가 TCP SYN 패킷을 Flood하여 타겟 서버의 TCP 연결을 고갈 시켜서 추가적인 연결을 불가능하게 함으로서 타겟 서버의 동작을 불능으로 만드는 것이다. 결국 상기 공격을 받은 타겟 서버에서는 성능이 저하되고 외부에서의 접속이나 데이터 전송이 불가능하게 된다. 또한 상기 TCP SYN Flood는 TCP의 취약성을 이용한 방식으로 운영체제에 관계없이 모두 상기 TCP SYN Flood의 공격 대상이 된다.
이러한 TCP SYN Flood의 공격의 예를 하기에 도면을 참조하여 설명하기로 한다.
도 3은 일반적인 서비스 거부 공격의 일예를 개략적으로 도시한 도면이다.
상기 도3을 참조하면, 상기 서비스 거부(Denial of Service, 이하 'DoS'라 칭하기로 한다) 공격은 공격자의 공격 서버(301)로부터 타겟 서버와 그 서버가 속한 네트워크, 즉, 타겟 서버/네트워크(303)로 과다한 데이터를 보냄으로서 통신 시스템 및 네트워크의 성능을 급격히 저하시켜서 타겟 서버/네트워크(303) 내지는 상기 타겟 서버/네트워크(303)로부터 서비스를 사용자에게 제공하지 못하도록 하는 방법이다. 그래서 상기 DoS 공격의 특징은 하나의 공격 서버가 하나의 서버 또는 네트워크를 공격하는 방법이다.
도 4는 일반적인 분산 서비스 거부 공격의 일예를 개략적으로 도시한 도면이다.
상기 도 4를 참조하면, 상기 분산 서비스 거부(Distributed Denial of Service, 이하 'DDoS'라 칭하기로 한다) 공격은 공격자의 공격 제어 서버(401)로부터 다수의 DoS 공격용 프로그램들이 분산 설치된 에이전트(Agent)(403)들을 제어하고 타겟 서버/네트워크(405)로부터 일제히 데이터 패킷을 범람시킴으로서 그 타겟 서버/네트워크(405)를 성능저하 및 마비를 일으키는 기법을 말한다. 그래서 결국 공격 제어 서버(401)로부터 공격을 지시받아 다수의 상기 에이전트(403)들로부터 타겟 서버/네트워크가 공격을 받는 특징을 갖는다.
상기 DDoS는 DoS보다 타겟 서버/네트워크, 즉, 타겟 호스트로 훨씬 더 큰 영향을 준다. 현재와 같은 핸드셰이크를 통해 접속을 확립하는 TCP에서는 상기 DoS나 상기 DDoS 같은 결국 상기 TCP SYN Flood에 쉽게 노출되어 있다는 문제점이 있었다. 또한 상기와 같은 문제점으로 인해서 악의적인 목적을 가진 공격자로부터의 상기 TCP SYN Flood 공격 등으로 인하여 타겟 서버 또는 네트워크에 대역폭을 고갈되거나 운영체제의 성능이 저하되어 네트워크의 동작에 있어서 지연 또는 마비된다는 문제점이 있었다. 이로 인해 이동 통신 네트워크 같은 경우에는 단말에서 단말로의 공격, 단말에서 네트워크 내부의 서버로의 공격, 단말에서 인터넷망의 호스트 및 서버로의 공격, 인터넷망의 호스트 및 서버에서 단말로의 공격에 무방비 상태에 있 게 된다는 문제점이 있었다.
따라서, 본 발명의 목적은 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 방법을 제안함에 있다.
본 발명의 목적은 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격으로 인한 네트워크의 성능이 저하되는 것을 방지하기 위한 방법을 제안함에 있다.
상기한 목적을 달성하기 위한 본 발명의 방법은; 게이트웨이 기능을 하는 통신장치를 구비하고 동기 시퀀스를 송수신하여 세션을 설정하는 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 방법에 있어서, 세션을 설정하기 전에 상기 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 소정의 기준치들을 설정하는 과정과, 상기 통신 장치에 패킷이 수신되면 상기 패킷의 레이트를 측정하는 과정과, 상기 패킷 레이트를 측정한 값이 설정된 패킷 레이트 기준치보다 크지 않은 경우에는 패킷을 통과시키고 패킷 레이트 기준치보다 큰 경우에는 동기 시퀀스의 넘버를 샘플링하는 과정과, 상기 샘플링한 시퀀스 넘버들이 소정의 구간동안 수신되는 시퀀스 넘버들이 일치하지 않는 경우 상기 소정의 패킷들의 샘플로부터 표준편차를 계산하여 표준편차 기준치보다 크지 않은 경우에는 패킷을 통과시키고 표준편차 기준치보다 큰 경우에는 세션을 해제하는 과정과, 상기 시퀀스 넘버가 일치하는 경우 패킷의 수를 측정하고 패킷수 기준치보다 크지 않은 경우에는 패킷을 통과시키고 패킷수 기준치보다 큰 경우에는 세션을 해제하는 과정을 포함함을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
일반적으로 이동통신 네트워크에서 상기 TCP를 사용하여 데이터 통신을 한다면, 일반적인 인터넷 서비스를 하는 네트워크와 연결을 하게 된다. 이때 상기 인터넷 서비스를 제공하는 IP 네트워크와의 연결을 담당하는 것을 살펴보면, CDMA 네트워크를 일예로 들면 패킷 데이터 스위칭 노드(Packet Data Switching Node, 이하 'PDSN'라 칭하기로 한다)가 있다. 상기 PDSN은 CDMA 네트워크 환경에서 인터넷에 대한 게이트웨이 역할을 수행하며 패킷데이터 서비스를 제공가능하게 하는 역할을 수행한다. 상기 PDSN은 이동통신 가입자에게 패킷 데이터 서비스를 제공하는 시스템인 데이터 코어 네트워크(Data Core Network, 이하 'DCN'이라 칭하기로 한다)의 핵심 구성요소로 무선망 접속부에 해당하는 무선 엑세스 네트워크(Radio Access Network, 이하 'RAN' 이라 칭하기로 한다)와 DCN간 산호 연동을 통해서 무선신호를 TCP 기반의 IP 네트워크 즉, 인터넷과 연결하는 장비이다. 일종의 두 개 이상의 다른 종류 또는 같은 종류의 통신 네트워크를 상호 접속하여 통신네트워크 간 정보를 주고받을 수 있게 하는 기능을 하는 게이트웨이(gateway) 역할을 한다. 그래서 상 기 PDSN은 데이터 통신에 대하여 각 세션, 즉 연결에 대한 관리를 하므로 상기 TCP SYN Flood와 같은 공격을 가장 효율적으로 방어하는 역할을 수행한다. 그래서 하기에 일예로 PDSN을 포함하는 코드 분할 다중 접속(Code Division Multiple Access, 이하 'CDMA'라 칭하기로 한다) 이동통신 네트워크와 IP 네트워크와의 연결을 하기에 도 5를 참조하여 설명하기로 한다.
도 5는 일반적인 CDMA 네트워크와 IP 네트워크의 연결을 개략적으로 도시한 도면이다.
상기 도 5를 참조하면, 상기 CDMA 네트워크는 일반적으로 이동국(Mobile Station, 이하 'MS'라 칭하기로 한다)(501), 기지국(Base Transciever Station, 이하 BTS라 칭하기로 한다)(503), 기지국 제어기(Base Station Controller, 이하 'BSC'라 칭하기로 한다)(505), PDSN(507)로 구성되어 있다.
상기 MS(501)에서는 이동 통신 가입자가 이동 통신 서비스를 받기 위한 단말을 의미한다. 상기 BTS(503)는 상기 BTS(503) 주변에 있는 MS(501)과의 무선 접속 및 MS(501)과 BSC(505)와의 유무선 접속 기능을 수행한다. 또한 상기 BSC(505)에서는 내부에 패킷제어부(PCF: Packet Control Function)를 통해서 상기 PDSN(505)과의 통신을 수행한다. 그리고 상기 PDSN(505)을 통하여 IP 네트워크와 통신을 수행하게 된다. 그리고 상기 PDSN(505)은 상기 IP 네트워크와 상기 CDMA 네트워크와의 접속을 위한 게이트웨이 기능을 수행한다.
이와 같은 상기 PDSN(505)와 동일한 역할을 수행하는 것이 광대역-코드 분할 다중 접속(Wideband-Code Division Multiple Access, 이하 'W-CDMA'라 칭하기로 한 다) 네트워크에서의 게이트웨이 일반 패킷 무선 서비스 지원 노드(Gateway General packet radio service Support Node, 이하 'GGSN'이라 칭하기로 한다)와 초고속통신망의 원격접속서버(Remote Access Server, 이하 'RAS'라 칭하기로 한다)도 동일한 역할을 수행한다.
상기 GGSN은 인접된 인터넷과 접속이 가능한 기능을 제공하여 이동통신 가입자가 고속, 고품질의 인터넷 서비스를 사용할 수 있게 합니다.
또한 RAS는 원격지에서 네트워크에 접속하기를 원하는 사용자들을 관리하도록 설정된 컴퓨터와 관련 소프트웨어이며 통신 서버라고도 불리기도 한다. 원격 접속 요구를 회사 네트워크의 다른 부분으로 전달하기 위한 라우터 등을 포함하거나 또는 연계된다. 그래서 상기 RAS는 모뎀 집합체를 포함하거나, 또는 함께 연동됨으로써 단속적으로 접속하는 많은 수의 원격접속 사용자들이 적은수의 모뎀들을 공유할 수 있게 한다.
예컨대 PDSN, GGSN, RAS 등과 같이 게이트웨이 역할을 하는 장치들은 각 세션들을 관리를 하고 있으므로 상기 TCP SYN Flood와 같은 공격을 효과적으로 방어할 수 있는 역할을 수행하는 것이 가능하다. 즉 IP 네트워크로부터 사용자로 향하는 트래픽이나 사용자로부터 상기 네트워크로 향하는 트래픽은 상기 게이트웨이 역할을 수행하는 장치를 반드시 경유하므로 상기 게이트웨이 장치에서는 각 세션에 대한 검사 및 필터링(filtering)등을 수행하는 것이 가능하다. 상기 게이트웨이 장치에서 이러한 동작을 수행하므로 상기 TCP SYN Flood와 같은 공격을 하나의 네트워크 단위로 처리하게 된다.
그래서 본 발명에서는 상기와 같은 게이트웨이 역할을 수행하는 장치에 상기 TCP SYN Flood를 방어하기 위한 방법을 적용하였으며 상기 방법은 하기에 도 6을 참조하여 설명하기로 한다.
상기 도 6을 설명하기에 앞서 TCP를 사용하는 네트워크에서는 상기에서 설명한 바와 같이 클라이언트에서 서버로 SYN 패킷을 전송하며 ISN을 전송하게 된다. 그러나 상기 ISN은 규칙된 주기로 생성된다. 예를 들면 RFC 793 같은 경우에는 4ms 간격으로 증가하는 32bit counter로 동작한다. 또한 4.4 BSD 같은 경우에는 운영체제가 초기화될 때 1로 초기화되고 그 후는 0.5초마다 64,000씩 증가한다. 또한 새로운 TCP 연결이 만들어질 때 마다 64,000씩 증가하는 동작을 수행한다. 상기와 같이 네트워크에 따라서 일정 규칙을 가지고 있다. 상기와 같은 TCP의 구조적 결함 즉, 상기와 같이 생성된 ISN은 쉽게 추측(guessing)이 가능하고 상기 통신 중인 패킷을 모니터링(monitering)함으로서 쉽게 ISN을 알아낼 수 있으므로 인해서 인가된 호스트로 가장하여 서버 또는 호스트로부터 인가된 노드로 가장하여 세션을 가로채기(hijacking) 한다. 그래서 RFC 1948을 사용하게 되는데 상기 RFC 1948에서는 상기 ISN의 일정한 규칙성을 인정하면서도 새로운 생성 연결에 대해서 추가적인 무질서도(randomness)를 제공하고 있다. 상기 RFC 1948에서 제공하는 ISN 생성하는 수학식은 하기에 나타낸 바와 같다.
상기 수학식 1을 참조하면, 상기 M은 일정 시간 간격을 두고 동작하게 되는 타이머이며, 상기 F는 외부에 공개되지 않은 알고리즘이며 로컬호스트(localhost), 로컬포트(localport), 리모트호스트(remotehost), 리모트포트(remoteport)들을 하나의 단위로 묶어서 처리하는 일종의 튜플(tuple,이하 'tuple'이라 칭하기로 한다)을 사용하여 생성한다. 그리고 각 세션 즉, 연결에는 고유의 랜덤(random)한 값을 제하여 다른 tuple들을 사용하여 상기 ISN을 추측 및 모니터링 하여 상기 ISN을 사용하여 공격하는 것이 불가능 하도록 한다.
이렇게 생성되는 TCP의 ISN을 검사하면 선형적인 증가와 작은 주기의 불규칙한 진폭을 가지는 ISN 패턴을 상기 TCP를 사용하는 네트워크에서 추출하는 것이 가능하다. 그래서 상기한 ISN 패턴을 사용한다. 실제 대부분의 공격이 랜덤한 또는 고정된 시퀀스 넘버를 사용하므로 일정한 패턴을 가지게 된다. 따라서 상기와 같이 일정한 패턴을 벗어나는 패킷을 필터링함으로서 공격의 방어를 가능하게 한다.
도 6은 본 발명의 실시예에 따른 통신 네트워크의 게이트웨이 역할을 수행하는 장치에 적용되는 TCP SYN Flood 공격을 방어하기 위한 과정을 개략적으로 도시한 도면이다.
우선 상기 통신 네트워크에서 게이트웨이 역할을 수행하는 장치, 즉, PDSN, GGSN, RAS 등과 같은 장치에서는 우선 상기 장치를 통과하는 데이터 패킷의 레이트(rate)에 대한 경계 조건(triggering condition)을 설정하여 패킷 레이트 기준치를 설정한다. 또한 상기 패킷의 일정 개수에 대한 조건을 설정하고, 하기에서 계산하는 표준편차에 대한 기준치를 설정하여 가진다. 그리고 상기 각각의 기준치는 네트워크에 사전에 설정되는 것이므로 네트워크 상황이나 특성에 따라서 변형 적용이 가능하다.
도 6을 참조하면, 상기 방법은 상기 CDMA 네트워크의 게이트웨이 역할을 하고 있는 장치인 PDSN을 일예로 하여 설명하기로 한다.
상기 PDSN에 상기 IP 네트워크로부터 패킷이 들어오게 되면 상기 PDSN은 상기 패킷의 레이트(rate)를 측정한다(601). 예컨대 상기 TCP SYN Flood의 공격은 일반적으로 30000pps(packet per second)의 레이트로 실행된다. 그래서 상기 기준값을 30000pps로 설정했다고 가정하기로 한다. 이때 상기 TCP SYN Flood의 공격을 민감하게 적용하려 한다면 상기 30000pps미만의 값을 선택하고, 허용치를 충분히 주어도 되는 경우에는 30000pps이상의 값을 사용한다. 그래서 상기 설정되어 있는 패킷 레이트의 기준치와 패킷 레이트와 비교를 하게 된다(603). 그래서 상기 패킷 레이트가 패킷 레이트 기준치보다 작다면 상기 패킷은 상기 TCP SYN Flood가 아니라고 판단하고 상기 패킷은 통과시킨다. 그러나 상기 패킷레이트가 상기 패킷 레이트 기준치보다 큰 경우에는 상기 시퀀스 넘버를 샘플링(sampling)한다(607). 다음으로 샘플링 한 시퀀스 넘버들이 일치하는 지를 비교한다(609). 일정 샘플링 구간을 두고 상기 구간 안에 속하는 시퀀스 넘버들이 일치하는지를 비교하게 되는 것이다. 상기 확인 결과 시퀀스 넘버들이 일치하는 경우에는 상기 일치하는 패킷의 수를 측정한다(611). 그리고 상기 패킷의 수가 미리 설정되어 있던 시퀀스 넘버가 일치하는 패킷의 수에 대한 기준치를 넘는지를 비교한다(613). 그 결과 상기 패킷의 수에 대한 기준치를 넘는 경우에는 상기 PDSN에 접속을 요청하는 패킷에 대한 연결 즉, 세션을 해제하게 된다(615). 그러나 상기 시퀀스 넘버들이 일치하지 않는 경우에는 표준편차를 계산하게 된다(617). 상기 표준편차는 상기 각 패킷에 대한 샘플을 평균하고 상기 평균에 대한 차이를 계산하여 분포를 확인하는 것이 가능하다. 그래서 상기 표준편차가 일정값을 초과한다면 이는 충분히 랜덤한 시퀀스 넘버들이다. 그러나 순차적으로 들어오는 정상적인 패킷에 대한 표준편차는 크지 않으며 일정 범위내에 존재하므로 랜덤한 시퀀스 넘버들은 상기 TCP SYN Flood의 공격일 확률이 크며 상기 표준편차 값이 크게 계산된다.
그래서 상기 PDSN에 상기 표준편차에 대한 표준편차 기준치를 설정해두고 상기 기준치의 범위 내에 존재하는지를 비교한다(619).
그리고 여기서 상기 표준편차를 계산하는 수학식은 하기에 나타낸 바와 같다.
상기 은 표준편차이고 상기 N은 표준편차를 계산하기 위한 표본의 개수를 의미하며 는 평균을 의미한다. 하지만 상기 표준편차를 계산하는 식은 이진연산을 수행하는 통신 네트워크에 있어서 연산을 하는데 있어서 많은 오버헤드를 발생시킨다. 따라서 상기 표준편차계산을 하는 수학식에 있어서 절대값을 사용한다면 계산 효율을 증가시키는 것이 가능하다.
상기 표준편차를 벗어나는 것을 계산하는 평균 편차(Mean Deviation, 이하 'MD'라 칭하기로 한다)의 수학식은 하기에 나타낸 바와 같다.
상기 MD는 표준편차이고, 상기 N은 표준편차를 계산하기 위한 표본의 개수를 의미하며 는 평균을 의미한다. 그래서 이진 연산에 적용되면 계산 효율이 증가하는 상기와 같은 수학식을 사용하여 표준편차를 계산하여 표준편차 기준치와 비교하는 과정을 수행한다.
그래서 상기 기준치의 범위 내에 존재한다면 패킷을 통과시킨다(605). 그러나 상기 표준편차 기준치를 벗어난다면 세션을 해지한다(615).
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같은 본 발명은, 통신 네트워크에서 통신 네트워크의 게이트웨이 역할을 수행하는 장치에서 TCP SYN Flood 공격을 방어하는 방법을 제안하였다. 이를 사용하면 상기 TCP SYN Flood 공격을 방어하는 것이 가능하고 상기 TCP SYN Flood로 인한 네트워크의 성능이 저하되는 것을 방지하여 상기 TCP SYN Flood 공격으로부터 네트워크 내부의 단말 또는 호스트의 성능저하 및 통신 불능을 막는다.
Claims (5)
- 게이트웨이 기능을 하는 통신장치를 구비하고 동기 시퀀스를 송수신하고, 세션을 설정하는 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 방법에 있어서,세션을 설정하기 전에 상기 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 소정의 기준치들을 설정하는 과정과,상기 통신 장치에 패킷이 수신되면 상기 패킷의 레이트를 측정하는 과정과,상기 패킷 레이트를 측정한 값이 설정된 패킷 레이트 기준치보다 크지 않은 경우에는 패킷을 통과시키고 패킷 레이트 기준치보다 큰 경우에는 동기 시퀀스의 넘버를 샘플링하는 과정과,상기 샘플링한 시퀀스 넘버들이 소정의 구간동안 수신되는 시퀀스 넘버들이 일치하지 않는 경우 상기 패킷들의 샘플로부터 표준편차를 계산하여 표준편차 기준치보다 크지 않은 경우에는 패킷을 통과시키고 표준편차 기준치보다 큰 경우에는 세션을 해제하는 과정과,상기 시퀀스 넘버가 일치하는 경우 패킷의 수를 측정하고 패킷 수 기준치보다 크지 않은 경우에는 패킷을 통과시키고 패킷 수 기준치보다 큰 경우에는 세션을 해제하는 과정을 포함함을 특징으로 하는 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 방법.
- 제 1항에 있어서,상기 동기 시퀀스는 초기 시퀀스 넘버를 포함함을 특징으로 하는 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 방법.
- 제 1항에 있어서,세션을 설정하기 전에 상기 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 소정의 기준치들은 패킷 레이트 기준치와, 패킷수 기준치, 표준편차 기준치인 것을 특징으로 하는 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 방법.
- 제 1항에 있어서,상기 표준편차의 연산은 절대값을 사용하여 계산하는 것을 특징으로 하는 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 방법.
- 제 1항에 있어서,상기 게이트웨이 역할을 하는 장치는 패킷 데이터 스위칭 노드, 게이트웨이 일반 패킷 무선 서비스 지원 노드, 원격 접속 서버를 포함함을 특징으로 하는 통신 네트워크에서 전송 제어 프로토콜 동기 플러드 공격을 방어하기 위한 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040086386A KR100576013B1 (ko) | 2004-10-27 | 2004-10-27 | 통신 네트워크에서 전송 제어 프로토콜 동기 플러드공격을 방어하기 위한 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040086386A KR100576013B1 (ko) | 2004-10-27 | 2004-10-27 | 통신 네트워크에서 전송 제어 프로토콜 동기 플러드공격을 방어하기 위한 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100576013B1 true KR100576013B1 (ko) | 2006-05-02 |
Family
ID=37181044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040086386A KR100576013B1 (ko) | 2004-10-27 | 2004-10-27 | 통신 네트워크에서 전송 제어 프로토콜 동기 플러드공격을 방어하기 위한 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100576013B1 (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100858271B1 (ko) | 2007-11-27 | 2008-09-11 | 주식회사 나우콤 | 분산서비스거부공격 차단장치 및 그 방법 |
WO2008112191A1 (en) * | 2007-03-09 | 2008-09-18 | Secure64 Software | Method and system for protecting a computer system from denial-of-service attacks and other deleterious resource-draining phenomena related to communications |
WO2009030164A1 (fr) * | 2007-09-03 | 2009-03-12 | Huawei Technologies Co., Ltd. | Procédé, système et dispositif pour empêcher l'attaque par dégradation pendant qu'un terminal se déplace |
KR101002801B1 (ko) | 2008-08-28 | 2010-12-21 | 주식회사 퓨쳐시스템 | DDoS 공격 방어 장치 및 방법 |
CN109873835A (zh) * | 2019-03-29 | 2019-06-11 | 北京经纬恒润科技有限公司 | 一种报文处理***及方法 |
-
2004
- 2004-10-27 KR KR1020040086386A patent/KR100576013B1/ko not_active IP Right Cessation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008112191A1 (en) * | 2007-03-09 | 2008-09-18 | Secure64 Software | Method and system for protecting a computer system from denial-of-service attacks and other deleterious resource-draining phenomena related to communications |
WO2009030164A1 (fr) * | 2007-09-03 | 2009-03-12 | Huawei Technologies Co., Ltd. | Procédé, système et dispositif pour empêcher l'attaque par dégradation pendant qu'un terminal se déplace |
US8219064B2 (en) | 2007-09-03 | 2012-07-10 | Huawei Technologies Co., Ltd. | Method, system, and apparatus for preventing bidding down attacks during motion of user equipment |
KR100858271B1 (ko) | 2007-11-27 | 2008-09-11 | 주식회사 나우콤 | 분산서비스거부공격 차단장치 및 그 방법 |
KR101002801B1 (ko) | 2008-08-28 | 2010-12-21 | 주식회사 퓨쳐시스템 | DDoS 공격 방어 장치 및 방법 |
CN109873835A (zh) * | 2019-03-29 | 2019-06-11 | 北京经纬恒润科技有限公司 | 一种报文处理***及方法 |
CN109873835B (zh) * | 2019-03-29 | 2021-03-23 | 北京经纬恒润科技股份有限公司 | 一种报文处理***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7613193B2 (en) | Apparatus, method and computer program product to reduce TCP flooding attacks while conserving wireless network bandwidth | |
US7711790B1 (en) | Securing an accessible computer system | |
KR101442020B1 (ko) | 송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치 | |
EP1844596B1 (en) | Method and system for mitigating denial of service in a communication network | |
JP4994359B2 (ja) | 3g無線ネットワークをシグナリング攻撃から防御するための方法及び装置 | |
US7162740B2 (en) | Denial of service defense by proxy | |
US7930740B2 (en) | System and method for detection and mitigation of distributed denial of service attacks | |
Abramov et al. | TCP Ack storm DoS attacks | |
US8879388B2 (en) | Method and system for intrusion detection and prevention based on packet type recognition in a network | |
EP2543170B1 (en) | Method for secure connection initiation with hosts behind firewalls | |
EP2464079A1 (en) | Method for authenticating communication traffic, communication system and protection apparatus | |
US7404210B2 (en) | Method and apparatus for defending against distributed denial of service attacks on TCP servers by TCP stateless hogs | |
CN111212096B (zh) | 一种降低idc防御成本的方法、装置、存储介质和计算机 | |
CN110213224B (zh) | 数据包异步转发方法和***、数据处理***及共识节点终端 | |
WO2016177131A1 (zh) | 防止dos攻击方法、装置和*** | |
KR100576013B1 (ko) | 통신 네트워크에서 전송 제어 프로토콜 동기 플러드공격을 방어하기 위한 방법 | |
Kumarasamy et al. | An active defense mechanism for TCP SYN flooding attacks | |
Santhanam et al. | Active cache based defense against dos attacks in wireless mesh network | |
Kak | Lecture 16: TCP/IP Vulnerabilities and DoS Attacks: IP Spoofing, SYN Flooding, and The Shrew DoS Attack | |
KR20130022089A (ko) | 서비스 거부 공격에 대한 tcp연결 해제 방법 및 장치 | |
Cisco | X.25 and LAPB Commands | |
Efstathopoulos | Practical study of a defense against low-rate TCP-targeted DoS attack | |
Kumar et al. | An analysis of tcp syn flooding attack and defense mechanism | |
Smith et al. | Comparison of operating system implementations of SYN flood defenses (cookies) | |
Machora | A survey of transmission control protocol variants |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment | ||
LAPS | Lapse due to unpaid annual fee |