KR20120066465A - 서비스 거부 공격 차단 방법 - Google Patents

서비스 거부 공격 차단 방법 Download PDF

Info

Publication number
KR20120066465A
KR20120066465A KR1020100127820A KR20100127820A KR20120066465A KR 20120066465 A KR20120066465 A KR 20120066465A KR 1020100127820 A KR1020100127820 A KR 1020100127820A KR 20100127820 A KR20100127820 A KR 20100127820A KR 20120066465 A KR20120066465 A KR 20120066465A
Authority
KR
South Korea
Prior art keywords
packet
field
denial
udp
server
Prior art date
Application number
KR1020100127820A
Other languages
English (en)
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 KR1020100127820A priority Critical patent/KR20120066465A/ko
Priority to US13/324,313 priority patent/US20120151584A1/en
Publication of KR20120066465A publication Critical patent/KR20120066465A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

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

Abstract

서버는 수신된 복수 개의 패킷들 중 미리 정해진 길이 이상의 데이터를 포함하는 복수 개의 의심 패킷들을 추출하고, 추출된 복수 개의 의심 패킷들 중에서 서로 동일한 문자들 또는 문자열들로 구성된 데이터를 포함하는 패킷을 공격 패킷으로 결정하며, 결정된 공격 패킷에 상응하는 패킷을 차단함으로써, UDP 플러딩에 의한 서비스 거부 공격을 차단한다.

Description

서비스 거부 공격 차단 방법{METHOD FOR BLOCKING DENIAL-OF-SERVICE ATTACK}
본 발명은 서비스 거부 공격을 차단하는 방법에 관한 것이다. 보다 상세하게, 본 발명은 UDP 플러딩에 의한 서비스 거부 공격을 차단하는 방법에 관한 것이다.
서비스 거부 공격(Denial-of-Service attack, 이하에서는 'DoS 공격'이라고도 함)은 웹 사이트(web site)나 도메인 네임 서버(Domain Name Server) 등을 대상으로 하여 네트워크나 서버의 이용도(availability)를 저하시킨다. 특히, 분산 서비스 거부 공격(Distributed-Denial-of-Service attack, 이하에서는 'DDoS 공격'이라고도 함)은 악성코드에 감염된 다수의 좀비 컴퓨터(zombie computer)에서 동시에 DoS 공격을 수행하는 방식이다.
유디피 플러딩(UDP Flooding, 이하에서는 'UDP 플러딩'이라고도 함)은 DDoS 공격의 하나의 형태로 사용자 데이터그램 프로토콜(User Datagram Protocol, 이하에서는 'UDP'라고도 함)을 따르는 대량의 UDP 패킷을 이용하여 공격 대상의 네트워크 자원을 소모시키는 공격을 말한다.
종래에는, 트래픽 측정을 통해 UDP 플러딩에 의한 공격을 탐지하고, 전체 트래픽을 차단함으로써 UDP 플러딩에 의한 공격에 대응하였다. 하지만, 이와 같은 대응 방식에 따르면 정상적인 사용자의 트래픽까지 차단하게 되는 문제점이 있다.
본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로써, 공격 트래픽의 형태별 특성에 따른 서비스 거부 공격(DoS) 특히, UDP 플러딩 공격을 차단하는 방법을 제공하기 위한 것이다.
본 발명의 특징에 따른 서비스 거부 공격 차단 방법은 서버가 사용자 데이터그램 프로토콜 플러딩(UDP Flooding)에 의한 서비스 거부 공격을 차단하는 서비스 거부 공격 차단 방법으로써, 수신된 복수 개의 패킷들 중 미리 정해진 길이 이상의 데이터를 포함하는 복수 개의 의심 패킷들을 추출하는 단계, 추출된 복수 개의 의심 패킷들 중에서 서로 동일한 문자들 또는 문자열들로 구성된 데이터를 포함하는 패킷을 공격 패킷으로 결정하는 단계, 그리고 결정된 공격 패킷에 상응하는 패킷을 차단하는 단계를 포함한다.
본 발명의 다른 특징에 따른 서비스 거부 공격 차단 방법은 서버가 사용자 데이터그램 프로토콜 플러딩(UDP Flooding)에 의한 서비스 거부 공격을 차단하는 서비스 거부 공격 차단 방법으로써, 수신된 복수 개의 패킷 조각들이 동일한 문자들로 구성된 데이터를 포함하는지를 판단하는 단계, 수신된 복수 개의 패킷 조각들이 동일한 문자들로 구성된 데이터를 포함하는 경우, 수신된 복수 개의 패킷 조각들 각각의 헤더 정보를 이용하여 필터링 데이터를 포함하는 필터링 테이블을 구성하는 단계, 그리고 필터링 테이블을 이용하여 필터링 데이터에 대응되는 패킷 조각을 차단하는 단계를 포함한다.
본 발명의 또 다른 특징에 따른 서비스 거부 공격 차단 방법은 서버가 사용자 데이터그램 프로토콜 플러딩(UDP Flooding)에 의한 서비스 거부 공격을 차단하는 서비스 거부 공격 차단 방법으로써, 수신된 패킷의 목적지 포트가 닫혀 있는 경우, 해당 목적지 포트로 패킷을 전달할 수 없음 알리기 위해 수신된 패킷에 대응되는 응답 메시지를 생성하는 단계, 수신된 패킷에서 목적지 주소 정보 및 목적지 포트 정보를 추출하는 단계, 추출된 목적지 주소 정보 및 상기 목적지 포트 정보를 포함하는 필터링 데이터를 생성하는 단계, 그리고 생성된 필터링 데이터를 이용하여 추출된 목적지 주소 정보 및 상기 목적지 포트 정보를 포함하는 공격 패킷을 차단하는 단계를 포함한다.
본 발명의 특징에 따르면 다음과 같은 효과를 기대할 수 있다.
UDP 플러딩의 공격 형태를 분류하고, 각 형태별 특성에 따른 공격 패킷의 탐지 및 차단 방법을 제공함으로써, 다양한 형태의 UDP 플러딩에 대해 악의적인 사용자의 행위만을 차단하여 정상적인 사용자에게 원활한 네트워크 서비스를 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 클라이언트 서버 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 제1 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 3은 본 발명의 제1 실시 예에 따른 제1 패킷 조각의 구조를 도시한 도면이다.
도 4는 본 발명의 제1 실시 예에 따른 제2 패킷 조각의 구조를 도시한 도면이다.
도 5는 본 발명의 제1 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 6은 본 발명의 제1 실시 예에 따른 필터링 데이터 생성 방법을 도시한 도면이다.
도 7은 본 발명의 제1 실시 예에 따른 필터링 테이블의 구조를 도시한 도면이다.
도 8은 본 발명의 제1 실시 예에 따른 패킷 필터링 방법을 도시한 도면이다.
도 9는 본 발명의 제2 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 10은 본 발명의 제2 실시 예에 따른 UDP 패킷의 구조를 도시한 도면이다.
도 11은 본 발명의 제2 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 12는 본 발명의 제3 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 13은 본 발명의 제3 실시 예에 따른 UDP 패킷의 구조를 도시한 도면이다.
도 14는 본 발명의 제3 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 15는 본 발명의 제3 실시 예에 따른 필터링 테이블 구성 방법을 도시한 도면이다.
도 16은 본 발명의 제3 실시 예에 따른 필터링 테이블의 구조를 도시한 도면이다.
도 17은 본 발명의 제3 실시 예에 따른 패킷 필터링 방법을 도시한 도면이다.
도 18은 본 발명의 제4 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 19는 본 발명의 제4 실시 예에 따른 UDP 패킷의 구조를 도시한 도면이다.
도 20은 본 발명의 제4 실시 예에 따른 ICMP 메시지의 구조를 도시한 도면이다.
도 21은 본 발명의 제4 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 22는 본 발명의 제4 실시 예에 따른 필터링 테이블 구성 방법을 도시한 도면이다.
도 23은 본 발명의 제4 실시 예에 따른 필터링 테이블의 구조를 도시한 도면이다.
도 24는 본 발명의 제4 실시 예에 따른 패킷 필터링 방법을 도시한 도면이다.
도 25는 본 발명의 제5 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 26은 본 발명의 제5 실시 예에 따른 패킷 조각의 구조를 도시한 도면이다.
도 27은 본 발명의 제5 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
본 발명을 첨부된 도면을 참고하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 고지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이제, 도면을 참고하여 본 발명의 실시 예에 따른 서비스 거부 공격 차단 방법에 대해 설명한다.
먼저, 도 1을 참고하여 본 발명의 실시 예에 따른 클라이언트 서버 시스템(client-server system)에 대해 설명한다.
도 1은 본 발명의 실시 예에 따른 클라이언트 서버 시스템의 구성을 도시한 도면이다.
도 1에 도시된 바와 같이, 클라이언트 서버 시스템은 복수 개의 클라이언트(100) 및 서버(200)를 포함한다.
클라이언트(100)는 서버(200)와 연결하여 주된 작업이나 정보를 서버(200)에게 요청하고 그 결과를 돌려받는다.
서버(200)는 클라이언트(100)가 요청한 작업이나 정보의 수행 결과를 돌려준다.
다음은, 도 2를 참고하여 본 발명의 제1 실시 예에 따른 UDP 플러딩 공격 방식에 따라 클라이언트가 서버에 대한 서비스 거부 공격을 수행하는 방법에 대해 설명한다.
도 2는 본 발명의 제1 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 2에 도시된 바와 같이, 먼저, 클라이언트(100)는 서버(200)에 대한 서비스 거부 공격을 위한 UDP 패킷을 생성한다(S111).
다음, 클라이언트(100)는 생성된 UDP 패킷을 단편화(fragmentation)하여 UDP 패킷에 대응되는 복수 개의 패킷 조각을 생성한다(S112).
이후, 클라이언트(100)는 생성된 복수 개의 패킷 조각을 서버(200)로 전송한다(S113).
다음은, 도 3 및 도 4를 참고하여 본 발명의 제1 실시 예에 따른 단편화된 UDP 패킷의 패킷 조각에 대해 설명한다.
도 3은 본 발명의 제1 실시 예에 따른 제1 패킷 조각의 구조를 도시한 도면이다.
도 3에 도시된 바와 같이, 제1 패킷 조각(P110)은 단편화된 UDP 패킷 중 첫 번째 패킷 조각으로써, 인터넷 프로토콜 헤더(Internet Protocol Header, 이하에서는 'IP 헤더'라고도 함)(P111), 유디피 헤더(UDP Header, 이하에서는 'UDP 헤더'라고도 함)(P113) 및 페이로드(Payload)(P115)를 포함한다.
IP 헤더(P111)는 버전 필드(이하에서는 'Version'이라고도 함)(P111a), 헤더 길이 필드(이하에서는 'Header Length'라고도 함)(P111b), 서비스 타입 필드(이하에서는 'Type of Service'라고도 함)(P111c), 패킷 길이 필드(이하에서는 'Total Length'라고도 함)(P111d), 아이피 식별 필드(이하에서는 'IP Identification'라고도 함)(P111e), 플래그 필드(이하에서는 'Flags'라고도 함)(P111f), 단편 오프셋 필드(이하에서는 'Fragment Offset'이라고도 함)(P111g), 패킷 유지 시간 필드(이하에서는 'Time To Live'라고도 함)(P111h), 프로토콜 식별 필드(이하에서는 'Protocol'이라고도 함)(P111i), 헤더 체크섬(이하에서는 'Header Checksum'이라고도 함)(P111j), 출발지 주소 필드(이하에서는 'Source Address'라고도 함)(P111k), 목적지 주소 필드(이하에서는 'Destination Address'라고도 함)(P111m) 및 옵션 필드(이하에서는 'Options'라고도 함)(P111n)를 포함한다.
버전 필드(Version)(P111a)는 인터넷 프로토콜(Internet Protocol, 이하에서는 'IP'라고도 함)의 버전을 표시하는 필드 값(field value)을 포함한다.
헤더 길이 필드(Header Length)(P111b)는 IP 헤더(P111)의 길이를 표시하는 필드 값을 포함한다.
서비스 타입 필드(Type of Service)(P111c)는 요구되는 서비스 품질을 표시하는 필드 값을 포함한다.
패킷 길이 필드(Total Length)(P111d)는 해당 패킷 조각의 전체 길이를 표시하는 필드 값을 포함한다.
아이피 식별 필드(IP Identification)(P111e)는 해당 패킷 조각의 IP 헤더(P111)의 식별 정보를 표시하는 필드 값을 포함한다. 여기서, 단편화된 UDP 패킷을 구성하는 복수 개의 패킷 조각들은 아이피 식별 필드(IP Identification)(P111e)의 필드 값이 동일하다.
플래그 필드(Flags)(P111f)는 패킷 조각에 대한 단편화 정보를 표시하는 필드 값을 포함한다. 여기서, 해당 패킷 조각이 단편화된 UDP 패킷의 마지막 패킷 조각이 아닌 경우, 플래그 필드(Flags)(P111f)는 "More Fragments"를 나타내는 "0x1"의 필드 값을 가질 수 있다. 또한, 해당 패킷 조각이 단편화된 UDP 패킷의 마지막 패킷 조각인 경우, 플래그 필드(Flags)(P111f)는 "Don't Fragments"를 나타내는 "0x2"의 필드 값을 가질 수 있다.
단편 오프셋 필드(Fragment Offset)(P111g)는 UDP 패킷에서 해당 패킷 조각의 위치를 표시하는 필드 값을 포함한다.
패킷 유지 시간 필드(Time To Live)(P111h)는 해당 패킷 조각의 폐기 여부를 결정하기 위한 패킷 유지 시간을 표시하는 필드 값을 포함한다.
프로토콜 식별 필드(Protocol)(P111i)는 해당 패킷 조각의 프로토콜을 표시하는 필드 값을 포함한다. 여기서, 해당 패킷 조각이 UDP를 따르는 경우, 프로토콜 식별 필드(Protocol)(P111i)는 "0x11"의 필드 값을 가질 수 있다.
헤더 체크섬(Header Checksum)(P111j)은 IP 헤더(P111)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
출발지 주소 필드(Source Address)(P111k)는 출발지의 IP 주소를 표시하는 필드 값을 포함한다.
목적지 주소 필드(Destination Address)(P111m)는 목적지의 IP 주소를 표시하는 필드 값을 포함한다.
옵션 필드(Options)(P111n)는 IP 헤더(P111)의 선택 옵션을 표시하는 필드 값을 포함한다.
UDP 헤더(P113)는 출발지 포트 필드(이하에서는 'Source Port'라고도 함)(P113a), 목적지 포트 필드(이하에서는 'Destination Port'라고도 함)(P113b), 데이터 길이 필드(이하에서는 'Length'라고도 함)(P113c) 및 체크섬 필드(이하에서는 'Checksum'이라고도 함)(P113d)을 포함한다.
출발지 포트 필드(Source Port)(P113a)는 출발지의 포트 번호를 표시하는 필드 값을 포함한다.
목적지 포트 필드(Destination Port)(P113b)는 목적지의 포트 번호를 표시하는 필드 값을 포함한다.
데이터 길이 필드(Length)(P113c)는 페이로드(Payload)(P115)의 길이를 표시하는 필드 값을 포함한다.
체크섬 필드(Checksum)(P113d)는 UDP 헤더(P113)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
페이로드(Payload)(P115)는 동일한 문자로 구성된 데이터를 포함한다. 예를 들어, 페이로드(Payload)(P115)는 "xxxxx"와 같이 "x"라는 동일한 문자로 구성된 데이터를 포함할 수 있다.
도 4는 본 발명의 제1 실시 예에 따른 제2 패킷 조각의 구조를 도시한 도면이다.
도 4에 도시된 바와 같이, 제2 패킷 조각(P120)은 단편화된 UDP 패킷 중 두 번째 패킷 조각으로써, IP 헤더(P121) 및 페이로드(Payload)(P125)를 포함한다.
IP 헤더(P121)는 버전 필드(Version)(P121a), 헤더 길이 필드(Header Length)(P121b), 서비스 타입 필드(Type of Service)(P121c), 패킷 길이 필드(Total Length)(P121d), 아이피 식별 필드(IP Identification)(P121e), 플래그 필드(Flags)(P121f), 단편 오프셋 필드(Fragment Offset)(P121g), 패킷 유지 시간 필드(Time To Live)(P121h), 프로토콜 식별 필드(Protocol)(P121i), 헤더 체크섬(Header Checksum)(P121j), 출발지 주소 필드(Source Address)(P121k), 목적지 주소 필드(Destination Address)(P121m) 및 옵션 필드(Options)(P121n)를 포함한다.
버전 필드(Version)(P121a)는 인터넷 프로토콜(IP)의 버전을 표시하는 필드 값을 포함한다.
헤더 길이 필드(Header Length)(P121b)는 IP 헤더(P121)의 길이를 표시하는 필드 값을 포함한다.
서비스 타입 필드(Type of Service)(P121c)는 요구되는 서비스 품질을 표시하는 필드 값을 포함한다.
패킷 길이 필드(Total Length)(P121d)는 해당 패킷 조각의 전체 길이를 표시하는 필드 값을 포함한다.
아이피 식별 필드(IP Identification)(P121e)는 해당 패킷 조각의 IP 헤더(P121)의 식별 정보를 표시하는 픽드 값을 표시한다. 여기서, 단편화된 UDP 패킷을 구성하는 복수 개의 패킷 조각들은 아이피 식별 필드(IP Identification)(P121e)의 필드 값이 동일하다.
플래그 필드(Flags)(P121f)는 패킷 조각에 대한 단편화 정보를 표시하는 필드 값을 포함한다. 여기서, 해당 패킷 조각이 단편화된 UDP 패킷의 마지막 패킷 조각이 아닌 경우, 플래그 필드(Flags)(P111f)는 "More Fragments"를 나타내는 "0x1"의 필드 값을 가질 수 있다. 또한, 해당 패킷 조각이 단편화된 UDP 패킷의 마지막 패킷 조각인 경우, 플래그 필드(Flags)(P111f)는 "Don't Fragments"를 나타내는 "0x2"의 필드 값을 가질 수 있다.
단편 오프셋 필드(Fragment Offset)(P121g)는 UDP 패킷에서 해당 패킷 조각의 위치를 표시하는 필드 값을 포함한다.
패킷 유지 시간 필드(Time To Live)(P121h)는 해당 패킷 조각의 폐기 여부를 결정하기 위한 패킷 유지 시간을 표시하는 필드 값을 포함한다.
프로토콜 식별 필드(Protocol)(P121i)는 해당 패킷 조각의 프로토콜을 표시하는 필드 값을 포함한다. 여기서, 해당 패킷 조각이 UDP를 따르는 경우, 프로토콜 식별 필드(Protocol)(P111i)는 "0x11"의 필드 값을 가질 수 있다.
헤더 체크섬(Header Checksum)(P121j)은 IP 헤더(P121)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
출발지 주소 필드(Source Address)(P121k)는 출발지의 IP 주소를 표시하는 필드 값을 포함한다.
목적지 주소 필드(Destination Address)(P121m)는 목적지의 IP 주소를 표시하는 필드 값을 포함한다.
옵션 필드(Options)(P121n)는 IP 헤더(P121)의 선택 옵션을 표시하는 필드 값을 포함한다.
페이로드(Payload)(P125)는 동일한 문자로 구성된 데이터를 포함한다. 예를 들어, 페이로드(Payload)(P125)는 "xxxxx"와 같이 "x"라는 동일한 문자로 구성된 데이터를 포함할 수 있다.
다음은, 도 5를 참고하여 본 발명의 제1 실시 예에 따른 서버가 클라이언트의 서비스 거부 공격을 차단하는 방법에 대해 설명한다.
도 5는 본 발명의 제1 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 5에 도시된 바와 같이, 먼저, 서버(200)는 클라이언트(100)로부터 패킷 조각을 수신한다(S131).
다음, 서버(200)는 수신된 패킷 조각의 IP 헤더 중 프로토콜 식별 필드(Protocol)의 필드 값에 따라 수신된 패킷 조각의 프로토콜을 결정하여 수신된 패킷 조각의 프로토콜이 사용자 데이터그램 프로토콜(UDP)인지를 판단한다(S132).
만약, 수신된 패킷 조각의 프로토콜이 사용자 데이터그램 프로토콜(UDP)인 경우, 서버(200)는 수신된 패킷 조각의 IP 헤더 중 플래그 필드(Flags)의 필드 값에 따라 수신된 패킷 조각이 하나의 UDP 패킷으로부터 단편화된 복수 개의 패킷 조각 중 마지막 패킷 조각인지를 판단한다(S133).
만약, 수신된 패킷 조각이 마지막 패킷 조각이 아닌 경우, 서버(200)는 수신된 패킷 조각의 페이로드가 동일한 문자로 구성된 데이터를 포함하는지를 판단한다(S134).
만약, 수신된 패킷 조각의 페이로드가 동일한 문자로 구성된 데이터를 포함하는 경우, 서버(200)는 수신된 패킷 조각의 수신을 차단한다(S135). 여기서, 서버(200)는 수신된 패킷 조각이 서버(200)에 부하를 유발한다고 판단한다.
이후, 서버(200)는 차단된 패킷 조각의 IP 헤더를 이용하여 IP 헤더 중 아이피 식별 필드(IP Identification)의 필드 값이 차단된 패킷 조각과 동일한 패킷 조각을 차단하기 위한 필터링 데이터를 생성한다(S136).
다음, 서버(200)는 생성된 필터링 데이터를 이용하여 이후에 수신되는 패킷 조각에 대한 필터링을 수행한다(S137).
한편, 수신된 패킷 조각의 프로토콜이 사용자 데이터그램 프로토콜(UDP)이 아닌 경우, 서버(200)는 수신된 패킷 조각의 수신을 허용한다(S138).
한편, 수신된 패킷 조각이 마지막 패킷 조각인 경우, 서버(200)는 수신된 패킷 조각의 수신을 허용한다(S138).
한편, 수신된 패킷 조각의 페이로드가 동일한 문자로 구성된 데이터를 포함하지 아니한 경우, 서버(200)는 수신된 패킷 조각의 수신을 허용한다(S138).
다음은, 도 6을 참고하여 본 발명의 제1 실시 예에 따른 서버가 필터링 데이터를 생성하는 방법에 대해 설명한다.
도 6은 본 발명의 제1 실시 예에 따른 필터링 데이터 생성 방법을 도시한 도면이다.
도 6에 도시된 바와 같이, 먼저, 서버(200)는 차단된 패킷 조각의 IP 헤더 중 아이피 식별 필드(IP Identification)의 필드 값, 출발지 주소 필드(Source Address)의 필드 값 및 목적지 주소 필드(Destination Address)의 필드 값을 추출한다(S151).
다음, 서버(200)는 추출된 아이피 식별 필드(IP Identification)의 필드 값, 출발지 주소 필드(Source Address)의 필드 값 및 목적지 주소 필드(Destination Address)의 필드 값을 이용하여 필터링 정보를 생성한다(S152). 여기서, 필터링 정보는 추출된 아이피 식별 필드(IP Identification)의 필드 값, 출발지 주소 필드(Source Address)의 필드 값 및 목적지 주소 필드(Destination Address)의 필드 값을 포함할 수 있다. 또한, 필터링 정보는 출발지 주소 필드(Source Address)의 필드 값과 목적지 주소 필드(Destination Address)의 필드 값을 해시 함수에 적용하여 생성되는 해시 값 및 아이피 식별 필드(IP Identification)의 필드 값을 포함할 수 있다.
이후, 서버(200)는 출발지 주소 필드(Source Address)의 필드 값 및 목적지 주소 필드(Destination Address)의 필드 값을 이용하여 필터링 정보에 대응되는 데이터 분류 정보를 생성한다(S153). 여기서, 데이터 분류 정보는 출발지 주소 필드(Source Address)의 필드 값과 목적지 주소 필드(Destination Address)의 필드 값을 해시 함수에 적용하여 생성되는 해시 값을 포함할 수 있다.
다음, 서버(200)는 생성된 데이터 분류 정보 및 필터링 정보를 포함하는 필터링 데이터를 생성한다(S154). 여기서, 서버(200)는 생성된 필터링 데이터를 필터링 테이블에 저장할 수 있다.
다음은, 도 7을 참고하여 본 발명의 제1 실시 예에 따른 필터링 테이블에 대해 설명한다.
도 7은 본 발명의 제1 실시 예에 따른 필터링 테이블의 구조를 도시한 도면이다.
도 7에 도시된 바와 같이, 필터링 테이블(P150)은 필터링 데이터를 저장하며, 메모리 주소(P151) 및 메모리 저장공간(P153)을 포함한다.
메모리 주소(P151)는 필터링 데이터의 데이터 분류 정보를 표시하는 필드 값을 포함한다. 예를 들어, 메모리 주소(P151)는 필터링 데이터의 데이터 분류 정보에 포함된 해시 값 즉, "h"를 포함할 수 있다.
메모리 저장공간(P153)는 메모리 주소(P151)의 필드 값에 대응되는 필터링 정보를 저장하는 엔트리(이하에서는 'Entry'라고도 함)를 포함한다. 예를 들어, 메모리 저장공간(P153)는 메모리 주소(P151)의 필드 값 즉, "h"에 대응되는 복수 개의 엔트리(P153a)를 포함할 수 있다.
다음은, 도 8을 참고하여 본 발명의 제1 실시 예에 따른 서버가 필터링 테이블을 이용하여 패킷 조각에 대한 필터링을 수행하는 방법에 대해 설명한다.
도 8은 본 발명의 제1 실시 예에 따른 패킷 필터링 방법을 도시한 도면이다.
도 8에 도시된 바와 같이, 먼저, 서버(200)는 클라이언트(100)로부터 패킷 조각을 수신한다(S171).
다음, 서버(200)는 수신된 패킷 조각의 IP 헤더에서 복수 개의 필드 값 즉, 아이피 식별 필드(IP Identification)의 필드 값, 출발지 주소 필드(Source Address)의 필드 값 및 목적지 주소 필드(Destination Address)의 필드 값을 추출한다(S172).
이후, 서버(200)는 추출된 복수 개의 필드 값 중 출발지 주소 필드(Source Address)의 필드 값과 목적지 주소 필드(Destination Address)의 필드 값을 해시 함수에 적용하여 해시 값을 계산한다(S173).
다음, 서버(200)는 미리 저장된 필터링 테이블(P150)의 메모리 주소(P151)를 검색하여 계산된 해시 값에 대응되는 메모리 주소(P151)의 필드 값을 검출한다(S174).
이후, 서버(200)는 검출된 메모리 주소(P151)의 필드 값에 대응되는 복수 개의 엔트리 각각에 저장된 필터링 정보와 추출된 복수 개의 필드 값을 비교하여 추출된 복수 개의 필드 값에 대응되는 필터링 정보가 존재하는지 판단한다(S175).
만약, 대응되는 필터링 정보가 존재하는 경우, 서버(200)는 수신된 패킷 조각의 수신을 차단한다(S176).
한편, 대응되는 필터링 정보가 존재하지 아니한 경우, 서버(200)는 수신된 패킷 조각의 수신을 허용한다(S177).
다음은, 도 9를 참고하여 본 발명의 제2 실시 예에 따른 UDP 플러딩 공격 방식에 따라 클라이언트가 서버에 대한 서비스 거부 공격을 수행하는 방법에 대해 설명한다.
도 9는 본 발명의 제2 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 9에 도시된 바와 같이, 먼저, 클라이언트(100)는 서버(200)에 대한 서비스 거부 공격을 위한 UDP 패킷을 생성한다(S211).
다음, 클라이언트(100)는 생성된 UDP 패킷을 서버(200)로 전송한다(S212).
다음은, 도 10을 참고하여 본 발명의 제2 실시 예에 따른 UDP 패킷에 대해 설명한다.
도 10은 본 발명의 제2 실시 예에 따른 UDP 패킷의 구조를 도시한 도면이다.
도 10에 도시된 바와 같이, UDP 패킷(P210)은 IP 헤더(P211), UDP 헤더(P213) 및 페이로드(Payload)(P215)를 포함한다.
IP 헤더(P211)는 버전 필드(Version)(P211a), 헤더 길이 필드(Header Length)(P211b), 서비스 타입 필드(Type of Service)(P211c), 패킷 길이 필드(Total Length)(P211d), 아이피 식별 필드(IP Identification)(P211e), 플래그 필드(Flags)(P211f), 단편 오프셋 필드(Fragment Offset)(P211g), 패킷 유지 시간 필드(Time To Live)(P211h), 프로토콜 식별 필드(Protocol)(P211i), 헤더 체크섬(Header Checksum)(P211j), 출발지 주소 필드(Source Address)(P211k), 목적지 주소 필드(Destination Address)(P211m) 및 옵션 필드(Options)(P211n)를 포함한다.
버전 필드(Version)(P211a)는 인터넷 프로토콜(IP)의 버전을 표시하는 필드 값(field value)을 포함한다.
헤더 길이 필드(Header Length)(P211b)는 IP 헤더(P211)의 길이를 표시하는 필드 값을 포함한다.
서비스 타입 필드(Type of Service)(P211c)는 요구되는 서비스 품질을 표시하는 필드 값을 포함한다.
패킷 길이 필드(Total Length)(P211d)는 해당 패킷의 전체 길이를 표시하는 필드 값을 포함한다.
아이피 식별 필드(IP Identification)(P211e)는 해당 패킷의 IP 헤더(P211)의 식별 정보를 표시하는 필드 값을 포함한다.
플래그 필드(Flags)(P211f)는 해당 패킷에 대한 단편화 정보를 표시하는 필드 값을 포함한다.
단편 오프셋 필드(Fragment Offset)(P211g)는 해당 패킷이 단편화된 경우에 단편화된 패킷 조각의 위치를 표시하는 필드 값을 포함한다.
패킷 유지 시간 필드(Time To Live)(P211h)는 해당 패킷의 폐기 여부를 결정하기 위한 패킷 유지 시간을 표시하는 필드 값을 포함한다.
프로토콜 식별 필드(Protocol)(P211i)는 해당 패킷의 프로토콜을 표시하는 필드 값을 포함한다. 여기서, 해당 패킷이 UDP를 따르는 경우, 프로토콜 식별 필드(Protocol)(P211i)는 "0x11"의 필드 값을 가질 수 있다.
헤더 체크섬(Header Checksum)(P211j)은 IP 헤더(P211)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
출발지 주소 필드(Source Address)(P211k)는 출발지의 IP 주소를 표시하는 필드 값을 포함한다.
목적지 주소 필드(Destination Address)(P211m)는 목적지의 IP 주소를 표시하는 필드 값을 포함한다.
옵션 필드(Options)(P211n)는 IP 헤더(P211)의 선택 옵션을 표시하는 필드 값을 포함한다.
UDP 헤더(P213)는 출발지 포트 필드(Source Port)(P213a), 목적지 포트 필드(Destination Port)(P213b), 데이터 길이 필드(Length)(P213c) 및 체크섬 필드(Checksum)(P213d)을 포함한다.
출발지 포트 필드(Source Port)(P213a)는 출발지의 포트 번호를 표시하는 필드 값을 포함한다.
목적지 포트 필드(Destination Port)(P213b)는 목적지의 포트 번호를 표시하는 필드 값을 포함한다.
데이터 길이 필드(Length)(P213c)는 페이로드(Payload)(P215)의 길이를 표시하는 필드 값을 포함한다.
체크섬 필드(Checksum)(P213d)는 UDP 헤더(P213)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
페이로드(Payload)(P215)는 동일한 문자로 구성된 데이터를 포함한다. 예를 들어, 페이로드(Payload)(P215)는 "xxxxx"와 같이 "x"라는 동일한 문자로 구성된 데이터를 포함할 수 있다.
다음은, 도 11을 참고하여 본 발명의 제2 실시 예에 따른 서버가 클라이언트의 서비스 거부 공격을 차단하는 방법에 대해 설명한다.
도 11은 본 발명의 제2 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 11에 도시된 바와 같이, 먼저, 서버(200)는 클라이언트(100)로부터 UDP 패킷(P210)을 수신한다(S231).
다음, 서버(200)는 수신된 UDP 패킷(P210)의 UDP 헤더(P213) 중 데이터 길이 필드(Length)(P213c)의 필드 값과 미리 정해진 임계 값(critical value)을 비교하여 수신된 UDP 패킷(P210)의 페이로드(Payload)(P215)가 미리 정해진 길이 이상인지를 판단한다(S232). 여기서, 미리 정해진 길이는 64 바이트(bytes)로 결정될 수 있다.
만약, 페이로드(Payload)(P215)가 미리 정해진 길이 이상인 경우, 서버(200)는 수신된 UDP 패킷(P210)의 IP 헤더(P211) 중 프로토콜 식별 필드(Protocol)(P211i)의 필드 값에 따라 수신된 UPD 패킷(P210)의 프로토콜을 결정하여 수신된 UDP 패킷(P210)의 프로토콜이 사용자 데이터그램 프로토콜(UDP)인지를 판단한다(S233).
만약, 수신된 UDP 패킷(P210)의 프로토콜이 사용자 데이터그램 프로토콜(UDP)인 경우, 서버(200)는 수신된 UDP 패킷(P210)의 IP 헤더(P211) 중 플래그 필드(Flags)(P211f)의 필드 값 및 단편 오프셋 필드(Fragment Offset)(P211g)의 필드 값에 따라 수신된 UDP 패킷(P210)의 단편화 여부를 판단한다(S234).
만약, 수신된 UDP 패킷(P210)이 단편화되지 아니한 경우, 서버(200)는 수신된 UDP 패킷(P210)의 페이로드(P215)가 동일한 문자로 구성된 데이터를 포함하는지를 판단한다(S235).
만약, 수신된 UDP 패킷(P210)의 페이로드(P215)가 동일한 문자로 구성된 데이터를 포함하는 경우, 서버(200)는 수신된 UDP 패킷(P210)의 수신을 차단한다(S236)
한편, 페이로드(Payload)(P215)가 미리 정해진 길이 미만인 경우, 서버(200)는 수신된 UDP 패킷(P210)의 수신을 허용한다(S237).
한편, 수신된 UDP 패킷(P210)의 프로토콜이 사용자 데이터그램 프로토콜(UDP)이 아닌 경우, 서버(200)는 수신된 UDP 패킷(P210)의 수신을 허용한다(S237).
한편, 수신된 UDP 패킷(P210)이 단편화된 경우, 서버(200)는 수신된 UDP 패킷(P210)의 수신을 허용한다(S237).
한편, 수신된 UDP 패킷(P210)의 페이로드(P215)가 동일한 문자로 구성된 데이터를 포함하지 아니하는 경우, 서버(200)는 수신된 UDP 패킷(P210)의 수신을 허용한다(S237).
다음은, 도 12를 참고하여 본 발명의 제3 실시 예에 따른 UDP 플러딩 공격 방식에 따라 클라이언트가 서버에 대한 서비스 거부 공격을 수행하는 방법에 대해 설명한다.
도 12는 본 발명의 제3 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 12에 도시된 바와 같이, 먼저, 클라이언트(100)는 서버(200)에 대한 서비스 거부 공격을 위한 UDP 패킷을 생성한다(S311).
다음, 클라이언트(100)는 생성된 UDP 패킷을 서버(200)로 전송한다(S312).
다음은, 도 13을 참고하여 본 발명의 제3 실시 예에 따른 UDP 패킷에 대해 설명한다.
도 13은 본 발명의 제3 실시 예에 따른 UDP 패킷의 구조를 도시한 도면이다.
도 13에 도시된 바와 같이, UDP 패킷(P310)은 IP 헤더(P311), UDP 헤더(P313) 및 페이로드(Payload)(P315)를 포함한다.
IP 헤더(P311)는 버전 필드(Version)(P311a), 헤더 길이 필드(Header Length)(P311b), 서비스 타입 필드(Type of Service)(P311c), 패킷 길이 필드(Total Length)(P311d), 아이피 식별 필드(IP Identification)(P311e), 플래그 필드(Flags)(P311f), 단편 오프셋 필드(Fragment Offset)(P311g), 패킷 유지 시간 필드(Time To Live)(P311h), 프로토콜 식별 필드(Protocol)(P311i), 헤더 체크섬(Header Checksum)(P311j), 출발지 주소 필드(Source Address)(P311k), 목적지 주소 필드(Destination Address)(P311m) 및 옵션 필드(Options)(P311n)를 포함한다.
버전 필드(Version)(P311a)는 인터넷 프로토콜(IP)의 버전을 표시하는 필드 값(field value)을 포함한다.
헤더 길이 필드(Header Length)(P311b)는 IP 헤더(P311)의 길이를 표시하는 필드 값을 포함한다.
서비스 타입 필드(Type of Service)(P311c)는 요구되는 서비스 품질을 표시하는 필드 값을 포함한다.
패킷 길이 필드(Total Length)(P311d)는 해당 패킷의 전체 길이를 표시하는 필드 값을 포함한다.
아이피 식별 필드(IP Identification)(P311e)는 해당 패킷의 IP 헤더(P311)의 식별 정보를 표시하는 필드 값을 포함한다.
플래그 필드(Flags)(P311f)는 해당 패킷에 대한 단편화 정보를 표시하는 필드 값을 포함한다.
단편 오프셋 필드(Fragment Offset)(P311g)는 해당 패킷이 단편화된 경우에 단편화된 패킷 조각의 위치를 표시하는 필드 값을 포함한다.
패킷 유지 시간 필드(Time To Live)(P311h)는 해당 패킷의 폐기 여부를 결정하기 위한 패킷 유지 시간을 표시하는 필드 값을 포함한다.
프로토콜 식별 필드(Protocol)(P311i)는 해당 패킷의 프로토콜을 표시하는 필드 값을 포함한다. 여기서, 해당 패킷이 UDP를 따르는 경우, 프로토콜 식별 필드(Protocol)(P311i)는 "0x11"의 필드 값을 가질 수 있다.
헤더 체크섬(Header Checksum)(P311j)은 IP 헤더(P311)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
출발지 주소 필드(Source Address)(P311k)는 출발지의 IP 주소를 표시하는 필드 값을 포함한다.
목적지 주소 필드(Destination Address)(P311m)는 목적지의 IP 주소를 표시하는 필드 값을 포함한다.
옵션 필드(Options)(P311n)는 IP 헤더(P311)의 선택 옵션을 표시하는 필드 값을 포함한다.
UDP 헤더(P313)는 출발지 포트 필드(Source Port)(P313a), 목적지 포트 필드(Destination Port)(P313b), 데이터 길이 필드(Length)(P313c) 및 체크섬 필드(Checksum)(P313d)을 포함한다.
출발지 포트 필드(Source Port)(P313a)는 출발지의 포트 번호를 표시하는 필드 값을 포함한다.
목적지 포트 필드(Destination Port)(P313b)는 목적지의 포트 번호를 표시하는 필드 값을 포함한다.
데이터 길이 필드(Length)(P313c)는 페이로드(Payload)(P315)의 길이를 표시하는 필드 값을 포함한다.
체크섬 필드(Checksum)(P313d)는 UDP 헤더(P313)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
페이로드(Payload)(P315)는 임의의 문자열로 구성된 데이터를 포함한다. 예를 들어, 페이로드(Payload)(P315)는 "abcdef…"와 같이 임의의 문자열로 구성된 데이터를 포함할 수 있다.
다음은, 도 14를 참고하여 본 발명의 제3 실시 예에 따른 서버가 클라이언트의 서비스 거부 공격을 차단하는 방법에 대해 설명한다.
도 14는 본 발명의 제3 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 14에 도시된 바와 같이, 먼저, 서버(200)는 복수 개의 UDP 패킷을 수신한다(S331).
다음, 서버(200)는 수신된 복수 개의 UDP 패킷 중 페이로드에 동일한 문자열로 구성된 데이터를 포함하는 UDP 패킷을 공격 패킷으로 결정하여 공격 패킷을 탐지한다(S332).
이후, 서버(200)는 결정된 공격 패킷을 이용하여 필터링 테이블을 구성한다(S333).
다음, 서버(200)는 필터링 테이블을 이용하여 이후에 수신되는 UDP 패킷에 대한 필터링을 수행한다(S334).
다음은, 도 15를 참고하여 본 발명의 제3 실시 예에 따른 서버가 필터링 테이블을 구성하는 방법에 대해 설명한다.
도 15는 본 발명의 제3 실시 예에 따른 필터링 테이블 구성 방법을 도시한 도면이다.
도 15에 도시된 바와 같이, 먼저, 서버(200)는 공격 패킷에 해당하는 UDP 패킷(P310)의 IP 헤더(P311) 및 UDP 헤더(P313)에서 복수 개의 필드 값 즉, 출발지 주소 필드(Source Address)(P311k)의 필드 값, 목적지 주소 필드(Destination Address)(P311m)의 필드 값 및 데이터 길이 필드(Length)(P313c)의 필드 값을 추출한다.
다음, 서버(200)는 UDP 패킷(P310)의 페이로드(P315) 및 추출된 복수 개의 필드 값을 이용하여 공격 패킷에 대한 필터링 정보를 생성한다(S352). 여기서, 필터링 정보는 데이터 길이 필드(Length)(P313c)의 필드 값 및 페이로드(P315)의 해시 값을 포함하며, 페이로드(P315)의 해시 값은 페이로드(P315)에 포함된 데이터를 해시 함수에 적용하여 생성될 수 있다. 또한, 필터링 정보는 출발지 주소 필드(Source Address)(P311k)의 필드 값 및 목적지 주소 필드(Destination Address)(P311m)의 필드 값을 더 포함할 수 있고, 출발지 주소 필드(Source Address)(P311k)의 필드 값과 목적지 주소 필드(Destination Address)(P311m)의 필드 값을 해시 함수에 적용하여 생성되는 해시 값을 더 포함할 수도 있다.
이후, 서버(200)는 출발지 주소 필드(Source Address)의 필드 값 및 목적지 주소 필드(Destination Address)의 필드 값을 이용하여 필터링 정보에 대응되는 데이터 분류 정보를 생성한다(S353). 여기서, 데이터 분류 정보는 출발지 주소 필드(Source Address)(P311k)의 필드 값과 목적지 주소 필드(Destination Address)(P311m)의 필드 값을 해시 함수에 적용하여 생성되는 해시 값을 포함할 수 있다.
다음, 서버(200)는 생성된 데이터 분류 정보 및 필터링 정보를 포함하는 필터링 데이터를 생성한다(S354).
이후, 서버(200)는 생성된 필터링 데이터를 필터링 테이블에 저장한다(S355).
다음은, 도 16을 참고하여 본 발명의 제3 실시 예에 따른 필터링 테이블에 대해 설명한다.
도 16은 본 발명의 제3 실시 예에 따른 필터링 테이블의 구조를 도시한 도면이다.
도 16에 도시된 바와 같이, 필터링 테이블(P350)은 필터링 데이터를 저장하며, 메모리 주소(P351) 및 메모리 저장공간(P353)을 포함한다.
메모리 주소(P351)는 필터링 데이터의 데이터 분류 정보를 표시하는 필드 값을 포함한다. 예를 들어, 메모리 주소(P351)는 필터링 데이터의 데이터 분류 정보에 포함된 해시 값 즉, "h"를 포함할 수 있다.
메모리 저장공간(P353)는 메모리 주소(P351)의 필드 값에 대응되는 필터링 정보를 저장하는 엔트리(이하에서는 'Entry'라고도 함)를 포함한다. 예를 들어, 메모리 저장공간(P353)는 메모리 주소(P351)의 필드 값 즉, "h"에 대응되는 복수 개의 엔트리(P353a)를 포함할 수 있다.
다음은, 도 17을 참고하여 본 발명의 제3 실시 예에 따른 서버가 필터링 테이블을 이용하여 패킷에 대한 필터링을 수행하는 방법에 대해 설명한다.
도 17은 본 발명의 제3 실시 예에 따른 패킷 필터링 방법을 도시한 도면이다.
도 17에 도시된 바와 같이, 먼저, 서버(200)는 클라이언트(100)로부터 UDP 패킷(P310)을 수신한다(S371).
다음, 서버(200)는 수신된 UDP 패킷(P310)의 UDP 헤더(P313)에서 데이터 길이 필드(Length)(P313c)의 필드 값을 추출한다(S372).
이후, 서버(200)는 추출된 데이터 길이 필드(Length)(P313c)의 필드 값과 미리 정해진 임계 값(critical value)을 비교하여 수신된 UDP 패킷(P310)의 페이로드(Payload)(P315)가 미리 정해진 길이 이상인지를 판단한다(S373). 여기서, 미리 정해진 길이는 64 바이트(bytes)로 결정될 수 있다.
만약, 페이로드(Payload)(P315)가 미리 정해진 길이 이상인 경우, 서버(200)는 수신된 UDP 패킷(P310)의 페이로드(P315)의 해시 값을 계산한다(S374). 여기서, 페이로드(P315)의 해시 값은 페이로드(P315)에 포함된 데이터를 해시 함수에 적용하여 생성될 수 있다.
다음, 서버(200)는 계산된 페이로드(P315)의 해시 값 및 추출된 데이터 길이 필드(Length)(P313c)의 필드 값을 이용하여 수신된 UDP 패킷(P310)에 대한 공격 패킷 여부를 판단한다(S375). 여기서, 서버(200)는 계산된 페이로드(P315)의 해시 값 및 추출된 데이터 길이 필드(Length)(P313c)의 필드 값에 대응되는 필터링 데이터가 필터링 테이블(P350)에 저장되어 있으면 해당 패킷을 공격 패킷으로 결정할 수 있다.
만약, 수신된 UDP 패킷(P310)이 공격 패킷인 경우, 서버(200)는 수신된 UDP 패킷(P310)의 수신을 차단한다(S376).
한편, 페이로드(Payload)(P315)가 미리 정해진 길이 미만인 경우, 서버(200)는 수신된 UDP 패킷(P310)의 수신을 허용한다(S377).
한편, 수신된 UDP 패킷(P310)이 공격 패킷이 아닌 경우, 서버(200)는 수신된 UDP 패킷(P310)의 수신을 허용한다(S377).
다음은, 도 18을 참고하여 본 발명의 제4 실시 예에 따른 UDP 플러딩 공격 방식에 따라 클라이언트가 서버에 대한 서비스 거부 공격을 수행하는 방법에 대해 설명한다.
도 18은 본 발명의 제4 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 18에 도시된 바와 같이, 먼저, 클라이언트(100)는 서버(200)에 대한 서비스 거부 공격을 위한 UDP 패킷을 생성한다(S411).
다음, 클라이언트(100)는 생성된 UDP 패킷을 서버(200)의 임의의 서비스 포트로 전송한다(S412).
이후, 클라이언트(100)는 서버(200)로부터 인터넷 제어 메시지 프로토콜 메시지(Internet Control Message Protocol Message, 이하에서는 'ICMP 메시지'라고도 함)를 수신한다(S413).
다음은, 도 19를 참고하여 본 발명의 제4 실시 예에 따른 UDP 패킷에 대해 설명한다.
도 19는 본 발명의 제4 실시 예에 따른 UDP 패킷의 구조를 도시한 도면이다.
도 19에 도시된 바와 같이, UDP 패킷(P410)은 IP 헤더(P411), UDP 헤더(P413) 및 페이로드(Payload)(P415)를 포함한다.
IP 헤더(P411)는 버전 필드(Version)(P411a), 헤더 길이 필드(Header Length)(P411b), 서비스 타입 필드(Type of Service)(P411c), 패킷 길이 필드(Total Length)(P411d), 아이피 식별 필드(IP Identification)(P411e), 플래그 필드(Flags)(P411f), 단편 오프셋 필드(Fragment Offset)(P411g), 패킷 유지 시간 필드(Time To Live)(P411h), 프로토콜 식별 필드(Protocol)(P411i), 헤더 체크섬(Header Checksum)(P411j), 출발지 주소 필드(Source Address)(P411k), 목적지 주소 필드(Destination Address)(P411m) 및 옵션 필드(Options)(P411n)를 포함한다.
버전 필드(Version)(P411a)는 인터넷 프로토콜(IP)의 버전을 표시하는 필드 값(field value)을 포함한다.
헤더 길이 필드(Header Length)(P411b)는 IP 헤더(P411)의 길이를 표시하는 필드 값을 포함한다.
서비스 타입 필드(Type of Service)(P411c)는 요구되는 서비스 품질을 표시하는 필드 값을 포함한다.
패킷 길이 필드(Total Length)(P411d)는 해당 패킷의 전체 길이를 표시하는 필드 값을 포함한다.
아이피 식별 필드(IP Identification)(P411e)는 해당 패킷의 IP 헤더(P411)의 식별 정보를 표시하는 필드 값을 포함한다.
플래그 필드(Flags)(P411f)는 해당 패킷에 대한 단편화 정보를 표시하는 필드 값을 포함한다.
단편 오프셋 필드(Fragment Offset)(P411g)는 해당 패킷이 단편화된 경우에 단편화된 패킷 조각의 위치를 표시하는 필드 값을 포함한다.
패킷 유지 시간 필드(Time To Live)(P411h)는 해당 패킷의 폐기 여부를 결정하기 위한 패킷 유지 시간을 표시하는 필드 값을 포함한다.
프로토콜 식별 필드(Protocol)(P411i)는 해당 패킷의 프로토콜을 표시하는 필드 값을 포함한다. 여기서, 해당 패킷이 UDP를 따르는 경우, 프로토콜 식별 필드(Protocol)(P411i)는 "0x11"의 필드 값을 가질 수 있다.
헤더 체크섬(Header Checksum)(P411j)은 IP 헤더(P411)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
출발지 주소 필드(Source Address)(P411k)는 출발지의 IP 주소를 표시하는 필드 값을 포함한다.
목적지 주소 필드(Destination Address)(P411m)는 목적지의 IP 주소를 표시하는 필드 값을 포함한다.
옵션 필드(Options)(P411n)는 IP 헤더(P411)의 선택 옵션을 표시하는 필드 값을 포함한다.
UDP 헤더(P413)는 출발지 포트 필드(Source Port)(P413a), 목적지 포트 필드(Destination Port)(P413b), 데이터 길이 필드(Length)(P413c) 및 체크섬 필드(Checksum)(P413d)을 포함한다.
출발지 포트 필드(Source Port)(P413a)는 출발지의 포트 번호를 표시하는 필드 값을 포함한다.
목적지 포트 필드(Destination Port)(P413b)는 목적지의 포트 번호를 표시하는 필드 값을 포함한다.
데이터 길이 필드(Length)(P413c)는 페이로드(Payload)(P415)의 길이를 표시하는 필드 값을 포함한다.
체크섬 필드(Checksum)(P413d)는 UDP 헤더(P413)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
페이로드(Payload)(P415)는 임의의 데이터를 포함한다.
다음은, 도 20을 참고하여 본 발명의 제4 실시 예에 따른 ICMP 메시지에 대해 설명한다.
도 20은 본 발명의 제4 실시 예에 따른 ICMP 메시지의 구조를 도시한 도면이다.
도 20에 도시된 바와 같이, ICMP 메시지(P430)는 IP 헤더(P431), 인터넷 제어 메시지 프로토콜 헤더(Internet Control Message Protocol Header, 이하에서는 'ICMP 헤더'라고도 함)(P433) 및 인터넷 제어 메시지 프로토콜 에러 메시지(Internet Control Message Protocol Error Message, 이하에서는 'ICMP 에러 메시지'라고도 함)(P435)를 포함한다.
IP 헤더(P431)는 버전 필드(Version)(P431a), 헤더 길이 필드(Header Length)(P431b), 서비스 타입 필드(Type of Service)(P431c), 패킷 길이 필드(Total Length)(P431d), 아이피 식별 필드(IP Identification)(P431e), 플래그 필드(Flags)(P431f), 단편 오프셋 필드(Fragment Offset)(P431g), 패킷 유지 시간 필드(Time To Live)(P431h), 프로토콜 식별 필드(Protocol)(P431i), 헤더 체크섬(Header Checksum)(P431j), 출발지 주소 필드(Source Address)(P431k), 목적지 주소 필드(Destination Address)(P431m) 및 옵션 필드(Options)(P431n)를 포함한다.
버전 필드(Version)(P431a)는 인터넷 프로토콜(IP)의 버전을 표시하는 필드 값(field value)을 포함한다.
헤더 길이 필드(Header Length)(P431b)는 IP 헤더(P431)의 길이를 표시하는 필드 값을 포함한다.
서비스 타입 필드(Type of Service)(P431c)는 요구되는 서비스 품질을 표시하는 필드 값을 포함한다.
패킷 길이 필드(Total Length)(P431d)는 해당 패킷의 전체 길이를 표시하는 필드 값을 포함한다.
아이피 식별 필드(IP Identification)(P431e)는 해당 패킷의 IP 헤더(P431)의 식별 정보를 표시하는 필드 값을 포함한다.
플래그 필드(Flags)(P431f)는 해당 패킷에 대한 단편화 정보를 표시하는 필드 값을 포함한다.
단편 오프셋 필드(Fragment Offset)(P431g)는 해당 패킷이 단편화된 경우에 단편화된 패킷 조각의 위치를 표시하는 필드 값을 포함한다.
패킷 유지 시간 필드(Time To Live)(P431h)는 해당 패킷의 폐기 여부를 결정하기 위한 패킷 유지 시간을 표시하는 필드 값을 포함한다.
프로토콜 식별 필드(Protocol)(P431i)는 해당 패킷의 프로토콜을 표시하는 필드 값을 포함한다. 여기서, 해당 패킷이 인터넷 제어 메시지 프로토콜(Internet Control Message Protocol, 이하에서는 'ICMP'라고도 함)을 따르는 경우, 프로토콜 식별 필드(Protocol)(P431i)는 "0x01"의 필드 값을 가질 수 있다.
헤더 체크섬(Header Checksum)(P431j)은 IP 헤더(P431)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
출발지 주소 필드(Source Address)(P431k)는 출발지의 IP 주소를 표시하는 필드 값을 포함한다.
목적지 주소 필드(Destination Address)(P431m)는 목적지의 IP 주소를 표시하는 필드 값을 포함한다.
옵션 필드(Options)(P431n)는 IP 헤더(P431)의 선택 옵션을 표시하는 필드 값을 포함한다.
ICMP 헤더(P433)는 타입 필드(이하에서는 'Type'이라고도 함)(P433a), 코드 필드(이하에서는 'Code'라고도 함)(P433b) 및 체크섬 필드(Checksum)(P433c)를 포함한다.
타입 필드(Type)(P433a)는 메시지 유형을 표시하는 필드 값을 포함한다. 여기서, 메시지 유형이 목적지 미도달(Destination Unreachable)인 경우, 타입 필드(Type)(P433a)는 "0x3"의 필드 값을 가질 수 있다.
코드 필드(Code)(P433b)는 메시지 유형에 대한 추가적인 세부정보를 표시하는 필드 값을 포함한다. 여기서, 메시지 유형에 대한 추가적인 세부정보가 포트 미도달(Port Unreachable)인 경우, 코드 필드(Code)(P433b)는 "0x3"의 필드 값을 가질 수 있다.
체크섬 필드(Checksum)(P433c)는 ICMP 헤더(P433)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
ICMP 에러 메시지(P435)는 UDP 패킷(P410)의 IP 헤더(P411) 및 UDP 헤더(P413)를 포함할 수 있다.
다음은, 도 21을 참고하여 본 발명의 제4 실시 예에 따른 서버가 클라이언트의 서비스 거부 공격을 차단하는 방법에 대해 설명한다.
도 21은 본 발명의 제4 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 21에 도시된 바와 같이, 먼저, 서버(200)는 클라이언트(100)로부터 UDP 패킷(P410)을 수신한다(S431).
다음, 서버(200)는 수신된 UDP 패킷(P410)의 목적지 포트가 닫혀 있으면 목적지로 패킷을 전달할 수 없음을 알리는 ICMP 메시지(P430)를 클라이언트(100)로 전송한다(S432).
이후, 서버(200)는 전송된 ICMP 메시지(P430)를 발생시킨 UDP 패킷(P410)에서 목적지 주소 정보 및 목적지 포트 정보를 추출한다(S433).
다음, 서버(200)는 추출된 목적지 주소 정보 및 목적지 포트 정보로 전달되는 UDP 패킷들을 필터링하기 위한 필터링 테이블을 구성한다(S434).
이후, 서버(200)는 필터링 테이블을 이용하여 이후에 수신되는 UDP 패킷에 대한 필터링을 수행한다(S435).
다음은, 도 22를 참고하여 본 발명의 제4 실시 예에 따른 서버가 필터링 테이블을 구성하는 방법에 대해 설명한다.
도 22는 본 발명의 제4 실시 예에 따른 필터링 테이블 구성 방법을 도시한 도면이다.
도 22에 도시된 바와 같이, 먼저, 서버(200)는 ICMP 메시지(P430)를 발생시킨 UDP 패킷(P410)에서 목적지 주소 필드(Destination Address)(P411m)의 필드 값 및 목적지 포트 필드(Destination Port)(P413b)의 필드 값을 추출한다(S451).
다음, 서버(200)는 추출된 목적지 주소 필드(Destination Address)(P411m)의 필드 값 및 목적지 포트 필드(Destination Port)(P413b)의 필드 값을 이용하여 필터링 정보를 생성한다(S452). 여기서, 필터링 정보는 목적지 주소 필드(Destination Address)(P411m)의 필드 값 및 목적지 포트 필드(Destination Port)(P413b)의 필드 값을 포함한다.
이후, 서버(200)는 추출된 목적지 주소 필드(Destination Address)(P411m)의 필드 값 및 목적지 포트 필드(Destination Port)(P413b)의 필드 값을 이용하여 필터링 정보에 대응되는 데이터 분류 정보를 생성한다(S453). 여기서, 데이터 분류 정보는 목적지 주소 필드(Destination Address)(P411m)의 필드 값과 목적지 포트 필드(Destination Port)(P413b)의 필드 값을 해시 함수에 적용하여 생성되는 해시 값을 포함할 수 있다.
다음, 서버(200)는 생성된 데이터 분류 정보 및 필터링 정보를 포함하는 필터링 데이터를 생성한다(S454).
이후, 서버(200)는 생성된 필터링 데이터를 필터링 테이블에 저장한다(S455).
다음은, 도 23을 참고하여 본 발명의 제4 실시 예에 따른 필터링 테이블에 대해 설명한다.
도 23은 본 발명의 제4 실시 예에 따른 필터링 테이블의 구조를 도시한 도면이다.
도 23에 도시된 바와 같이, 필터링 테이블(P450)은 필터링 데이터를 저장하며, 메모리 주소(P451) 및 메모리 저장공간(P453)을 포함한다.
메모리 주소(P451)는 필터링 데이터의 데이터 분류 정보를 표시하는 필드 값을 포함한다. 예를 들어, 메모리 주소(P451)는 필터링 데이터의 데이터 분류 정보에 포함된 해시 값 즉, "h"를 포함할 수 있다.
메모리 저장공간(P453)는 메모리 주소(P451)의 필드 값에 대응되는 필터링 정보를 저장하는 엔트리(이하에서는 'Entry'라고도 함)를 포함한다. 예를 들어, 메모리 저장공간(P453)는 메모리 주소(P451)의 필드 값 즉, "h"에 대응되는 복수 개의 엔트리(P453a)를 포함할 수 있다.
다음은, 도 24를 참고하여 본 발명의 제4 실시 예에 따른 서버가 필터링 테이블을 이용하여 패킷에 대한 필터링을 수행하는 방법에 대해 설명한다.
도 24는 본 발명의 제4 실시 예에 따른 패킷 필터링 방법을 도시한 도면이다.
도 24에 도시된 바와 같이, 먼저, 서버(200)는 클라이언트(100)로부터 UDP 패킷(P410)을 수신한다(S471).
다음, 서버(200)는 수신된 UDP 패킷(P410)에서 목적지 주소 필드(Destination Address)(P411m)의 필드 값 및 목적지 포트 필드(Destination Port)(P413b)의 필드 값을 추출한다(S472).
이후, 서버(200)는 추출된 목적지 주소 필드(Destination Address)(P411m)의 필드 값 및 목적지 포트 필드(Destination Port)(P413b)의 필드 값을 이용하여 수신된 UDP 패킷(P410)에 대한 공격 패킷 여부를 판단한다(S473). 여기서, 서버(200)는 미리 저장된 필터링 테이블(P450)에 추출된 목적지 주소 필드(Destination Address)(P411m)의 필드 값 및 목적지 포트 필드(Destination Port)(P413b)의 필드 값을 포함하는 필터링 데이터가 저장되어 있으며 해당 패킷을 공격 패킷으로 결정할 수 있다.
만약, 수신된 UDP 패킷(P410)이 공격 패킷인 경우, 서버(200)는 수신된 UDP 패킷(P410)의 수신을 차단한다(S474).
한편, 수신된 UDP 패킷(P410)이 공격 패킷이 아닌 경우, 서버(200)는 수신된 UDP 패킷(P410)의 수신을 허용한다(S475).
다음은 도 25를 참고하여 본 발명의 제5 실시 예에 따른 UDP 플러딩 공격 방식에 따라 클라이언트가 서버에 대한 서비스 거부 공격을 수행하는 방법에 대해 설명한다.
도 25는 본 발명의 제5 실시 예에 따른 클라이언트가 수행하는 서비스 거부 공격 방법을 도시한 도면이다.
도 25에 도시된 바와 같이, 먼저, 클라이언트(100)는 서버(200)에 대한 서비스 거부 공격을 위한 UDP 패킷을 생성한다(S411).
다음, 클라이언트(100)는 생성된 UDP 패킷을 단편화(fragmentation)하여 단편화된 UDP 패킷에 대응되는 복수 개의 패킷 조각을 생성한다(S412).
이후, 클라이언트(100)는 생성된 복수 개의 패킷 조각을 서버(200)로 전송한다(S413).
다음은 도 26을 참고하여 본 발명의 제5 실시 예에 따른 단편화된 UDP 패킷의 패킷 조각에 대해 설명한다.
도 26은 본 발명의 제5 실시 예에 따른 패킷 조각의 구조를 도시한 도면이다.
도 26에 도시된 바와 같이, 패킷 조각(P510)은 IP 헤더(P511), UDP 헤더(P513) 및 페이로드(Payload)(P515)를 포함한다.
IP 헤더(P511)는 버전 필드(Version)(P511a), 헤더 길이 필드(Header Length)(P511b), 서비스 타입 필드(Type of Service)(P511c), 패킷 길이 필드(Total Length)(P511d), 아이피 식별 필드(IP Identification)(P511e), 플래그 필드(Flags)(P511f), 단편 오프셋 필드(Fragment Offset)(P511g), 패킷 유지 시간 필드(Time To Live)(P511h), 프로토콜 식별 필드(Protocol)(P511i), 헤더 체크섬(Header Checksum)(P511j), 출발지 주소 필드(Source Address)(P511k), 목적지 주소 필드(Destination Address)(P511m) 및 옵션 필드(Options)(P511n)를 포함한다.
버전 필드(Version)(P511a)는 인터넷 프로토콜(IP)의 버전을 표시하는 필드 값(field value)을 포함한다.
헤더 길이 필드(Header Length)(P511b)는 IP 헤더(P511)의 길이를 표시하는 필드 값을 포함한다.
서비스 타입 필드(Type of Service)(P511c)는 요구되는 서비스 품질을 표시하는 필드 값을 포함한다.
패킷 길이 필드(Total Length)(P511d)는 해당 패킷 조각의 전체 길이를 표시하는 필드 값을 포함한다.
아이피 식별 필드(IP Identification)(P211e)는 해당 패킷 조각의 IP 헤더(P511)의 식별 정보를 표시하는 필드 값을 포함한다.
플래그 필드(Flags)(P511f)는 해당 패킷 조각에 대한 단편화 정보를 표시하는 필드 값을 포함한다. 여기서, 해당 패킷 조각이 단편화된 UDP 패킷의 마지막 패킷 조각이 아닌 경우, 플래그 필드(Flags)(P511f)는 "More Fragments"를 나타내는 "0x1"의 필드 값을 가질 수 있다.
단편 오프셋 필드(Fragment Offset)(P511g)는 해당 패킷 조각의 위치를 표시하는 필드 값을 포함한다.
패킷 유지 시간 필드(Time To Live)(P511h)는 해당 패킷 조각의 폐기 여부를 결정하기 위한 패킷 유지 시간을 표시하는 필드 값을 포함한다.
프로토콜 식별 필드(Protocol)(P511i)는 해당 패킷 조각의 프로토콜을 표시하는 필드 값을 포함한다. 여기서, 해당 패킷 조각이 UDP를 따르는 경우, 프로토콜 식별 필드(Protocol)(P511i)는 "0x11"의 필드 값을 가질 수 있다.
헤더 체크섬(Header Checksum)(P511j)은 IP 헤더(P511)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
출발지 주소 필드(Source Address)(P511k)는 출발지의 IP 주소를 표시하는 필드 값을 포함한다.
목적지 주소 필드(Destination Address)(P511m)는 목적지의 IP 주소를 표시하는 필드 값을 포함한다.
옵션 필드(Options)(P511n)는 IP 헤더(P211)의 선택 옵션을 표시하는 필드 값을 포함한다.
UDP 헤더(P513)는 출발지 포트 필드(Source Port)(P513a), 목적지 포트 필드(Destination Port)(P513b), 데이터 길이 필드(Length)(P513c) 및 체크섬 필드(Checksum)(P513d)을 포함한다.
출발지 포트 필드(Source Port)(P513a)는 출발지의 포트 번호를 표시하는 필드 값을 포함한다.
목적지 포트 필드(Destination Port)(P513b)는 목적지의 포트 번호를 표시하는 필드 값을 포함한다.
데이터 길이 필드(Length)(P513c)는 페이로드(Payload)(P515)의 길이를 표시하는 필드 값을 포함한다.
체크섬 필드(Checksum)(P513d)는 UDP 헤더(P513)에 대한 오류를 검출하기 위한 필드 값을 포함한다.
페이로드(Payload)(P515)는 임의의 데이터를 포함한다.
다음은 도 27을 참고하여 본 발명의 제5 실시 예에 따른 서버가 클라이언트의 서비스 거부 공격을 차단하는 방법에 대해 설명한다.
도 27은 본 발명의 제5 실시 예에 따른 서비스 거부 공격 차단 방법을 도시한 도면이다.
도 27에 도시된 바와 같이, 먼저, 서버(200)는 프로토콜 식별 필드(Protocol)(P511i)의 필드 값이 "0x11"이고, 플래그 필드(Flags)(P511f)의 필드 값이 "0x1"인 패킷 조각의 발생 빈도를 측정한다(S531). 여기서, 서버(200)는 목적지 주소별로 해당 패킷 조각의 초당 발생 빈도를 측정할 수 있다.
다음, 서버(200)는 측정된 발생 빈도와 미리 정해진 임계치를 비교하여 측정된 발생 빈도가 임계치를 초과하는지 판단한다(S532).
만약, 측정된 발생 빈도가 임계치를 초과하는 경우, 서버(200)는 해당 패킷 조각의 수신을 차단한다(S533).
한편, 측정된 발생 빈도가 임계치를 초과하지 아니하는 경우, 서버(200)는 해당 패킷 조각의 수신을 허용한다(S534).
이상에서와 같이 도면과 명세서에서 최적의 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (18)

  1. 서버가 사용자 데이터그램 프로토콜 플러딩(UDP Flooding)에 의한 서비스 거부 공격을 차단하는 서비스 거부 공격 차단 방법에 있어서,
    수신된 복수 개의 패킷들 중 미리 정해진 길이 이상의 데이터를 포함하는 복수 개의 의심 패킷들을 추출하는 단계;
    상기 복수 개의 의심 패킷들 중에서 서로 동일한 문자들 또는 문자열들로 구성된 데이터를 포함하는 패킷을 공격 패킷으로 결정하는 단계; 및
    상기 공격 패킷에 상응하는 패킷을 차단하는 단계를 포함하는 서비스 거부 공격 차단 방법.
  2. 제1항에 있어서,
    상기 복수 개의 패킷들은
    사용자 데이터그램 프로토콜(UDP)을 이용하여 송/수신되는 것을 특징으로 하는 서비스 거부 공격 차단 방법.
  3. 제2항에 있어서,
    상기 추출하는 단계는
    상기 복수 개의 패킷들 각각에 포함된 데이터 길이 정보를 이용하여 상기 복수 개의 패킷들 중 상기 복수 개의 의심 패킷들을 추출하는 서비스 거부 공격 차단 방법.
  4. 제1항에 있어서,
    상기 결정하는 단계는
    상기 복수 개의 의심 패킷들 중 동일한 문자들로 구성된 데이터를 포함하는 패킷을 공격 패킷으로 결정하는 서비스 거부 공격 차단 방법.
  5. 제1항에 있어서,
    상기 결정하는 단계는
    상기 복수 개의 의심 패킷들 중 동일한 문자열들로 구성된 데이터를 포함하는 복수 개의 공격 패킷들을 검출하는 단계; 및
    상기 복수 개의 공격 패킷들에 대한 필터링 데이터를 생성하는 단계를 포함하는 서비스 거부 공격 차단 방법.
  6. 제5항에 있어서,
    상기 생성하는 단계는
    상기 복수 개의 공격 패킷들 각각에 포함된 동일한 문자열들로 구성된 데이터를 해시 함수에 적용하여 해시 값을 생성하는 단계; 및
    상기 해시 값 및 상기 동일한 문자열들로 구성된 데이터의 데이터 길이 정보를 포함하는 필터링 데이터를 생성하는 단계를 포함하는 서비스 거부 공격 차단 방법.
  7. 제6항에 있어서,
    상기 차단하는 단계는
    상기 필터링 데이터에 상응하는 패킷을 차단하는 서비스 거부 공격 차단 방법.
  8. 서버가 사용자 데이터그램 프로토콜 플러딩(UDP Flooding)에 의한 서비스 거부 공격을 차단하는 서비스 거부 공격 차단 방법에 있어서,
    수신된 복수 개의 패킷 조각들이 동일한 문자들로 구성된 데이터를 포함하는지를 판단하는 단계;
    상기 복수 개의 패킷 조각들이 동일한 문자들로 구성된 데이터를 포함하는 경우, 상기 복수 개의 패킷 조각들 각각의 헤더 정보를 이용하여 필터링 데이터를 포함하는 필터링 테이블을 구성하는 단계; 및
    상기 필터링 테이블을 이용하여 상기 필터링 데이터에 대응되는 패킷 조각을 차단하는 단계를 포함하는 서비스 거부 공격 차단 방법.
  9. 제8항에 있어서,
    상기 복수 개의 패킷 조각들은
    사용자 데이터그램 프로토콜(UDP)을 이용하여 송/수신되는 것을 특징으로 하는 서비스 거부 공격 차단 방법.
  10. 제9항에 있어서,
    상기 구성하는 단계는
    상기 복수 개의 패킷 조각들 중 어느 하나의 패킷 조각에서 아이피 식별 정보를 추출하는 단계; 및
    상기 아이피 식별 정보를 포함하는 필터링 데이터를 생성하는 단계를 포함하는 서비스 거부 공격 차단 방법.
  11. 제10항에 있어서,
    상기 차단하는 단계는
    상기 필터링 데이터에 포함된 아이피 식별 정보에 대응되는 패킷 조각을 차단하는 서비스 거부 공격 차단 방법.
  12. 제8항에 있어서,
    상기 수신된 복수 개의 패킷 조각들이 동일한 문자들로 구성된 데이터를 포함하지 아니하는 경우, 일정시간 동안 수신되는 패킷 조각의 수신량을 이용하여 상기 서버로 수신되는 패킷 조각에 대한 차단 여부를 결정하는 단계를 더 포함하는 서비스 거부 공격 차단 방법.
  13. 제12항에 있어서,
    상기 결정하는 단계는
    상기 수신량과 미리 결정된 임계치를 비교하는 단계; 및
    상기 수신량이 상시 임계치를 초과하는 경우, 상기 서버로 수신되는 패킷 조각을 차단하는 단계를 포함하는 서비스 거부 공격 차단 방법.
  14. 서버가 사용자 데이터그램 프로토콜 플러딩(UDP Flooding)에 의한 서비스 거부 공격을 차단하는 서비스 거부 공격 차단 방법에 있어서,
    수신된 패킷의 목적지 포트가 닫혀 있는 경우, 상기 목적지 포트로 패킷을 전달할 수 없음 알리기 위해 상기 패킷에 대응되는 응답 메시지를 생성하는 단계;
    상기 패킷에서 목적지 주소 정보 및 목적지 포트 정보를 추출하는 단계;
    상기 목적지 주소 정보 및 상기 목적지 포트 정보를 포함하는 필터링 데이터를 생성하는 단계; 및
    상기 필터링 데이터를 이용하여 상기 목적지 주소 정보 및 상기 목적지 포트 정보를 포함하는 공격 패킷을 차단하는 단계를 포함하는 서비스 거부 공격 차단 방법.
  15. 제14항에 있어서,
    상기 패킷의 프로토콜은
    사용자 데이터그램 프로토콜(UDP)인 서비스 거부 공격 차단 방법.
  16. 제15항에 있어서,
    상기 추출하는 단계는
    상기 응답 메시지가 에러 메시지를 포함하면 상기 목적지 주소 정보 및 상기 목적지 포트 정보를 추출하는 서비스 거부 공격 차단 방법.
  17. 제16항에 있어서,
    상기 응답 메시지의 프로토콜은
    인터넷 제어 메시지 프로토콜(ICMP)인 서비스 거부 공격 차단 방법.
  18. 제17항에 있어서,
    상기 응답 메시지는
    메시지 유형이 목적지 미도달(Destination Unreachable)인 서비스 거부 공격 차단 방법.
KR1020100127820A 2010-12-14 2010-12-14 서비스 거부 공격 차단 방법 KR20120066465A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100127820A KR20120066465A (ko) 2010-12-14 2010-12-14 서비스 거부 공격 차단 방법
US13/324,313 US20120151584A1 (en) 2010-12-14 2011-12-13 Method for blocking denial-of-service attack

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100127820A KR20120066465A (ko) 2010-12-14 2010-12-14 서비스 거부 공격 차단 방법

Publications (1)

Publication Number Publication Date
KR20120066465A true KR20120066465A (ko) 2012-06-22

Family

ID=46200875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100127820A KR20120066465A (ko) 2010-12-14 2010-12-14 서비스 거부 공격 차단 방법

Country Status (2)

Country Link
US (1) US20120151584A1 (ko)
KR (1) KR20120066465A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103746987B (zh) * 2013-12-31 2017-02-01 东软集团股份有限公司 语义Web应用中检测DoS攻击的方法与系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073617A1 (en) * 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7222366B2 (en) * 2002-01-28 2007-05-22 International Business Machines Corporation Intrusion event filtering
CN102098305A (zh) * 2004-01-26 2011-06-15 思科技术公司 较高级协议认证
US7529187B1 (en) * 2004-05-04 2009-05-05 Symantec Corporation Detecting network evasion and misinformation
US8423645B2 (en) * 2004-09-14 2013-04-16 International Business Machines Corporation Detection of grid participation in a DDoS attack
KR20060063932A (ko) * 2004-10-12 2006-06-12 니폰덴신뎅와 가부시키가이샤 서비스 불능 공격 방어방법, 서비스 불능 공격 방어시스템, 서비스 불능 공격 방어장치, 중계장치, 서비스불능 공격 방어 프로그램 및 중계장치용 프로그램
US8065722B2 (en) * 2005-03-21 2011-11-22 Wisconsin Alumni Research Foundation Semantically-aware network intrusion signature generator
US7784094B2 (en) * 2005-06-30 2010-08-24 Intel Corporation Stateful packet content matching mechanisms
GB2449852A (en) * 2007-06-04 2008-12-10 Agilent Technologies Inc Monitoring network attacks using pattern matching

Also Published As

Publication number Publication date
US20120151584A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
US11863587B2 (en) Webshell detection method and apparatus
US10785252B2 (en) Apparatus for enhancing network security and method for the same
CN105991655B (zh) 用于缓解基于邻居发现的拒绝服务攻击的方法和装置
Kesavamoorthy et al. Swarm intelligence based autonomous DDoS attack detection and defense using multi agent system
US9497208B2 (en) Distributed network protection
US8561188B1 (en) Command and control channel detection with query string signature
JP5713445B2 (ja) 通信監視システム及び方法及び通信監視装置及び仮想ホスト装置及び通信監視プログラム
US11671405B2 (en) Dynamic filter generation and distribution within computer networks
JP2020017809A (ja) 通信装置及び通信システム
KR101585700B1 (ko) 서비스 거부 공격 차단 방법
CN113824680A (zh) 一种网络安全分析方法、装置、计算机设备及存储介质
JP4743901B2 (ja) ネットワーク上での不正なスキャンニングを検出するための方法、システムおよびコンピュータ・プログラム
JP2010009187A (ja) 情報処理装置、情報処理システム、プログラム、および記録媒体
US20100175131A1 (en) Method and system for network protection against cyber attacks
WO2013097600A1 (zh) 签名库的匹配路径生成方法及相关装置
JP6053561B2 (ja) 偽装トラフィック検知を目的としたbgpルートを基にしたネットワークトラフィックプロファイルを作成するシステム及び方法
JP5607513B2 (ja) 検知装置、検知方法及び検知プログラム
US8307415B2 (en) Safe hashing for network traffic
KR20120066465A (ko) 서비스 거부 공격 차단 방법
TW201132055A (en) Routing device and related packet processing circuit
CN105471839B (zh) 一种判断路由器数据是否被窜改的方法
CN110401646B (zh) IPv6安全邻居发现过渡环境中CGA参数探测方法及装置
Kaffashi et al. A new attack on link-state database in open shortest path first routing protocol
Gu et al. Comparative studies of IPv6 tunnel security
Gowda et al. Detection And Prevention of ARP Attack in Software Defined Networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application