지금까지의 공격은 대부분 기밀성·무결성(훔치기·바꾸기)을 노렸습니다.
이번은 가용성을 노리는 공격 — DoS/DDoS 입니다. 목적이 정보 탈취가 아니라
영업 방해예요. 세일 날 경쟁사가, 혹은 협박범이 서버를 마비시키는 거죠.
1강의 CIA 를 기억하세요 — 이건 가용성 공격입니다.
공격의 층이 다르면 방어의 층도 다릅니다
L7 (요청 폭주)
정상처럼 생긴 요청을 초당 수만 번. rate limit 으로 막는다
L3/L4 (회선 폭주)
SYN flood·증폭 공격. 회선이 먼저 막혀 앞단(CDN)에서 걸러야 한다
중요한 직관 — 회선이 100Mbps 인데 10Gbps 가 쏟아지면 서버가 아무리 튼튼해도 소용없습니다.
내 서버에 도착하기 전에 막아야 하고, 그건 남의 큰 회선(Cloudflare 같은 CDN)을
빌려서 합니다.
DDoS 실험실 — 공격 유형·rate limit·CDN 을 켜고 끄며 서버 생존을 본다
불러오는 중…
rate limit — 초당 몇 개까지만
애플리케이션 계층 공격은 nginx 의 limit_req 로 막습니다.
"한 IP 당 초당 N 개까지만 통과, 나머지는 429 Too Many Requests"라고 정하는 거예요.
그러면 서버는 살아 있고, 진짜 손님은 계속 쇼핑할 수 있습니다.
가장 큰 방어는 '앞단'입니다
회선을 마비시키는 대형 DDoS 는 내 서버 혼자 못 막습니다. 그래서 현실적인 방어는
Cloudflare 같은 CDN 을 앞에 세우는 것입니다. CDN 은 전 세계에 거대한 회선을 갖고 있어
공격 트래픽을 자기 선에서 흡수하고, 정상 요청만 우리 서버로 넘겨 줍니다.
우리 drson.iotok.org 도 Cloudflare 뒤에 있어요.
🤔 확인 문제
DDoS 가 훔치는 것은 무엇인가요? (CIA 중)
해설 DDoS 는 훔치거나 바꾸지 않습니다. 가용성을 노려요 — 손님이 서버를 못 쓰게 마비시킵니다. 목적은 영업 방해나 협박입니다.
🤔 확인 문제
nginx rate limit 을 전체 요청 한도로 걸면 생기는 문제는?
해설 전체 한도로 걸면 공격 트래픽이 한도를 채워 정상 손님까지 밀려납니다 — 공격자가 노리는 바죠. 그래서 IP 별로 걸어야 공격 IP 만 429 를 맞습니다.