IT 기초/Security

[Security] DDoS-Flooding

데이터 세상 2021. 12. 27. 18:53

UDP Flooding의 공격 대상

시스템은 많은 수의 UDP 패킷을 처리하고 ICMP 패킷을 보내느라 시스템 자원을 소비하게 되어 다른 클라이언트 요청에 대해 서비스를 못하는 상태(DoS)가 됨

  • 대량의 UDP 패킷을 만들어 보내 상대방이 정상적인 서비스를 하지 못하도록 시스템을 공격
  • IP Spoofing과 함께 사용됨
  • 특정 타겟을 목표로 하는 것이 아니라 네트워크 전체 대역폭에 대한 공격 (네트워크 bandwidth 를 소모시키는 것이 목적)
  • 공격자가 대량의 UDP 패킷을 임의의 포트 번호로 보내면 패킷 받은 시스템은 사용하는 어플리케이션 없다는 것을 확인 후 ICMP(Internet Control Message Protocol) Destination Unreachable 패킷을 공격자가 보낸 패킷 출발지 주소로 보냄
  • 대부분의 경우 공격자 UDP 패킷의 출발지 주소를 임의의 주소로 스프핑하여 보내기 때문에 ICMP 패킷은 공격자에게 전달되지 않음

 

UDP Flooding 방어

  • UDP나 ICMP를 서비스에서 사용하지 않을 경우에는 미리 차단
  • 임계치 기반에 의거한 DDos 공격 탐지 및 방어

 

ICMP Flooding

  • 대량의 ping 패킷을 보내는 공격
  • 대상 시스템에 막대한 양의 ICMP 에코 요청 패킷(ping 패킷)을 보내는 방법
  • 유닉스 계열의 시스템에서는 ping 명령을 이용하며, ping 응답을 기다리지 않고 되도록 빨리 ICMP 패킷을 보내는 ping 옵션을 활용하는 것이 가장 효율적인 방법이다.
  • 대상 시스템에 부하를 일으키기 위해서는 ping을 보내는 쪽의 네트워크 대역폭이 대상 시스템이 확보한 네트워크 대역폭보다 더 크면 된다.

 

NTP Amplification DDoS Attack

  • NTP 의 monlist 기능을 이용한 DDoS Attack 취약점 발생 
  • NTP 의 monlist 기능을 이용하여 최근에 접속한 호스트(최대 600개)에 변조된 IP로 monlist 명령에 대한 응답패킷을 대량으로 전달하는 취약점 발생
  • monlist 요청 시 IP에 대한 검증이 이루어지지 않아 변조된 IP로 대량 응답패킷 전달 가능

 

CLDAP DDoS Attack

  • 해커가 여러 LDAP서버에 자기 자신의 IP를 타겟 IP로 변조하여 쿼리를 보내면, 서버는 데이터를 처리한 후 증폭된 응답 패킷을 변조된 타겟 IP로 보내는 방식

CLDAP(Connection-less Lightweight Directory Access Protocol)

  • LDAP란 경량 디렉토리 엑세스 프로토콜의 약자로 사이버 TCP/IP에서 디렉토리 서비스를 조회하고 수정하는 응용 프로토콜을 말함
  • CLDAP란 클라이언트들이 마이크로소프트 액티브 디렉토리 네트워크로부터 서버의 사용자 계정과 비밀번호에 접근할 때 사용됨
  • 최근 DDoS공격 중 LDAP/CLDAP 두 개의 프로토콜을 이용하는 공격이 자주 발견되고 있음

공격 방법

  • 1) 공격자들이 특별히 제작된 패킷을 인터넷을 통해 여러 UDP 서버로 보낸다. 
  • 2) 이 패킷은 디도스 공격의 표적이 될 시스템의 IP로부터 나온 것처럼 보인다. 
  • 3) UDP 서버가 그에 대한 응답을 표적 시스템(피해 시스템)의 IP로 보낸다. 
  • 4) 이 때 그 응답은 1)번 단계의 패킷 조작을 통해 매우 용량이 커진 상태다. 
  • 5) 큰 용량의 응답을 받은 표적 시스템은 마비가 된다.

특징 

  • CLDAP 프로토콜은 통신할 때 TCP가 아닌 UDP를 사용하기 때문에 패킷 송신 IP를 확인하지 않고, 이를 이용한 DDoS 공격의 증폭은 56%가 넘는다고 함
  • “CLDAP 반사 공격의 원리는 다른 UDP 기반의 반사 공격의 그것과 동일하다”고 설명한다. “하지만 증폭이 월등하죠. CLDAP를 통한 디도스 공격의 증폭은 56%가 넘습니다.” - 보안뉴스 기사 발췌

 

TCP Connection Flooding

  • TCP Connection Flooding 은 TCP 3-Way Handshake 과정을 과도하게 유발함으로써 서비스의 과부하를 야기시키는 공격 유형
  • 공격 트래픽을 수신하는 서버는 정상적인 TCP 세션을 지속적으로 세션 연결을 하여 서비스를 위하여 수행하는 서버의 세션 처리 자원(Resource)를 고갈시켜 정상적인 세션 연결을 더 이상 수행하지 못하게 한다. 
  • 결국 정상적으로 접근하는 사용자가 더 이상 서비스에 접근할 수 없게 된다. 이 공격 기법을 세분화하면 크게 세 가지로 나눠볼 수 있다.

공격 방법

  • 1. TCP 세션 연결을 유지하는 DDoS 공격
  • 2. TCP 세션 연결/해제를 반복하는 DDoS 공격
  • 3. TCP 세션 연결 후 정상적인 트랜잭션(Transaction)처럼 보이는 트래픽을 발송하는 DDoS 공격

 

HTTP GET Flooding

  • 일반적으로 DDoS 공격은 웹 서버(Web Service)를 대상으로 DDoS 공격이 발생되며, TCP 세션 연결 이후 발생하는 일반적인 공격 형태가 바로 HTTP Get Flooding 형태
  • 다시 말하면, HTTP Get Flooding 은 정상적인 TCP 연결 과정 이후 정상적으로 보이는 HTTP Transaction 과정이 수행되는 DDoS 공격 기법
  • 앞서 설명한 TCP Connection Flooding 의 경우 TCP 3-Way Handshake 과정 이후 정상적인 트랜잭션이 일어나지 않는 반면 TCP 3-Way Handshake 과정 이후 정상적으로 보이는 트랜잭션이 추가적으로 발생되는 DDoS 공격 기법
  • 공격 트래픽을 수신하는 서버는 정상적인 TCP 세션과 함께 정상적으로 보이는 HTTP Get 요청을 지속적으로 요청하게 되므로, 서비스를 위하여 수행하는 서버는 기본적인 TCP 세션 처리뿐만 아니라 HTTP 요청 처리까지 수행해야 한다.
  • 이 경우 HTTP 처리 모듈의 과부하까지도 야기시킬 수 있는 DDoS 공격 기법이다.

공격 대응

  • 전통적인 DDoS 공격 대응 장비에서 이러한 HTTP Get Flooding 공격을 방어하기 위해서는 일반적으로 임계치 기반의 방어 기법을 적용한다. 
  • 즉 HTTP Get Flooding 시 수행되는 TCP 연결 요청의 임계치 값과 HTTP Get 요청의 임계치 값의 모니터링을 통하여 비정상적으로 많은 트래픽을 발생하는 출발지 IP에 대한 선별적인 차단 적용이 가능해 진다.
  • 다행히도 이러한 세션 연결 기반 공격의 경우 출발지 IP는 변조될 수가 없기 때문에 출발지 IP 기준의 임계치를 통하여 방어가 가능하다.
  • HTTP Post method를 사용하여 이루어지는 공격으로 서버로 전달할 대량의 데이터를 장시간에 걸쳐 분할 전송하며, 서버는 Post데이터를 모두 수신하지 않았다고 판단하여 연결을 장시간 유지하므로 가용량을 소비하게되어 다른 클라이언트의 정상적이 서비스를 방해하는 서비스 공격
  • 긴 데이터를 segmentation 하여 HTTP로 전송하는 방식으로 서비스 거부를 유발, 공격은 Console을 통해 이루어지며 Post Method를 이용하여 설정파일에 기록된 URL을 대상으로 공격을 수행
  • 많은데이터(Content-length : 100,000,000Byte)를 보낼꺼라 통보해놓고 정작 1Byte 단위로 발송하게 되는데 이 과정에서 해당 event를 처리하는 서버측은 부하가 발생하게 되는것

References

반응형

'IT 기초 > Security' 카테고리의 다른 글

[Security] 보안의 정의 및 보안 특성  (0) 2022.05.02
[Security] Cybersecurity 중요성  (0) 2022.05.02
[Security] DDoS-SYN Flooding  (0) 2021.12.27
[Security] SSL  (0) 2021.12.27
CDN(Content Delivery Network)  (0) 2021.12.27