KR20120067584A - 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치 - Google Patents
대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치 Download PDFInfo
- Publication number
- KR20120067584A KR20120067584A KR1020100129067A KR20100129067A KR20120067584A KR 20120067584 A KR20120067584 A KR 20120067584A KR 1020100129067 A KR1020100129067 A KR 1020100129067A KR 20100129067 A KR20100129067 A KR 20100129067A KR 20120067584 A KR20120067584 A KR 20120067584A
- Authority
- KR
- South Korea
- Prior art keywords
- client terminal
- identification information
- list
- information
- ddos attack
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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 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
대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치가 개시된다. 디도스 공격 탐지 및 대응 장치가 수행하는 디도스 공격 탐지 및 대응 방법에 있어서, 클라이언트 단말기로부터 서버로 전송되는 접속 신호를 수신하는 단계; 상기 클라이언트 단말기의 식별 정보가 블랙리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 접속을 차단하는 단계; 상기 클라이언트 단말기의 식별 정보가 화이트리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 정상 접속을 허용하는 단계; 상기 클라이언트 단말기의 식별 정보가 상기 블랙리스트 및 화이트리스트에 저장되어 있지 않은 경우 클라이언트 단말기의 식별 정보를 인스펙트리스트에 추가하는 단계; 및 상기 인스펙트리스트에 추가된 상기 클라이언트 단말기의 식별 정보를 대상으로 디도스 공격을 탐지하는 단계를 포함하는 디도스 공격 탐지 및 대응 방법은 대량의 트래픽 환경에서 유입되는 트래픽을 선택적으로 선별하여 디도스 공격에 대응할 수 있는 효과가 있다.
Description
본 발명은 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 장치에 관한 것이다.
디도스(DDoS : Distributed Denial of Service) 공격은 여러 대의 컴퓨터를 일제히 동작하게 하여 특정 사이트를 공격하는 방식에 의한 공격이다. 오래전부터 많은 피해를 발생시켜 온 디도스 공격은 최근 Netbot Attacker, Blackenergy, 7.7 DDoS(TCP Flooding) 등 봇넷을 이용한 공격 방식을 통해 대응하기 점차 어려워지고 있다.
구체적으로, 기존 DDoS 공격은 네트워크 계층에서의 대역폭 소모 위주의 공격이었지만, 최근에는 시스템의 CPU, 메모리, DB 서버 자원을 고갈시키는 응용계층 기반 디도스 공격이 주로 발생하고 있다.
그러나 현재 개발된 대부분의 디도스 대응장비는 네트워크 계층에서의 디도스 공격대응 위주의 기능을 제공하고 있어서, 소량의 HTTP 트래픽이 발생하면서 특정 호스트의 동작을 중지시키는 Netbot Attacker, Blackenergy, 7.7 DDoS(TCP Flooding), 네트워크 대역폭 및 시스템 자원을 동시에 소모시키는 크로스 오버 디도스(crossvoer DDoS) 공격과 같은 응용계층의 디도스 공격에는 대응하지 못하고 있다.
더욱이 향후 웹 서비스 대상 디도스 공격은 점차 지능화된 형태로 발전될 것으로 예상된다. 따라서 현재 알려진 디도스 공격 유형에만 대응하기 위한 기술은 한계가 존재하며, 보다 근본적으로 디도스 공격에 대응할 수 있는 해결책을 마련할 필요가 있다.
또한, 대량의 트래픽이 발생하는 경우 과부하된 서버에서 처리 시간이 증가하면서 임계치 기반 대응에서는 잘못된 탐지가 발생하게 되고, 대기 큐에 쌓여 있던 요청 정보들은 버려지게 됨에 따라 오작동이 발생하는 등 문제점이 발생하는 바, 대량의 트래픽 환경에서 디도스 공격에 대응할 수 있는 기술도 개발할 필요가 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명은 대량의 트래픽 환경에서 유입되는 트래픽을 선택적으로 선별하여 디도스 공격에 대응할 수 있는 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치를 제공하기 위한 것이다.
또한, 본 발명은 어떤 디도스 공격이든 공통적으로 나타나는 현상에 기반한 대응 메커니즘을 제시하기 위해서, 웹서비스를 대상으로 시스템 리소스(system resource)를 고갈시키는 디도스 공격을 탐지하고 이에 대응하는 메커니즘을 제시할 수 있는 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치를 제공하기 위한 것이다.
본 발명이 제시하는 이외의 기술적 과제들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 디도스 공격 탐지 및 대응 장치가 수행하는 디도스 공격 탐지 및 대응 방법에 있어서, 클라이언트 단말기로부터 서버로 전송되는 접속 신호를 수신하는 단계; 상기 클라이언트 단말기의 식별 정보가 블랙리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 접속을 차단하는 단계; 상기 클라이언트 단말기의 식별 정보가 화이트리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 정상 접속을 허용하는 단계; 상기 클라이언트 단말기의 식별 정보가 상기 블랙리스트 및 화이트리스트에 저장되어 있지 않은 경우 클라이언트 단말기의 식별 정보를 인스펙트리스트에 추가하는 단계; 및 상기 인스펙트리스트에 추가된 상기 클라이언트 단말기의 식별 정보를 대상으로 디도스 공격을 탐지하는 단계를 포함하는 디도스 공격 탐지 및 대응 방법이 제공된다.
여기서, 상기 인스펙트리스트 추가 단계는, 상기 접속 신호를 전송하는 상기 클라이언트 단말기의 수를 리스트 임계치와 비교하는 단계; 및 상기 접속 신호를 전송하는 상기 클라이언트 단말기의 수가 상기 리스트 임계치보다 작은 경우 상기 클라이언트 단말기의 식별 정보를 상기 인스펙트리스트에 추가하는 단계를 더 포함할 수 있다.
또한, 상기 디도스 공격 탐지 단계 이후, 상기 인스펙트리스트에 추가된 식별 정보에 상응하는 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 경우 상기 인스펙트리스트에 추가된 식별 정보를 상기 블랙리스트에 추가하는 단계; 상기 인스펙트리스트에 추가된 식별 정보에 상응하는 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하지 않는 경우 상기 인스펙트리스트에 추가된 식별 정보를 상기 화이트리스트에 추가하는 단계; 및 상기 인스펙트리스트를 삭제하는 단계를 포함할 수 있다.
여기서, 상기 디도스 공격 탐지 단계는, 상기 클라이언트 단말기의 요청(request) 정보에 상응하여 서버가 응답(response) 정보를 전송하는데 소요되는 워킹 시간을 산출하는 단계; 상기 산출된 워킹 시간을 소정의 임계치와 비교하고, 상기 워킹 시간이 상기 임계치보다 큰 경우 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 단계; 및 상기 디도스 공격으로 탐지하는 경우 상기 클라이언트 단말기의 접속을 차단하는 단계를 포함할 수 있다.
본 발명의 다른 측면에 따르면, 클라이언트 단말기로부터 서버로 전송되는 접속 신호를 수신하는 수신부; 상기 클라이언트 단말기의 식별 정보가 블랙리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 접속을 차단하는 블랙리스트 필터링부; 상기 클라이언트 단말기의 식별 정보가 화이트리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 정상 접속을 허용하는 화이트리스트 통과부; 상기 클라이언트 단말기의 식별 정보가 상기 블랙리스트 및 화이트리스트에 저장되어 있지 않은 경우 클라이언트 단말기의 식별 정보를 인스펙트리스트에 추가하는 인스펙트리스트 관리부; 및 상기 인스펙트리스트에 추가된 상기 클라이언트 단말기의 식별 정보를 대상으로 디도스 공격을 탐지하는 디도스 대응부를 포함하는 디도스 공격 탐지 및 대응 장치가 제공된다.
여기서, 상기 인스펙트리스트 관리부는, 상기 접속 신호를 전송하는 상기 클라이언트 단말기의 수를 리스트 임계치와 비교하고, 상기 접속 신호를 전송하는 상기 클라이언트 단말기의 수가 상기 리스트 임계치보다 작은 경우 상기 클라이언트 단말기의 식별 정보를 상기 인스펙트리스트에 추가할 수 있다.
또한, 상기 리스트 임계치는 다음 수식에 의해 설정될 수 있다.
여기서, T는 리스트 임계치, Pn은 상기 서버의 처리가능한 IP 수, Wn은 상기 화이트리스트에 저장된 상기 식별 정보의 수이다.
여기서, 상기 인스펙트리스트 관리부는 상기 디도스 대응부의 디도스 공격 탐지 이후에, 상기 인스펙트리스트에 추가된 식별 정보에 상응하는 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 경우 상기 인스펙트리스트에 추가된 식별 정보를 상기 블랙리스트에 추가하고, 상기 인스펙트리스트에 추가된 식별 정보에 상응하는 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하지 않는 경우 상기 인스펙트리스트에 추가된 식별 정보를 상기 화이트리스트에 추가하며, 상기 인스펙트리스트를 삭제할 수 있다.
또한, 상기 디도스 대응부는, 상기 클라이언트 단말기의 요청(request) 정보에 상응하여 서버가 응답(response) 정보를 전송하는데 소요되는 워킹 시간을 산출하는 시간 측정부; 상기 산출된 워킹 시간을 소정의 임계치와 비교하고, 상기 워킹 시간이 상기 임계치보다 큰 경우 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 디도스 판별부; 및 상기 디도스 공격으로 탐지하는 경우 상기 클라이언트 단말기의 접속을 차단하는 차단부를 포함할 수 있다.
여기서, 상기 시간 측정부는, 세션이 연결되지 않은 경우 세션 연결 후부터 응답(response) 정보 발생시까지의 시간을 워킹 시간으로 산출하고, 세션이 연결된 경우 요청(request) 정보 발생시부터 응답 정보 발생시까지의 시간을 워킹 시간으로 산출할 수 있다.
또한, 상기 시간 측정부는, 소정의 관측 시간 동안 복수의 상기 워킹 시간의 합을 산출하며, 상기 디도스 판별부는, 상기 산출된 워킹 시간의 합을 상기 임계치와 비교하고, 상기 워킹 시간의 합이 상기 임계치보다 큰 경우 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지할 수 있다.
여기서, 상기 시간 측정부는, 상기 요청 정보의 개수와 상기 응답 정보의 개수가 동일한 시간에서 워킹 시간 산출의 시작 시간을 뺀 차이 시간을 워킹 시간으로 산출할 수 있다.
또한, 상기 시간 측정부는, 상기 요청 정보에 대한 식별 정보를 추출하여 저장하고, 상기 요청 정보의 개수를 1만큼 증가시키며, 상기 식별 정보를 가지는 요청 정보가 재전송되는 경우 상기 재전송된 요청 정보의 식별 정보를 재저장하지 않고, 상기 요청 정보의 개수도 수정하지 않으며, 여기서, 상기 식별 정보는 상기 응답 정보가 상기 요청 정보에 대응되는지 판단하는데 이용될 수 있다.
또한, 상기 시간 측정부는, 상기 세션에 대한 분할 단위를 추출하여 저장하고, 상기 요청 정보에 대한 식별 정보를 추출하여 저장하며, 상기 요청 정보의 식별 정보에 상응하여 전송되는 최초 분할된 응답 정보의 컨텐츠 길이 정보를 추출하여 상기 식별 정보에 상응하여 저장한 후, 상기 컨텐츠 길이 정보에서 상기 요청 정보의 식별 정보에 상응하여 차후에 전송되는 응답 정보의 세션 정보를 차감한 값이 상기 세션의 분할 단위 보다 작은 경우, 상기 차후 전송된 응답 정보의 수신 시점에 상기 응답 정보의 개수를 1만큼 증가시킬 수 있다.
여기서, 상기 식별 정보는 상기 요청 정보의 식별 정보에 상응하는 최초 응답 정보의 시퀀스 정보와 HTTP 길이 정보의 합이 될 수 있다.
상기 요청 정보는 순차적으로 수신되는 제1 요청 정보와 제2 요청 정보를 포함하고, 상기 응답 정보는 상기 제1 요청 정보에 상응하는 제1 응답 정보와, 상기 제2 요청 정보에 상응하는 제2 응답 정보를 포함하며, 상기 제2 요청 정보가 상기 제1 응답 정보의 전송전에 수신되는 경우, 상기 시간 측정부는, 상기 제1 응답 정보와 상기 제2 응답 정보의 전송 시간 중 늦은 시간에서 워킹 시간 산출의 시작 시간을 뺀 차이 시간을 워킹 시간으로 산출할 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치는 대량의 트래픽 환경에서 유입되는 트래픽을 선택적으로 선별하여 디도스 공격에 대응할 수 있는 효과가 있다.
또한, 본 발명에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치는 어떤 디도스 공격이든 공통적으로 나타나는 현상에 기반한 대응 메커니즘을 제시하기 위해서, 웹서비스를 대상으로 시스템 리소스(system resource)를 고갈시키는 디도스 공격을 탐지하고 이에 대응하는 메커니즘을 제시할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 시스템 구성도.
도 2는 본 발명의 실시예에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 장치의 블록 구성도.
도 3은 본 발명의 실시예에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법의 흐름도.
도 4는 본 발명의 실시예에 따른 디도스 공격 탐지의 실험예.
도 5는 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치의 블록 구성도.
도 6은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치에 관리되는 데이터 포맷도.
도 7은 본 발명의 실시예에 따른 워킹 시간 개념 도면.
도 8은 본 발명의 실시예에 따른 워킹 시간 계산 기준 도면.
도 9 내지 도 19는 본 발명의 실시예에 따른 트래픽 패턴에 상응하는 워킹 시간 측정도.
도 20은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 인바운드 흐름도.
도 21은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 아웃바운드 흐름도.
도 22는 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 전체 워킹 시간 측정 흐름도.
도 23은 본 발명의 다른 실시예에 따른 트래픽 패턴에 상응하는 워킹 시간 측정도.
도 24는 도 23에 도시된 트래픽 패턴에 따른 데이터 관리를 나타낸 도면.
도 2는 본 발명의 실시예에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 장치의 블록 구성도.
도 3은 본 발명의 실시예에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법의 흐름도.
도 4는 본 발명의 실시예에 따른 디도스 공격 탐지의 실험예.
도 5는 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치의 블록 구성도.
도 6은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치에 관리되는 데이터 포맷도.
도 7은 본 발명의 실시예에 따른 워킹 시간 개념 도면.
도 8은 본 발명의 실시예에 따른 워킹 시간 계산 기준 도면.
도 9 내지 도 19는 본 발명의 실시예에 따른 트래픽 패턴에 상응하는 워킹 시간 측정도.
도 20은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 인바운드 흐름도.
도 21은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 아웃바운드 흐름도.
도 22는 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 전체 워킹 시간 측정 흐름도.
도 23은 본 발명의 다른 실시예에 따른 트래픽 패턴에 상응하는 워킹 시간 측정도.
도 24는 도 23에 도시된 트래픽 패턴에 따른 데이터 관리를 나타낸 도면.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 실시예에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 시스템 구성도이다. 도 1을 참조하면, 클라이언트 단말기(100), 네트워크(200), 디도스 공격 탐지 및 대응 장치(300), 서버(400)가 도시된다.
본 실시예는 블랙리스트(black list), 화이트리스트(white list), 인스펙트리스트(inspect list) 운영을 통해 대량의 트래픽 환경에서도 안정적인 디도스 공격에 대응할 수 있는 특징이 있다. 즉, 본 실시예는 대량의 정상 및 디도스 공격 트래픽이 유입되는 상황에서 임의로 선택된 인스펙트리스트를 대상으로 디도스 공격 탐지 기술을 적용하고, 적용결과 블랙리스트 또는 화이트리스트로 분류하여, 블랙리스트는 차단하고, 화이트리스트는 통과시키는 과정을 반복하여 수행함으로써, 오탐지 및 오작동 가능성을 줄이는 특징이 있다.
여기서, 인스펙트리스트를 대상으로 디도스 공격을 탐지하는 기술은 웹서비스를 대상으로 시스템 리소스(system resource)를 고갈시키는 디도스(DDoS) 공격을 탐지하고 이에 대응하는 메커니즘이 될 수 있다. 즉, 본 실시예는 시스템 리소스를 고갈시키는 디도스 공격은 요청(request)에 대한 응답(response)의 시간차가 커지는 특징을 가진다는 점을 이용하여 요청에 대한 응답의 소요 시간으로부터 디도스 공격을 탐지하는 특징이 있다. 본 실시예에서 디도스 공격 탐지 및 대응시스템은 In-line 상에 위치하여 있지만, Out-of-Path 방식으로도 운영할 수 있다.
클라이언트 단말기(100)는 서버(400)를 대상으로 디도스 공격을 하는 단말기로서, 소위 좀비 PC로 지칭될 수 있다. 클라이언트 단말기(100)는 PC, 노트북 컴퓨터, 랩탑 컴퓨터와 같이 범용의 또는 특화된 용도의 컴퓨팅 장치로서, 마이크로프로세서를 탑재함으로써 일정한 연산 동작을 수행할 수 있는 단말기를 통칭하는 개념으로 해석된다.
여기서, 서버(400)는 웹서비스를 수행하는 1개의 웹서버 또는 웹서버팜이 될 수 있다. 또한, 서버(400)는 물리적인 서버의 형태를 갖출 필요는 없으며, 기능적 의미의 서버로서, 공동으로 사용하는 정보를 저장하거나 메모리 등 자원을 많이 사용하는 서버 프로그램이 실행되는 컴퓨터 하드웨어가 될 수 있다.
디도스 공격 탐지 및 대응 장치(300)는 클라이언트 단말기(100)의 디도스 공격을 탐지하고 이를 탐지한 경우 클라이언트 단말기(100)가 서버(400)에 접속하지 못하도록 차단할 수 있다.
디도스 공격 탐지 및 대응 장치(300)는 서버(400)에 유입되는 트래픽을 대상으로 블랙리스트, 화이트리스트 및 인스펙트리스트로 분류하여 상술한 바와 같이 디도스 공격을 탐지하고 이에 대응할 수 있다.
디도스 공격 탐지 및 대응 장치(300)는 유선 또는 무선 네트워크(400)의 라우터에 구비되거나 수정 라우터 혹은 디도스 전용장비, 침입방지시스템 등에 위치하거나 또는 각 서버(400)의 특정 구성요소 또는 파이어월로 구비됨으로써 디도스 공격을 차단할 수 있다. 디도스 공격 탐지 및 대응 장치(300)는 네트워크 트래픽 경로 상에 인라인으로 위치하거나, 트래픽 정보를 따로 받는 아웃오프패스 방식으로 동작할 수 있다.
또한, 본 발명은 클라이언트 단말기(100)가 서버(400)에 디도스 공격을 수행하는 경우를 중심으로 설명하지만, 이에 한정되지 않으며, 예를 들면, 특정 웹사이트, 어플리케이션 서버 등 다양한 주체, 하드웨어 또는 소프트웨어 모듈을 공격하는 경우에도 적용될 수 있음은 물론이다.
도 2는 본 발명의 실시예에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 장치의 블록 구성도이다. 도 2를 참조하면, 디도스 공격 탐지 및 대응 장치(300)는 블랙리스트 필터링부(361), 화이트리스트 통과부(362), 인스펙트리스트 관리부(363), 임계치 계산부(364), 리스트 저장부(365) 및 제어 유닛(366)을 포함할 수 있다.
블랙리스트 필터링부(361)는 클라이언트 단말기(100)의 식별 정보가 블랙리스트에 저장되어 있는 경우 클라이언트 단말기(100)의 접속을 차단한다. 여기서, 클라이언트 단말기(100)의 식별 정보는 클라이언트 단말기(100)를 서로 구분해주는 정보로서, 예를 들면, IP 어드레스가 될 수 있다. 블랙리스트는 소정의 리스트가 미리 저장된 이후에 새로운 리스트가 추가되거나 또는 빈상태에서 새로운 리스트가 추가될 수 있다. 여기서, 블랙리스트는 리스트 저장부(365)에 저장될 수 있다.
화이트리스트 통과부(362)는 클라이언트 단말기(100)의 식별 정보가 화이트리스트에 저장되어 있는 경우 클라이언트 단말기(100)의 정상 접속을 허용한다. 여기서, 정상 접속은, 세션 연결, 요청(request) 정보 송수신, 응답(response) 정보 송수신과 같은 과정을 포함할 수 있다.
인스펙트리스트 관리부(363)는 클라이언트 단말기의 식별 정보가 블랙리스트 및 화이트리스트에 저장되어 있지 않은 경우 클라이언트 단말기(100)의 식별 정보를 인스펙트리스트에 추가한다. 인스펙트리스트는 디도스 공격인지 판별하기 위해 임의로 작성된 리스트이다. 인스펙트리스트에 포함된 식별 정보의 수는 서버(400)가 처리가능한 IP 수를 넘지 않을 수 있다.
또한, 인스펙트리스트 관리부(363)는 유입된 클라이언트 단말기(100)의 수를 소정의 임계치와 비교하고, 유입된 클라이언트 단말기(100)의 수가 해당 임계치보다 작은 경우 접속 신호를 전송하는 클라이언트 단말기(100)의 식별 정보를 인스펙트리스트에 추가할 수 있다.
또한, 인스펙트리스트 관리부(363)는 후술할 디도스 대응부의 디도스 공격 탐지 이후에, 인스펙트리스트에 추가된 식별 정보에 상응하는 클라이언트 단말기(100)의 접속을 디도스 공격으로 탐지하는 경우 인스펙트리스트에 추가된 식별 정보를 블랙리스트에 추가하고, 그렇지 않는 경우 인스펙트리스트에 추가된 식별 정보를 화이트리스트에 추가하며, 디도스 공격 탐지가 완료된 인스펙트리스트는 삭제할 수 있다.
임계치 계산부(364)는 각 주기마다 임계치를 계산하여 인스펙트리스트에 추가되는 기준을 제시한다. 여기서, 한 주기는 인스펙트리스트를 선택하고, 인스펙트리스트를 대상으로 디도스 공격 탐지 기술을 적용한 후 블랙리스트와 화이트리스트를 선별하는 과정이 될 수 있다. 또한, 임계치는 다른 임계치와 구분하기 위해 제1 임계치 또는 리스트 추가 기준을 제시하므로 리스트 임계치라고 지칭할 수 있다.
임계치는 서버(400)가 처리가능한 IP 수와 화이트리스트에 포함된 식별 정보의 수를 감안하여 다음과 같은 식으로 설정될 수 있다.
여기서, T는 임계치, Pn은 서버(400)의 처리가능한 IP 수, Wn은 화이트리스트에 저장된 식별 정보의 수이다. 본 실시예에 다른 임계치는 화이트리스트에 저장된 범위를 제외하고 처리 가능한 최대 범위가 될 수 있다.
인스펙트리스트 관리부(363)는 유입된 클라이언트 단말기(100)의 식별 정보의 수가 상술한 임계치 보다 작은 경우 해당 클라이언트 단말기(100)의 식별 정보를 인스펙트리스트에 추가한다.
또한, 인스펙트리스트 관리부(363)는 유입된 클라이언트 단말기(100)의 식별 정보의 수가 상술한 임계치 보다 큰 경우 수신한 패킷은 필터링하여 버릴 수 있다. 예를 들면, 유입된 클라이언트 단말기(100)의 식별 정보의 수는 인스펙트리스트에 저장된 식별 정보의 수와 현재 유입된 식별 정보의 수를 더한 값이 될 수 있다.
리스트 저장부(365)는 블랙리스트, 화이트리스트 및 인스펙트리스트를 저장한다. 제어 유닛(366)은 상술한 블랙리스트 필터링부(361), 화이트리스트 통과부(362), 인스펙트리스트 관리부(363), 임계치 계산부(364), 리스트 저장부(365)의 각 기능을 제어하여 운영한다.
상술한 바에 따르면, 서버(400)가 처리 가능한 범위를 IP 수로 설명하였으나, 본 발명은 이에 한정되지 않으며, 예를 들면, 볼륨 또는 트래픽 양과 같이 수용가능한 수준을 의미할 수도 있음은 물론이다.
도 3은 본 발명의 실시예에 따른 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법의 흐름도이다. 이하에서 서술하는 각 단계는 디도스 공격 탐지 및 대응 장치(300)가 수행할 수 있다. 본 실시예에 따른 흐름도는 클라이언트 단말기(100)가 전송하는 각각의 패킷마다 수행될 수 있다.
단계 S310에서, 서버(400)에 접속 신호를 전송하는 클라이언트 단말기(100)의 식별 정보가 블랙리스트에 저장되어 있는 경우 클라이언트 단말기(100)의 접속을 차단한다. 여기서, 접속 신호는 세션 연결 신호, 요청(request) 정보 등이 될 수 있다. 이러한 단계에 의하면, 블랙리스트에 대응되는 대량의 트래픽을 앞단에서 원천적으로 차단할 수 있는 장점이 있다.
단계 S320에서, 클라이언트 단말기의 식별 정보(100)가 화이트리스트에 저장되어 있는 경우 상술한 바와 같이 클라이언트 단말기(100)의 정상 접속을 허용하며, 클라이언트 단말기(100)의 식별 정보가 화이트리스트에 저장되어 있지 않은 경우 단계 S330에서, 유입되는 패킷에 대한 식별 정보가 인스펙트리스트에 존재하는지 판단한다.
단계 S330에서 유입되는 패킷에 대한 식별 정보가 인스펙트리스트에 존재하지 않는 경우 단계 S340에서, 유입된 클라이언트 단말기(100)의 식별 정보 개수를 상술한 임계치와 비교한다. 비교 결과 유입된 클라이언트 단말기(100)의 식별 정보 개수가 임계치 보다 작은 경우 단계 S350에서, 해당 클라이언트 단말기(100)의 식별 정보를 인스펙트리스트에 추가한다. 또한, 유입된 클라이언트 단말기(100)의 식별 정보 개수가 임계치 보다 큰 경우 단계 S345에서 해당 패킷을 필터링하여 버린 후 종료할 수 있다.
여기서, 인스펙트리스트 추가시 클라이언트 단말기(100)의 식별 정보는 소정의 관측 시간 동안 연속적으로 추가될 수 있다. 예를 들면, 후술할 RC 메커니즘이 관측 시간을 기준으로 디도스 공격을 탐지하는 경우 인스펙트리스트 추가 작업은 해당 관측 시간 동안 계속 수행될 수 있다.
단계 S360은 유입되는 패킷에 대한 식별 정보가 인스펙트리스트에 존재하는 경우 및 단계 S350 종료 후 수행될 수 있다. 단계 S360에서, 인스펙트리스트를 대상으로 디도스 공격 탐지를 위한 메커니즘을 적용한다. 여기서, 적용되는 메커니즘은 후술한 바와 같이 시스템 리소스를 고갈시키는 디도스 공격에 대응하기 위한 메커니즘으로서, 리소스 고갈(resource consumption)의 두문자를 따서 RC 메커니즘으로 지칭할 수 있다.
단계 S370에서, 인스펙트리스트를 대상으로 RC 메커니즘을 적용하여 결과를 도출한 경우 단계 S380에서, 디도스 공격으로 판단되는 클라이언트 단말기(100)의 식별 정보는 블랙리스트에 추가하고, 정상 사용자의 것으로 판단되는 클라이언트 단말기(100)의 식별 정보는 화이트리스트에 추가하며, 판단 대상이었던 인스펙트리스트는 삭제한다. 단계 S370에서, 인스펙트리스트를 대상으로 RC 메커니즘을 적용하여 결과를 도출하지 못한 경우, 예를 들면, 후술할 관측 시간이 아직 종료되지 않은 경우에는 종료한다.
다른 실시예에 따르면, 상술한 인스펙트리스트 추가 단계(S350) 전에 정상이라고 판단되는 패킷은 미리 선별하여 인스펙트리스트에 추가하도록 할 수 있다. 즉, 인스펙트리스트에 추가된 정상 사용자의 식별 정보는 단계 S380에 의해 화이트리스트에 추가될 확률이 높기 때문에 이러한 미리 선별하는 전처리를 수행할 수 있다. 여기서, 정상이라고 판단되는 패킷을 미리 선별하는 방법은 디도스 공격이 없는 동안 정상적으로 자주 접속했던 클라이언트 단말기(100)를 선별하는 방법 등과 같이 다양한 방법이 적용될 수 있으며, 기타 다른 방법이 본 발명에 적용될 수 있음은 물론이다.
도 4는 본 발명의 실시예에 따른 디도스 공격 탐지의 실험예이다. 본 실험예는 서버(400)가 처리가능한 IP 수가 10,000개, 디도스 공격 IP 수가 20,000개, 정상 IP 수가 5,000개인 경우의 동작 결과를 나타낸다.
최초 단계(phase) 1에서, 블랙리스트와 화이트리스트가 없는 상황을 가정하면, 인스펙트리스트에 추가되는 디도스 공격 IP 수와 정상 IP 수는 각 단계별로 유입되는 디도스 공격 IP 수와 정상 IP 수에 확률적으로 비례하여 다음과 같이 결정될 수 있다.
여기서, IA는 인스펙트리스트에 추가되는 디도스 공격 IP 수, Pn은 서버(400)의 처리가능한 IP 수, Wn은 화이트리스트에 저장된 식별 정보의 수, An은 새로 유입되는 디도스 공격 IP 수, Nn은 새로 유입되는 정상 IP 수, IN은 인스펙트리스트에 추가되는 정상 IP 수이다. 여기서, 단계 4와 같이 유입되는 디도스 공격 IP의 수와 정상 IP의 수가 처리 가능한 IP 수에서 화이트리스트에 저장된 식별 정보의 수 보다 작은 경우 남아있는 모든 디도스 공격 IP의 수와 정상 IP의 수를 인스펙트리스트에 추가할 수 있다.
도 4를 참조하면, Attack IP는 인스펙트리스트에 추가되는 디도스 공격 IP 수이며, 정상 IP는 인스펙트리스트에 추가되는 정상 IP 수이다. 유입되는 각 IP는 인스펙트리스트에 저장된 후 디도스 공격 판별 후에 블랙리스트 또는 화이트리스트에 추가되어 단계 5에서 최종적으로 디도스 공격 단말기와 정상 단말기가 구분될 수 있다.
이하에서는 상술한 리소스 고갈에 기반한 디도스 공격 탐지 및 대응 방법에 대해 설명한다. 이하에서 설명되는 디도스 공격 탐지 및 대응 방법은 본 발명을 구현하기 위한 하나의 예로서 제시되며, 본 발명이 이러한 실시예에 한정되어 해석되지 않음은 물론이다.
도 5는 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치의 블록 구성도이다. 도 5를 참조하면, 디도스 공격 탐지 및 대응 장치(300)는 수신부(310), 시간 측정부(320), 디도스 판별부(330), 차단부(340)를 포함할 수 있다.
여기서, 디도스 공격 탐지 및 대응 장치(300)는 상술한 디도스 대응부로서 기능할 수 있으며, 이하에서 설명하는 임계치는 상술한 리스트 임계치와 구분되기 위해 제2 임계치 또는 시간 임계치로 지칭될 수 있다.
디도스 공격은 고도화된 공격기법을 통하여 CPU, 메모리 소모를 유도하여 서비스 거부 공격을 유도하는 특징이 있다. 예를 들면, 리눅스 기반 아파치 웹 서버를 대상으로 세션을 맺고 완벽하지 않은 HTTP 패킷을 전송하여 가능한 길게 세션을 유지하여 웹서버를 다운시키는 공격(Slowloris), 연산량이 많은 요청 정보를 전송하는 공격, 큰 이미지 파일을 요청하는 공격 등과 같이 디도스 공격은 다양한 방법으로 시스템 리소스를 고갈시킨다. 웹서비스 중 대표적인 클라이언트-서버 모델에서는, 클라이언트로부터의 모든 요청(request) 정보에 대하여 그 처리결과에 상응하는 응답(request) 정보가 발생한다.
본 실시예는 대량의 Get을 요청하여 서버자원을 고갈시키는 Get Flooding 공격, Garbage가 섞인 대량의 Get을 요청하여 서버자원을 고갈시키는 TCP Flooding 공격, No-cache 설정의 대량의 Get을 요청하는 Cache-control을 가지는 Get 공격, 세션을 맺고 완벽하지 않은 HTTP 패킷을 전송하여 가능한 길게 세션을 유지하여 웹서버를 다운시키는 Slowloris 공격, Spoofing된 IP를 통해 Syn 패킷을 전송하여 서버가 Syn+Ack 패킷을 보내고 Ack을 받기 위한 대기상태에 빠지는 SYN Flooding 공격, 정상적인 3way-handshake를 통해 세션 연결 후 끊지 않는 TCP Connection Flooding 공격 등 다양한 디도스 공격을 탐지할 수 있다.
수신부(310)는 클라이언트 단말기(100)로부터 세션 연결 정보 및 요청 정보를 수신한다. 수신부(310)는 서버(400)가 네트워크(200)에 결합하여 클라이언트 단말기(100)로부터 전송된 세션 연결을 위한 정보(예를 들면, Syn, Ack 등의 정보)와 요청 정보를 수신한다.
여기서, 수신부(310)가 해당 정보를 수신한다는 의미는 각 정보의 수신 여부를 확인한다는 의미가 될 수 있으며, 수신부(310)는 각 정보의 수신 시간을 기록할 수 있다. 예를 들면, 수신부(310)는 TCP 80 포트에서 수집된 HTTP 패킷을 수신하고, HTTP 헤더를 파싱함으로써 시간 측정부(320)가 관련 데이터를 측정 및 산출할 수 있도록 한다.
시간 측정부(320)는 클라이언트 단말기(100)에 대한 서버(400)의 요청 정보에 상응하는 응답 정보를 전송하는데 소요되는 워킹 시간을 측정할 수 있다. 즉, 시간 측정부(320)는 클라이언트 단말기(100)별로 서버(400)의 워킹 시간을 계산함으로써, 계산된 워킹 시간이 소정의 임계치를 초과하는 작업을 발생시키는 클라이언트 단말기(100)를 탐지 및 차단할 수 있도록 한다.
요청 및 응답 정보에 의해 각각의 워킹 시간이 계산되는데, 일정한 관측 시간 동안에 발생한 각각의 워킹 시간의 합이 소정의 임계치를 초과하는 경우 해당 작업을 요청하는 클라이언트 단말기(100)를 탐지 및 차단하게 된다. 여기서 관측 시간은 10초 내지 50초 정도에서 운영 가능하며, 이는 웹 서비스의 종류, 규모 등에 따라 정책적으로 다르게 운영할 수 있다. 임계치는 해당 관측 시간동안 발생한 워킹 시간의 합으로 나타낼 수 있으며, 임계치를 (워킹 시간의 합)/(관측 시간)의 수식으로 계산할 때, 10% 내지 20% 정도의 수준이 될 수 있다.
임계치를 설정하는 근거를 설명하면 다음과 같다. 일반적으로 정상 사용자 기준으로 다이렉트 요청이 10초 기준으로 10이하가 될 확률은 최소 97.22%가 된다. 다이렉트 요청은 사용자 실제 행위(웹브라우저 실행, refresh 등)에 의한 HTTP 요청이다. 여기서, 다이렉트 요청 분포 통계는 Chebyshev Theory를 통해 분석되었다. Chebyshev의 Inequality Theory는 자료의 분포 모양에 상관없이 데이터가 분포하는 양에 대한 이론이며, 예를 들면, 4.169번 이하일 경우 75%, 5.753번 이하일 경우 88.88%, 10.505번 이하일 경우 97.22%, 13.673번 이하일 경우 98.43% 등의 자료 분포 통계를 제시한다.
본 실시예는 이러한 내용을 근거로 다이렉트 요청 개수에 대한 임계치를 10으로 설정하는 경우, 최소 97.22%는 10 이내에 존재하는 것으로 본다. 또한, 다이렉트 요청이 10인 경우 기준 트래픽 발생량은 평균 85.1 TPS이고, 트래픽 발생량이 평균 85.1 TPS인 경우 GET Flooding 공격에서 (워킹 시간의 합)/(관측 시간)은 13.2%가 된다. 따라서 본 실시예에서 임계치는 10% 내지 20%의 수치를 가지는 것으로 설정하였으며, 이러한 임계치에 따라 실험한 결과 양호한 결과가 나오는 것으로 확인되었다.
이러한 임계치 내에 존재하는 워킹 시간은 정상적으로 발생하는 워킹 시간으로 분류되고, 이를 초과하는 워킹 시간은 디도스 공격에 의한 자원 고갈 상태에 의한 것으로 탐지되도록 임계치가 설정될 수 있다.
여기서, 워킹 시간은 서버(400)가 응답 정보를 전송하는데 소요되는 시간으로서, 서버(400)의 시스템 자원이 고갈되는 양에 비례할 수 있다. 자원 고갈(resource consumption) 디도스 공격은 CPU 중심의 고갈 공격과 메모리 중심의 고갈 공격으로 분류될 수 있는데, CPU 고갈에 대한 지표는 HTTP 요청(request)으로부터 HTTP 응답(response) 까지의 워킹 시간을 계산하여 추정 가능하고, 메모리 고갈에 대한 지표는 세션 연결을 위한 Syn 패킷 수신시로부터 FIN/RST 패킷 수신시까지의 워킹 시간을 계산하여 추정 가능하다. 이러한 지표는 리소스 고갈 정도를 정확히 반영하지는 않을 수 있으나, 추정치로는 사용될 수 있다.
따라서 본 실시예에 따르면, 워킹 시간은 서버(400)가 요청 정보에 상응하는 응답 정보를 전송하는데 소요되는 시간으로서, 예를 들면, 세션 연결(Syn 정보 수신) 이후부터 HTTP 응답(response) 정보 발생/전송시까지의 시간이 될 수 있다. HTTP 응답(response) 정보 발생/전송시는 서버(400) 입장에서 기술된 것이며, 이 시점은 수신부(310)가 HTTP 응답(response) 정보를 수신하는 시점이 될 수도 있다.
또한, CPU 중점 고갈 공격과 메모리 중점 고갈 공격이 뚜렷하게 구별되지 않는 경우가 많기 때문에, 워킹 시간은 세션이 없을 때에는 Syn 정보 수신부터 HTTP 응답 정보 수신시까지의 시간이 될 수 있으며, 세션이 있을 때에는 HTTP 요청 정보 수신시부터 응답 정보 수신시까지의 시간이 될 수 있다.
이러한 워킹 시간 산출 기준은 주요 디도스 공격에 대응할 수 있다. 즉, slowloris 공격, TCP open connection 공격, HTTP flooding 공격, TCP flooding 공격, GET flooding 공격 등과 같은 주요 디도스 공격에서, 최초 Syn 정보 수신부터 관측시간 끝까지 모두 워킹 시간으로 측정될 수 있다.
만약, 수신부(310)가 세션 연결 이후 신규 요청 정보를 수신하는 경우, 워킹 시간은 신규 요청 정보 수신시부터 신규 요청 정보에 상응하는 신규 응답 정보를 전송하는 시점까지의 시간이 될 수 있다. 여기서, 기존의 요청 정보를 제1 요청 정보, 기존의 요청 정보에 상응하는 응답 정보를 제1 응답 정보, 신규 요청 정보를 제2 요청 정보, 신규 요청 정보에 상응하는 신규 응답 정보를 제2 응답 정보로 지칭할 수도 있다.
디도스 판별부(330)는 측정된 워킹 시간을 소정의 임계치와 비교하고, 측정된 워킹 시간이 임계치보다 큰 경우 클라이언트 단말기(100)의 접속을 디도스 공격으로 탐지할 수 있다. 디도스 판별부(330)는 측정된 워킹 시간이 임계치보다 큰 경우 해당 IP의 클라이언트 단말기(100)의 접속을 디도스 공격으로 탐지한다.
차단부(340)는 디도스 판별부(330)가 디도스 공격으로 탐지하는 경우 클라이언트 단말기(100)의 접속을 차단할 수 있다. 차단부(340)는 이 경우 일정 시간 그 접속을 차단하거나, 특정 IP의 패킷을 차단하거나 또는 디도스 공격 경고음을 발생하는 등 다양한 대응 방법을 수행할 수 있다. 차단부(340)는 특정 IP의 클라이언트 단말기(100)가 디도스 공격 단말기로 판단되는 경우 해당 클라이언트 단말기(100)의 접속을 차단함으로써 디도스 공격에 대응할 수 있다.
시간 측정부(320)는 세션 연결 정보의 수신 시간을 측정하여 시작 시간으로 기록할 수 있다. 예를 들면, 시간 측정부(320)는 Syn 패킷의 수신 시간을 측정할 수 있다.
또한, 시간 측정부(320)는 요청 정보가 순차적으로 수신되는 제1 요청 정보와 제2 요청 정보를 포함하고, 응답 정보가 제1 요청 정보에 상응하는 제1 응답 정보와, 제2 요청 정보에 상응하는 제2 응답 정보를 포함하며, 제2 요청 정보가 제1 응답 정보의 전송전에 수신되는 경우, 제1 응답 정보와 제2 응답 정보의 전송 시간 중 늦은 시점을 측정하고, 측정된 시간에서 워킹 시간 산출의 시작 시간을 뺀 차이 시간을 워킹 시간으로 산출할 수 있다.
또한, 상술한 바와 같이 수신부(310)가 세션 연결 이후 신규 요청 정보를 수신하는 경우, 워킹 시간은 신규 요청 정보 수신시부터 신규 요청 정보에 상응하는 신규 응답 정보를 전송하는 시점까지의 시간이 될 수 있다.
또한, 시간 측정부(320)는 제1 응답 정보 또는 제2 응답 정보가 분할된 정보인 경우 분할되어 마지막에 전송된 정보를 측정하고 측정된 시간에서 워킹 시간 산출의 시작 시간을 뺀 차이 시간을 워킹 시간으로 산출할 수 있다. 즉, 하나의 응답 정보에 대한 파일의 크기가 커서 복수의 파일로 분할되는 경우 마지막으로 전송되는 분할 파일의 정보가 발생하는 시점이 워킹 시간 산출 기준 시점이 될 수 있다.
또한, 시간 측정부(320)는 요청 정보가 순차적으로 수신되는 제1 요청 정보와 제2 요청 정보를 포함하고, 응답 정보가 제1 요청 정보에 상응하는 제1 응답 정보와, 제2 요청 정보에 상응하는 제2 응답 정보를 포함하며, 제2 요청 정보가 제1 응답 정보의 전송전에 수신되는 경우, 제1 응답 정보와 제2 응답 정보의 전송 시간 중 늦은 시간에서 워킹 시간 산출의 시작 시간을 뺀 차이 시간을 워킹 시간으로 산출할 수 있다. 즉, 시간 측정부(320)는 복수의 요청 정보와 이에 상응하는 복수의 응답 정보가 서로 중첩되는 경우 최초 요청 정보의 발생 시점으로부터 최후 응답 정보의 발생 시점까지의 시간을 워킹 시간으로 측정될 수 있도록 한다. 여기서, 발생 시점은 수신부(310)가 해당 패킷의 발생을 인식하는 시점, 즉, 각 패킷을 수신하는 시점으로 기록될 수 있다.
이러한 워킹 시간 산출 기준 및 다양한 사례들은 이하에서 자세히 설명한다.
도 6을 참조하면, 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치에 관리되는 데이터 포맷도가 도시된다. 본 발명의 일 실시예에 따르면, 클라이언트 단말기(100) 별로 최소한의 데이터를 관리하여 관측 시간마다 전체 워킹 시간을 도출할 수 있다. 본 실시예에 따르면, 관리되는 데이터는 클라이언트 IP 어드레스(Source_IP), 현재 워킹 시간의 시작 시간(Start_Time), 현재 HTTP 요청 개수(Req_Cnt), 현재 HTTP 응답 개수(Resp_Cnt), 현재 네트워크의 분할 단위(MSS), (HTTP 길이 정보(HTTP length), 시퀀스 정보(Sequence number), 컨텐츠 길이 정보)에 대한 리스트(Ack_List), 전체 워킹 시간(Total_WT)과 같은 정보가 될 수 있다. 각각의 데이터에 대해서는 이하에서 각 실시예를 설명하면서 자세히 설명한다.
본 발명에 따르면 일반적인 세션 관리를 필요로 하지 않고, 단지, 상술한 바와 같이 최소한의 데이터들만을 관리함으로써 효율적으로 디도스 공격에 대응할 수 있는 장점이 있다.
도 7은 본 발명의 실시예에 따른 워킹시간 계산 개념 도면이다. 도 7을 참조하면, 정상 분포에 따른 패킷 송수신 분포(a), Flooding 공격에 따른 패킷 송수신 분포(b) 및 Slowloris 공격에 따른 요청 및 응답 트래픽에서의 워킹시간 계산 개념(c)을 나타낸다. 소문자 t는 요청 정보 발생 시점, 대문자 T는 응답 정보 발생 시점이다.
일반적으로 관측되는 정상 분포에 따른 패킷 송수신 분포(a)에서 워킹 시간은 (T1-t1) 및 (T3-t2)가 될 수 있다. 또한, Flooding 공격에 따른 패킷 송수신 분포(b)에서 워킹 시간은 (Tn-t1)이 될 수 있으며, Slowloris 공격에 따른 패킷 송수신 분포(c)에서 워킹 시간은 (tn-t1)이 될 수 있다.
Slowloris 공격에 따른 패킷 송수신 분포(c)에서는 서버(400)가 응답 정보를 전송하지 못하는 상태로서, 요청 정보에 상응하는 응답 정보를 전송하는데 소요되는 워킹 시간은 계속 증가하는 상태이다. 이 경우 워킹 시간 측정부(324)는 관측 시간 단위마다 워킹 시간 계산이 완료되지 않은 경우, 관측 시간을 종료 시점으로 간주하여 워킹 시간을 산출할 수 있다.
도 8은 본 발명의 실시예에 따른 워킹시간 계산 기준 도면이다. 도 8을 참조하면, 송수된 되는 패킷은 순서대로, Syn, Syn+Ack, Ack, Request(Get), Response, Request(Get), Response, Fin, Syn이 될 수 있다.
Syn 패킷 발생 시점부터 Ack 패킷 발생 시점까지의 시간(a)은 세션 연결 구간이 될 수 있으며, 최초 Request(Get) 패킷 발생 시점부터 최후 Response 발생 시점까지의 시간(b)은 CPU 점유 구간이 될 수 있고, Syn 패킷 발생 시점부터 Fin 패킷 발생 시점까지의 시간(c)은 메모리 점유 구간이 될 수 있다.
세션 연결이 없는 경우, Syn 패킷 발생 시점부터 Request에 대한 응답인 Response가 완료된 시간을 제1 워킹 시간(WT1), 세션이 연결되어 있는 경우, 새로 발생한 Request(Get) 패킷 발생 시점부터 최후 Response 발생 시점까지의 시간은 제2 워킹 시간(WT2)이 될 수 있다. 즉, 워킹시간 계산 기준은 기존에 존재하는 세션이 있는지 또는 없는지에 따라 다른 2가지 계산 기준이 존재할 수 있다. 도 8은 워킹시간 계산에 있어서 기본적인 모델을 제시한 것이며, Request/Response의 중복 전송, 동시전송, 세그먼트 발생 등 다양한 경우에 대한 세부적인 상황은 이하에서 후술한다.
도 9 내지 도 19는 본 발명의 실시예에 따른 트래픽 패턴에 상응하는 워킹 시간 측정도이다. 이하에서는 네트워크(200)를 통해 클라이언트 단말기(100)와 서버(400)간 송수신되는 패킷을 디도스 공격 탐지 및 대응 장치(300)가 수신하는 경우를 중심으로 설명한다. 각 도면에서는, 상술한 바와 같이 Syn, Syn+Ack, Ack, Request(Get), Response, Fin과 같은 패킷이 송수된 되는 경우가 도시되며, 워킹 시간을 측정하는 기준을 중심으로 설명하며, 워킹 시간은 (a) 및/또는 (b)로 표기한다. 각 실시예는 그 이전에 설명한 실시예의 내용과 다른 점을 위주로 설명한다.
도 9를 참조하면, 단계 S610에서, 클라이언트 단말기(100)는 서버(400)와의 세션 연결을 위해 Syn 패킷을 서버(400)에 전송한다. 여기서, 세션 연결을 위해 추가적으로 송수신되는 Syn+Ack, Ack 등과 같은 패킷의 송수신은 설명의 편의상 생략하며, 이하에서도 같다. 단계 S620에서, 세션 연결 후 클라이언트 단말기(100)는 서버(400)에 HTTP 요청 정보1을 전송하며, 단계 S630에서, 서버(400)는 HTTP 요청 정보1에 상응하는 HTTP 응답 정보1을 클라이언트 단말기(100)에 전송한다. 이후 단계 S640에서, 클라이언트 단말기(100)는 서버(400)와의 새로운 세션 연결을 위해 Syn 패킷을 서버(400)에 전송한다.
여기서, 워킹 시간은 디도스 공격 탐지 및 대응 장치(300)가 세션 연결을 위한 Syn 패킷을 수신한 시점으로부터 HTTP 응답 정보1을 수신한 시점까지의 시간(a)이 될 수 있다.
도 10을 참조하면, 단계 S710에서, 클라이언트 단말기(100)는 서버(400)와의 세션 연결을 위해 Syn 패킷을 서버(400)에 전송한다. 또한, 단계 S720에서, 클라이언트 단말기(100)는 서버(400)와의 새로운 세션 연결을 위해 Syn 패킷을 서버(400)에 다시 전송한다. 이때, 단계 S710의 Syn이 수신된 후, 단계 S720의 Syn이 수신되었으므로, 단계 S720에 전송된 Syn은 워킹 시간 계산시 무시하게 된다.
도 11을 참조하면, 단계 S830과 같이 Request 사이에 Syn이 다시 발생하는 경우에도, 마찬가지로, 이를 무시하게 된다.
도 12를 참조하면, 분할된 응답 정보가 발생할 때의 워킹 시간을 처리하는 흐름도가 도시된다. 이미지 파일 등과 같이 크기가 큰 파일이 요청되는 경우 1개의 요청 정보에 대해 응답 정보는 다수개로 분할되어 발생될 수 있다. 이 경우 첫 번째 HTTP 응답에 포함된 컨텐츠 길이 정보(Content_Length), 미리 수집한 MSS 값(세션 분할 단위 : 해당 세션에 대한 분할 단위), HTTP 길이 정보(HTTP length) 및 각 응답 정보의 시퀀스 정보(Sequence number)를 이용하여 수신한 응답 정보가 마지막 응답 정보인지 판단하여 워킹 시간을 계산할 수 있다.
여기서, 디도스 공격 탐지 장치(300)는 서버(400)의 SYN+ACK 정보를 수신하는 경우 세션 분할 단위를 수집할 수 있고, 최초 요청 정보를 수신하는 경우 HTTP 길이 정보와 시퀀스 정보를 수신할 수 있으며, 최초 응답 정보를 수신하는 경우 컨텐츠 길이 정보를 수집할 수 있다. HTTP 길이 정보와 시퀀스 정보의 합은 요청 정보가 서로 동일한지 판별하는 식별 정보로 이용될 수 있으며, 컨텐츠 길이 정보는 MSS와 비교되어 수신한 응답 정보가 마지막 응답 정보인지 판단하는데 이용될 수 있다.
단계 S930에서, 서버(400)는 HTTP 요청 정보1에 상응하는 분할된 정보 중 최초 HTTP 응답 정보1(seq1)을 클라이언트 단말기(100)에 전송하고, 이후 단계 S940에서, 서버(400)는 HTTP 요청 정보1에 상응하는 마지막으로 분할된 HTTP 응답 정보1(seq2)을 클라이언트 단말기(100)에 전송한다. 여기서는 분할된 정보의 개수가 2개인 경우를 예시하였으나, 본 발명은 이에 한정되지 않으며, 3, 4와 같이 3개 이상이 될 수도 있다.
여기서, 워킹 시간은 Syn 패킷을 수신한 시점으로부터 마지막으로 분할되어 생성된 HTTP 응답 정보1(seq2)을 수신한 시점까지의 시간(a)이 될 수 있다. 이와 같은 측정 기준에 따르면, 응답 정보가 복수로 분할되어 전송되는 트래픽 패턴에도 대응할 수 있다.
도 13을 참조하면, 단계 S1050과 같이 Syn 패킷이 분할된 복수의 응답 정보 사이에 발생하는 경우에도 마찬가지로, 이를 무시하게 된다.
도 14를 참조하면, (a)는 앞서 언급한 부분이며, 세션이 계속 유지되고 있는 경우, 단계 S1150의 응답 정보가 발생할 때, 이에 대한 응답인 단계 S1160의 응답 정보가 수신될 때 새로운 워킹 시간(b)이 계산된다.
이와 같은 측정 기준에 따르면, 복수의 HTTP 요청 정보를 가지는 트래픽 패턴에 대응할 수 있을 뿐만 아니라 응답 정보가 복수로 분할되어 전송되는 트래픽 패턴에도 대응할 수 있다.
도 15를 참조하면, Request 2개(단계 S1220, 단계 S1230)가 동시에 발생하며, 응답 정보는 분할되어 발생할 때의 워킹시간(a) 계산 방법이다.
이와 같은 측정 기준에 따르면, 복수의 요청 정보와 복수의 응답 정보가 송수신 시점이 중복되는 경우에도 대응할 수 있을 뿐만 아니라 응답 정보가 복수로 분할되어 전송되는 트래픽 패턴에도 대응할 수 있다.
도 16을 참조하면, 단계 S1340에서와 같이 분할된 응답 정보(Response1)가 완료되기 전, 신규 요청 정보(Request2)가 발생하게 되면, 전체가 하나의 워킹시간으로 계산된다.
이와 같은 측정 기준에 따르면, 상술한 바와 같이 복수의 요청 정보와 복수의 응답 정보가 송수신 시점이 중복되는 경우에도 대응할 수 있을 뿐만 아니라 응답 정보가 복수로 분할되어 전송되는 트래픽 패턴에도 대응할 수 있다.
도 17을 참조하면, 단계 S1440과 같이 분할된 응답 정보1(Response1)이 완료되기 전, 다른 요청 및 응답 처리(Request2/Response2)가 완료된 경우가 도시되며, 전체가 하나의 워킹 시간(a)으로 계산된다.
이와 같은 측정 기준에 따르면, 상술한 바와 같이 복수의 요청 정보와 복수의 응답 정보가 송수신 시점이 서로 뒤섞여서 중복되는 경우에도 대응할 수 있을 뿐만 아니라 응답 정보가 복수로 분할되어 전송되는 트래픽 패턴에도 대응할 수 있다.
상술한 수신부(310), 시간 측정부(320), 디도스 판별부(330), 차단부(340), 시작 시간 측정부(321), 중복 구간 체크부(322), 종료 시간 측정부(323), 워킹 시간 측정부(324)는 해당 기능을 수행하는 모듈이 될 수 있으며, 각 모듈은 프로그램 코드 형식으로 구현될 수도 있다.
이상에서 설명한 바와 같이 워킹 시간은 다양하게 발생하는 상황에서도 명확하게 계산될 수 있다. 워킹 시간을 계산하는 경우는 크게 다수 요청 정보와 응답 정보가 동시에 발생하는 경우, 분할된 응답 정보가 발생하는 경우 및 요청 정보와 응답 정보가 재전송되는 경우로 나뉠 수 있다. 각 경우는 서로 중복되어 구체적인 실시예를 형성할 수 있으며, 이하에서는 요청 정보와 응답 정보가 재전송되는 경우를 설명한다.
도 18과 도 19를 참조하면, 요청 정보와 응답 정보에 대한 재전송이 발생할 때의 중복된 워킹 시간을 처리하는 흐름도가 도시된다. 패킷이 유실되거나 사용자의 재요청 등의 상황에서 요청 정보 및 응답 정보가 중복되는 경우가 발생될 수 있다. 이 경우 요청 및 응답 정보에 대한 ACK 관리(시퀀스 및 컨텐츠 길이 정보 관리)를 통해 중복 발생한 요청 및 응답 정보를 고려하여 워킹 시간을 계산할 수 있다.
도 18을 참조하면, 중복된 요청 정보 발생시 처리 흐름도가 도시된다. 단계 S1510에서, 클라이언트 단말기(100)는 서버(400)와의 세션 연결을 위해 SYN 패킷을 서버(400)에 전송하고, 단계 S1511에서 서버(400)는 이에 응답하여 SYN+ACK 패킷을 클라이언트 단말기(100)에 전송한다. 여기서, 디도스 공격 탐지 장치(300)는 서버(400)의 SYN+ACK 정보를 수신하는 경우 세션 분할 단위(MSS)를 수집할 수 있다. 단계 S1512에서 클라이언트 단말기(100)는 ACK 패킷을 서버(400)에 전송한다.
단계 S1520에서, 클라이언트 단말기(100)는 메인 화면 정보를 요청하는 요청 정보를 서버(400)에 전송하고, 단계 S1521에서, 서버(400)는 클라이언트 단말기(100)에 메인 화면 정보 요청 정보에 상응하는 응답 정보를 전송한다.
단계 S1530에서, 클라이언트 단말기(100)는 img1(이미지1)에 대한 요청 정보를 서버(400)에 전송한다. 이 때 디도스 공격 탐지 장치(300)는 시퀀스 정보(Sequence number) 및 컨텐츠 길이 정보(Content_Length)를 포함하는 ACK 정보를 수집한다. 단계 S1531에서, 서버(400)는 이에 대응하는 분할된 일부 응답 정보를 클라이언트 단말기(100)에 전송하며, 이 때 디도스 공격 탐지 장치(300)는 해당 ACK에 대한 응답 정보가 종결되지 않았음을 확인한다.
또한, 단계 S1540에서, 클라이언트 단말기(100)가 서버(400)에 동일한 이미지에 대한 요청 정보를 전송하는 경우 디도스 공격 탐지 장치(300)는 종결되지 않은 ACK에 대해 동일 요청 정보가 발생하였음을 확인하고, 요청 정보의 개수를 추가하지 않음으로써 이를 무시할 수 있다. 이후 단계 S1541 내지 단계 S1543에서, 서버(400)가 클라이언트 단말기(100)에 분할된 응답 정보를 전송하고, 최종 응답 정보를 전송하는 경우 디도스 공격 탐지 장치(300)는 해당 응답 정보가 최종 응답 정보인지 확인한다.
여기서, 워킹 시간은 최초 SYN 패킷을 수신하는 시점부터 메인 화면에 대한 응답 정보를 수신하는 시점까지의 시간(a)과 이미지(img1)를 요청하는 요청 정보의 수신 시점부터 분할된 마지막 응답 정보를 수신하는 시점까지의 시간(b)이 될 수 있다.
도 19를 참조하면, 중복된 응답 정보 발생시 처리 흐름도가 도시된다. 단계 S1610 내지 S1621에는, 상술한 바와 같이 세션 연결 패킷, 메인 화면 정보가 송수신된다.
단계 S1630에서 클라이언트 단말기(100)가 서버(400)에 이미지 파일 요청 정보를 전송하면, 단계 S1631 내지 단계 S1635에서, 서버(400)가 클라이언트 단말기(100)에 분할된 응답 정보를 중복하여 전송한다.
여기서, 워킹 시간은 최초 SYN 패킷을 수신하는 시점부터 메인 화면에 대한 응답 정보를 수신하는 시점까지의 시간(a)과 이미지(img1)를 요청하는 요청 정보의 수신 시점부터 중복되지 않은 분할된 마지막 응답 정보를 수신하는 시점까지의 시간(b)이 될 수 있다.
도 20은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 인바운드 흐름도이다. 이하에서 설명될 각 단계는 디도스 공격 탐지 장치(300)가 수행할 수 있다.
단계 S1710에서, 수신한 정보가 SYN 패킷인지 판별한 후, 만약 SYN 패킷인 경우 단계 S1715에서, 시작 시간이 존재하는지 확인 후, 시작 시간이 존재하는 경우 SYN에 대한 중복 전송인 경우라고 판단하여 기존 세션을 대상으로 시간 계산중이므로 종료하고, 시작 시간이 존재하지 않는 경우에는 단계 S1720에서, 현재 시간을 시작 시간으로 설정한 후 최초 세션에 대한 계산을 시작한다.
또한, 수신한 정보가 SYN 패킷이 아닌 경우 단계 S1725에서, HTTP GET 또는 POST 정보인지 확인하고, 만약 수신한 정보가 HTTP GET 또는 POST 정보가 아닌 경우 워킹 시간 계산 대상이 아니므로 종료하고, 그렇지 않은 경우 단계 S1730에서, 임시로 시퀀스 정보와 HTTP 길이 정보를 저장한다. 여기서, 저장되는 정보는 시퀀스 정보와 HTTP 길이 정보의 합이 될 수 있다. 시퀀스 정보와 HTTP 길이 정보의 합은 Ack으로서 요청 정보와 응답 정보를 서로 대응시키는 식별 정보로 이용될 수 있다.
단계 S1735에서, Ack_List 내에 임시로 저장한 시퀀스 정보와 HTTP 길이 정보가 있는지 확인한 후 있다면 중복 전송된 요청 정보가 발생한 경우이므로, 무시하여 종료하고, 그렇지 않다면, 단계 S1740에서, 임시 저장된 시퀀스 정보 및 HTTP 길이 정보를 Ack_List에 저장한다. 여기서, Ack_List에 저장되는 관리 정보(Ack)는 포트 정보를 더 포함할 수 있다. 이 경우 정보 식별력이 보다 강화될 수 있다. 시퀀스 정보와 HTTP 길이 정보의 합 및 포트 정보는 요청 정보 및/또는 응답 정보를 식별할 수 있는 식별 정보로 활용될 수 있다. 빈칸(Blank)에는 추후 컨텐츠 길이 정보가 저장될 수 있다.
단계 S1745에서, 만약 요청 정보 개수가 1보다 크거나 같으면 다수 요청 정보가 동시에 발생되는 것으로서, 단계 S1750에서, 요청 개수를 1만큼 증가시키고, 만약 요청 정보 개수가 1 미만이면, 단계 S1755에서, 시작 시간이 존재하는지 확인한다.
시작 시간이 존재하면, 단계 S1760에서, 신규 세션에 대해 최초 요청 정보가 발생한 것으로서, 요청 개수를 1만큼 증가시키고, 만약 시작 시간이 존재하지 않으면, 기존 세션을 대상으로 처음 요청 정보가 발생한 것으로서, 단계 S1765에서, 요청 개수는 1, 시작 시간은 현재 시간으로 설정한다.
도 21은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 아웃바운드 흐름도이다. 이하에서 설명될 각 단계도 디도스 공격 탐지 장치(300)가 수행할 수 있다.
단계 S1810에서, 수신한 정보가 SYN+ACK 패킷인지 판별한 후, 만약 SYN+ACK 패킷인 경우 단계 S1815에서, 해당 세션에 대한 분할(세그먼트) 단위인 MSS를 기록하고 종료한다. 수신한 정보가 SYN+ACK 패킷이 아닌 경우, 단계 S1820에서, HTTP 1.1 관련 정보인지 확인하고, 만약 HTTP 1.1 관련 정보인 경우, 단계 S1821에서, 수신한 정보의 식별 정보가 상술한 Ack_List에 존재하는지 판단한다. 여기서, 수신한 정보의 식별 정보는 시퀀스 정보와 HTTP 길이 정보의 합 및 포트 정보가 될 수 있다. 만약, 수신한 정보의 식별 정보가 상술한 Ack_List에 존재하지 않는 경우 응답 정보가 중복 발생한 경우로 판단하여 종료한다.
또한, 만약 수신한 정보의 식별 정보가 상술한 Ack_List에 존재하는 경우 단계 S1822에서, 수신한 정보에 컨텐츠 길이 정보가 존재하는지 확인하고, 컨텐츠 길이 정보가 있는 경우 단계 S1823에서, 응답 정보에서 컨텐츠 길이 정보(Content_length)를 추출하여 Ack_List의 해당 정보(Ack)에 저장한다.
단계 S1824에서, 컨텐츠 길이 정보가 MSS 보다 작은 경우 분할되지 않은 첫 번째이자 마지막 응답인 경우로서, 단계 S1832에서 응답 개수를 1만큼 증가시키고 Ack_List에서 해당 Ack을 삭제한다.
만약, 단계 S1822에서, 컨텐츠 길이 정보가 존재하지 않는 경우 컨텐츠 길이 정보가 없는 응답 정보가 발생한 경우로서 상술한 단계 S1832를 수행한다.
또한, 단계 S1820에서, 수신한 정보가 HTTP 1.1 관련 정보가 아닌 경우 분할된 패킷이 마지막인지 여부를 확인하기 위해서, 단계 S1830에서, Ack_List에서 해당 Ack에 대한 컨텐츠 길이 정보를 추출한다. 단계 S1831에서, 컨텐츠 길이 정보에서 현재 수신된 응답 정보의 시퀀스 정보를 차감한 값이 MSS 보다 작은 경우, 현재 수신된 응답 정보를 분할된 마지막 응답 정보로서 판단하고 상술한 단계 S1832를 수행하고, 그렇지 않은 경우 마지막 분할된 응답 정보가 아니므로 종료한다.
단계 S1833에서, 요청 개수와 응답 개수가 동일한지 판단하고, 요청 개수와 응답 개수가 동일한 경우, 단계 S1834에서, 워킹 시간(WT)은 현재 시간에서 시작 시간을 뺀 시간으로 산출하고, 전체 워킹 시간(Total_WT)에 현재 워킹 시간을 합산하며, 시작 시간, 요청 개수 및 응답 개수를 0으로 설정한다. 또한, 요청 개수와 응답 개수가 동일하지 않은 경우 현재 시간에서 시작 시간을 뺀 시간을 워킹 시간으로 산출하고, 전체 워킹 시간에 합산한다. 그리고, 응답정보는 발생할 예정이므로, 시작시간은 현재 시간으로 변경하나, 요청 개수 등은 변경하지 않는다.
도 22는 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 방법의 워킹 시간 측정 흐름도이다.
단계 S1910에서, 분석할 IP 어드레스가 있는지 판단한 후 없으면 종료하고, 있으면 단계 S1920에서, 요청 개수 및 응답 개수가 모두 0인지 판단하여 그렇지 않은 경우 워킹 시간 계산이 진행중인 경우이므로, 단계 S1930에서, 워킹 시간을 종료 시간인 현재 시간에서 시작 시간을 뺀 값으로 산출하고, 전체 워킹 시간은 산출한 워킹 시간을 합산하며, 시작 시간은 현재 시간으로 설정한다.
또한, 요청 개수 및 응답 개수가 모두 0인 경우 워킹 시간 계산이 완료된 경우로 판단하여 단계 S1925에서, 시작 시간이 존재하는지 판단하고, 시작 시간이 존재하는 경우 Syn 패킷만 수신한 경우로서 상술한 단계 S1930을 수행한다. 또한, 시작 시간이 존재하지 않는 경우 후술할 단계 S1940을 수행한다.
단계 S1940에서, 전체 워킹 시간을 임계치와 비교하여, 전체 워킹 시간이 임계치보다 큰 경우 단계 S1950에서, 해당 IP 어드레스를 블랙리스트에 추가하고, 그렇지 않은 경우 단계 S1960에서, 해당 IP 어드레스를 화이트리스트에 추가한다.
도 23은 본 발명의 다른 실시예에 따른 트래픽 패턴에 상응하는 워킹 시간 측정도이며, 도 24는 도 23에 도시된 트래픽 패턴에 따른 데이터 관리를 나타낸 도면이다. 도 23에서, img는 이미지를 지칭하며, seg은 분할을 지칭하고, (a) 및 (b)는 워킹 시간을 지칭함은 상술한 바와 같으며, 이하에서는 도 24의 관리 데이터를 중심으로 설명한다.
도 24를 참조하면, 각 단계(S1 내지 S16)에 기록되는 클라이언트 IP 어드레스(Source_IP), 현재 워킹 시간의 시작 시간(Start_Time), 현재 HTTP 요청 개수(Req_Cnt), 현재 HTTP 응답 개수(Resp_Cnt), 현재 네트워크의 분할 단위(MSS), (HTTP 길이 정보(HTTP length), 시퀀스 정보(Sequence number), 포트 정보, 컨텐츠 길이 정보)를 포함하는 관리 정보(Ack)에 대한 리스트(ACK_List), 전체 워킹 시간(Total_WT)이 도시된다. 전체 워킹 시간은 단계 S1부터 S5까지의 시간 및 단계 S6부터 S16까지의 시간의 합이 될 수 있다.
그 외 본 발명의 실시예에 따른 워킹 시간 기반 디도스 공격 탐지 및 대응 장치에 대한 구체적인 시스템 구성도, 임베디드 시스템, O/S 등의 공통 플랫폼 기술과 통신 프로토콜, I/O 인터페이스 등에 대한 구체적인 설명은 본 발명이 속하는 기술 분야의 통상의 지식을 가진자에게 자명한 사항이므로 생략하기로 한다.
또한, 본 발명의 실시예에 따른 워킹 시간 기반 디도스 공격 탐지 및 대응 장치는 상술한 각 기능을 다음과 같은 단계로 수행할 수 있다. 즉, 본 발명의 실시예에 따른 워킹 시간 기반 디도스 공격 탐지 및 대응 방법은 클라이언트 단말기로부터 세션 연결 정보 및 요청 정보를 수신하는 단계, 상기 클라이언트 단말기에 대한 서버의 상기 요청 정보에 상응하는 응답 정보를 전송하는데 소요되는 워킹 시간을 측정하는 단계, 상기 측정된 워킹 시간을 소정의 임계치와 비교하고, 상기 워킹 시간이 상기 임계치보다 큰 경우 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 단계, 상기 디도스 판별부가 디도스 공격으로 탐지하는 경우 상기 클라이언트 단말기의 접속을 차단하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 워킹 시간 기반 디도스 공격 탐지 및 대응 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 즉, 기록 매체는 컴퓨터에 상술한 각 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 될 수 있다.
상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합한 형태로 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
또한, 상술한 각 구성 요소는 물리적으로 인접한 하나의 부품으로 구현되거나 서로 다른 부품으로 구현될 수도 있다. 후자의 경우 각 구성 요소는 인접하거나 또는 서로 다른 구역에 위치하여 제어될 수 있으며, 이 경우 본 발명은 각 구성 요소를 제어하는 별도의 제어수단 또는 제어실을 구비하여 유선 또는 무선으로 각 구성요소를 제어할 수도 있다.
상기한 바에서, 각 실시예에서 설명한 각 구성요소 및/또는 기능은 서로 복합적으로 결합하여 구현될 수 있으며, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 클라이언트 단말기 200 : 네트워크
300 : 디도스 공격 탐지 및 대응 장치 361 : 블랙리스트 필터링부
362 : 화이트리스트 통과부 363 : 인스펙트리스트 관리부
364 : 임계치 계산부 365 : 리스트 저장부
366 : 제어 유닛 400 : 서버
300 : 디도스 공격 탐지 및 대응 장치 361 : 블랙리스트 필터링부
362 : 화이트리스트 통과부 363 : 인스펙트리스트 관리부
364 : 임계치 계산부 365 : 리스트 저장부
366 : 제어 유닛 400 : 서버
Claims (11)
- 디도스 공격 탐지 및 대응 장치가 수행하는 디도스 공격 탐지 및 대응 방법에 있어서,
클라이언트 단말기로부터 서버로 전송되는 접속 신호를 수신하는 단계;
상기 클라이언트 단말기의 식별 정보가 블랙리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 접속을 차단하는 단계;
상기 클라이언트 단말기의 식별 정보가 화이트리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 정상 접속을 허용하는 단계;
상기 클라이언트 단말기의 식별 정보가 상기 블랙리스트 및 화이트리스트에 저장되어 있지 않은 경우 클라이언트 단말기의 식별 정보를 인스펙트리스트에 추가하는 단계; 및
상기 인스펙트리스트에 추가된 상기 클라이언트 단말기의 식별 정보를 대상으로 디도스 공격을 탐지하는 단계를 포함하는 디도스 공격 탐지 및 대응 방법.
- 제1항에 있어서,
상기 인스펙트리스트 추가 단계는,
유입된 클라이언트 단말기의 식별 정보의 수를 리스트 임계치와 비교하는 단계; 및
상기 유입된 클라이언트 단말기의 식별 정보의 수가 상기 리스트 임계치보다 작은 경우 상기 접속 신호를 전송하는 클라이언트 단말기의 식별 정보를 상기 인스펙트리스트에 추가하는 단계를 더 포함하는 디도스 공격 탐지 및 대응 방법.
- 제1항에 있어서,
상기 디도스 공격 탐지 단계 이후,
상기 인스펙트리스트에 추가된 식별 정보에 상응하는 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 경우 상기 인스펙트리스트에 추가된 식별 정보를 상기 블랙리스트에 추가하는 단계;
상기 인스펙트리스트에 추가된 식별 정보에 상응하는 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하지 않는 경우 상기 인스펙트리스트에 추가된 식별 정보를 상기 화이트리스트에 추가하는 단계; 및
상기 인스펙트리스트를 삭제하는 단계를 포함하는 디도스 공격 탐지 및 대응 방법.
- 제1항에 있어서,
상기 인스펙트리스트 추가 단계는,
상기 클라이언트 단말기의 식별 정보를 소정의 관측 시간 동안 연속적으로 추가하는 것을 특징으로 하는 디도스 공격 탐지 및 대응 방법.
- 제1항에 있어서,
상기 디도스 공격 탐지 단계는,
상기 클라이언트 단말기의 요청(request) 정보에 상응하여 서버가 응답(response) 정보를 전송하는데 소요되는 워킹 시간을 산출하는 단계;
상기 산출된 워킹 시간을 소정의 임계치와 비교하고, 상기 워킹 시간이 상기 임계치보다 큰 경우 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 단계; 및
상기 디도스 공격으로 탐지하는 경우 상기 클라이언트 단말기의 접속을 차단하는 단계를 포함하는 디도스 공격 탐지 및 대응 방법.
- 클라이언트 단말기로부터 서버로 전송되는 접속 신호를 수신하는 수신부;
상기 클라이언트 단말기의 식별 정보가 블랙리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 접속을 차단하는 블랙리스트 필터링부;
상기 클라이언트 단말기의 식별 정보가 화이트리스트에 저장되어 있는 경우 상기 클라이언트 단말기의 정상 접속을 허용하는 화이트리스트 통과부;
상기 클라이언트 단말기의 식별 정보가 상기 블랙리스트 및 화이트리스트에 저장되어 있지 않은 경우 클라이언트 단말기의 식별 정보를 인스펙트리스트에 추가하는 인스펙트리스트 관리부; 및
상기 인스펙트리스트에 추가된 상기 클라이언트 단말기의 식별 정보를 대상으로 디도스 공격을 탐지하는 디도스 대응부를 포함하는 디도스 공격 탐지 및 대응 장치.
- 제7항에 있어서,
상기 인스펙트리스트 관리부는,
유입된 클라이언트 단말기의 식별 정보의 수를 리스트 임계치와 비교하고, 상기 유입된 클라이언트 단말기의 식별 정보의 수가 상기 리스트 임계치보다 작은 경우 상기 접속 신호를 전송하는 클라이언트 단말기의 식별 정보를 상기 인스펙트리스트에 추가하는 것을 특징으로 하는 디도스 공격 탐지 및 대응 장치.
- 제7항에 있어서,
상기 인스펙트리스트 관리부는 상기 디도스 대응부의 디도스 공격 탐지 이후에,
상기 인스펙트리스트에 추가된 식별 정보에 상응하는 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 경우 상기 인스펙트리스트에 추가된 식별 정보를 상기 블랙리스트에 추가하고,
상기 인스펙트리스트에 추가된 식별 정보에 상응하는 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하지 않는 경우 상기 인스펙트리스트에 추가된 식별 정보를 상기 화이트리스트에 추가하며,
상기 인스펙트리스트를 삭제하는 것을 특징으로 하는 디도스 공격 탐지 및 대응 장치.
- 제7항에 있어서,
상기 디도스 대응부는,
상기 클라이언트 단말기의 요청(request) 정보에 상응하여 서버가 응답(response) 정보를 전송하는데 소요되는 워킹 시간을 산출하는 시간 측정부;
상기 산출된 워킹 시간을 소정의 임계치와 비교하고, 상기 워킹 시간이 상기 임계치보다 큰 경우 상기 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 디도스 판별부; 및
상기 디도스 공격으로 탐지하는 경우 상기 클라이언트 단말기의 접속을 차단하는 차단부를 포함하는 디도스 공격 탐지 및 대응 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100129067A KR20120067584A (ko) | 2010-12-16 | 2010-12-16 | 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100129067A KR20120067584A (ko) | 2010-12-16 | 2010-12-16 | 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20120067584A true KR20120067584A (ko) | 2012-06-26 |
Family
ID=46686558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100129067A KR20120067584A (ko) | 2010-12-16 | 2010-12-16 | 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20120067584A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170011598A (ko) | 2015-07-23 | 2017-02-02 | 주식회사 케이티 | 서비스 거부 공격 탐지 및 차단 방법,시스템 및 컴퓨터프로그램 |
CN108206814A (zh) * | 2016-12-20 | 2018-06-26 | 腾讯科技(深圳)有限公司 | 一种防御dns攻击的方法、装置及系统 |
-
2010
- 2010-12-16 KR KR1020100129067A patent/KR20120067584A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170011598A (ko) | 2015-07-23 | 2017-02-02 | 주식회사 케이티 | 서비스 거부 공격 탐지 및 차단 방법,시스템 및 컴퓨터프로그램 |
CN108206814A (zh) * | 2016-12-20 | 2018-06-26 | 腾讯科技(深圳)有限公司 | 一种防御dns攻击的方法、装置及系统 |
CN108206814B (zh) * | 2016-12-20 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种防御dns攻击的方法、装置及系统 |
US11057404B2 (en) | 2016-12-20 | 2021-07-06 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for defending against DNS attack, and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6291135B2 (ja) | コネクション制御装置、コネクション制御方法およびコネクション制御プログラム | |
CN109194680B (zh) | 一种网络攻击识别方法、装置及设备 | |
US10505952B2 (en) | Attack detection device, attack detection method, and attack detection program | |
US20160234230A1 (en) | System and method for preventing dos attacks utilizing invalid transaction statistics | |
CN104580216B (zh) | 一种对访问请求进行限制的系统和方法 | |
CN109922072B (zh) | 一种分布式拒绝服务攻击检测方法及装置 | |
CN107623685B (zh) | 快速检测SYN Flood攻击的方法及装置 | |
KR20110048112A (ko) | Uri 타입 기반 디도스 공격 탐지 및 대응 장치 | |
CN107395632B (zh) | SYN Flood防护方法、装置、清洗设备及介质 | |
WO2015078388A1 (zh) | 针对拒绝服务攻击的处理方法及装置 | |
CN108616488B (zh) | 一种攻击的防御方法及防御设备 | |
CN104424438B (zh) | 一种反病毒文件检测方法、装置及网络设备 | |
CN111641591B (zh) | 云服务安全防御方法、装置、设备及介质 | |
JP6502902B2 (ja) | 攻撃検知装置、攻撃検知システムおよび攻撃検知方法 | |
CN108737344B (zh) | 一种网络攻击防护方法和装置 | |
CN115834091A (zh) | 网络流量控制方法以及相关系统 | |
JP2004356915A (ja) | 情報処理システム、情報処理装置、プログラム、及び通信ネットワークにおける通信の異常を検知する方法 | |
CN109474623B (zh) | 网络安全防护及其参数确定方法、装置及设备、介质 | |
CN111756713A (zh) | 网络攻击识别方法、装置、计算机设备及介质 | |
JP2004140524A (ja) | DoS攻撃検知方法、DoS攻撃検知装置及びプログラム | |
US10171492B2 (en) | Denial-of-service (DoS) mitigation based on health of protected network device | |
KR20140098390A (ko) | 네트워크 시스템의 공격 탐지 장치 및 방법 | |
JP6441748B2 (ja) | 検知システム、検知方法および検知プログラム | |
US10834110B1 (en) | Methods for preventing DDoS attack based on adaptive self learning of session and transport layers and devices thereof | |
KR20120067584A (ko) | 대량 트래픽 환경에서의 디도스 공격 탐지 및 대응 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |