IT_Server/네트워크 · 보안

[펌] DDoS 공격과 방어 메카니즘

JJun ™ 2014. 12. 8. 05:53


 * 출처

 : https://moaimoai.tistory.com/24



네트워크 보안 과제로 영어로된 DDoS 공격과 방어 메카니즘에 관한 논문을 정리하였다. 버리기엔 아깝고 블로그에 정리하고자 한다.

최근 다양한 분산 서비스 거부(DDoS: Distributed Denial of Service) 공격이 나타나고 있으며, 이에 대한 방어 메카니즘이 제시되었다. 
그러나 공격의 복잡성과 다양성으로 인하여 방어 기법 역시 복잡해졌고 혼란스러워졌다. 
효율적인 DDoS 공격 침입 탐지 및 방어를 위해 예측할 수 있는 DDoS 공격에 대한 종합적인 방어 기술 메카니즘이 필요하다. 
따라서 본 블로그에서는 다양한 DDoS 공격을 분류하고 해당 방어 메카니즘을 정리하여 종합적인 방어 방법을 제시하고자 한다.


1. 개요


DDoS 플러딩 공격은 대역폭 라우터의 처리 능력과 네트워크 자원 또는 서버의 자원을 고갈시킴으로써 합법적인 사용자의 연결을 중단시키는 공격을 말한다. 

기존 DDoS 플러딩 공격은 특정 단체, 국정 서버를 공격하는 수준 이었으나 최근 이 공격은 단순한 개인적 이득, 복수, 이데올로기, 군사 또는 테러리스트에 의한 대규모 테러 형태의 공격 등으로 범위가 확대되고 있다. 더불어 최근 방어 특징을 우회한 IRC, Web, P2P 기반의 새로운 botnet이 급속도로 생성 되고 있다. DDoS 플러딩 공격은 네트워크와 컴퓨터를 대상으로 그 크기와 주기가 급속도로 팽창하고 있는 실정이고 Prolexic Technologies의 연구에 따르면 DDoS 공격 방어 서비스가 매일 7000건의 DDoS 플러딩 공격을 관찰하고 이 수가 급속도로 증가한다고 한다. 결국 이러한 DDoS 플러딩 공격 사고의 수를 줄이기 위해선 실제 공격 진행 전 후 동안 적절하게 응답할 수 있는 종합적인 DDoS 방어 메카니즘을 필요로 한다. 이 블로그에서는 유선 네트워크 시스템의 DDoS 플러딩 공격과 방어 메카니즘에 주목하여 현재 존재하는 DDoS flooding 공격을 분류하고 언제, 어디서 공격을 방어하고 응답할지에 대한 종합적인 방어 메카니즘의 제시하는 것을 목표로 한다.


2. 공격자 인센티브


DDoS 공격은 보통 다양한 인센티브에 의해 시작된다. 본 블로그에서는 DDoS 공격을 5가지로 분류하였다.


● 금융 경제적 이득: 공격자는 최고의 기술과 경험으로 금융적인 인센티브를 위해 공격을 진행한다.


● 복수: 공격자는 낮은 공격기술을 가졌고 불만에 의해 공격을 시작한다.


● 이데올로기 신념: 공격자 자신의 이데올로고 신념에 의해 동기를 부여받고 공격을 한다.


● 도전 및 학습: 공격에 대한 경험과 지식을 쌓기 위해 대상을 공격한다.


● 사이버 전쟁 : 국가의 군사 또는 테러 조직에 속하여 정치적으로 다른 나라의 중요한 부분을 공격한다.


3. DDoS 공격 기술 분류


DDoS 공격의 분산 특성은 역 추적을 매우 어렵게 만든다. 

공격자는 보통 그들의 신분을 숨기기 위해 spoofing된 IP 주소를 사용하고 그것은 역추적을 매우 어렵게 만든다. 

본 블로그에서는 DDoS 공격의 가장 일반적인 형태인 DDoS 플러딩 공격을 분류하고 특징을 기술한다. 

DDoS 플러딩 공격은 대상이 되는 OSI 프로토콜을 계층을 기준으로 다음 표와 같이 2가지로 분류할 수 있다. 







3.1 네트워크/전송 계층의 DDos 공격


이 계층의 공격은 주로 TCP, UDP, ICMP, DNS 프로토콜을 사용하여 이루어진다. 4 종류의 공격 유형이 있다.


3.1.1 플러딩 공격


공격자는 피해자의 대역폭을 고갈시켜 합법적인 사용자의 연결을 방해한다. 예로서 Spoofed/ non-spoofed UDP flood, ICMP flood, DNS flood, VoIP flood 등 이 있다.


3.1.2 프로토콜 익스플로잇 플러딩 공격


공격자는 피해자의 자원을 소비시키기 위해 피해자의 프로토콜의 특성이나 버그를 이용한다. 예로서 TCP SYN flood, TCP SYN-ACK flood, ACK & PUSH ACK flood, RST/FIN flood 등이 있다.


3.1.3 리플렉션 기반의 플러딩 공격


공격자는 ICMP echo request와 같은 위조한 요청을 리플렉터에게 보내고 그에 대한 응답을 피해자에게 보내도록 한다. 예로서 Smuft, Fraggle 공격이 있다.


3.1.4 증폭 기반의 플러딩 공격


공격자는 메시지를 거대하거나 다량의 메시지를 생성해주는 서비스를 사용하여 피해자의 트래픽을 증폭시킨다.



3.2 응용 계층의 DDos 공격


이 계층의 공격은 주로 서버의 자원을 소비시켜 합법적인 사용자의 서비스를 방해한다. 네트워크/전송 계층의 공격과 다르게 공격 트래픽의 양이 매우 적어 탐지하기 어렵다. 응용계층에서 DoS공격에 이용되는 대표적인 프로토콜은 HTTP, DNS, SMTP, SIP, SNMP 등이 있다.


3.2.1 리플렉션, 증폭 기반의 플러딩 공격


네트워크/전송 계층의 리플렉션/증폭 공격과 동일하다. 예로서 DNS 증폭 공격과 VoIP 플러딩이 있다. DNS 증폭공격은 공격자가 작은 DNS 질의를 사용하여 거대한 크기의 네트워크 트래픽을 생성하여 피해자의 트래픽을 마비시킨다. VoIP플러딩은 spoofed VoIP 패킷을 SIP를 통해서 피해자에게 전송한다. 피해자는 거대한 양의 자원을 소비하여 적절한 VoIP 연결을 구별해야만 한다.


3.2.2 HTTP 플러딩 공격


TCP 3-way hand shaking 과정 이후 HTTP GET 요청을 주기적으로 수행하여 서버가 TCP 세션처리 뿐만 아니라 HTTP 요청작업까지 수행하도록 유도함으로써 서버의 리소스를 고갈시키는 공격의 한 종류이다. 크게 4가지의 공격이 존재하고 각 공격은 다음 표와 같이 세분화 된다.






4. Botnet 기반의  DDoS 공격


Botnet은 컴퓨터 네트워크나 응용 프로그램을 DDoS 플러딩 공격하기 위한 주 공격 메카니즘이다. 대부분의 응용 계층의 DDoS 플러딩 공격을 할 시 Botnet이 사용된다. Botnet은 IRC, Web, P2P기반으로 나뉘나 주로 IRC와 Web 기반의 Botnet이 사용된다.


4.1 IRC 기반


IRC는 인터넷 상의 텍스트 기반의 메시지 프로토콜이다. 여러개의 서버를 이용해 수백개의 클라이언트에 연결할 수 있으며 공격자는 합법적인 IRC 포트를 사용하기 때문에 Botnet에게 보낸 명령을 추적하기 어렵다.


4.2 Web 기반


HTTP 프로토콜을 사용해 Botnet 명령을 보낸다. Web 기반의 Botnet은 서버와 연결을 유지하지 않기 때문에 은밀하게 공격을 할 수 있다.



5. DDoS 방어 기술 분류


 DDoS 방어 메카니즘의 궁극적인 목표는 가능한 빠르게 탐지하고 공격을 멈추는 것이다. 다양한 방어 메카니즘이 연구되었고 크게 배치 위치와 공격 시점으로 분류할 수 있다.


5.1 배치 위치 기반의 방어 메카니즘


네트워크/전송 계층에서의 DDoS 플러딩 공격 탐지는 출발지와 도착지, 네트워크 중간에서 가능하지만 응용 계층에서의 DDoS 플러딩 공격 탐지는 2, 3계층의 접근이 불가능하다, 따라서 배치 위치 기반의 방어 메카니즘 분류는 다시 OSI 계층에 의해 분류 된다. 


5.1.1 네트워크/전송 계층 기반의 방어 메카니즘


5.1.1.1 소스 기반


●  Ingress/Egress filtering at the sources’ edge routers: 스푸핑된 IP주소를 탐지 한다. 하지만 내부의 유효한 IP 주소범위는 탐지할 수 없다.


●  D-WARD: 소스 네트워크의 인바운드 및 아웃 바운드 트래픽을 모니터링하고 정상 모델 네트워크 트래픽 정보와 비교하여 DDoS 플러딩 공격 트래픽을 탐지한다. 만약 초당 흐름이 정상 모델과 불일치한다면 필터링 된다.


●  MUlti-Level Tree for online Packet Statistics and Tabulated online Packet Statistics: MULTOPS는 원본 서브넷의 네트워크 장치의 DDoS 플러딩 공격을 탐지하고 필터에 사용하는 데이터 구조이다. 이 메카니즘을 기반으로 MULTOPS은 DDoS 플러딩 공격을 탐지하고 필터링 한다..


●  MANAnet’s Reverse Firewall: 들어오는 패킷으로부터 네트워크를 보호하는 전통적인 방화벽과는 대조적으로, 리버스 방화벽은 네트워크에서 나가는 패킷 플러딩 공격으로부터 외부를 보호한다. 리버스 방화벽은 최근 다른 방향으로 전송 된 패킷이 응답이  없을 경우 패킷 전송 속도를 제한한다.


 소스 기반의 방어 메커니즘은 공격의 근원 공격 트래픽을 탐지하고 필터링하는 것을 목표로 한다. 하지만 이 방법은 DDoS 공격 플러딩 공격에 완전히 유효하지 않다. 공격의 출발지가 분산될 수 있고 정상과 가까운 패킷은 구분하기가 힘들다. 마지막으로 소스 기반 메카니즘의 구축을 위한 동기 부여가 부족하다.



5.1.1.2 도착지 기반


● IP Traceback mechanisms: 패킷 마킹 메카니즘과 링크 테스팅 메카니즘으로 분류된다. 패킷 마킹 메카니즘은 패킷에 경로를 마킹하여 정상패킷을 구별하는 방법을 말한다. 하지만 전체 패킷을 저장하기 위해선 특정한 스킴을 코딩해야하고 때때로 독특한 경로를 등록 못할 수 있다. 링크 테스팅 메카니즘은 피해자에 가장 가까운 라우터에서 시작하여 공격자가 사용하는 링크를 결정할 수 있을 때까지 사용 링크를 테스트하는 기법이다. 


● Management Information Base (MIB): MIB 데이터는 다양한 패킷 라우팅 통계를 나타내는 파라미터로 구성되어있다. MIB는 지속적으로 DDoS 공격 발생을 식별하여 피해자를 돕는다.


● Packet marking and filtering mechanisms: 피해자의 에지 라우터가 공격 트래픽을 필터링 할 수 있도록 각각의 라우터에서 합법적인 패킷을 마킹한다.


● Packet dropping based on the level of congestion: 네트워크 링크가 일정 수준에서 정체 될 때 DDoS 방어 메커니즘은 의심스​​러운 패킷을 드롭한다. 


  목적지 기반 메카니즘의 대부분은 정확하게 감지하고 피해자의 경로에 도달하기 전에 공격에 응답 할 수 없다. 따라서 이 메카니즘은 DDoS 공격을 제대로 감지하고 공격 트래픽에 응답 할 수 없다.



5.1.1.3 네트워크 기반


● Route-based packet filtering: 라우터는 예기치 않은 소스주소를 가진 패킷이 올 시 필터링한다.


● Detecting and filtering malicious routers: 이상 탐지 프로토콜은 라우터간 패킷 전달 시 악성라우터를 검출한다. 


  네트워크 기반의 메커니즘은 라우터에의 높은 저장 및 처리 오버 헤드를 주고 각 라우터에게 중복 감지와 큰 부담을 제시 할 수 있다



5.1.1.4 하이브리드 기반


● Aggregate-based Congestion Control (ACC) and Pushback: 라우터가 패킷 드롭 샘플을 사용하여 한계를 탐지하고 한계치가 넘을 시 상위 라우터에게 속도 제한을 요청한다.


● Attack Diagnosis (AD) and parallel-AD: 피해자는 공격이 탐지된 후 상위 라우터에게 탐지 메시지를 전송한다. 상위 라우터는 하위 라우터에게 전송되는 패킷에 라우터의 정보를 표시한다. 피해자는 패킷에 표시된 정보를 활용해 공격자를 역추적 한다.


● TRACK: 라우터 포트 마킹 모듈은 라우터의 정보를 패킷에 마킹한다. 패킷 필터링 모듈은 표시된 패킷을 필터링 한다. 하지만 이 방법은 공격자가 정보를 수정하거나 좀비를 사용할 경우 방어에 한계가 존재한다.


● DEFensive Cooperative Overlay Mesh (DEFCOM): DEFCOM 는 모든 노드간에 정보와 서비스의 교환을 가능하게하는 분산 프레임 워크이다. 이 프레임워크를 사용해 라우터간의 정보 교환을 지원한다. 공격 발생 시 탐지 경고를 주위 라우터에게 알리고 전송율을 낮추도록 상위 라우터에게 요청한다. 각 노드들은 주위 노드에게 리소스 요청을 보낸다. 이때 합법적인 트래픽을 보장하면서 서로 간 통신해야만 한다.


● COSSACK: 이 메커니즘은 watchdog 라는 핵심 소프트웨어 시스템이 에지 네트워크의 경계 라우터에 구축되어 있다. 경계 라우터는 구현 수신 / 송신 필터링을 사용해 IP 스푸핑을 방지하고 시그니처를 기반의 패킷 필터링으로 공격을 걸러낸다.


● Capability-based mechanisms: 전송자는 도착지로부터 짧은 시간동안 전송 권한을 얻고 패킷에 우표를 넣어 전송한다. 이 패킷은 우선순위를 얻고 그 후 검증 지점은 그 패킷이 합법적인지 확인 후 인증한다.


● Capability-based mechanisms: 전송자는 도착지로부터 짧은 시간동안 전송 권한을 얻고 패킷에 우표를 넣어 전송한다. 이 패킷은 우선순위를 얻고 그 후 검증 지점은 그 패킷이 합법적인지 확인 후 인증한다.


● Active Internet Traffic Filtering (AITF): 기본적으로 모든 디폴트 트래픽은 거부하고 네트워크 계층에 명시 적으로 설정된 트래픽만 허용한다.


 소스, 목적지, 네트워크 기반의 메카니즘은 모든 DDoS 공격을 정확히 방어할 수 없기 때문에 각 메카니즘의 협력을 이용한 하이브리드 방식이 가장 적절한 방어 메카니즘이다.



5.1.2 응용 계층 기반의 방어 메카니즘



5.1.2.1 목적지 기반


● Defense against Reflection/Amplification attacks: 네트워크 데이터를 캡쳐하고 MySQL에 저장하여 패킷이 지나가고 난 뒤 공격인지 확인한다. 


● DDoS-Shield :HTTP 세션의 특성을 검출하기위한 통계적 방법을 사용하여 공격 시 속도를 제한한다.


● Anomaly detector based on hidden semi-Markov model: hidden semi-Markov model을 사용하여 공격을 탐지한다.


● DAT: 세션연결을 통해 사용자의 행동을 모니터링한다.



5.1.2.2 하이브리드 기반


● Speak-up, DOW: 모든 클라이언트에게 더 큰 트래픽을 요청한다. 만약 요청에 응답하지 않는다면 공격으로 인해 모든 트래픽 사용 중인 것으로 판단한다. 


● Differentiate DDoS flooding bots from human: CAPTCHA를 사용하여 합법적 인 사용자와 악의적인 사용자와의 클라이언트의 트래픽을 구분한다.


● Admission control and congestion control: 동시 클라이언트의 수를 제한하도록 온라인 서비스에서 제공하는 승인 제어를 사용한다.


● TMH: 정당한 사용자와 공격자를 구별하기 위해 신뢰를 사용한다. 사용자는 각각의 암호화 된  라이센스가 할당된다.


● Hybrid detection based on trust and information theory based metrics: 클라이언트에 저장된 신뢰 값을 기반으로 의심스러운 흐름을 필터링한다. 


 목적지 기반의 방어 메카니즘은 공격 트래픽이 이미 피해자에게 영향을 준 상태이기 때문에 효과적이지 않다. 따라서 하이브리드 방어 메카니즘이 DDoS 공격에 대항하기 가장 적합한 방법이나 아직은 적절하지 않다.




5.2 공격 시점 기반의 방어 메카니즘



5.2.1 공격 전


보안 취약점을 보호하기 위해 취약점을 제거하고  자원을 추가하여 DDoS를 예방한다. 그 예로 버그 제거, 프로토콜 업데이트, 소프트웨어 패치, 사용하지 않는 소프트웨어를 제거, 사용자 권한 설정,리소스를 추가 등이 있다.



5.2.2 공격 중


공격을 탐지하기 위해 소스, 중간 네트워크, 목적지에 탐지 메카니즘을 배치한다. 네트워크 링크가 특정 수준까지 정체되거나 이상 패턴이 발견되었을 때 DDoS 플러딩 공격을 탐지한다.



5.2.3 공격 후


대부분의 DDoS 대응 메커니즘은 DDoS 공격을 완전히 방지하거나 막을 수 없다. 따라서 공격 영향을 최소화하고 서비스의 가용성을 최대화 하도록 DDoS 공격이 탐지되면 방어 시스템은 공격지를 확인하고 공격 트래픽을 차단해야 한다.