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 (CC) 攻擊 | 將標準合法請求頻繁發送,該請求會佔用較多資源,比如搜尋引擎會佔用大量的記憶體 | 降級服務,內容識別 |
| ICMP flood Internet 控制訊息協定 (ICMP) 洪水 | 大量 ping/錯誤 ping 包 /Ping of death(malformed ping packet) | 降級服務 |
| 永久拒絕服務攻擊 Permanent denial-of-service attacks | 對硬體進行攻擊 | 內容識別 |
| 反射攻擊 Reflected attack | 向第三方發送請求,通過偽造地址,將回覆引導至真正受害者 | ddos 範疇 |
| Amplification 放大 | 利用一些服務作為反射器,將流量放大 | ddos 範疇 |
| Mirai botnet 僵屍網路 | 利用被控制的物聯網設備 | ddos 範疇 |
| SACK Panic 麻袋恐慌 | 操作最大段大小和選擇性確認,導致重傳 | 內容識別 |
| Shrew attack 泼婦攻擊 | 利用 TCP 重傳逾時機制的弱點,使用短暫的同步流量突發中斷同一鏈路上的 TCP 連接 | 逾時丟棄 |
| 慢讀攻擊 Slow Read attack | 和慢 post 類似,發送合法請求,但讀取非常慢, 以耗盡連接池,通過為 TCP Receive Window 大小公告一個非常小的數字來實現 | 逾時斷連,降級服務,黑名單 |
| SYN flood SYN 洪水 | 發送大量 TCP/SYN 數據包, 導致伺服器產生半開連接 | 逾時機制 |
| 泪珠攻擊 Teardrop attacks | 向目標機器發送帶有重疊、超大有效載荷的損壞 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 - DDoS Attack Script With 40 Methods
- https://github.com/NewEraCracker/LOIC
- 539 forks, 1.9k stars
- C#
- network stress tool
- https://github.com/PraneethKarnena/DDoS-Scripts
- 165 forks, 192 stars
- C, Python
- https://github.com/theodorecooper/awesome-ddos-tools
- 46 stars
- collection of ddos tools
防禦工具
- https://github.com/AltraMayor/gatekeeper
- GPL-3.0 License
- 159 forks, 737 stars
- C, Lua
- Gatekeeper is the first open source DoS protection system.
https://github.com/Exa-Networks/exabgp- Apache like license
- 415 forks, 1.8k stars
- Python
- The BGP swiss army knife of networking
- https://github.com/curiefense/curiefense
- Apache 2.0 License
- 60 forks, 386 stars
- Application-layer protection
- protects sites, services, and APIs
- 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
- next generation Snort IPS (Intrusion Prevention System)
- 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
- Cross-platform lib for process and system monitoring in Python, also network monitoring
- https://github.com/iptraf-ng/iptraf-ng
- GPL-2.0 License
- 22 forks, 119 stars
- C
- IPTraf-ng is a console-based network monitoring program for Linux that displays information about IP traffic.