DDoS
- 여러대의 컴퓨터를 일제히 동작시켜 특정 시스템 / 사이트를 공격하여 엄청난 분량의 패킷을 동시에 범람시켜 N/W 성능저하, 시스템 마비 시키는 방식
※ DoS는 단일 컴퓨터를 이용하여 서비스를 거부
- 피해는 크고 심각하지만 공격자 및 발원지를 파악하는 것이 거의 불가능에 가깝기 때문에 확실한 대책은 없다.
- 구성요소
구성요소 |
설명 |
공격자, 봇마스터 |
ㆍ공격을 주도하는 컴퓨터 ㆍC&C서버에 공격 명령을 전달하는 컴퓨터 |
마스터, C&C 서버 |
ㆍ공격자에게 직접 명령을 받은 시스템 ㆍ여러대의 에이전트를 관리 |
핸들러 프로그램 |
ㆍ마스터 시스템의 역할을 수행하는 프로그램 |
에이전트 |
ㆍ공격 대상에 직접적인 공격을 가하는 시스템 ㆍ악성코드에 감염된 시스템 ㆍslave, zombie라고도 함 |
데몬 프로그램 |
ㆍ에이전트 시스템 역할을 수행하는 프로그램 |
표적 |
ㆍ공격 대상이 되는 시스템 |
- 공격순서
- 대응절차
1. 공격 예방 및 선취(공격 이전)
- 공격을 당한 표적이 정상 클라이언트에게 서비스 거부하지 않으면서 공격 시도를 이겨낼 수 있도록 함
- 자원 소모에 대한 정책 및 필요할 때 가용한 자원을 백업으로 제공하는 방법 제공
2. 공격 탐지 및 필터링(공격 중)
- 공격이 시작되면 탐지 시도하고 즉시 응답하므로 공격효과를 최소화 한다.
- 의심스러운 움직임을 찾아내 공격의 일부라고 생각하고 패킷을 필터링해 제거
3. 공격 근원지 역추적 및 확인(공격 후)
- 공격 근원지를 알아내 추후 공격을 막기 위한 과정
- 대응방안
유형 |
설명 |
라우터의 ACL 이용 |
ㆍACL에 공격주소 포트를 등록하여 필터링을 한다. |
라우터의 Ingress 필터링 |
ㆍIngress 필터링을 통해 지정한 IP만이 라우터를 통과하게 끔 한다. |
라우터의 Egress 필터링 |
ㆍIP주소가 위조된 패킷이 인터넷으로 나가는 것을 ISP 단계에서 막음 |
라우터의 약속된 접근비율 (CAR) |
ㆍCAR : 단위시간동안 일정량 패킷 이상이 라우터로 들어오는 경우 일정량 이상 패킷이 통과되지 않도록 하는 기능 ㆍCAR을 이용해 DDoS 패킷을 차단 |
방화벽 |
ㆍ방화벽의 포트 필터링을 이용하여 방지 |
시스템 패치, 핫 픽스 |
ㆍ취약점 / 버그를 이용하는 악성코드 및 침입 방지 |
안정적인 N/W 설계 |
ㆍ취약시스템이 존재하지 않도록 설계 ㆍ단일실패지점이 존재하지 않도록 설계 |
IDS 이용 |
ㆍ침입탐지 시스템을 이용해 DDoS 공격을 탐지 |
로드 밸런싱 |
ㆍ로드밸런싱을 통해 대용량 트래픽 분산, N/W 대역폭 성능 강화 |
서비스 별 대역폭 제한 |
ㆍ서비스별 대역폭을 제한하여 공격에 따른 서비스 피해 최소화 |
DPI |
ㆍ네트워크 트래픽을 조정하기 위해 쓰이는 기술 ㆍ데이터 파일 검토, 우선순위 부여해 덜 중요한 온라인 물질 정리 ㆍ트래픽이 진행되는 동안 패킷이 그 목적지로 가야하는지 또는 막히거나 연기되어야하는지 결정 |
DNS 싱크홀
- 악성 봇을 조종하는 조종자 탐지, 감염된 PC와 조종자 사이의 접속을 탐지해 2차 피해예방하는 방식
- DDoS 차단 방법 중 하나
- 감염된 PC가 특정 주소 연결을 원할 때 실제 해당 주소가 아니라 싱크홀 네트워크가 대신 응답하여 패킷이 외부로 전달되지 않도록 처리
- 동작 과정
1. KISA서 C&C서버 목록을 ISP등 DNS 싱크홀 적용기관에 전송
2. DNS 싱크홀 적용기관은 받은 목록을 주기적 업데이트
3. DDoS에 감염된 PC가 싱크홀 적용된 DNS에 C&C 서버에 대한 질의 요청
4. DNS는 감염된 PC에게 싱크홀 서버 IP주소 반환
5. 이를 통해 감염 PC는 C&C서버가 아닌 싱크홀 서버로 접속해 피해 방지
- DDoS 공격 사례
1. 트리누(Trinoo)
- 1999년 6월 말 ~ 7월 사이에 퍼지기 시작
- UDP flood 서비스 거부 공격 유발
2. TFN
- Trinoo 보다 약간 발전한 공격 방법
- 많은 소스에서 한 개 또는 여러개의 목표 시스템에 대해 서비스 거부 공격 실행
- UDP flood 뿐 아니라 TCP SYN flood, ICMP Echo, ICMP 브로드캐스트 공격 가능
3. Stacheldraht
- 독일어로 철조망이라는 뜻
- 1999년 10월에 처음 출현
- TFN을 참고하여 제작
- 에이전트와 데몬 사이 암호화 기능 추가
4. TFN2K
- TFN의 발전한 형태
- 특정 포트를 사용하지 않음
- 암호화 되어 있음
- 여러개의 프로토콜이 복합적으로 사용
- 포트도 임의로 결정
- 지정된 TCP 포트에 백도어 실행 가능
최신 DDoS 공격유형 분류
문자값 |
대역폭 소진 공격 |
서비스 마비 공격 |
공격유형 |
ㆍUDP / ICMP, SYN Flooding |
ㆍHTTP GET Flooding |
공격 형태 |
1. UDP / ICMP Flooding -UDP/ICMP Flooding, DNS querry Flooding 2. TCP Traffic Flooding -SYN Flooding, SYN+ACK Flooding 3. IP Flooding -LAND Attack, Tear Drop, HTTP Continuation |
1. HTTP Traffic Flooding -GET Flooding, CC ATTACK 2. HTTP Header / Option Spoofing -slowris, Pyloris 3. TCP Traffic Flooding -TCP Session, SYN Flooding, TCP slow read 4. 7계층 서비스 Flooding - Hash DoS, Hulk DoS |
프로토콜 |
3 ~ 4계층 : IP, UDP, TCP, ICMP |
7계층 프로토콜 : HTTP, DNS, FTP 등 |
공격대상 |
네트워크 인프라 |
웹서버, 정보보호 장비 |
스푸핑 여부 |
사용 / 미사용 |
미사용 |
증상 |
ㆍ회선 대역폭 고갈 ㆍ동일 네트워크 사용하는 모든 서비스 접속 장애 발생 |
ㆍHTTP 서버 과다 접속으로 인한 장애 ㆍ공격대상만 피해 |
UDP / ICMP Traffic Flooding
1. UDP /ICMP Flooding
- 공격자가 다량의 UDP / ICMP 패킷을 서버로 전송해 서버의 대역폭을 가득 채워 다른 클라이언트의 접속을 불가능하게 함
- UDP / ICMP 프로토콜이 비연결형이라는 특징 악용해 소스 IP 변조
2. DNS Query
- 공격자가 DNS 쿼리 데이터를 다량으로 서버 전송해 서버의 DNS 전송을 방해
- UDP / ICMP Flooding과 공격 유형 비슷
TCP Traffic Floodig
1. SYN Flooding
- 공격자가 다량의 SYN 패킷을 서버로 전달해 서버의 대기큐를 가득채워 새로운 클라이언트의 연결요청을 무시해 장애 유발
- TCP의 특징중 데이터 보내기 전 연결을 먼저해야 한다는 점을 악용
2. TCP Floag Flooding
- 공격자가 TCP의 Flag값을 임의로 조작하여 서버에 보내면 서버는 이러한 패킷을 수신할 경우 해당 패킷을 검증하면서 자원을 소모하게 하는 방법
HTTP Traffic Flooding
1. GET Flooding
- 공격자가 TCP의 3-hand-shaking 과정을 통해 정상적 접근 후 GET 메소드를 무한대로 실행하여 서버의 자원을 고갈시키는 공격
- 지정된 웹 페이지를 지속적으로 요청하는 서비스 거부 공격 → 웹 방화벽을 통해 방어 가능
2. GET Flooding with Cache-Control(CC Attack)
- 공격자가 HTTP 메시지의 캐시옵션을 조작하여 캐시서버가 아닌 웹서버가 직접 처리하도록 하여 캐싱서버 무력화 및 웹서버 자원 소진
- 지정된 웹 페이지를 지속적으로 요청하는 서비스 거부 공격 → 웹 방화벽을 통해 방어 가능
3. 동적 HTTP Request Flooding
- CC Attack, GET Flooding과 달리 웹 방화벽 우회하기 위해 지속적으로 요청 페이지를 변경하여 웹 페이지 요청하는 방식
HTTP Header / Option Spoofing Flooding
1. Slow HTTP POST DoS(RUDY)
- HTTP의 POST 지시자 이용
- 대량의 데이터를 장시간 걸쳐 분할 전송하여 연결을 장시간 동안 시키는 공격
2. Slow HTTP Header DoS(Slowris)
- 웹서버는 HTTP의 메시지 수신시 헤더를 가장 먼저 수신해 이후 수신할 데이터 판단
- Slowris 공격은 공격자가 헤더를 비정상적 수정해 서버가 헤더를 구분 못하게 하여 연결을 장시간동안 시키는 공격
3. Slow HTTP Read DoS
- 공격자가 TCP 연결시 윈도우 크기와 데이터 처리율을 저하 시킨 후 HTTP 데이터 전송해 웹서버가 정상적으로 응답 못하게 DoS 발생
- 서버는 정상상태 회복시까지 대기상태에 빠져 정상 Client의 접속을 방해
기타 서비스 마비 공격
1. 해시도스 공격
- HTTP의 매개정보를 조작하여 서버가 모든 해시테이블을 검사하게 하여 CPU 자원을 소진시키는 공격
2. HulkDoS 공격
- 웹 서버의 가용량을 모두 사용하여 정상 서비스를 불가하게 하는 GET Flooding 공격
- 공격대상 URL을 지속변경해 임계치 DDoS 방어 장비 우회
공격유형에 따른 차단정책
1. 대역폭 소진 공격 대응
1. UDP / ICMP Flooding - ACL 설정
2. TCP Flooding - 소스 IP 임계치 설정
2. 웹서버 자원 소모 공격
1. SYN Flooding - 소스 IP 별 PPS 임계치 설정, 패킷 헤더검사
(※ PPS : 초당 패킷 수)
2. Slow Header / Data Flooding - 연결 타임아웃 설정
3. DB 연결 부하유발 공격
1. GET, POST Flooding - 클라이언트 연결요청 임계치 설정, HTTP 헤더 확인 후 표준이 아닌 헤더는 차단 시그니처 설정하기
DRDoS
- 분산 반사 서비스 거부공격
- DDoS의 발전단계
- TCP의 3-hand-shaking의 취약점 이용 공격
- DRDoS의 유형
1. TCP의 3-hand-shaking 취약점 공격 : 위조된 주소의 SYN 요청을 반사사버로 전송해 SYN+ACK를 희생자에게 향하도록 하는 공격
2. ICMP의 Echo Request, Echo Reply 이용 : 위조된 주소의 Echo Request를 반사서버로 전송하여 Echo Reply를 희생자에게 향하도록 하는 공격
3. UDP 프로토콜을 이용한 공격
1. DNS 증폭 DRDoS - DNS 서버에 Record 정보 요구하는 DNS 질의 요청해 희생자에게 대량 트래픽 유발
2. NTP 증폭 DRDoS - NTP에 최근 접속한 client 목록 요청에 대량의 응답 트래픽 증가
3. SNMP 증폭 DRDoS - SNMP agent에 MIB와 같은 정보 대량 요청으로 피해자에게 대량 트래픽 유발
4. Chargent 증폭 DRDoS - Chargen 서버 접속시 대량의 문자열 전송해 대량트래픽 유발
- DRDOS의 공격위협
1. 패킷의 전송경로가 무수히 많다
2. 반사서버의 단계적사용 및 확산
3. 희생자 IP 사용으로 인한 역추적의 어려움
- 공격 방식
1. 공격자는 송신지 IP를 희생자 IP로 하여 대량의 SYN 패킷 반사서버로 전송
2. SYN 패킷을 받은 장비는 SYN+ACK 패킷을 피해자에게 전송
- 대응방법
1. N/W서 대응 - IP 주소가 위조된 패킷이 들어오지 못하게 Ingress 필터링
2. 반사서버 대응 - ICMP가 필요 없는 경우 스위치 or 서버에 ICMP 프로토콜 차단하게 한다.
3. 희생자의 대응
- ICMP 프로토콜 사용하지 않을 경우 ICMP 프로토콜 차단하게 함
- 내부 사용자용 DNS 서버 사용시 내부 사용자만 Recursive Query 가능하게 함
- 특정 byte 이상 질의 DNS 응답 차단, 초당 DNS 응답 개수 제한