취약점분석 (Blue Team)/Network

[Network] 분산 서비스 거부 공격 (DDOS)

poiri3r 2026. 6. 8. 12:50

오늘은 DDOS 공격에 대해서 짧게만 살펴보도록 하겠습니다.

 

SYN Flood랑 UDP Flood를 바로 다룰까 했었는데, DDOS도 목표로 하는 대상이 다양하고, 그 종류도 엄청나게 많기 때문에, 한번 DDOS에 대해서 크게 다룬 뒤에 각 공격 방식에 대한 세부적인 공격은 따로 포스팅으로 다룰 예정입니다.

 

DOS는 Denial of Service의 약자로 서비스 거부 공격이라는 뜻입니다.

흔히 보안의 3요소라고 배우는 무결성,기밀성,가용성 중 가용성을 침해하는 공격입니다.

 

사실 DOS의 원리는 간단합니다. 서버가 가진 자원을 고갈시켜 정상 요청을 처리하지 못하는게 목표입니다.

여기서 서버가 가진 자원이라는게 네트워크 대역폭일 수도 있고, CPU, 메모리 등등 다양합니다.

 

예를들어 위에 그림처럼 하나의 PC에다가 핑을 999번 날렸다고 생각해보겠습니다.

ping을 수신하면 피해자 컴퓨터에선 핑을 날린곳에다가 응답을 해줘야 합니다.

이때 한번에 너무 많은 량의 핑이 들어오게 되면 컴퓨터가 느려지거나 다운될 수 있습니다.

요즘 PC면 999개는 쉽게 처리하겠지만 이 핑이 999개가 아니라 9999개 혹은 더 많아 질수도 있습니다.

 

하지만 이러한 DOS 공격은 방어하기가 쉽습니다.

그냥 단순히만 생각해봐도, 하나의 PC에서 너무 많은 통신요청을 보내면 그냥 해당 IP만 차단하면 되거든요.

이에 대한 대응공격으로 나온게 DDOS 입니다.

이렇게 공격 PC를 분산시키는 방법입니다.

분산시키다의 Distribute가 붙어서 DDOS가 되었습니다.

각 분산된 공격 지점에서의 방식은 DOS랑 큰 차이가 없습니다. 공격 대상 PC로부터 자원을 많이 소모시키는 공격을 더 많은 PC에서 한다고 생각하면 됩니다.

 

근데 공격자가 저 많은 PC들을 어떻게 구해서 공격할까요?

정정당당하게 돈주고 컴퓨터를 많이 사서 공격을 하진 않겠죠 ?

바로 봇넷(botnet), 쉽게 생각해서 악성코드에 감염된 PC를 이용합니다.

 

일반 사용자의 PC외에도 CCTV와 같은 네트워크에 연결되어 있는 IoT기기도 DDOS에 사용될 수 있습니다.

혹은 알려진 취약점이 남아있는 웹서버, SSH같은 서비스가 있을 때 공격자가 침투에서 DDOS 도구를 심기도 합니다.

https://www.cloudflare.com/ko-kr/learning/ddos/glossary/mirai-botnet/

 

Mirai 봇넷이란?

Mirai 맬웨어가 ARC 프로세서와 Linux OS에서 실행되는 IoT 장치를 어떻게 봇넷으로 바꾸는지 알아보세요. Mirai는 일반적으로 DDoS 공격을 시작하고 클릭 사기를 실행하는 데 사용됩니다.

www.cloudflare.com

제일 대표적인게 Mirai 봇넷이 있습니다.

이렇게 분산된 디도스같은 경우엔 정말 제대로 된 방비가 없을경우 방어가 어렵고 추적도 쉽지 않습니다.

특히 HTTP나 SYN Flood같은 공격은 정상 사용자와 공격자의 트래픽을 구분하기가 상당히 어렵고, 로그를 추적하더라도 다양한 국가와 ISP, 장비에서 오기 때문입니다.

DDOS에 대해 공부해봐야겠다 싶었던 이유도, 예전 LCK 디도스 사태가 있었는데 https://namu.wiki/w/2024%20LCK%20%EC%8A%A4%ED%94%84%EB%A7%81%20%EC%82%AC%EC%9D%B4%EB%B2%84%ED%85%8C%EB%9F%AC%20%EC%82%AC%EA%B1%B4

 

2024 LCK 스프링 사이버테러 사건

20여 년 넘게 중계를 해왔습니다만, 이런 초유의 사태 는 처음인데요, 이렇게까지 안타까움과 무기력함을 느낀 적은

namu.wiki

이때 LCK부터 해서 개인 방송까지 DDOS가 엄청나게 많이 왔었는데, 이게 대회같은 경우야 내부망을 구축하면 된다지만, 개인 방송인들같은 경우엔 그냥 눈뜨고 코베일 수 밖에 없습니다.

 

이때 거의 반년 넘게 제대로 막지를 못했고, 25년도까지도 계속 나왔었는데, 추후에 한번 깊게 원인 분석을 해볼 예정입니다.

DDOS에 대한 방어는 현재까지도 완벽하게 대처가 되지는 않는 것 같습니다.

 

출처 : https://www.unb.ca/cic/datasets/ddos-2019.html

DDOS 종류를 살펴보면 대역폭 고갈형, 자원 고갈형, L7 계층 공격으로 크게 나뉩니다.

대역폭 고갈형은 네트워크 회선 자체를 트래픽으로 꽉 채우는 방식으로 UDP Flood나 ICMP Flood가 있습니다.

가장 단순하고도 무식한 방법인데, 아까 그림처럼 ping을 미친듯이 때려박는 방식을 생각하시면 됩니다.

 

자원 고갈형은 CPU, 메모리, 세션 테이블 같은 자원을 소모시키는 공격입니다.

예를들어 TCP 연결같은 경우, 연결유지형태기 때문에 자체 테이블에 연결 정보를 기록해두는데 SYN 패킷만 미친듯이 보내서 Connection table을 가득 채워놓아 새로운 연결을 못하게 하는 방식입니다.

이걸 SYN Flood attack이라고 합니다.

 

마지막은 애플리케이션 계층은 웹서버, API 서버 등 L7을 직접 괴롭히는 방식입니다.

이거는 어떤 애플리케이션이냐에 따라 차이가 많이나서 추후에 따로 다루겠습니다.

 

일단 짧게 디도스에 대해서만 다뤄봤습니다.

읽어주셔서 감사드리고 다음 포스팅부턴 세부적인 공격 방식에 대해 다뤄보겠습니다.