DoS対策

DDoS 対策

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領域

対策

  1. 攻撃トラフィックを識別
    • サービスを破壊
      • トラフィック内容を識別
    • サービスを混雑
      • アクセス時間を記録
  2. 攻撃トラフィックを処理
    • 攻撃トラフィックを破棄
    • 攻撃IPを遮断
      • IPv4 IP数が限られているため、ブラックリストを作成しやすい
      • IPv6 IP数が多いので、ブラックリストを作成しにくい。IPv6のアドレスセグメントを使用できるが、誤遮断のリスクがある
    • アクセス頻度を制御

オープンソースツール

攻撃ツール

防御ツール

トラフィックモニタリング

  • 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トラフィックに関する情報を表示