KR101104599B1 - 네트워크 상에서 tcp syn 플러딩 공격을 차단하는 장치 및 방법 - Google Patents

네트워크 상에서 tcp syn 플러딩 공격을 차단하는 장치 및 방법 Download PDF

Info

Publication number
KR101104599B1
KR101104599B1 KR1020090076030A KR20090076030A KR101104599B1 KR 101104599 B1 KR101104599 B1 KR 101104599B1 KR 1020090076030 A KR1020090076030 A KR 1020090076030A KR 20090076030 A KR20090076030 A KR 20090076030A KR 101104599 B1 KR101104599 B1 KR 101104599B1
Authority
KR
South Korea
Prior art keywords
client
server
tcp
packet
syn
Prior art date
Application number
KR1020090076030A
Other languages
English (en)
Other versions
KR20110018528A (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 KR1020090076030A priority Critical patent/KR101104599B1/ko
Publication of KR20110018528A publication Critical patent/KR20110018528A/ko
Application granted granted Critical
Publication of KR101104599B1 publication Critical patent/KR101104599B1/ko

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/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Landscapes

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

Abstract

본 발명은 네트워크 상에서 TCP SYN 플러딩(flooding) 공격을 차단하는 장치 및 방법에 관한 것이다.
본 발명에 따르면, 클라이언트로부터 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷을 수신하면, TCP 동시 개방 연결(simultaneous open connection) 방식을 이용하여 상기 클라이언트로 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하고, 상기 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면, 상기 클라이언트와 서버 사이를 연결하는 것을 특징으로 한다.

Description

네트워크 상에서 TCP SYN 플러딩 공격을 차단하는 장치 및 방법 {Apparatus and method for defending TCP SYN flooding attacks}
본 발명은 네트워크 상에서 TCP SYN 플러딩(flooding) 공격을 차단하는 장치 및 방법에 관한 것으로서, 더욱 상세하게는 클라이언트로부터 서버와의 연결 설정을 위한 SYN 패킷을 수신하면 클라이언트로 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하여 TCP SYN 플러딩 공격 여부를 판단함으로써 TCP SYN 플러딩 공격을 차단하는 장치 및 방법에 관한 것이다.
TCP(Transmission Control Protocol)는 UDP(User Datagram Protocol)와 달리 신뢰성 있는 연결을 담당하기 때문에 서버와 클라이언트 사이의 본격적인 통신이 이루어지기 전에 일반적으로 3-웨이 핸드쉐이킹(3-way handshaking)을 수행한다.
3-웨이 핸드쉐이킹은, 클라이언트가 서버로 접속을 요청하는 SYN 패킷을 전송하는 제1 단계, 서버가 클라이언트에게 요청을 수락한다는 SYN/ACK 패킷을 전송하는 제2 단계, 클라이언트가 서버로 ACK 패킷을 전송하는 제3 단계로 구성되며, 이와 같이 3-웨이 핸드쉐이킹을 통해 연결이 설정되면 클라이언트와 서버 사이에 본격적으로 데이터를 교환한다.
그러나, 3-웨이 핸드쉐이킹 과정에서 악의적인 공격자가 제1 단계만 요청하고(즉, SYN 패킷만 전송하고) 서버로부터 응답을 받은 후(즉, SYN/ACK 패킷을 수신한 후) 서버에게 ACK 패킷을 보내지 않으면, 서버는 공격자로부터 응답이 올 것을 기대하고 반쯤 열린 하프 오픈(Half Open) 상태가 되어 대기 상태에 머무르게 된다.
일정 시간(예컨대, 75초(플랫폼에 따라 조금씩 다름)) 동안 클라이언트로부터 ACK 패킷이 오지 않으면, 해당 연결은 초기화되기 전까지 메모리 공간인 백로그 큐(Backlog Queue)에 계속 존재하게 되고, 만약 단시간에 위조된 SYN 패킷이 대량으로 전달되면 결국 백로그 큐가 포화되어 더 이상의 연결을 받아들일 수 없는 서비스 거부 상태(DoS; Denial of Service)가 되게 된다.
이와 같은 악의적인 공격을 'TCP SYN 플러딩(Flooding) 공격'이라 하는데, TCP SYN 플러딩 공격은 백로그 큐가 가득 차더라도 공격을 당한 해당 포트만 접속이 이루어지지 않을 뿐 다른 포트에는 영향을 미치지 않아 관리자가 잘 모르는 경우가 많으며, 다른 DoS 공격과는 달리 많은 트래픽을 유발하는 공격이 아니므로 쉽게 파악이 되지 않는 특성이 있다.
한편, 이와 같은 TCP SYN 플러딩 공격을 차단하기 위하여, 종래기술에서는 서버 스스로가 다이나믹 백로그 큐(Dynamic Backlog Queue)나 SYN 쿠키(cookie)를 이용하여 TCP SYN 플러딩 공격을 방어하는 방법, 방화벽이 SYN 패킷의 개수를 제한하여 TCP SYN 플러딩 공격을 방어하는 방법 등이 제안되었다.
먼저, 다이나믹 백로그 큐를 이용하는 방법은 고정된 길이의 백로그 큐가 공 격을 받을 시 곧 포화상태에 이르는 문제점을 해결하기 위하여 백로그 큐의 길이를 런타임(run time)에 동적으로 늘려 주는 방법인데, 이는 백로그 큐가 포화상태에 이르는 것을 지연시켜 주지만 그에 따라 메모리(메모리 크기는 한정되어 있음) 사용량이 증가하게 되어 근본적으로 문제를 해결하지 못하는 문제점이 있었다.
그리고, SYN 쿠키를 이용하는 방법은 클라이언트로부터 SYN 패킷을 수신 후 SYN/ACK 패킷으로 응답할 때 SYN 쿠키(이는 SYN/ACK 패킷의 초기 시퀀스(Sequence) 번호에 클라이언트 IP 주소와 포트, 서버 IP 주소와 포트 등을 조합한 해쉬값을 적용하여 생성됨)를 포함시켜 전송하고 클라이언트로부터 ACK 패킷을 받으면 패킷 내용을 분석하여 정상적인 연결 요청인가를 판단하는 방법인데, 이는 복잡한 SYN 쿠키를 사용해야 하고 서버 자체가 TCP SYN 플러딩 공격을 방어해야 하기 때문에 서버에 부하가 많이 걸리는 문제점이 있었다.
또한, 전술한 방법을 방화벽에 적용하더라도, 방화벽은 내부에 있는 모든 서버를 중간에서 보호해야 하는데 방화벽에 전달되는 공격이 방어될 뿐 방화벽 내부의 서버들에 대한 공격에는 도움이 되지 않는 문제점이 여전히 존재하였다.
또한, 미국특허공보 제7,254,133호(2007.08.07)와 같이 SYN 쿠키 방식을 방화벽에 적용하는 방식이 있지만, 이는 서버와의 TCP 연결을 생성하기도 전에 클라이언트와 3-웨이 핸드쉐이킹(3-way handshaking) 방식의 TCP 연결을 생성하기 때문에, 서버와의 연결을 생성하기 이전에 클라이언트로부터 전송되는 데이터를 버퍼에 저장해야 하는 단점이 있다. 또한, 후단 서버의 해당 포트에 서버 프로그램이 없는 경우에도 클라이언트는 중계자(방화벽)와 연결을 만들고 이후 접속이 끊어지기 때문에 사용자 투명성이 부족한 단점이 있다.
한편, 방화벽이 SYN 패킷의 개수를 제한(Rate Limiting)하는 방법은 방화벽을 지나 내부 서버로 향하는 SYN 패킷이 단위 시간당 일정 수를 넘지 못하도록 제한하는 방법인데, 이는 공격 트래픽과 정상 트래픽을 구분하지 못하기 때문에 정상 트래픽까지 방화벽을 통과하지 못하는 문제점이 있었다.
본 발명은 전술한 바와 문제점을 해결하기 위해 창안된 것으로, 본 발명의 목적은 네트워크 상에서 악의적인 TCP SYN 플러딩 공격을 효율적으로 차단하는 장치 및 방법을 제공하는 것이다.
본 발명의 다른 목적은 클라이언트로부터 서버와의 연결 설정을 위한 SYN 패킷을 수신하면 클라이언트로 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하여 TCP SYN 플러딩 공격 여부를 판단함으로써 TCP SYN 플러딩 공격을 차단하는 장치 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 공격 트래픽과 정상 트래픽을 구분하여 정상 트래픽은 서버로 전송하고 공격 트래픽만 효과적으로 차단할 수 있는 TCP SYN 플러딩 공격을 차단하는 장치 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 클라이언트로부터 정상적인 SYN 패킷을 수신하더라도 3-웨이 핸드쉐이킹을 통해 클라이언트와 바로 연결하지 않고 서버와의 정상적인 연결을 확인 후 클라이언트와 서버를 중계하는 TCP SYN 플러딩 공격을 차단하는 장치 및 방법을 제공하는 것이다.
상기한 목적을 위하여, 본 발명의 일 형태에 네트워크 상에서 TCP SYN 플러딩(flooding) 공격을 차단하는 장치는, 클라이언트와의 TCP 연결을 위한 제1 인터페이스; 서버와의 TCP 연결을 위한 제2 인터페이스; 및 상기 제1 인터페이스 및 제2 인터페이스와 연결되어 상기 클라이언트와 상기 서버 사이를 중계하는 프로세서를 포함하고, 상기 프로세서는 상기 클라이언트로부터 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷을 수신하면 TCP 동시 개방 연결(simultaneous open connection) 방식을 이용하여 상기 클라이언트로 TCP SYN 플러딩 공격 여부를 판단하기 위한 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하고, 상기 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면 TCP SYN 플러딩 공격이 아닌 것으로 판단하고 3-웨이 핸드쉐이킹(3-way handshaking) 방식을 이용하여 상기 서버와 TCP 연결을 생성한 후 상기 클라이언트로 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷에 응답하는 ACK 패킷을 전송하고, 상기 클라이언트와 상기 서버 사이를 중계하는 것을 특징으로 한다.
그리고, 본 발명의 일 형태에 따른 네트워크 상에서 TCP SYN 플러딩(flooding) 공격을 차단하는 시스템은, 상기 네트워크를 통해 적어도 하나의 서비스를 요구하는 클라이언트; 상기 네트워크를 통해 상기 적어도 하나의 서비스를 제공하는 서버; 및 상기 클라이언트와 상기 서버 사이에 위치하는 방화벽(firewall)을 포함하고, 상기 방화벽은 상기 클라이언트로부터 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷을 수신하면 TCP 동시 개방 연결(simultaneous open connection) 방식을 이용하여 상기 클라이언트로 TCP SYN 플러딩 공격 여부를 판단하기 위한 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하고, 상기 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면 TCP SYN 플러딩 공격이 아닌 것으로 판단하고 3-웨이 핸드쉐이킹(3-way handshaking) 방식을 이용하여 상기 서버와 TCP 연결을 생성한 후 상기 클라이언트로 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷에 응답하는 ACK 패킷을 전송하고, 상기 클라이언트와 상기 서버 사이를 중계하는 것을 특징으로 한다.
한편, 본 발명의 일 형태에 따른 네트워크 상에서 TCP SYN 플러딩(flooding) 공격을 차단하는 방법은, 방화벽(firewall)이 클라이언트로부터 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷을 수신하는 단계; 상기 방화벽이 TCP 동시 개방 연결(simultaneous open connection) 방식을 이용하여 상기 클라이언트로 TCP SYN 플러딩 공격 여부를 판단하기 위한 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하는 단계; 상기 방화벽이 상기 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면 TCP SYN 플러딩 공격이 아닌 것으로 판단하고, 3-웨이 핸드쉐이킹(3-way handshaking) 방식을 이용하여 상기 서버와 TCP 연결을 생성하는 단계; 상기 방화벽이 상기 클라이언트로 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷에 응답하는 ACK 패킷을 전송하여, 상기 방화벽과 클라이언트 사이에 TCP 연결을 생성하는 단계; 및 상기 방화벽이 상기 클라이언트와 상기 서버 사이를 중계하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 복잡한 SYN 쿠키를 사용하지 않고 간단한 타임스탬프 옵션을 적용하여 네트워크 상에서 악의적인 TCP SYN 플러딩 공격을 효율적으로 차단할 수 있는 효과를 가진다.
그리고, 본 발명에 따르면, 공격 트래픽과 정상 트래픽을 구분하여 정상 트래픽은 서버로 전송하고 공격 트래픽은 차단함으로써 방화벽에서 내부에 위치한 서버들에 대한 TCP SYN 플러딩 공격만을 정확히 차단할 수 있는 효과를 가진다.
또한, 본 발명에 따르면, 방화벽이 클라이언트로부터 정상적인 SYN 패킷을 수신하더라도 서버와의 정상적인 연결을 확인한 후 클라이언트와 서버를 중계함으로써, 서버가 정상 동작하지 않는 경우(예, 서버의 해당 포트에 서버 프로그램이 없는 경우) 자연스럽게(투명하게) 클라이언트의 연결 요청을 거절할 수 있는 장점을 가진다.
이하에서는 첨부 도면 및 바람직한 실시예를 참조하여 본 발명을 상세히 설명한다. 참고로, 하기 설명에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략하였다.
먼저, 도 1은 본 발명이 적용되는 일반적인 네트워크의 구성을 예시한 것이다.
도 1을 참조하면, 일반적으로 클라이언트(Client)와 서버(Server)는 네트워크(예, Public network, Internet 등)를 통해 상호 연결되며, 네트워크와 서버 사이에는 방화벽(firewall)이 위치하여 네트워크를 통해 들어오는 서버에 대한 악의적인 공격을 사전에 차단한다.
한편, 도 2는 본 발명의 일 실시예에 따른 TCP SYN 플러딩 공격 차단 시스템의 구성도를 도시한 것으로, 도 1에 도시된 클라이언트, 방화벽, 서버의 관계를 보 다 구체적으로 나타낸 것이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 TCP SYN 플러딩 공격 차단 시스템은 클라이언트(100), TCP SYN 플러딩 공격 차단 장치(200), 서버(300) 등으로 구성된다.
이를 상술하면, 클라이언트(100)는 네트워크를 통해 적어도 하나의 서비스(예, 인터넷, 메일, VoIP 등)를 서버(300)에 요구하며, 서버(300)는 클라이언트(100)가 요구하는 서비스를 네트워크를 통해 클라이언트(100)에 제공한다. 그리고, TCP SYN 플러딩 공격 차단 장치(200)는 클라이언트(100)와 서버(300) 사이에 위치하여 악의적인 클라이언트로부터의 공격을 차단하고 서버를 보호한다.
참고로, 본 발명에 따른 TCP SYN 플러딩 공격 차단 장치(200)는 기능적인 측면에서 볼 때 일종의 방화벽(firewall)이라 할 수 있으며, 따라서 본 발명에서는 TCP SYN 플러딩 공격 차단 장치와 방화벽을 혼용하여 설명한다. 그러나, 본 발명에 따른 TCP SYN 플러딩 공격 차단 장치를 다른 측면에서 보면(예컨대, 네트워크 구성요소의 측면에서 보면) 게이트웨이(gateway), 라우터(router), L4(Layer 4) 스위치 등과 같이 다양한 형태로 구현될 수 있으며, 그러므로 본 발명에 따른 TCP SYN 플러딩 공격 차단 장치는 그 명칭에 상관없이 후술하는 특허청구범위에 의해 특정된다 할 것이다.
다시 도 2를 참조하면, 본 발명에 따른 TCP SYN 플러딩 공격 차단 장치(200)는 클라이언트(100)와의 TCP 연결을 위한 제1 인터페이스(210), 서버(300)와의 TCP 연결을 위한 제2 인터페이스(230), 그리고 상기 제1 인터페이스(210) 및 제2 인터 페이스(230)와 연결되어 TCP SYN 플러딩 공격을 차단하는 프로세서(220) 등을 포함한다.
구체적으로, 상기 프로세서(220)는 클라이언트(100)로부터 클라이언트와 서버의 연결 설정을 위한 SYN 패킷을 수신하면 TCP 동시 개방 연결(simultaneous open connection) 방식에 따라 해당 클라이언트(100)로 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하여 TCP SYN 플러딩 공격 여부를 판단한다. TCP SYN 플러딩 공격 여부의 판단은 클라이언트로(100)부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하였는가에 기초하여 이루어지며, 만약 클라이언트로(100)부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면 상기 프로세서(220)는 TCP SYN 플러딩 공격이 아닌 것으로 판단하여 클라이언트(100)와 서버(300)의 연결을 수행한다.
여기서, 타임스탬프 옵션은 TCP 패킷의 옵션 필드(option field)에 적용할 수 있는 옵션 중 하나로 RFC(Request for Comments) 1323에 규정되어 있으며, 주로 발신지와 목적지 사이의 왕복시간(RTT; Round Trip Time)을 측정을 위해 사용한다. 그러나, 본 발명에서는 타임스탬프 옵션을 상기 목적 외에 특히 클라이언트가 전송한 SYN 패킷의 진위 여부를 판단하기 위해 사용한다.
클라이언트(100)와 서버(300) 사이의 연결은, 프로세서(200)가 3-웨이 핸드쉐이킹 등을 통해 서버(300)와 연결한 후, 프로세서(200)가 클라이언트(100)와 서버(300) 사이를 중계함으로써 수행된다.
한편, 프로세서(220)가 소정 시간 이내에 상기 클라이언트(100)로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하지 못하면 TCP SYN 플러딩 공격으로 판단 하고, 그 이후의 절차(즉, 프로세서와 서버의 연결)를 수행하지 않음으로써 클라이언트와 서버의 연결을 차단한다.
이상에서 본 발명에 따른 TCP SYN 플러딩 공격 차단 시스템 및 장치를 대략적으로 설명하였는데, 이에 대한 보다 구체적인 동작 등에 대해서는 도 3을 참조하여 후술하는 내용을 참조할 수 있다.
도 3은 본 발명의 일 실시예에 따른 TCP SYN 플러딩 공격 차단 방법의 흐름도이다. 참고로, 도 3에서는 클라이언트, 방화벽, 서버 사이에 송수신되는 패킷의 흐름을 중심으로 나타내었으며, 여기서 방화벽은 본 발명에 따른 TCP SYN 플러딩 공격 차단 장치가 실제 구현된 하나의 형태라 할 수 있다.
먼저, 단계 S310에서, 클라이언트가 서버와의 연결 설정을 위한 SYN 패킷을 서버로 송신하면, 방화벽(firewall)이 서버를 대신하여 이를 수신한다. 그리고, 단계 S320에서, 방화벽은 클라이언트가 전송한 SYN 패킷의 진위 여부(즉, TCP SYN 플러딩 공격 여부)를 확인하기 위해 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 클라이언트로 전송한다. 이것은 상기 클라이언트와 방화벽 사이에서 TCP 동시 개방 연결(simultaneous open connection) 방식을 이용한 연결이 이루어지는 과정이다. 이 경우, 만약 클라이언트가 악의적으로 TCP SYN 플러딩 공격을 한 것이라면, 클라이언트는 방화벽이 송신한 SYN 패킷에 대해 응답을 하지 않게 되며, 따라서 방화벽은 단계 S310의 SYN 패킷이 TCP SYN 플러딩 공격이라고 판단하고 서버와의 연결을 차단한다(즉, 다음 절차를 진행하지 않는다). 그러나, 만약 클라이언트가 전송한 SYN 패킷이 TCP SYN 플러딩 공격이 아니라면, 단계 S330에서, 클라이언트는 방화벽으로 타임스탬프 옵션이 적용된 ACK 패킷을 전송하게 된다.
방화벽이 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면, 방화벽은 클라이언트로 가장하여 서버와의 TCP 연결을 위해 3-웨이 핸드쉐이킹을 수행한다. 구체적으로, 단계 S340에서, 방화벽은 서버로 방화벽과 서버의 연결 설정을 위한 SYN 패킷을 전송하고, 단계 S350에서, 서버는 이에 응답하여 방화벽으로 SYN/ACK 패킷을 전송한다. 그러면, 단계 S360에서, 방화벽은 다시 상기 SYN/ACK 패킷에 응답하는 ACK 패킷을 전송하며, 이와 같은 과정을 통해 방화벽과 서버 사이에 TCP 연결이 생성된다.
한편, 방화벽과 서버 사이에 TCP 연결이 생성되면, 단계 S370에서, 방화벽은 클라이언트로 단계 S310의 SYN 패킷에 응답하는 ACK 패킷을 전송함으로써 클라이언트와 방화벽 사이에 TCP 연결을 생성한다. 참고로, 본 발명은 방화벽과 서버 사이에 연결이 설정된 이후에 방화벽이 서버를 대신하여 클라이언트로 ACK 패킷을 전송하므로, 만약 서버가 정상 동작하지 않는 경우(예, 서버의 해당 포트에 서버 프로그램이 없는 경우)에는 클라이언트에게 서버로부터 전달되는 RST 패킷을 전달함으로써 또는 서버로부터 아예 응답이 없으면 ACK 패킷을 보내지 않음으로써 자연스럽게 클라이언트의 연결 요청을 거절할 수 있다.
클라이언트와 방화벽 사이에 TCP 연결이 생성되면, 단계 S380에서, 방화벽은 클라이언트와 서버를 중계하여 이들 사이에 전송되는 TCP 패킷을 포워딩(packet forwarding)한다. 구체적으로는, 방화벽이 클라이언트로부터 TCP 패킷을 수신하면 방화벽과 서버 사이에 생성된 연결에 기초하여 TCP 시퀀스(sequence) 번호 및 확인 응답(acknowledgement) 번호를 변경한 후 서버로 전송하며, 마찬가지로 방화벽이 서버로부터 TCP 패킷을 수신하면 클라이언트와 방화벽 사이에 생성된 연결에 기초하여 TCP 시퀀스 번호 및 확인응답 번호를 변경한 후 클라이언트로 전송한다.
한편, 본 발명에 따른 네트워크 상에서 TCP SYN 플러딩 공격을 차단하는 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독가능 기록매체를 통하여 실시될 수 있다. 상기 컴퓨터 판독가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 기록매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명의 기술적 사상이나 필수적 특징들을 변경하지 않고서 다른 구체적인 다양한 형태로 실시할 수 있는 것이므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이 해해야만 한다.
그리고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 특정되는 것이며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태는 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명이 적용되는 일반적인 네트워크의 구성을 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 TCP SYN 플러딩 공격 차단 시스템의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 TCP SYN 플러딩 공격 차단 방법의 흐름도이다.

Claims (15)

  1. 네트워크 상에서 TCP SYN 플러딩(flooding) 공격을 차단하는 장치로서,
    클라이언트와의 TCP 연결을 위한 제1 인터페이스;
    서버와의 TCP 연결을 위한 제2 인터페이스; 및
    상기 제1 인터페이스 및 제2 인터페이스와 연결되어 상기 클라이언트와 상기 서버 사이를 중계하는 프로세서를 포함하고,
    상기 프로세서는
    상기 클라이언트로부터 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷을 수신하면 TCP 동시 개방 연결(simultaneous open connection) 방식을 이용하여 상기 클라이언트로 TCP SYN 플러딩 공격 여부를 판단하기 위한 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하고, 상기 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면 TCP SYN 플러딩 공격이 아닌 것으로 판단하고 3-웨이 핸드쉐이킹(3-way handshaking) 방식을 이용하여 상기 서버와 TCP 연결을 생성한 후 상기 클라이언트로 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷에 응답하는 ACK 패킷을 전송하고, 상기 클라이언트와 상기 서버 사이를 중계하는 것을 특징으로 하는 TCP SYN 플러딩 공격 차단 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 클라이언트와 상기 서버 사이의 중계는,
    상기 프로세서가 상기 클라이언트 또는 상기 서버로부터 TCP 패킷을 수신하면 TCP 시퀀스(sequence) 번호 및 확인응답(acknowledgement) 번호를 변경하여 상기 서버 또는 상기 클라이언트로 전송함으로써 수행되는 것을 특징으로 하는 TCP SYN 플러딩 공격 차단 장치.
  5. 제1항에 있어서,
    상기 프로세서는 소정 시간 이내에 상기 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하지 못하면 TCP SYN 플러딩 공격으로 판단하여 상기 클라이언트와 서버의 연결을 차단하는 것을 특징으로 하는 TCP SYN 플러딩 공격 차단 장치.
  6. 제1항, 제4항, 제5항 중 어느 한 항에 있어서,
    상기 TCP SYN 플러딩 공격 차단 장치는 게이트웨이(gateway), 라우터(router), L4(Layer 4) 스위치 중 적어도 하나로 구현되는 것을 특징으로 하는 TCP SYN 플러딩 공격 차단 장치.
  7. 네트워크 상에서 TCP SYN 플러딩(flooding) 공격을 차단하는 시스템으로서,
    상기 네트워크를 통해 적어도 하나의 서비스를 요구하는 클라이언트;
    상기 네트워크를 통해 상기 적어도 하나의 서비스를 제공하는 서버; 및
    상기 클라이언트와 상기 서버 사이에 위치하는 방화벽(firewall)을 포함하고,
    상기 방화벽은
    상기 클라이언트로부터 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷을 수신하면 TCP 동시 개방 연결(simultaneous open connection) 방식을 이용하여 상기 클라이언트로 TCP SYN 플러딩 공격 여부를 판단하기 위한 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하고, 상기 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면 TCP SYN 플러딩 공격이 아닌 것으로 판단하고 3-웨이 핸드쉐이킹(3-way handshaking) 방식을 이용하여 상기 서버와 TCP 연결을 생성한 후 상기 클라이언트로 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷에 응답하는 ACK 패킷을 전송하고, 상기 클라이언트와 상기 서버 사이를 중계하는 것을 특징으로 하는 TCP SYN 플러딩 공격 차단 시스템.
  8. 삭제
  9. 삭제
  10. 제7항에 있어서,
    상기 방화벽은 게이트웨이(gateway), 라우터(router), L4(Layer 4) 스위치 중 적어도 하나로 구현되는 것을 특징으로 하는 TCP SYN 플러딩 공격 차단 시스템.
  11. 네트워크 상에서 TCP SYN 플러딩(flooding) 공격을 차단하는 방법으로서,
    방화벽(firewall)이 클라이언트로부터 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷을 수신하는 단계;
    상기 방화벽이 TCP 동시 개방 연결(simultaneous open connection) 방식을 이용하여 상기 클라이언트로 TCP SYN 플러딩 공격 여부를 판단하기 위한 타임스탬프(Timestamp) 옵션을 적용한 SYN 패킷을 전송하는 단계;
    상기 방화벽이 상기 클라이언트로부터 타임스탬프 옵션이 적용된 ACK 패킷을 수신하면 TCP SYN 플러딩 공격이 아닌 것으로 판단하고, 3-웨이 핸드쉐이킹(3-way handshaking) 방식을 이용하여 상기 서버와 TCP 연결을 생성하는 단계;
    상기 방화벽이 상기 클라이언트로 상기 클라이언트와 서버의 연결 설정을 위한 SYN 패킷에 응답하는 ACK 패킷을 전송하여, 상기 방화벽과 클라이언트 사이에 TCP 연결을 생성하는 단계; 및
    상기 방화벽이 상기 클라이언트와 상기 서버 사이를 중계하는 단계를 포함하는 TCP SYN 플러딩 공격 차단 방법.
  12. 삭제
  13. 삭제
  14. 제11항에 있어서, 상기 클라이언트와 상기 서버 사이의 중계는,
    상기 방화벽이 상기 클라이언트 또는 상기 서버로부터 TCP 패킷을 수신하면 TCP 시퀀스(sequence) 번호 및 확인응답(acknowledgement) 번호를 변경하여 상기 서버 또는 상기 클라이언트로 전송함으로써 수행되는 것을 특징으로 하는 TCP SYN 플러딩 공격 차단 방법.
  15. 제11항 또는 제14항에 따른 TCP SYN 플러딩 공격 차단 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능 기록매체.
KR1020090076030A 2009-08-18 2009-08-18 네트워크 상에서 tcp syn 플러딩 공격을 차단하는 장치 및 방법 KR101104599B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090076030A KR101104599B1 (ko) 2009-08-18 2009-08-18 네트워크 상에서 tcp syn 플러딩 공격을 차단하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090076030A KR101104599B1 (ko) 2009-08-18 2009-08-18 네트워크 상에서 tcp syn 플러딩 공격을 차단하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110018528A KR20110018528A (ko) 2011-02-24
KR101104599B1 true KR101104599B1 (ko) 2012-01-12

Family

ID=43776140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090076030A KR101104599B1 (ko) 2009-08-18 2009-08-18 네트워크 상에서 tcp syn 플러딩 공격을 차단하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101104599B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101641799B1 (ko) * 2014-12-30 2016-07-29 주식회사 이노피아테크 Tcp 세션을 복원하는 장애조치 시스템 및 방법
KR20180032864A (ko) * 2016-09-23 2018-04-02 주식회사 윈스 사용자 인증을 통한 비정상 네트워크 트래픽 제어 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254133B2 (en) * 2002-07-15 2007-08-07 Intel Corporation Prevention of denial of service attacks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254133B2 (en) * 2002-07-15 2007-08-07 Intel Corporation Prevention of denial of service attacks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Christoph L. Scuba, et al.,"Analysis of a Denial of Service Attack on TCP", IEEE Symposium on Security and Privacy, Oakland, CA, 1997.5

Also Published As

Publication number Publication date
KR20110018528A (ko) 2011-02-24

Similar Documents

Publication Publication Date Title
Iyengar et al. QUIC: A UDP-based multiplexed and secure transport
Schulzrinne et al. GIST: general internet signalling transport
Cheng et al. TCP fast open
JP6858749B2 (ja) 負荷平衡システムにおいて接続を確立するデバイス及び方法
Touch Defending TCP against spoofing attacks
Duke et al. A roadmap for transmission control protocol (TCP) specification documents
AU2004217318B2 (en) Using TCP to authenticate IP source addresses
RU2766438C2 (ru) Способы двунаправленного обмена пакетами по узловым путям
CA2548476C (en) Preventing network data injection attacks using duplicate-ack and reassembly gap approaches
CN106685930B (zh) 一种传输控制协议选项的处理方法及装置
US20120227088A1 (en) Method for authenticating communication traffic, communication system and protective apparatus
JP2006042156A (ja) サーバ装置、その制御方法およびコネクション確立方法
CN110266678B (zh) 安全攻击检测方法、装置、计算机设备及存储介质
US20150189010A1 (en) Communication network with load balancing functionality
US20090316719A1 (en) Method for managing mechanisms to enhance transmission of data streams in a tunnel, corresponding computer program product, storage medium and tunnel end-point
WO2010000171A1 (zh) 一种通信的建立方法、系统和装置
Simpson TCP cookie transactions (TCPCT)
Cao et al. 0-rtt attack and defense of quic protocol
KR101104599B1 (ko) 네트워크 상에서 tcp syn 플러딩 공격을 차단하는 장치 및 방법
US7565694B2 (en) Method and apparatus for preventing network reset attacks
US8595477B1 (en) Systems and methods for reducing handshake delay in streaming protocol web requests
US11038994B2 (en) Technique for transport protocol selection and setup of a connection between a client and a server
Cheng et al. RFC 7413: TCP fast open
Vernersson Analysis of UDP-based reliable transport using network emulation
US11496438B1 (en) Methods for improved network security using asymmetric traffic delivery and devices thereof

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171213

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 9