DDoS 공격
DDoS는 여러 발신지가 동시에 표적에 과다 트래픽이나 요청을 보내는 가용성 공격이다. 발신지가 하나면 DoS, 감염된 기기로 이루어진 봇넷처럼 다수면 DDoS라고 부른다. 목적은 정상 사용자가 서비스를 쓰지 못하게 하는 것이라 정보를 빼가는 해킹과 다르다. 공격 구…
주요 장면
대본
DDoS 개념
DDoS는 여러 발신지가 동시에 표적에 과다 트래픽이나 요청을 보내는 가용성 공격이다.
발신지가 하나면 DoS, 감염된 기기로 이루어진 봇넷처럼 다수면 DDoS라고 부른다.
목적은 정상 사용자가 서비스를 쓰지 못하게 하는 것이라 정보를 빼가는 해킹과 다르다.
봇넷 구성
공격 구조는 공격자, C&C 서버, 봇넷을 이루는 좀비 단말, 표적 순서다.
공격자는 C&C 서버에 명령하고, C&C는 공격 대상과 시점을 봇넷에 전달한다.
좀비 단말들이 동시에 표적으로 트래픽을 보내 대역폭과 연결 자원을 고갈시킨다.
발신지 IP가 수천 개로 흩어져 단순 IP 차단만으로는 막기 어렵다.
공격 계층
공격은 겨냥하는 계층과 자원에 따라 볼륨, 프로토콜, 애플리케이션 공격으로 나뉜다.
볼륨 공격은 대역폭을 채우고, 프로토콜 공격은 SYN 플러드처럼 TCP 연결 자원을 소모한다.
애플리케이션 공격은 정상처럼 보이는 HTTP 요청으로 서버의 처리 능력을 소진한다.
공격 계층이 올라갈수록 필요한 트래픽 양은 적지만 탐지는 어려워진다.
SYN 플러드 원리
SYN 플러드는 TCP 3-way 핸드셰이크의 반쪽 연결을 대량으로 만드는 공격이다.
공격자는 SYN을 대량으로 보내고 ACK는 보내지 않는다. 서버는 큐에 항목을 쥐고 기다린다.
Backlog 큐가 가득 차면 정상 사용자의 연결 요청을 받지 못한다.
초당 SYN 수와 대기 시간의 곱이 Backlog 용량 이상이면 큐가 찬다고 볼 수 있다.
계산 예제
공격 대역폭은 패킷 크기를 bit로 바꾼 뒤 초당 패킷 수를 곱해 구한다.
가상의 공격에서 패킷 크기는 60바이트, 초당 패킷 수는 백만 개라고 가정한다.
직접 계산해 보자.
정답은 480Mbps다. 일반 기업 회선 대역폭과 비교할 수 있는 상식 범위다.
따라서 회선 수준에서 대역폭 확보나 세척 서비스가 필요하다고 판단할 수 있다.
대응 흐름
대응은 이상 트래픽을 인지하고 공격 유형을 파악한 뒤 차단하는 순서로 진행한다.
계층별로 L4는 연결 임계치와 SYN Cookie, L7은 요청 검사와 속도 제한으로 막는다.
한 장비로는 모든 유형을 막기 어려우므로 계층화된 방어를 조합해야 한다.
시험에서는 공격의 원리, 탐지 지표, 대응을 한 쌍으로 묶어 쓰는 것이 핵심이다.