SYNフラッド攻撃 しんふらっどこうげき
簡単に言うとこんな感じ!
お店に「予約したい!」という電話をひたすらかけまくって、スタッフを全員電話対応で占領し、本当のお客さんが入れないようにする嫌がらせだよ。サーバーをこの手口で”つながらない状態”にする攻撃なんだ!
SYNフラッド攻撃とは
SYNフラッド攻撃(SYN Flood Attack)は、TCP通信の接続開始手順(スリーウェイハンドシェイク)の仕組みを悪用したDoS攻撃の一種です。攻撃者は大量の「接続要求(SYNパケット)」をサーバーに送りつけ、サーバーの接続待ちリソースを枯渇させることで、正規のユーザーがサーバーにアクセスできない状態を作り出します。
TCP通信では、クライアントとサーバーが「SYN → SYN-ACK → ACK」の3ステップで接続を確立します。SYNフラッド攻撃では、攻撃者はSYNパケットを大量に送った後、最後のACKを意図的に返さないことで、サーバーに「半開き状態の接続(ハーフオープン接続)」を大量に溜め込ませます。この状態が続くとサーバーのメモリや接続管理テーブルが埋め尽くされ、正規の接続要求を処理できなくなります。
1990年代から知られる古典的な攻撃手法でありながら、今日でもDDoS(分散型サービス妨害)攻撃の一形態として多用されています。特に攻撃者が送信元IPアドレスを偽装(IPスプーフィング) して送り込むケースが多く、追跡・遮断が難しい点が依然として課題です。
TCPスリーウェイハンドシェイクと攻撃の仕組み
SYNフラッド攻撃を理解するには、まず正常なTCP接続の流れを知る必要があります。
| ステップ | 送信元 | パケット種別 | 意味 |
|---|---|---|---|
| 1 | クライアント → サーバー | SYN | 「接続したいです」 |
| 2 | サーバー → クライアント | SYN-ACK | 「わかりました。準備できています」 |
| 3 | クライアント → サーバー | ACK | 「確認しました。通信開始します」 |
SYNフラッド攻撃では、ステップ3のACKが永遠に返ってこないため、サーバーはタイムアウトするまで「半開き接続」としてリソースを確保し続けます。
【正常な接続】
クライアント サーバー
| ──SYN──────→ | ← 接続要求
| ←──SYN-ACK── | ← サーバー応答
| ──ACK──────→ | ← 接続確立!
【SYNフラッド攻撃】
偽装IP① ──SYN──→ サーバー ← ACKが来ない…
偽装IP② ──SYN──→ サーバー ← ACKが来ない…
偽装IP③ ──SYN──→ サーバー ← ACKが来ない…
(大量に繰り返す)
→ 半開き接続でテーブルが満杯に
→ 正規ユーザーのSYNが処理できない!
覚え方:「返事待ちで立ったまま倒れる」
SYNフラッドは「返事待ちのサーバーを立ち尽くしで倒す」攻撃、と覚えましょう。飲食店で「席を取り置きして」と何百人もが電話してきて、全員キャンセル連絡なしで来ない……そのまま席が全部塞がって本物のお客さんが入れない状態そのものです。
ハーフオープン接続テーブルの枯渇
サーバーはOSレベルで「接続待ちキュー(バックログキュー)」を管理しています。このキューのサイズには上限があり、SYNフラッドによって上限に達すると新しいSYNを一切受け付けなくなります。
| 項目 | 内容 |
|---|---|
| 半開き接続の保持時間 | デフォルトで約75秒(OSにより異なる) |
| バックログキューの上限 | 数十〜数千エントリ(設定次第) |
| 攻撃に必要な帯域 | 比較的低帯域でも成立する |
| 効果が出る速度 | 秒単位でサービス不能になりうる |
歴史と背景
- 1994年頃 — TCPスタックの脆弱性として研究者が問題を認識し始める
- 1996年 — Phrack誌にSYNフラッドの技術的解説が掲載され、攻撃手法として広く知られるようになる
- 1996年 — 著名なセキュリティ研究者フィル・カーンズらがSYN Cookieによる対策を提唱
- 1997年 — RFC 2018 などを通じてTCPの堅牢化議論が加速
- 2000年代 — ボットネットを利用したDDoS型SYNフラッドが急増。個人では防ぎきれない規模に
- 2010年代以降 — クラウド型DDoS対策サービス(CDNやスクラビングセンター)が普及し、大規模攻撃への対抗手段が整備される
- 現在 — ランサムDDoSや競合妨害目的でのSYNフラッドが引き続き報告されており、攻撃量は年々増加傾向
主な対策技術と比較
SYNフラッド攻撃に対しては、複数の防御手法が組み合わせて使われます。
対策手法の比較
| 対策手法 | 仕組み | 導入コスト | 大規模攻撃への効果 |
|---|---|---|---|
| SYN Cookie | OS側で接続テーブル不要な認証 | 低(OS設定のみ) | 中 |
| ファイアウォールのレート制限 | 単位時間あたりのSYN数を制限 | 低〜中 | 中 |
| IPS/IDS | 攻撃パターンを検知・遮断 | 中 | 中 |
| クラウドDDoS対策サービス | 上流でトラフィックを洗浄 | 中〜高 | 高 |
| バックログキューの拡大 | タイムアウト短縮・キュー増加 | 低 | 低(根本対策ではない) |
SYNフラッドとその他のDoS攻撃との違い
| 攻撃種別 | 狙い | 特徴 |
|---|---|---|
| SYNフラッド | 接続管理リソースの枯渇 | 低帯域で成立しやすい |
| UDPフラッド | 帯域の占有 | 大帯域が必要 |
| HTTP Slowloris | HTTPスレッドの枯渇 | 非常に低速・低帯域 |
| 増幅攻撃(DNS/NTP) | 帯域増幅による攻撃 | 小さい送信で大きな被害 |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 793 | TCPの基本仕様。SYNフラッドが悪用するスリーウェイハンドシェイクを定義 |
| RFC 4987 | TCPのSYNフラッド攻撃とSYN Cookieによる対策の解説 |
| RFC 6528 | TCPシーケンス番号のランダム化によるなりすまし対策 |
| RFC 3552 | インターネットセキュリティのガイドライン(DoS攻撃への言及を含む) |
関連用語
- DoS攻撃 — サービスを妨害することを目的とした攻撃の総称
- DDoS攻撃 — 複数の踏み台を使って分散的にDoS攻撃を行う手法
- TCPスリーウェイハンドシェイク — TCP接続確立の3ステップ手順
- IPスプーフィング — 送信元IPアドレスを偽装する攻撃技術
- SYN Cookie — SYNフラッドに対抗するためのOS側の防御機構
- ファイアウォール — ネットワーク境界でトラフィックを制御するセキュリティ装置
- IPS/IDS — 不正侵入を検知・防止するセキュリティシステム
- ボットネット — マルウェアで乗っ取られた機器の集合。DDoSの踏み台に悪用される