DDoS vs DoS 차이점 및 디도스 공격의 유형 및 특징 알아보기 (1)

특정 서비스에 대한 접근을 방해하거나 차단할 목적으로 수많은 에이전트를 이용하여 공격 대상에 과도한 서비스 요청을 발생시키는 공격입니다. 이런 디도스(DDoS) 공격의 유형 및  특징에 대해 자세히 알아보겠습니다.

DDoS vs DoS 차이점

두 가지 공격 모두 대상 서버의 리소스를 소진해 서비스하지 못하게 만드는 개념은 같습니다. 다만 DoS는 한대의 PC만으로도 수행 할 수 있지만, DDoS (Distributed Denial of Service)의 D는 ‘분산된’ (=Distributed) 여러 좀비 PC를 동시 이용하여 서버의 가동을 방해하는 측면에서  차이가 있습니다.

디도스 공격의 유형 및 특징

특징

디도스 공격은 네트워크상에 분산된 다수의 에이전트에서 동시다발적인 서비스 요청을 하기에 모든 소스를 차단하기가 어렵다는 특징이 있습니다.

또한 해당 에이전트 좀비 PC 들도 자신이 모르는 사이 악성코드 등에 의해 감염되어 해당 공격에 악용되기에 스스로 인식하지 못하는 사이 공격의 조력자가 되기도 합니다.

공격절차

아래와 같은 절차로 수행되는 DDoS 공격은 공격자 외에 에이전트 PC 및 공격자 그리고 공격 대상이 되는 시스템으로 구성됩니다.

DDoS-공격절차
DDoS-공격절차

(1) 보안에 취약한 홈페이지에 악성코드 은닉한다.

(2) 감염된 홈페이지에 일반 유저가 접속하 악성코드에 감염된다 (좀비 PC화)

(3) 좀비 PC(=DDoS 공격 에이전트)에 공격명령 전달한다.

(4) 공격대상 시스템에 분산서비스거부 공격 수행한다

유형별로 Flooding 공격, 연결 기반 공격, 애플리케이션 기반 공격 등으로 유형을 분류해볼 수 있습니다. 대표적으로 flooding 공격이 주를 이루며 이에 대해 자세히 알아보겠습니다.

공격유형

1. TCP SYN Flooding 공격

TCP 프로토콜의 3 way 핸드 쉐이크의 특징을 이용한 공격입니다. 

TCP-SYN-Flooding-공격절차-이미지
TCP-SYN-Flooding-공격절차

(1) 공격자가 다수의 PC를 이용해 서버에 수 많은 SYN 요청 메시지를 보냅니다.

(2) 서버는 이에 대한 응답으로 SYN/ACK를 보냅니다.

(3) 이후 서버는 보낸 ACK에 대한 응답이 올 때까지 계속해서 대기하게 됩니다.

(4) TCP 연결 세션을 유지하기 위해 서버는 내부 자원을 누적하게, 일정 연결 이상이 되면 서버 기능이 정지됩니다

2. Smurfing (스머핑) 공격

효과가 광범위하므로 치명적인 디도스 공격 방법의 하나입니다. 이는 IP와 ICMP 프로토콜의 특징을 악용한 공격기법입니다.

Smurfing-공격절차
Smurfing-공격절차

컴퓨터를 잘 다루시는 분들이라면 IP 연결상태를 체크하기 위해 ping 명령를 써보셨을 텐데요. 특정 PC에 ping 명령어를 실행하면 상대 PC가 이에 대해 응답을 주게 됩니다. 

이러한 ping 명령어는 ICMP 프로토콜을 사용하는 명령어의 일종입니다.

ICMP (Internet Control Message Protocol)

IETF RFC 792에 정의된 프로토콜 로서 호스트 간 혹은 호스트와 라우터 간의 에러 상태 혹은 상태 변화를 알려주고 요청에 응답하는 네트워크 제어 프로토콜. 

1) Smurfing공격은 위의 그림과 같이 이 ICMP 패킷을 불특정 다수에게 보내면서, 수신처를 공격 대상 서버에게 하도록 변조시킵니다. 

2) 이후 좀비 PC들이 한꺼번에 ICMP Echo Relay를 공격서버를 향해 응답하게 하므로써 서버의 기능을 무력화 시킵니다.

3. HTTP flooding 공격

정상적인 HTTP Get이나 POST 명령어를 반복적으로 호출하여 서버의 리소스를 소모하는 단순한 공격기법입니다. 가령, 특정 홈페이지를 다수의 좀비 PC를 이용해 반복해서 refresh 하는 형태입니다.

4. CC Attack 공격

이는 서버의 Cache(캐시) control 메시지를 이용하는 공격방법입니다. 보통 웹서비스는 서버의 부담을 경감시키기 위해 Cache 서버를 이용합니다. 디소스 공격을 했는데 트래픽이 이 캐시서버에만 집중된다면 공격이 무용지물이 되버립니다.

이때 다음과 같이 HTTP 요청에 특정 옵션을 넣게 되면 캐시서버를 거치지 않고 HTTP 서버로 응답을 요청하도록 하는 공격 기법입니다.

(1) no-store (캐시 저장금지): 요청받은 데이터의 별도 캐시서버 저장을 금지

(2) must-revalidate (캐시검증): 웹서버의 캐시 데이터의 유효성을 검증하도록 요청

5. UDP flooding 공격

앞서 설명해 드린 TCP SYN flooding과 비슷해보이지만 이는 네트워크의 대역을 소진시키는 공격방법으로 비교적 쉬운 공격방법의 하나입니다.

UDP-flooding-공격절차
UDP-flooding-공격절차

1) 위의 그림과 같이 대량의 변조된 UDP 패킷을 공격 서버로 보냅니다. 

2) 가령, 사용하지 않는 포트에 대한 요청을 보내면 서버에서는 정상적으로 “ICMP packet unreachable”를 응답 합니다.

3) 하지만 이미 UDP 패킷의 출발지 주소가 변조된 상태이므로 공격자는 수많은 UDP 패킷을 보냄으로서 서버의 가용자원을 소모시키는 공격 기법입니다.

맺음말

이 외에도 TCP Out-of-state Packet Flooding, Connection Flooding, Fraggle Attack, Slowloris 및 애플리케이션 레벨 공격 등 수많은 DDoS의 유형이 있습니다.

다음에는 이런 DDoS 공격으로부터 방어하는 기법들에 대해서 자세히 알아보겠습니다.

> DDoS 방어기술 및 솔루션 알아보기

Leave a Comment