概要

DDoS(Distributed Denial of Service:分散型サービス妨害)攻撃は、多数の踏み台(ボットネット)から大量のリクエストを送りつけてサービスを利用不能にする攻撃です。DoS(単一発信元)とDDoSは原理が同じですが、分散しているため発信元IPのブロックが困難です。SC試験ではフラッド攻撃・増幅攻撃・レイヤ別の対策が問われます。

攻撃の種類

ボリューム攻撃(帯域消費型)

大量のトラフィックで回線帯域を飽和させます。

DNS増幅攻撃(DNSリフレクション)

1. 攻撃者が送信元IPを被害者IPに偽装してDNSリゾルバに大きなDNS応答を返すクエリを送信
2. DNSリゾルバが巨大なDNS応答(1バイトのクエリで最大4,096バイトの応答)を被害者に返す
3. 増幅率:最大約50倍

NTP増幅攻撃:monlist コマンドで1つのパケットに対して大量の応答を生成(増幅率最大約556倍)

SSDP・Memcached増幅:Memcachedは51,000倍以上の増幅が記録されています。

DNS増幅攻撃(DNSリフレクション)の流れ
1
攻撃者
送信元IPを被害者IPに偽装
小さなDNSクエリを送信
2
DNSリゾルバ
偽装された送信元へ巨大なDNS応答を返す
1バイトのクエリで最大4,096バイト
3
被害者
大量の応答トラフィックを受信
増幅率は最大約50倍

プロトコル攻撃(リソース消費型)

SYNフラッド攻撃

通常のTCP3ウェイハンドシェイク:
クライアント → SYN → サーバ(接続待ち状態を作成)
クライアント ← SYN-ACK ← サーバ
クライアント → ACK → サーバ(接続確立)

SYNフラッド:
攻撃者 → 大量のSYN(偽装IPで)→ サーバ(半開き接続を大量作成)
サーバ ← SYN-ACKを返すが確認がない → タイムアウトまで接続テーブルが消費される

ICMP フラッド(Ping of Death・Smurf攻撃)UDP フラッド

アプリケーション攻撃(L7 DDoS)

少ないリクエスト数で高負荷を生じさせます。

攻撃名内容
HTTP フラッド大量のHTTP GETリクエストでWebサーバを過負荷
SlowlorisHTTPリクエストをゆっくり送り続けて接続を占有
スロービー攻撃レスポンスの読み取りを遅延させてサーバリソースを占有

防御技術

ネットワーク層の防御

技術説明
レート制限発信元IPやASNごとに送信レートを制限
IPブラックリスト既知の攻撃元IPをブロック
BCP38ISPレベルで送信元IPアドレスの偽装を防ぐフィルタリング
Null ルーティング攻撃対象のIPに向かうトラフィックを破棄
DDoS防御技術の全体構成
レート制限
IP/ASN単位で制限
IPブラックリスト
既知の攻撃元を遮断
BCP38
送信元IP偽装を防止
Nullルーティング
宛先トラフィックを破棄
Anycast
世界中のノードに分散
CDN/WAF
PoPで吸収・L7を検査
DDoS攻撃トラフィック
分散した踏み台から到達

インフラ層の防御

Anycast(エニーキャスト)

通常のユニキャスト:
クライアント → 特定の1つのIPアドレスに到達

Anycast:
同じIPアドレスを世界中のデータセンターが保有
クライアント → 最も近いデータセンターにルーティング
DDoSトラフィックが世界中に分散されることで1か所への集中を防ぐ

CDN(Content Delivery Network)

  • 世界中に分散されたPoPが攻撃トラフィックを吸収
  • Cloudflare・Akamai・AWS CloudFrontは大規模なDDoS軽減機能を提供
  • L7 DDoSはCDNのWAF機能と組み合わせて対処

SYNフラッド対策

技術仕組み
SYN Cookie接続テーブルを使わず、SYN-ACKにCookie(ハッシュ値)を埋め込む。ACKが来たらCookieを検証して初めてテーブルに登録
ファイアウォールのSYN制限単一IPからのSYNレートを制限

SC試験での頻出ポイント

  • DDoSとDoSの違い:DDoSは多数の発信元からの分散攻撃で発信元ブロックが困難
  • 増幅攻撃の仕組み:送信元IPを被害者に偽装(スプーフィング)し、小さなリクエストから大きなレスポンスを被害者に送らせる
  • SYNフラッドが危険な理由:半開き接続が接続テーブルを埋め尽くし正規接続を受け付けられなくなる
  • SYN Cookieの目的:接続テーブルを使わずにSYNフラッドへの耐性を確保
  • Anycastの防御効果:DDoSトラフィックを世界中のノードに分散させることで単一サーバへの集中を防ぐ

よくある誤問・ひっかけパターン

誤り① 「DDoS攻撃はIPブロックで完全に防げる」→ 。攻撃元IPは多数あり偽装もされるため、IPブロックだけでは対処できません。

誤り② 「Anycastは特定のクライアントを特定のサーバに固定する」→ 。Anycastは「最も近いノード」にルーティングします。固定されず、ネットワーク状況に応じて変わります。

誤り③ 「増幅攻撃は攻撃者の帯域が大きくないと成立しない」→ 。増幅攻撃の本質は「小さなリクエストで大きなレスポンスを被害者に送らせること」であり、攻撃者の帯域は少なくて済みます。

関連用語

重要キーワード

用語説明
DDoS分散型サービス妨害。複数の踏み台からの一斉攻撃
増幅攻撃小さなリクエストで大きなレスポンスを被害者に送らせる攻撃
SYNフラッド大量のSYNパケットでTCP接続テーブルを埋め尽くす攻撃
SYN Cookie接続テーブルを使わずSYNフラッドに耐える仕組み
Anycast同じIPを複数ノードが保有し最近傍にルーティングする手法
BCP38ISPレベルで送信元IPスプーフィングを防ぐベストカレントプラクティス