DoS 방어
Categories:
DDoS 방어
두 가지 DoS 공격 방식:
- 서비스를 충돌시킴
- 네트워크를 혼잡하게 함
공격 유형
| 공격 유형 | 공격 방식 | 대응 방식 |
|---|---|---|
| Distributed DoS | 여러 대의 독립 IP 머신이 동시에 공격 시작 | 1. 서비스 다운그레이드 2. 블랙리스트 3. 네트워크 장비 차단 |
| Yo-yo attack (요요 공격) | 자동 확장 자원 기능을 가진 서비스에 대해 자원 감소 간격에 공격 수행 | 블랙리스트 |
| Application layer attacks (애플리케이션 계층 공격) | 특정 기능이나 특성에 대한 공격, LAND 공격이 이에 해당 | 블랙리스트 |
| LANS | 특별히 구성된 TCP SYN 데이터 패킷을 사용해(일반적으로 새로운 연결을 시작하는 데 사용됨) 목표 머신이 자체 IP 주소를 소스 및 목적지 주소로 하는 빈 연결을 열게 하여 지속적인 자기 응답으로 시스템 자원을 소모해 충돌시키는 공격. 이 공격 방식은 SYN 플러드 공격과 같지 않음 | 블랙리스트 |
| Advanced persistent DoS (고급 지속적 DoS) | 반侦察/목표 명확/회피 대응/장시간 공격/대규모 연산/멀티스레드 공격 | 서비스 다운그레이드 |
| HTTP slow POST DoS attack (느린 POST 공격) | 정상적인 연결을 생성한 후 매우 느린 속도로大量 데이터를 전송해 서버 자원을 소진 | 서비스 다운그레이드 |
| Challenge Collapsar (CC) attack (도전 Collapsar 공격) | 표준 정상 요청을 빈번하게 전송해 더 많은 자원을 차지하는 요청, 예를 들어 검색 엔진은 대량의 메모리를 차지함 | 서비스 다운그레이드, 콘텐츠 식별 |
| ICMP flood (ICMP 플러드) | 대량의 ping/오류 ping 패킷 /Ping of death(변형 ping 패킷) | 서비스 다운그레이드 |
| 영구 거부 서비스 공격 (Permanent denial-of-service attacks) | 하드웨어 공격 | 콘텐츠 식별 |
| 반사 공격 (Reflected attack) | 제3자에게 요청을 보내 위조된 주소를 통해 회신을 실제 피해자에게 유도 | ddos 범주 |
| Amplification (증폭) | 일부 서비스를 반사기로 이용해 트래픽을 증폭 | ddos 범주 |
| Mirai botnet (미라이 봇넷) | 제어된 IoT 디바이스 이용 | ddos 범주 |
| SACK Panic (SACK 패닉) | 최대 세그먼트 크기와 선택적 확인을 조작해 재전송 유발 | 콘텐츠 식별 |
| Shrew attack (사납게 공격) | TCP 재전송 타임아웃 메커니즘의 약점을 이용해 짧은 동기화 트래픽 버스트로 동일 링크상의 TCP 연결을 차단 | 타임아웃 폐기 |
| Slow Read attack (느린 읽기 공격) | 느린 POST와 유사하게 정상 요청을 보내 매우 느리게 읽어 연결 풀을 소진, TCP Receive Window 크기에 매우 작은 숫자를 알림으로써 구현 | 타임아웃 차단, 서비스 다운그레이드, 블랙리스트 |
| SYN flood (SYN 플러드) | 대량의 TCP/SYN 데이터 패킷을 보내 서버에 반개방 연결을 발생 | 타임아웃 메커니즘 |
| TearDrop attacks (TearDrop 공격) | 중복되고 초과 크기의 페이로드를 가진 손상된 IP 조각을 목표 머신에 전송 | 콘텐츠 식별 |
| TTL 만료 공격 | TTL 만료로 패킷이 폐기될 때 라우터 CPU가 ICMP 타임아웃 응답을 생성하고 전송해야 함. 이런 응답을 많이 생성하면 라우터 CPU를 과부하 | 트래픽 폐기 |
| UPnP 공격 | DNS 증폭 기술을 기반으로 하지만 공격 메커니즘은 UPnP 라우터로, 외부 소스의 요청을 다른 소스로 전달해 UPnP 행동 규칙을 무시함 | 서비스 다운그레이드 |
| SSDP 반사 공격 | 일부 주거용 라우터를 포함한 많은 디바이스가 UPnP 소프트웨어에 취약점을 가지고 있어 공격자가 포트 1900에서 선택한 대상 주소로 응답을 받을 수 있음 | 서비스 다운그레이드, 포트 차단 |
| ARP 스푸핑 | MAC 주소를 다른 컴퓨터나 게이트웨이(예: 라우터)의 IP 주소와 연관시켜 원래 진짜 IP로 사용되는 트래픽을 공격자에게 재라우팅해 서비스 거부를 야기 | ddos 범주 |
방어 조치
- 공격 트래픽 식별
- 서비스 파괴
- 트래픽 내용 식별
- 서비스 혼잡
- 방문 시간 기록
- 서비스 파괴
- 공격 트래픽 처리
- 공격 트래픽 폐기
- 공격 IP 차단
- IPv4 IP 수가 제한적이므로 블랙리스트를 쉽게 생성 가능
- IPv6는 수가 많아 블랙리스트를 생성하기 어려움. IPv6 주소 구간을 사용할 수 있지만 잘못 차단될 위험이 있음
- 접근 빈도 제어
오픈소스 도구
공격 도구
https://github.com/palahsu/DDoS-Ripper- 162 forks, 755 stars
- https://github.com/MHProDev/MHDDoS
- 539 forks, 2.2k stars
- MHDDoS - 40가지 방법을 사용하는 DDoS 공격 스크립트
- https://github.com/NewEraCracker/LOIC
- 539 forks, 1.9k stars
- C#
- 네트워크 스트레스 툴
- https://github.com/PraneethKarnena/DDoS-Scripts
- 165 forks, 192 stars
- C, Python
- https://github.com/theodorecooper/awesome-ddos-tools
- 46 stars
- ddos 도구 모음
방어 도구
- https://github.com/AltraMayor/gatekeeper
- GPL-3.0 License
- 159 forks, 737 stars
- C, Lua
- Gatekeeper는 최초의 오픈소스 DoS 보호 시스템
https://github.com/Exa-Networks/exabgp- Apache 유사 라이선스
- 415 forks, 1.8k stars
- Python
- 네트워킹을 위한 BGP 스위스 육군 나이프
- https://github.com/curiefense/curiefense
- Apache 2.0 License
- 60 forks, 386 stars
- 애플리케이션 계층 보호
- 사이트, 서비스, API 보호
- https://github.com/qssec/Hades-lite
- GPL-3.0 License
- 24 forks, 72 stars
- C
- 커널 수준 Anti-ddos 드라이버 프로그램
- https://github.com/snort3/snort3
- GPL-2.0 License
- 372 forks, 1.4k stars
- 차세대 Snort IPS (침입 방지 시스템)
- C++
트래픽 모니터링
- https://github.com/netdata/netdata
- GPL-3.0 License
- 5.2k forks, 58.3k stars
- C
- https://github.com/giampaolo/psutil
- BSD-3-Clause License
- 1.2 forks, 8.2k stars
- Python, C
- Python용 크로스 플랫폼 프로세스 및 시스템 모니터링 라이브러리, 네트워크 모니터링 포함
- https://github.com/iptraf-ng/iptraf-ng
- GPL-2.0 License
- 22 forks, 119 stars
- C
- Linux용 콘솔 기반 네트워크 모니터링 프로그램으로 IP 트래픽에 대한 정보를 표시