오랜 기간 우리의 인프라를 괴롭혀온 DDoS 공격은 방어 기법의 발전에도 불구하고 나름의 진화 과정을 거치며 생존했습니다. DDoS 공격은 다양한 유형의 공격 기법과 회선 초과의 조합 때문에 막기가 쉽지 않으며, 효과적인 대응을 위해서는 보안 장비 외에 인프라 차원에서의 대응과 전환 절차가 필요합니다.
공격과 방어의 트렌드를 짚어보고, 알려진 방법들의 한계점을 분석하며, 기술적/전략적 관점에서의 대응 방법을 공유합니다.
목차
1. DDoS?
2. 진화와 공방
3. 진압 기법들과 딜레마
4. 대응 절차와 준비물
대상
시스템/네트워크/보안 인프라를 담당하는 인프라 전문가 또는 관련 개발자
7. 7 / 46
찬란한 역사의 시작
“TRINOO”(1999)
<참고 링크: https://www.computerworld.com/article/2593369/cyberassaults-hit-buy-com--
ebay--cnn-and-amazon.html>
Trinoo 네트워크 구조도 (1999)
<참고 링크: https://staff.washington.edu/dittrich/misc/trinoo.analysis>
공격자PC
제어서버
좀비PC
1999년 발생/보고된 TRINOO, TFN이 원조로 알려짐
2000년부터 대형 기업을 향한 DDoS 공격 급증
9. 9 / 46
진화와 공방(1st Generation)
1999년~
좀비
인터넷
원격 실행,
IRCBot
회선
국내:
국지적 DoS 공격에 무방비
단순 플러딩
DOWN
깨어나라
나의 용사여
낮은 성능의
서버
낮은 성능의
라우터와
보안장비
낮은
회선 대역폭
10. 10 / 46
진화와 공방(1st Generation)
주요 공격 형태 (1)
출발 목표
포트 60000→80
9.9.9.9 2.2.2.2
2.2.2.23.3.3.3
4.4.4.4…
UDP
UDP
9.9.9.9제가
안 쐈어요
UDP
출발지IP 변조
“나 9.9.9.9거든?“
행인
TCP SYN,
UDP Request,
ICMP Request 반복
netstat –an
2.2.2.2:80 3.3.3.3:50000 SYN-RECEIVED
2.2.2.2:80 4.4.4.4:50000 SYN-RECEIVED
2.2.2.2:80 5.5.5.5:50000 SYN-RECEIVED
2.2.2.2:80 6.6.6.6:50000 SYN-RECEIVED
SYN
SYN
SYN
3.3.3.3
4.4.4.4…
2.2.2.2
내장
파열
SYN/UDP/ICMP 플러딩 IP 변조해서 플러딩
11. 11 / 46
진화와 공방(1st Generation)
주요 공격 형태 (2)
ping –t –l 50000 2.2.2.2
ICMP
ICMP
ICMP
Ping of Death:
대용량 PING
목표 2.2.2.255
2.2.2.0/24
SYN
SYN
SYN
브로드
캐스트
SYN
SYN
SYN
LAND 공격:
출발지=목적지로 변조
출발 목표2.2.2.2 2.2.2.2
UDP
UDP
UDP
Teardrop 공격:
Fragment 옵션 변조
목표 FB 1유형 UDP2.2.2.2 FO 200
고전 4종
공격 세트와
함께하는
컬래버레이션
SMURF 공격:
브로드캐스트 주소로 공격
널
핑으로
죽이겠어
12. 12 / 46
진화와 공방(1st Generation)
2005년~
인터넷
몸빵 UP!
충격흡수!
인프라 하드웨어 몸빵 강화
회선
회선 대역폭
상승
분산처리형
하드웨어 보급
분산처리형
NIC 보급
UP
13. 13 / 46
진화와 공방(1st Generation)
보호 트렌드 = ‘하드웨어 분산처리’
시스템 시스템
장비장비
외벌이 맞벌이
1인 가장 가내 수공업
input
하달 경로 결정
상위
보안 검사
input
패킷 처리
세션 처리
애플리케이션 연산
패킷 처리
보안 검사
정책 수립
패킷 처리
세션 처리
ToE
ap
data ctrl
애플리케이션 연산
패킷 처리
경로 결정
보안 검사
정책 수립
NW장비
또는
보안장비
서버
시스템
15. 15 / 46
진화와 공방(2nd Generation)
2007년~
인터넷 회선
나의 뉴 테크놀러지
공격이 어떠심
Hyper좀비, 반사체
원격 실행,
반사 기법
공격 인프라 대량 확장
좀비 PC
성능 강화
공격자 저변 확대,
제어툴 고도화
여전히 부족한
보안장비 성능
DOWN
16. 16 / 46
진화와 공방(2nd Generation)
공격 인프라의 확장
악성링크, 악성 첨부파일을
이용한 좀비 감염 대 확산
1.1.1.1:80
To 1.1.1.1:80
80포트? 인터넷 통신이니 허용할게!
1.1.1.1:80
알고 보니 서버가 클라이언트를 원격제어
RAT(Reverse Shell)
아뿔싸
To 1.1.1.1:80
<참고 링크: https://www.sans.org/reading-room/whitepapers/covert/inside-out-
vulnerabilities-reverse-shells-1663>
통신 방향
통신 방향
제어 방향
피싱/사회공학기법의 유행
C&C 통신 식별의 한계
DDoS 공격툴의 고급화,
공격툴 거래 확산
공격 도구의 대중화
17. 17 / 46
진화와 공방(2nd Generation)
주요 공격 형태 (1)
TCP Flag를
조작하여 반복
SYN-ACK
SYN-ACK
SYN-ACK
ACK
ACK
ACK
월요일: SYN-ACK 공격
화요일: ACK 공격
수요일: IP 변조 공격
Established
Established
Established
허당 정상 세션 생성
netstat –an
2.2.2.2:80 3.3.3.3:50000 ESTABLISHED
2.2.2.2:80 4.4.4.4:50000 ESTABLISHED
2.2.2.2:80 5.5.5.5:50000 ESTABLISHED
2.2.2.2:80 6.6.6.6:50000 ESTABLISHED
널 놓치고
싶지 않아
TCP Flag 변조 플러딩 세션 기반 플러딩
+ IP 변조 선택
18. 18 / 46
진화와 공방(2nd Generation)
주요 공격 형태 (2)
GET 헤더 정보
조작하여 플러딩
GET/POST를 조작하여
강제 세션 유지
Cache-Control: no-store, must-revalidate
Cache-Control: no-cache
Null page 요청 (Host header only)
GET의 CRLF (0d 0a) 규칙 조작
POST의 Contents-Length 과대 적용
인기 공격 5주간 1위
업글된
세션 물기
HTTP GET 플러딩 HTTP 세션 기반 플러딩
GET
GET
GET
GET
GET
GET
19. 19 / 46
진화와 공방(2nd Generation)
주요 공격 형태 (3)
IP 주인에게
응답 발사
출발 목표
포트
2.2.2.2 3.3.3.3
50000→80
이 아이는 자라서 훌륭한
증폭공격으로 성장
출발 목표
포트
3.3.3.3 2.2.2.2
80→50000
출발지를 목표IP로
변조하여 플러딩
SYN-ACK
SYN-ACK
SYN-ACK
1.1.1.1
2.2.2.2
3.3.3.3
SYN
SYN
SYN
반사 기반 플러딩 (DR-DoS)
20. 20 / 46
진화와 공방(2nd Generation)
2008년~
회선 UP
DDoS 방어시스템과
관련 서비스 확산
뉴 아이템 장착!
인터넷
DDoS
ISP 업체의
DDoS 대응
DDoS방어시스템 보급
DDoS 대피소
탄생
DDoS
21. 21 / 46
진화와 공방(2nd Generation)
보호 트렌드 = ‘정교한 방어 기법’
알려진 방어 기법을 조합하여
고성능으로 처리하는 게 주목적
좀비 식별IP/세션 인증
IP변조 식별
패턴 검증
무결성 검증임계치
각종 DDoS 방어기법으로 검사/차단
DDoS
DDoS
방어
시스템
학습
잘못하면 난감
감시
PPS: 25.5 CPS: 27.7
RPS: 21.5
트래픽 우회 후
DDoS 검사/차단!IP 당
500 PPS
정상
트래픽
평소 트래픽
Anomaly 발생!
DDoS
DDoS
트래픽 학습 및 이상 상황 탐지
25. 25 / 46
진화와 공방(3rd Generation)
주요 공격 형태 (1)
IP 주인에게
맴캐시 키값 전송출발지를 목표IP로 변조 후
맴캐시 키 요청
value
value
value
출발 목표
포트 50000→11211유형 UDP
2.2.2.2 3.3.3.3
2.2.2.2
3.3.3.3
get key
get key
get key
1.1.1.1
출발 목표
포트 11211→50000유형 UDP
3.3.3.3 2.2.2.2
10MB 510GB맴캐시
서버
Memcached 증폭 공격 (BAF=10000~51000)
26. 26 / 46
진화와 공방(3rd Generation)
주요 공격 형태 (2)
DNS 증폭 공격 (BAF=28-54) SNMP 증폭 공격 (BAF=6.3)
MIB Tree 값 응답SNMP GetBulk 요청
response
response
response
GetBulk
GetBulk
GetBulk
10MB 63MB
NTP Host list 응답NTP MON_GETLIST 요청
response
response
response
monlist
monlist
monlist
10MB 5.5GB
DNS 응답DNS 질의 (“Any” 타입)
response
response
response
query
10MB 540MB
query
query
DNS
서버
서버
(SNMP)
NTP 증폭 공격 (BAF=556.9)
요령은 비슷비슷NTP
서버
27. 27 / 46
진화와 공방(3rd Generation)
증폭지수
Bandwidth
Amplification Factor
=
증폭체-목표 서버 간 페이로드 크기
공격자-증폭체 간 페이로드 크기
#맴캐시드#
x 51000
유입: 10MB
증폭 결과: 최대 510GB
프로토콜 증폭 지수
DNS 28 to 54
NTP 556.9
SNMPv2 6.3
NetBIOS 3.8
SSDP 30.8
CharGEN 358.8
QOTD 140.3
BitTorrent 3.8
Kad 16.3
<참고 링크: https://www.us-cert.gov/ncas/alerts/TA14-017A>
증폭 지수(BAF) 비교
프로토콜 증폭 지수
Quake Network Protocol 63.9
Steam Protocol 5.5
Multicast DNS (mDNS) 2 to 10
RIPv1 131.24
Portmap (RPCbind) 7 to 28
LDAP 46 to 55
CLDAP 56 to 70
TFTP 60
Memcached 10000 to 51000
28. 28 / 46
진화와 공방(3rd Generation)
새로운 이슈 출현
아.. ㅅㅂ…
Caïn venant de tuer son frère Abel (Henri Vidal, 1896), Jardin des Tuileries, Paris <https://commons.wikimedia.org/wiki/
File:Ca%C3%AFn_venant_de_tuer_son_fr%C3%A8re_Abel_by_Henri_Vidal,_Tuileries_Garden,_18_July_2017.jpg>
우리 망
때려도
아프다
우리 망
크리
터짐
인터
넷
맞아도
아프고
인터
넷
증폭체
(Mem
cached)
증폭체
(Mem
cached)
신규 고민
아픈
평타
29. 29 / 46
진화와 공방(3rd Generation - 현 상황)
2016년~
인터넷 회선
2018: 응급 대처와
흡수/방어 서비스 활용
공격량과 유형에 따른
동적 대처
스크러빙센터/
클라우드 연계
지금은 이만 물러가지만
다음번엔 가만두지 않겠다
UP?
DDoS
DDoS
ㅜㅜ
30. 30 / 46
다 막아
다 흡수
진화와 공방(3rd Generation - 현 상황)
보호 트렌드 = ‘인프라의 분산과 완화’
Max 10 TbpsMax 400 Tbps
(based on CDN)우리 망
다 막아
다 흡수
인터넷
우회
(by DNS)
2
3
우리 망
인터넷
우회
(by 라우팅)
1
3
1
둘을 합쳐 스크러빙
센터로 표현하는
경우가 많음
프록시 방식 스크러빙 방식
2
스크러빙센터
= 대용량
방어/흡수용
클라우드 서비스
32. 32 / 46
진압 기법들과 딜레마
네트워크/서버/보안장비 사용 시
근본 대응 불가, 임시/차선책
네트워크장비, 서버 기업용 보안장비
(방화벽, IPS, WAF 등)
Access List : 대용량 좀비 차단 불가
Null 라우팅, Sinkhole : 최후의 선택
서버LB, DNS RR : 흡수만 가능
DNS 정보 변경 : 일부 유형만 대응 가능
세션 검증: 성능 한계
패턴 검증: 성능 한계
무결성 검증: 성능 한계
33. 33 / 46
진압 기법들과 딜레마
DDoS방어시스템 활용 시
임계치 외에 변조/좀비 탐지기법을
고성능으로 수행하는데 특화
지나가~
예끼 이놈
어??!…
(or invalid ack)
정상이네
어디 보자
SYN
SYN
SYN-ACK
(seq=cookie)
ACK
(ack=cookie+1)
Data (GET)
Reset (Redirect)
SYN-ACK
SYN
SYN-ACK
(seq=cookie)
DDoS
방어
정상
PC
TCP
좀비
목표
서버
DDoS
TCP 변조/좀비 식별 예시 (SYN Cookie)
IP
변조
TCP
좀비
HTTP
좀비
DNS
좀비
SIP
좀비
프로토콜 별
변조/좀비 식별
34. 34 / 46
진압 기법들과 딜레마
외부서비스 활용 시 (1)
대용량 흡수만 가능,
근본 차단 불가
인터넷
CDN: 컨텐츠 전송을 분배
GSLB: 질의 결과를 분배
Anycast DNS: 질의 요청을 분배
Q A
GET
www.1.com
컨텐츠 좀
www.1.com
www.1.com
7.7.7.7
7.7.7.7
가까운
DNS서버에
물어봐
가까운
나한테
받아가
가까운
웹서버로 가
GSLB
CDN
캐시
Anycast
DNS
DNS
DNS
DNS
GET
OK
Q A
Q
A
35. 35 / 46
진압 기법들과 딜레마
외부서비스 활용 시 (2)
다 좋은데 비싸다
이상적이나
비용도 이상함
우리 망
다 막아
다 흡수
인터넷
우회 (by
DNS/라우팅)
2
3
1
스크러빙센터
덜 비싼데 다 못 막는다
우리 망
내가 만든
프록시
인터넷
우회
(DNS)
21
셀프 클라우드 + 프록시
Public Cloud
Instance
3
세션을 못 맺는 반복형 TCP
패킷은 웹서버 도달 불가
37. 37 / 46
진압의 요령
순서대로
세션 인증, 프록시 처리, SYN-ACK Cookie, 임계치
1. 프로토콜
및 상세
유형 확인
2. 회선 가용
상황 확인
3. 가용 방법
적용
4. 차선/완화
방안 시도
TCP
SYN FLAG변조
UDP ICMP
HTTP
GET
DNS
반사/증폭
세션물기
패턴 동반 무결성 위반
비허용 서비스 포트
회선 미초과회선 초과
세션 인증
프록시 처리
임계치
패턴/시그니처
무결성 검사Access List
타임아웃 조정
스크러빙센터
변조/좀비 식별
ISP요청
DNS RR
NW LB
Null라우팅
Sinkhole
IP 직접 공격
38. 38 / 46
숙제(1)
네트워크 기반 공격 – 아래 물음표를 채워보세요
TCP
스크러빙센터, 클라우드+프록시
?????
?????
세션기반 플러딩
SYN 플러딩
FLAG변조
플러딩
반사기반 플러딩
회선미초과
회선초과
회선미초과
회선초과
회선미초과
회선초과
회선미초과
회선초과
SYN Cookie, 프록시 처리, 임계치
?????
?????
?????
?????
UDP
ICMP
패턴을 동반한
모든 유형 공격
모든 프로토콜
UDP 플러딩
ICMP 플러딩
무결성 위반한
모든 유형 공격
허용되지 않은
서비스 포트 공격
회선미초과
회선초과
임계치, Access List
ISP요청, 스크러빙센터, 클라우드+프록시
회선미초과
회선초과
패턴/시그니처
스크러빙센터
회선미초과 ?????
회선미초과
회선초과
?????
?????
정 안되면
ISP요청
DNS RR
NW LB
Null라우팅
Sinkhole
차선/완화 방안 시도
Fragment
Ping of Death
LAND
Teardrop
SMURF 유효하지 않거나,
공격효과 미미하거나,
NW/보안장비/시스템
에서 기본 차단됨
회선초과 ?????
39. 39 / 46
숙제(2)
애플리케이션 기반 공격 – 아래 물음표를 채워보세요
HTTP
스크러빙센터
?????
?????
IP로 하드코딩된
공격
GET 플러딩
증폭기반 플러딩
(Memcached,
DNS, SNMP 외)
세션기반 플러딩
회선미초과
회선초과
회선미초과
회선초과
회선미초과
회선초과
회선미초과
회선초과
HTTP좀비식별, 임계치
?????
?????
ISP요청, 스크러빙센터
Access List, 임계치 (+취약성 제거)
취약성 기반
DNS
DNS Anycast+보안서비스, 스크러빙센터
DNS질의 플러딩
회선미초과
회선초과
DNS좀비식별, 임계치
패턴을 동반한
모든 유형 공격
모든 프로토콜
무결성 위반한
모든 유형 공격
허용되지 않은
서비스 포트 공격
회선미초과
회선초과
패턴/시그니처
스크러빙센터
회선미초과 ?????
회선미초과
회선초과
?????
?????
회선초과 ?????
그래도
안되면
타임머신 제작
DDoS개발자 제거
과거로 이동
정 안되면
ISP요청
DNS RR
NW LB
Null라우팅
Sinkhole
차선/완화 방안 시도
CDN
GSLB
40. 40 / 46
2018 끝판왕
발표자 : 자, 여러분 회사 중에 인터넷 회선이
1테라 넘는 분 계십니까?
청중: (서로를 쳐다보며 웅성거린다)
발표자 : [독백] 그럼 그렇지. 1테라 회선이 얼만데
= 회선 초과 공격
41. 41 / 46
대응 절차 예시 – 태세 전환이 중요
감시/분석 담당
트래픽/공격 유형
/공격IP 분석
네트워크/시스템/
보안 인프라 담당
영향도 확인
같이 고민하고 움직여야 함
보유 인프라 우선 대응
보유 인프라 내 차선 방안 대응
ISP 신고 및 요청
외부 서비스 차선 방안 대응
모든 부서원
정확한
유형 분석
정확한 방어 상황
및 한계점 식별
악당
DDoS 공격 발생
42. 42 / 46
우선 필요한 것
도구와 전문가
SYN
ACK
HTTP
PC→SVR:80
Contents
PC→SVR:80
1. 헤더/콘텐츠
식별 가능 장비
2. 식별
전문가DDoS?
IDS?
FW?
WAF?
소속: NHN엔터테인먼트
취미: 독서, 영화감상
특기: DDoS 헌팅, 패턴 생성
43. 43 / 46
우선 필요한 것
대응 서비스별 장단점 사전 숙지
우리 망
인터넷
다막아 클라우드 구성요소
요소별
제약사항
많음
상시 우회?
전시 자동 우회?
수동 우회?
국내 우회 센터 보유?
(latency)
처리 가능 성능?
처리 가능 프로토콜?
프록시 기반
(DNS)
스크러빙 기반
(BGP)
WAF
Anycast
CDN
GSLB
웹만 가능 (+포트 제한),
출발지IP 변경됨
BGP AS 필요,
/24비트 이상 대역 필요,
SSL복호화 불가
완화만 가능
웹 컨텐츠만 가능, 완화만 가능
URL 기반 서비스만 가능,
완화만 가능
상위 레이어 검사만 가능
44. 44 / 46
우선 필요한 것
싸우면 안 됨
사이좋게
대응
인프라 단위의 대처를 위해
유연한 협업 체계 필요
시스템 네트워크
보안 애플리케이션