DoS対策
Categories:
DDoS 対策
2種類の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 スローポスト攻撃 | 正規接続を作成後、非常に遅い速度で大量データを送信し、サーバーリソースを枯渇させる | サービスのダウングレード |
| Challenge Collapsar (CC) attack チャレンジCollapsar (CC)攻撃 | 標準的な正規リクエストを頻繁に送信し、大量のメモリを消費する検索エンジンなどのリソースを占有 | サービスのダウングレード、コンテンツ識別 |
| ICMP flood インターネット制御メッセージプロトコル (ICMP) フラッド | 大量のping/エラーピングパケット /Ping of death(不正なpingパケット) | サービスのダウングレード |
| 永久サービス拒否攻撃 Permanent denial-of-service attacks | ハードウェアを対象とした攻撃 | コンテンツ識別 |
| 反射攻撃 Reflected attack | 第三者にリクエストを送信し、偽装されたアドレスを使用して返信を実際の被害者に誘導 | DDoS領域 |
| Amplification 拡大 | 一部のサービスを反射器として利用し、トラフィックを増幅 | DDoS領域 |
| Mirai botnet ミライボットネット | 制御されたIoTデバイスを利用 | DDoS領域 |
| SACK Panic サックパニック | 最大セグメントサイズと選択的確認を利用して、再送を引き起こす | コンテンツ識別 |
| Shrew attack シュリュー攻撃 | TCP再送タイムアウトメカニズムの弱点を利用し、短時間の同期トラフィックバーストを使用して同じリンク上のTCP接続を中断 | タイムアウト破棄 |
| スローリード攻撃 Slow Read attack | スローポストと類似し、正規リクエストを送信した後非常に遅く読み取り、接続プールを枯渇させる。TCP受信ウィンドウサイズに非常に小さな数値を通知することで実現 | タイムアウト切断、サービスのダウングレード、ブラックリスト |
| 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 IP数が多いので、ブラックリストを作成しにくい。IPv6のアドレスセグメントを使用できるが、誤遮断のリスクがある
- アクセス頻度を制御
オープンソースツール
攻撃ツール
https://github.com/palahsu/DDoS-Ripper- 162 forks, 755 stars
- https://github.com/MHProDev/MHDDoS
- 539 forks, 2.2k stars
- MHDDoS - DDoS攻撃スクリプト 40のメソッド付き
- 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-like license
- 415 forks, 1.8k stars
- Python
- ネットワーキングのスイスアーミーナイフ
- 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.2k forks, 8.2k stars
- Python, C
- Python用クロスプラットフォームプロセス・システムモニタリングライブラリ、ネットワークモニタリングも可能
- https://github.com/iptraf-ng/iptraf-ng
- GPL-2.0 License
- 22 forks, 119 stars
- C
- IPTraf-ngはLinux用コンソールベースのネットワークモニタリングプログラムで、IPトラフィックに関する情報を表示