분산 서비스 거부 공격(DDoS: Distributed Denial of Service)
1. 정의
분산된 다수의 좀비 PC/디바이스 (악성 봇)에 의해 Target 시스템의 서비스를 마비시키는 공격 형태
2. 구성요소 4가지
- 공격자 : C&C 서버에 공격 명령 전달하는 해커의 컴퓨터 (bot master)
- 공격대상 (Target) : 공격의 대상이 되는 시스템
- C&C (Command & Control) 서버 : 공격자로부터 직접 공격 명령을 전달받는 시스템 (master). 전달받은 명령은 관리하는 다수의 좀비 PC에게 전달
- Zombie PC/디바이스 : C&C 서버로부터 전달받은 명령을 실행하여 Target 에게 실제 공격을 수행하는 PC/디바이스 (bot, slave, agent)
3. DDoS공격의 사례
1) 트리누(Trinoo) 공격
- UDP Flood 서비스 거부 공격 유발하는 데 사용되는 도구로 몇 개의 서버와 많은 수의 클라이언트로 이루어짐
- 공격자는 트리누 마스터에 접속하여 하나 혹은 여러 개의 IP 주소를 대상으로 서비스 거부 공격을 수행하라고 명령을 내린다.
2) TFN(Tribed Flood Network) 공격
- 트리누의 발전형
- UDP Flood 외 TCP SYN flood 공격, ICMP echo 요청 공격, ICMP 브로드캐스트 공격(Smurf 공격) 가능
3) Stacheldraht 공격
- 공격자와 마스터 사이에 암호화 통신 보장(TELNETC)
- 네트워크 패킷 분석 시 Stacheldraht의 여부를 판단하기가 어렵다.
4) TFN2K 공격
- TFN의 발전된 형태. 통신에 특정 포트가 사용되지 않고 암호화
- 조금 더 다양한 OS에서 사용 가능
- 프로그램에 의해 UDP, TCP, ICMP가 복합적으로 사용되며, 지정한 TCP 포트에 백도어 실행 가능
4. HTTP 관련 DDoS 공격 유형
1) HTTP Traffic Flooding 공격
- GET Flooding
- TCP 3-way handshaking 과정을 통해 정상 접속한다.
- 특정 페이지를 HTTP의 GET Method를 통해 무한대로 실행시킨다.
- 시스템에 과부화 발생
- GET Flooding with Cache-Control Attack (CC Attack)
- HTTP 메시지의 캐시 옵션을 조작
- 캐싱 서버가 아닌 웹서버가 메시지를 처리하도록 하여 캐싱 서버의 기능을 무력화하고 웹서버의 자원 소진시킨다.
- 동적 HTTP Request Flooding 공격
- 웹 방화벽 차단 기법을 우회하기 위해 지속적으로 요청 페이지를 변경하여 웹페이지를 요청
2) HTTP Header/Option Spoofing Flooding 공격
2-1) Slow HTTP POST DoS
- POST 지시자를 통해서 서버에 전송할 다량의 데이터를 장시간에 걸쳐 분할 전송
- 서버는 POST 데이터를 모두 수신하지 않았다고 판단하여 연결을 장시간 유지하기 때문에 부하가 발생한다.
2-2) Slow HTTP Header DoS(Slowloris)
- 헤더 정보를 조작하여 구분할 수 없게 한다.
- 웹 서버는 아직 HTTP 헤더 정보가 전달되지 않아서 서버는 장시간 연결 유지
- 개행 문자, \r\n, 0x0D 0x0A
2-3) Slow HTTP Read DoS
- TCP 윈도우 크기 및 데이터 처리율을 감소시킨 후 HTTP 데이터를 송신
- 웹서버가 정상적으로 응답하지 못하도록 DoS 상태를 유발
- 서버는 정상으로 회복될 때까지 대기상태에 빠짐
3) HULK(Http Unbearable Load King) DoS
- 웹서버의 가용량(최대 접속 가능 클라이언트 수)을 모두 사용하도록 하여 정상적인 서비스가 불가능하도록 유도
- GET Flooding 공격 중 하나이다.
4) SIP(Session Initiation Protocol) Flood
- 하나의 INVITE request 메시지가 상당한 양의 자원을 소모하게 한다는 것을 이용
- 수많은 INVITE request를 위조된 시작 주소에 넣어 전송하는 공격
- SIP Proxy 서버에 부하
- SIP: VoIP 전화 연결에 많이 사용하는 프로토콜
5. 유형에 따른 차단 정책
[대역폭 소진 공격 대응 방안]
- 공격 유형: UDP Flooding, ICMP Flooding
- 방화벽이나 웹서버 상단의 라우터 해당 프로토콜을 차단하는 ACL 정책 적용
- 공격 유형: TCP Flooding
- 프로토콜로 기준으로 차단하는 것에 한계가 있음
- Source IP별 PPS 임계치 설정
[웹서버 자원 소모 대응 방안]
- 공격 유형: SYN Flooding
- Source IP별 PPS 임계치 설정
- 패킷 헤더 검사를 통한 비정상적인 옵션 필드 가진 패킷 차단
- 공격 유형: Slow Header Flooding, Slow Data Flooding
- 완료되지 않은 연결 상태 유지
- 요청에 대한 타임아웃 설정
[DB 커넥션 부하 유발 대응 방안]
- 공격 유형: Get Flooding, Post Flooding
- 다량의 HTTP 요청으로 웹서버와 DB 연동에 부하
- 클라이언트 요청 수에 대한 임계치 초과하는 IP 차단
- HTTP 표준에 맞지 않는 필드 값을 차단 시그니처로 설정
참고)
https://kaite-story.tistory.com/64
https://gusudss.tistory.com/26
'Security > Network' 카테고리의 다른 글
[보안장비] 침입탐지시스템(IDS) 기능과 작동원리 (441) | 2021.10.27 |
---|---|
[Attack] 네트워크 기반 공격 – 분산 반사 서비스 거부 공격(DRDoS) (297) | 2021.10.26 |
[Attack] 네트워크 기반 공격 - 서비스 거부 공격(DoS) (319) | 2021.10.26 |
[보안장비] Snort 정의와 rule 설정 (285) | 2021.10.08 |
[Network] 방화벽(Fireware)에 대해서 (0) | 2020.09.18 |