본문 바로가기
network

DDoS Attack 🧨

by j.sanghyuk 2023. 11. 15.

DDos란?

DDos(Distributed Denial of Service) 는 분산 서비스 거부를 의미하며, 처리할 수 있는 용량을 초과하는 통신 요청과 데이터를 표적 장치의 IP 주소로 보내어 서비스 중단을 시도하는 사이버 공격입니다. 이러한 과도한 요청은 시스템 과부하를 일으키고, 대상 장치의 네트워크 연결을 차단하여 일반적인 트래픽이 더 이상 통과할 수 없습니다.

 

DDoS 공격은 수백 건의 가짜 콜택시 요청으로 인해 발생하는 교통 체증과 같습니다. 콜택시 서비스에 대한 요청을 정상적으로 보이며, 어쩔 수 없이 택시를 보내지만 이로 인해 시내 거리는 막히게 됩니다. 이때 정상 트래픽은 대상에 도착하지 못합니다.

빨간색 자동차가 가짜 요청으로 인해 출발한 택시이며, 이로 인해 정상적인 요청으로 출발한 하얀색 자동차는 대상에 도달하지 못한다.

 

이처럼 기업 웹사이트, 웹 애플리케이션, 네트워크 등에 DDoS 공격이 발생하면 다운타임을 일으키고 정상 사용자가 서비스를 이용하고 정보를 얻거나 다른 접속을 시도할 수 없게 합니다.

 

 

DDoS 공격은 어떻게 이루어지는가?

DDoS 공격은 인터넷에 연결된 디바이스의 네트워크를 악용해 사용자가 서버 또는 네트워크 리소스(사용자가 자주 접속하는 웹사이트나 애플리케이션)에 접속하지 못하도록 차단합니다. 

 

DDoS 공격을 하기 위해 공격자는 멀웨어(Malware, 악성 소프트웨어)를 사용하거나 보안 취약점을 악용해 악의적으로 컴퓨터 등의 디바이스를 감염시키고 제어할 수 있습니다. '봇'이나 '좀비'라고 불리는 컴퓨터 등의 감염된 디바이스는 멀웨어를 더욱 확산시키고 DDoS 공격에 참여합니다.

 

이러한 봇은 '봇넷'이라는 봇 군대를 형성하며, 수적인 우세를 활용해 공격 규모를 더욱 증폭합니다. 감염된 디바이스가 변함없이 작동하는 경우가 많기 때문에 사용자는 IoT 디바이스가 감염되었다는 것을 알아차리지 못하는 경우가 많기 때문에 정상 디바이스 소유자들을 2차 피해자가 되거나 알지 못하는 사이에 공격에 참여하게 되고, 피해 측은 공격자를 식별하기가 어렵습니다.

 

 

DDoS 공격의 구성요소(4가지)

 

DDoS 공격 시 구성요소는 Attacker, Master, Agent, Victim으로 총 4가지가 있습니다. 

 

  1. Attacker : 공격자 입니다. C&C 서버에 공격 명령을 전달하는 역할을 합니다.
    • C&C 서버는 Command & Control 의 약자로, 감염된 좀비PC가 해커가 원하는 공격을 수행하도록 원격지에서 명령을 내리거나 악성코드를 제어하는 서버를 말합니다.
  2. Master (C&C 서버) : 공격자에게 명령을 받는 시스템 입니다. 전달받은 명령은 관리하는 다수의 좀비 PC/봇에게 전달합니다.
  3. Agent (좀비 PC) : Master의 명령을 바당 직접 공격을 수행하는 시스템입니다.
  4. Victim (target) : 희생자입니다. 공격 대상이 되는 피해 시스템 입니다.

 

DDoS 공격의 절차

  1. 공격자(Attacker)가 봇(Bot)을 관리하고 명령을 내리는 C2서버(C&C서버)를 구축 합니다.
  2. 스팸 메일이나 악의적인 웹 사이트 등을 통해 불특정 다수의 PC에 봇을 배포해 감염을 시도합니다.
  3. 사용자가 봇 프로그램을 다운로드하여 실행하면 봇에 감염됩니다.
  4. 봇이 C&C 서버에 접속함으로써 감염 PC(좀비 PC)는 봇넷의 일원으로 추가됩니다.
  5. 공격자가 C&C서버에 명령을 내리면, C&C서버는 봇에 명령을 전달합니다.
  6. 봇은 명령에 따라 다양한 공격을 수행하며, 스스로 다른 PC로 봇의 전파를 시도합니다.

 

 

DDoS 공격의 종류

DDoS 공격의 종류는 매우 다양하고, 공격자들은 공격 대상을 파괴하기 위해 통상적으로 2가지 이상의 공격 종류를 사용합니다. 대표적으로 3가지의 방법이 있는데, 증폭, 프로토콜, 애플리케이션 레이어 공격입니다.

 

모든 공격의 목적은 정상 트래픽이 원하는 목적지에 도달하는 것을 심각하게 늦추거나, 차단하는 것입니다. 예를 들어, 사용자가 웹사이트에 접속하거나, 제품이나 서비스를 구매하거나, 비디오를 보는 등의 상호작용을 하는 것을 차단할 수 있습니다.

 

DDoS 공격이 어떻게 진행되는지 살펴보기 위해 공격자가 취할 수 있는 다양한 경로를 자세히 볼 필요가 있습니다. OSI 모델은 다양한 네트워킹 표준에 맞게 계층화된 프레임워크이며, 7개의 서로 다른 레이어로 구성됩니다. 공격자들이 마비시키려는 웹 또는 인터넷 기반 자산의 종류에 따라 표적으로 삼는 레이어가 달라집니다.

 

 

증폭 DDoS 공격

용량 기반 DDoS 공격은 피해 대상의 리소스 대역폭을 포화 상태로 만들어 대량의 트래픽으로 네트워크를 압도하는 것입니다. 많은 양의 공격 트래픽이 정상 사용자가 애플리케이션 또는 서비스에 접속하지 못하도록 차단하여 트래픽이 오고가는 것을 막습니다. 

 

증폭 DDoS 공격에서는 멀웨어에 감염된 여러 시스템과 디바이스 군대를 통해 생성된 봇넷을 사용합니다. 공격자가 제어하는 봇은 모든 대역폭을 포화 상태로 만드는 악성 트래픽을 생성하여 공격 대상과 인터넷 사이에 혼잡을 일으킵니다. 

예상치 못한 봇 트래픽 공격으로 인하여 웹 리소스 또는 인터넷 서비스에 대한 접속이 매우 느려지거나 차단될 수 있습니다. 봇은 DDoS 공격의 증폭을 위해 정상 디바이스를 장악하지만, 보통 사용자들은 알아차리지 못하기 때문에 피해 대상은 악성 트래픽을 탐지하기 어렵습니다.

 

증폭 DDoS 공격에는 DNS 반사/증폭 DDoS 공격,  ICMP 플러드 DDoS공격 등이 있습니다.

 

  • DNS 반사/증폭 DDoS 공격 : DNS 반사/증폭 DDos 공격은 공격자가 공격 대상의 IP 주소를 스푸핑하고 DNS 서버를 열기 위해 대량의 요청을 보내는 기법입니다. 이에 대응하여 DNS 서버는 스푸핑된 IP 주소의 악의적인 요청에 다시 응답해 DNS 회신을 통하여 표적 대상에 대한 공격을 생성합니다. DNS 응답에서 생성되는 대량의 트래픽은 피해 기업의 서비스를 매우 빠른 속도로 마비시키고, 서비스를 사용할 수 없게 만들며 정상 트래픽 원하는 목적지에 도달하지 못하게 합니다.

  • ICMP 플러드 DDoS 공격 : ICMP는 주로 오류 메세지에 사용되며, 일반적으로 시스템 사이에 데이터를 교환하지 않습니다. ICMP 패킷은 서버에 연결된 경우 애플리케이션 프로그램과 컴퓨팅 디바이스가 네트워크에서 메시지를 교환할 수 있도록 하는 TCP 패킷을 수반할 수 있습니다. ICMP 플러드는 ICMP 메시지를 사용하여 대상 네트워크의 대역폭에 과부하를 초래하는 DDoS 공격 방법입니다.

 

프로토콜 DDoS 공격

프로토콜 DDoS 공격은 프로토콜 통신을 악용하는 악의적 연결 요청을 통해 서버나 방화벽 등 다양한 네트워크 리소스의 용량을 소비하고 고갈시키려고 시도합니다. 

 

프로토콜 기반 DDoS 공격의 종류로는 일반적으로 SYN(Synchronize) 플러드와 Smurf DDoS로 2가지가 있습니다. 프로토콜 공격은 PPS(Packets Per Second, 초당 보내지는 패킷의 양)와 BPS(Bits Per Second, 초당 보내지는 비트 신호의 양)로 측정할 수 있습니다.

 

  • SYN 플러드 DDoS 공격 : SYN 플러드 DDoS 공격은 악성 클라이언트가 많은 양의 SYN 패킷을 전송하지만 핸드셰이크를 완료하기 위한 ACK(acknowledgement)를 보내지 않습니다. 이로 인해 서버는 반쯤 열려있는 TCP 연결에 대한 응답을 기다리며 결국 연결 상태를 추적하는 서비스에 대한 새로운 연결을 수용할 용량이 부족하게 됩니다.

 

애플리케이션 레이어 DDoS 공격

예시 : HTTP Flood 공격

악성 요청으로 애플리케이션을 플러딩하는 애플리케이션 레이어 공격은 RPS(Request Per Second, 초당 요청 수)로 측정됩니다. 레이어 7 DDoS 공격으로도 불리는 이 공격은 전체 네트워크가 아닌 특정 애플리케이션을 마비시키는 공격입니다.비교적 일으키기 쉬운 DDoS 공격 중 하나이지만 차단하고 방어하는 것은 어렵습니다.

 

DDoS 공격 완화

모든 디도스 공격을 완벽하게 방어하는 것은 불가능에 가깝기 때문에 방어가 아닌 완화라고 표현합니다.

 

인증 기반 대응

인증 기반 대응은 주로 봇 기반의 자동화된 공격을 방어합니다. 공격에 봇을 활용할 경우 인증 기법으로 대응할 수 있습니다. 대부분의 DDoS 공격은 사람이 직접 수행하지 않고 자동화된 봇을 활용하며, 이러한 공격은 인증으로 대응이 가능합니다.

 

인증은 TCP와 HTTP 프로토콜의 특성을 활용한 기법입니다. 

  • TCP 인증의 경우 최초 클라이언트의 SYN 패킷에 일종의 쿠키를 추가한 SYN/ACK 응답을 생성하여 쿠키가 포함된 ACK가 전송되는지 확인하는 방법입니다.
  • HTTP 인증의 경우 HTTP 302 응답코드를 활용하여 정상적인 리다이렉트가 진행되는지 확인하는 방법입니다. 또한 Bruteforce 공격 또한 인증 기능으로 방어할 수 있습니다. 인증 기능을 활성화환 경우, 봇을 인지하여 일정한 길이의 응답을 제공합니다.

`

아래 사진이 인증 기능을 활성화환 경우이다.