BPS 유형의 DoS 공격 이해
UDP Flood 공격이란?
- UDP를 이용한 비연결형 DDoS 공격의 일종
- 대량의 UDP를 발생하여 정상적인 서비스를 하지 못하도록 가용성 침해를 일으키는 공격
- UDP 패킷을 받은 시스템은 포트를 사용하는 애플리케이션이 없다는 것을 확인한 후 ICMP Destination Unreachable 패킷을 출발지로 보내는 작업을 수행
- 대부분 공격자가 UDP 패킷의 출발지 주소를 임의로 생성하여 보내 공격자로 패킷이 전달되지 않음
- 현재 대부분의 OS에서 ICMP 응답비율을 제한함으로 UDP Flood 공격의 위험을 경감
PPS 유형의 DoS 공격 이해
- PPS(Packet Per Seconds) 공격은 패킷을 다량으로 보내어 서버의 자원 고갈을 목적으로 하는 공격
PPS(Packet Per Seconds)
- IP Spoofed SYN Flooding 공격
> IP 변조 후 다량의 SYN 패킷을 공격 대상 서버로 전송
> 공격받은 서버는 다수의 SYN_RECEIVED 세션 상태가 발생
> 서버의 CPU 및 Connection 자원의 고갈을 유발
- TCP Connection Flooding 공격(3way handshaking 정상 완료)
> IP를 변조하지 않고, 다량의 SYN 패킷을 공격 대상 서버로 전송
> 공격 받은 서버는 다수의 ESTABLISHED 세션 상태가 발생
> 서버의 CPU 및 Connection 자원의 고갈을 유발
- TCP Out-Of-State Packet Flooding 공격(ACK/SYN + ACK/FIN 등)
> 다량의 ACK/SYN + ACK/FIN/RST 등의 패킷을 공격 대상 서버로 전송
> 일부 네트워크 장비 및 서버의 CPU 사용량이 올라가는 등 오작동 발생 가능
SYN Flood 공격은 3Way Handshake 방식인 연결지향형 방식의 TCP 특성을 이용하여 서비스 거부하는 공격으로 포트의 최대 연결 허용 가능 대기 큐를 초과해 정상 연결을 하지 못하도록 만드는 공격이다.
SYN Flood 공격
- SYN Flood 공격이란?
> 대표 Flood 공격 중에 하나로 다량의 공격을 빠른 시간 내에 반복적으로 하는 공격
> TCP의 3 Way handshake 방식을 이용, SYN 패킷을 보내 피해자 서버가 기다리게 하는 허점을 이용
- 공격 원리
> 공격자가 출발 주소를 스푸핑하여 SYN패킷을 대상 시스템에게 전송
> 대상 시스템은 해당 시스템의 응답을 대기한 상태로 다른 응답을 반복적으로 처리
> 대기 큐에 연결 허용 횟수가 가득 차게 되어 정상 연결이 오는 것을 무시
ACK Flood 공격
- ACK Flood 공격이란?
> Flood 공격 중에 하나로 다량의 공격을 빠른 시간 내에 반복적으로 하는 공격
> TCP의 연결 지향형 특징을 이용한 방법으로 대상 시스템에 특정 패킷이 오면 해당 패킷을 처리하기 위해 자원을 소비하도록 유도하는 공격
- 공격 원리
> 공격자가 출발 주소를 스푸핑하여 ACK 패킷을 대상 시스템에게 전송
> 대상 시스템은 해당 시스템의 응답을 대기한 상태로 다른 응답을 반복적으로 처리
> 대기 큐에 연결 허용 횟수가 다그 차게 되어 정상 연결이 오는 것을 무시
* 기타 TCP Flag를 이용한 공격 역시 ACK Flood 공격과 크게 다르지 않고, 요청에 의한 응답 처리 작업의 자원을 소비시켜 정상적인 연결을 하지 못하도록 하는 원리는 동일하다.
RPS 유형의 DoS 공격 이해
RPS(Request Per Second)는 초당 요청에 따른 공격을 의미하며 보통 HTTP 등의 OSI 7 Layer 모델에서의 7계층인 애플리케이션 계층을 타깃으로 공격하는 것들이 대부분 이 공격에 해당한다.
HTTP Flood 공격
- DDoS 공격의 분류로 HTTP의 메소드인 POST, GET의 메서드를 이용한 7 계층 공격
- 다량의 HTTP 세션 연결하여 정상적인 세션이 연결될 수 없도록 하는 공격 기법을 활용
- 종종 트로이목마 악성코드를 이용한 방법들이 사용되며, 대역폭 자원을 고갈시키는 공격보다 적은 양으로 가용성 침해를 일으키는 것이 특징
- GET 방식은 이미지와 같은 표준 정적 컨텐츠를 이용하여 접근
- POST 방식은 동적으로 생성된 자원을 이용하여 수행하는 공격 방법이 주로 사용
- 대역폭을 기준으로 차단하는 방어 장비를 우회 가능
Slow-Rate 공격이란?
- Low and Slow(낮고 느린)이라고도 불리우며 겉으로 보기엔 정상적이기만 느린 속도를 가진 트래픽으로 확인
- 대표적인 공격 도구는 Slowloris, Sockstress, R.U.D.Y(R-U-Dead-Yet)이 있음
- 트래픽의 양을 확인하여 방어하는 장비 혹은 OSI 7 계층을 모두 보지 못하는 보안 장비를 우회 가능
공격도구
- TorsHammer
-> R.U.D.Y.(R-U-Dead-Yet) 도구와 유사한 형태
-> POST 메소드를 이용하여 Content-length 길이를 확장한 후 해당 길이의 내용을 조금씩 보내 자원을 소모시키는 도구
-> Tor 서버를 이용하여 프록시 기능을 활용 가능
-> 다운로드 URL : https://sourceforge.net/projects/torshammer/files/Torshammer/
- R.U.D.Y.(R-U-Dead-Yet)
-> Slow-rate 방식으로 실행되는 대표적 공격 도구이며, 오늘날까지도 이 형태로 공격이 다수 수행
-> POST 메소드를 이용하고 'Content-length'를 크게 할당하며, POST 영역 중 특정 변수를 지정하여 안에 값을 하나씩 대입하여 연결을 지속하는 것이 특징
-> 프록시 기능을 추가 가능
-> 다운로드 URL : https://jaist.dl.sourceforge.net/project/r-u-deat-yet/R-U-Dead-Yet.zip
- Slowloris
-> 로버트한슨(Robert Hansen)에 의해 개발되었으며, 한대의 컴퓨터로 웹서버를 다운시키는 공격 도구로 Slow-Rate 공격 기법을 이용함
-> 2009년 이란 대통령 선거 시위의 수단으로 활용되었던 방법으로 알려지게 됨
-> HTTP Flood 유형의 공격으로 7 계층에서 행하는 공경
-> Apache 1.X, 2.X 버전에서 효과적인 공격 가능
-> 다른 서비스 및 포트에 영향을 미치지 않으며, 웹 서버에만 영향을 미침
-> 여러 세션을 길게 유지하여 연결 가능한 세션 수를 초과시켜 정상 연결을 할 수 없도록 하는 공격
- HTTP에서 GET 또는 POST 헤더를 불안전 전송해 완전한 패킷이 올 때까지 세션 연결을 유지
-> 다운로드 URL : https://github.com/gkbrk/slowloris