DDoS 攻撃とは — 仕組み・種類・対策をわかりやすく解説 のサムネイル

DDoS 攻撃とは — 仕組み・種類・対策をわかりやすく解説

⏱ 約 16 分 view 151 like 0 LOG_DATE:2026-05-10
目次 / TOC

DDoS (Distributed Denial of Service) は「多数の送信元から大量の (一見正規な) リクエストを送り、標的のサービスを正規ユーザに使えない状態にする」攻撃。コードに脆弱性がなくても成立する数少ない攻撃クラスで、「正規リクエストの大群」と「攻撃」が原理的に区別不能なため、現代インターネットで最も解決が難しい問題の 1 つ。本稿は DoS との違い・3 分類・Reflection/Amplification・ボットネット・代表事件・防御の階層・被弾時の動きまでを通しで扱う。

▸ セキュリティ初学者へ — まずこの 3 つだけ

難しく見えても本質は次の 3 つだけ。(1) DDoS は 「正規ユーザに見える大量の通信」でサイトを混雑させて落とす攻撃。通信は 1 つ 1 つは合法的で、合計流量だけが問題 — だからパッチでは直らない。(2) 3 つの形がある: 帯域を埋める / TCP の状態を埋める / アプリの計算を埋める(3) 自社サーバ単体での対策には限界があるので、Cloudflare / AWS Shield / Akamai のような上流の事業者で受け止めるのが現代の正解。— ここを土台に各章を順に開いていけばいい。

01

DoS と DDoS — 1 vs N の根本的違い #

種類 送信元 主な特徴
DoS 1 つの送信元 古典的。Ping of Death / LAND attack など脆弱性ベース。送信元 IP のブロックで簡単に止められる
DDoS 数千〜数千万の送信元 現代主流。1 つずつ止めても無意味、踏み台 (botnet / 反射器) を消せない
DRDoS 送信元偽装 + 反射器 攻撃者は表に出ない。被害者からは「世界中の正規サーバから攻撃が来ている」ように見える

DoS は「1 人の攻撃者がコードの脆弱性を突く」モデル — Ping of Death (1996) のように「この特殊パケットを送るだけで対象 OS がクラッシュ」する類で、現代では大半が修正済み。DDoS は「コードが正しくても止められない」ため、本質的に異なる問題になる。「水道のホースを 1 万本同時に向けられる」 — 個々のホースは正常な水だが、合計流量が標的の処理能力を超える。

▸ かみ砕いて言うと — DDoS は「ラーメン屋に 1 万人同時に来る」

DoS は 「1 人がカウンターをハンマーで叩き壊す」 — 警備員 (IP block) で簡単に止められる。DDoS は 「1 万人の客が同時にラーメン屋に押しかけ、全員が普通に注文する」状態。客は誰も悪いことをしていないのに、店の処理能力を超えて他の客に出せなくなる。1 人ずつ追い返してもキリがないし、本当の客と区別もできない。だから 「上流の信頼できる事業者 (= 大型整理券配布所) に客を一旦預けて、店に流す数を制限してもらう」のが現代の DDoS 対策の発想。

02

なぜ本質的に難しい問題なのか #

DDoS が「ベンダーがパッチを出せば終わり」にならない理由はインターネットの構造的問題にある。

  • Internet は「相互信頼」で設計された — どこからでもパケットが届くのが基本機能。「無関係な大量のパケットを止める」は後付けの戦い
  • 送信元 IP の偽装が可能 — UDP は接続を張らないため、送信元 IP を任意に詐称できる。BCP38 (RFC 2827) で ISP 側が偽装パケットを落とすべきだが、世界中の ISP の半分以下しか実装していない (CAIDA Spoofer Project)
  • アンプ可能なサーバが大量に放置されている — open DNS resolver, NTP monlist, memcached UDP 11211 など、設定不備のサーバが世界中に数百万台
  • IoT 機器のセキュリティが壊滅的 — デフォルト admin/admin の Wi-Fi カメラ・ルータが毎日新規に世界中で生まれるため、ボットネットの新規供給が止まらない
  • 「攻撃か正規ユーザか」が判別困難 — フラッシュセール開催で正規アクセスが 100 倍になることもあり、単純な閾値で切ると正規ユーザを落とす
▸ 自社で完璧にしても上流の問題は直せない

DDoS は「自社のサーバを完璧にしても、上流の経路や踏み台や送信元偽装の問題は自社で直せない」という構造を持つ。Cloudflare / AWS Shield / Akamai のような巨大事業者の anycast 網と容量で受け止める モデルが現実解になっているのはこの構造的問題への適応。

03

攻撃の 3 分類 — Volumetric / Protocol / Application #

DDoS は何を枯渇させるかで 3 つに大別される。それぞれ防御方法が違うので、種類を見分けることが対応の最初の判断。

▸ かみ砕いて言うと — 3 分類は「店のどこを溢れさせるか」

同じ「店を麻痺させる」攻撃でも、狙う場所が違う。① Volumetric (帯域) = 「店の入口の道路を車で詰まらせる」 — そもそも客が辿り着けない。② Protocol (TCP の状態) = 「受付に偽の名前で 10 万人並ばせる」 — 受付が満員で本物の客が登録できない。③ Application (アプリ) = 「全員が一番手間のかかる料理を注文する」 — 厨房 (= DB やアプリ) が回らない。どこが詰まっているかを最初に見分けるのが対応の第一歩。それぞれ対策の打ち手が全く違う。

① Volumetric ② Protocol ③ Application
枯渇対象 回線帯域 (Gbps〜Tbps) 状態テーブル (conntrack 等) アプリの計算/DB/接続資源
レイヤ L3 / L4 (IP, UDP) L3 / L4 (TCP, ICMP) L7 (HTTP, DNS, TLS)
単位 bps pps rps
代表攻撃 UDP flood / ICMP flood / DNS amplification SYN flood / Fragmentation / Smurf HTTP flood / Slowloris / HTTP/2 Rapid Reset
効く防御 anycast / BGP blackhole / scrubbing / ACL SYN cookies / conntrack 拡大 / SYN proxy WAF + bot management / rate limit / CAPTCHA / cache
  • Volumetric = 「水道管に水を流し過ぎて溢れさせる」(回線をパンクさせる)。家庭・中小企業の対策は本質的に上流任せ — 自社で 100 Gbps の攻撃は受けきれない
  • Protocol = 「受付のカウンタを未完了の客で埋める」(SYN flood で TCP ハーフオープン状態を作り尽くす)。SYN cookies で対応可能
  • Application = 「正規の手順で重い処理を要求する」(/search?q=xxx を毎秒 100 万回 / Slowloris で接続を握って放さない)。最も区別が難しい
▸ 現代の DDoS は複数を組合せる

1 GB/s の UDP flood で帯域を圧迫し、同時に 100 万 rps の HTTP flood をアプリに浴びせる「multi-vector attack」が標準。種類を見分け、それぞれに効く層へ振り分ける運用が必須。

規模感の比較 (2024 年公知の最大級) #

  • Volumetric: Cloudflare 5.6 Tbps (UDP 反射, 2024-10)
  • Protocol: 数百 Mpps (modern NIC で吸収可だが古い L4 LB は溶ける)
  • Application: Cloudflare HTTP/2 Rapid Reset 398 Mrps (2023-08, 過去最大の rps)
04

Reflection + Amplification — 桁違いの威力 #

DDoS が「Tbps 級」になる主な理由は Reflection (反射)Amplification (増幅) の組合せ。1 つの小さなクエリを送ると複数倍のデータが別のサーバから返ってくる性質を持つ UDP プロトコルが踏み台にされる。

▸ かみ砕いて言うと — 反射 + 増幅は「拡声器の悪用」

攻撃者は 「私は被害者です」と差出人を偽装した小さな手紙を、世界中の 「質問されると詳細な資料を送り返してくれるサーバ (= 拡声器)」に送る。サーバは騙されて、大量の応答を「被害者」宛に送り返す。攻撃者は表に出ず、被害者からは 「世界中の正規サーバから攻撃が来ている」ように見える。memcached の場合は 1 byte 送ると 51,200 byte 返ってくる = 5 万倍の増幅。攻撃者が 100 Mbps しか持っていなくても 5 Tbps の砲撃を生成できる、というのが Tbps 級 DDoS の正体。

1. 攻撃者が送信元 IP を被害者に詐称
UDP はコネクションレスなので 3-way ハンドシェイクの検証がない。攻撃者は「これは Victim から来た query です」と偽装した数十バイトのパケットを反射器へ送る。
2. 反射器 (DNS / NTP / memcached / CLDAP) が応答
反射器は「Victim から query が来た」と認識し、N 倍に膨らんだ response を Victim 宛に返す。攻撃者は表に出ない。
3. 被害者が大量応答を浴びる
Victim から見ると「世界中の正規サーバから攻撃が来ている」ように見える。送信元が膨大に分散しているのでブロックも困難。

主な amplification factor (BAF: 1 byte の query で何 byte の response) #

プロトコル 増幅率 ポート
memcached x 51,200 UDP/11211
NTP monlist x 556 UDP/123
CharGEN x 358 UDP/19
DNS (open resolver) x 28〜54 UDP/53
CLDAP x 56〜70 UDP/389
SSDP / UPnP x 30 UDP/1900
SNMP x 6 UDP/161
QUIC reflection x 12〜43 UDP/443
▸ なぜ UDP だけが反射に使われるか
  • UDP はコネクションレス → 送信元 IP をハンドシェイクで検証する段階がない
  • TCP は SYN-SYN/ACK-ACK の 3-way が必要 → 詐称送信元には ACK が返ってこないため反射できない
  • ISP の BCP38 / uRPF が効いていれば送信元偽装は防げるが、世界の半分以下の ISP しか実装していない
  • memcached の x51,200 は「2018 年 GitHub への 1.35 Tbps」を可能にした (memcached 開発側が UDP モードを完全削除)

「攻撃者は 100 Mbps の回線しか持っていなくても、x100 倍の amplifier を踏めば 10 Gbps を出せる」 — これが DDoS が個人レベルで実行可能になっている本体の理由。防御側の根本対策は「世界中の amplifier を閉じる」だが完全には消えない。Shadowserver FoundationOpen Resolver Project が常時スキャンして amplifier 一覧を運用者に通知し続けている。

05

ボットネット — DDoS の供給側 #

Reflection が「踏み台サーバ」を使うのに対し、ボットネットは「乗っ取った端末そのもの」を使う。Mirai (2016) がデフォルトパスワードのまま放置された Wi-Fi カメラ・ルータを数十万台規模で乗っ取った事件以降、IoT ボットネットが DDoS 供給の主力に。

▸ かみ砕いて言うと — ボットネットは「乗っ取られた家電の軍団」

家庭に置いてある Wi-Fi カメラ・ルータ・スマート家電は、デフォルトパスワード (admin/admin) のまま長期間放置されていることが多い。攻撃者は 世界中をスキャンしてこれらを次々に乗っ取り、自分の指揮下に置いた「ロボット (bot) の軍団」を作る (= ボットネット)。所有者は 自分の機器が攻撃に加担していることに気付かない — ネット接続が少し遅くなる程度。Mirai (2016) で 40 万〜60 万台の IoT が同時動員され Twitter / GitHub / Reddit を巻き込んで止めたのが、ボットネットの脅威を世界に知らしめた事件。家庭ルータのパスワードを変えるのは、こんなに大事な防衛行為。

典型構造 #

  • Loader / scanner — Internet 全体に対して 23/tcp (Telnet) / 22/tcp (SSH) / 7547/tcp (TR-069) などを brute force し、デフォルト認証情報リストでログイン試行
  • Implant (マルウェア) — 感染端末で常駐し、C2 サーバからの指示を待つ
  • C2 サーバ — IRC / HTTP / Tor hidden service / blockchain で次の攻撃先・方法を配信
  • 被害者を攻撃 — bot 群が一斉に SYN flood / HTTP flood / UDP flood を撃つ
ボットネット 主な感染源 規模 / 特徴
Mirai (2016) Wi-Fi カメラ・DVR (デフォルト admin/admin) 40 万〜60 万台。Krebs / Dyn 攻撃 → ソース公開で派生種が爆発
Mirai 派生 (Satori, Okiru, Reaper など) IoT 機器の脆弱性 数万〜数十万台規模が多数並行運用
Meris (2021) MikroTik ルータの脆弱性 25 万台、HTTP/2 で 21 Mrps
Mantis (2022) クラウド VM 乗っ取り (高品質ボット) 5,000 台で 26 Mrps の HTTP flood
Residential Proxy 業者 「無料 VPN」「ブラウザ拡張」 合法を装って収集した家庭 IP が攻撃にも使われる
▸ 近年の傾向は「数より質」

数十万台の IoT より、数千台の高速回線・データセンター VM の方が単純な rps では効率的。Mantis が 5,000 台で 26 Mrps を出した事例が象徴的。

06

過去 25 年の代表事件 #

事件 規模・特徴
2000 Mafiaboy (15 歳のカナダ人) Yahoo!, eBay, CNN, Amazon, Dell を停止。DDoS が一般メディアに登場した最初
2007 Estonia 攻撃 政府・銀行・メディアが 3 週間ダウン。国家規模 DDoS の最初の本格事例
2013 Spamhaus 300 Gbps、DNS amplification。Cloudflare が初めて防いだ大規模事例
2016 Mirai → Krebs (620 Gbps), Dyn (1.2 Tbps) Twitter / Reddit / GitHub / Netflix が同時に落ちる。IoT ボットネットの脅威が世界に知られる
2018 GitHub 1.35 Tbps (memcached amplification) memcached UDP の x51,200。数分で Akamai Prolexic に経路切替
2020 AWS 2.3 Tbps (CLDAP reflection) 公表されている中で過去最大級の Volumetric。AWS Shield Advanced が吸収
2021 Meris → Yandex 22 Mrps 当時最大の rps
2023 HTTP/2 Rapid Reset (CVE-2023-44487) Cloudflare 201 Mrps / Google 398 Mrps / AWS 155 Mrps を同時に被弾
2024 Cloudflare 5.6 Tbps UDP (Mirai 派生) 13,000 台の IoT で 80 秒間。L3/4 史上最大
2025 Cloudflare 7.3 Tbps 帯域型 DDoS の規模は毎年更新され続けている
▸ 「毎年最大記録が更新される」のが DDoS 業界の常態

防御側 (Cloudflare / Akamai / AWS) も急速に容量を拡張しており、2026 年時点で主要な scrubbing 事業者は単独で 100+ Tbps の吸収容量を持つ。

07

防御の階層 — 何を、どこで、どう止めるか #

DDoS 防御は多層的に組まれる。自社で全部やるのは現実的でなく、上流の事業者にどこまで投げるかがコスト設計の本質。

▸ かみ砕いて言うと — 個人サイトでもできる最低限

「自社で 1 Tbps を受け止める」は Google / AWS クラスでも厳しいので、個人サイト / 小規模サービスは「上流の事業者に守ってもらう」のが現実解。最低限やるべき 3 つ。(1) Cloudflare の無料プランを前段に置く — DNS を Cloudflare に向けるだけで anycast 網と DDoS 緩和が無料で付く。(2) Origin の IP を Cloudflare 経由でしかアクセスできなくする — 直撃を防ぐ重要なステップ (Origin の IP が漏れていると Cloudflare を回避されてしまう)。(3) アプリ側にも rate limiting — nginx の limit_req で API は 10 req/s に絞る。これだけで個人サイト向けの大半の DDoS は乗り切れる

何をするか 誰が提供
Anycast 網 攻撃トラフィックを世界中の POP に分散 Cloudflare, AWS Global Accelerator, Akamai
Scrubbing center 入ったトラフィックを「攻撃」と「正規」に分け、後者だけを origin に転送 Akamai Prolexic, Imperva, NTT, Verisign
CDN + WAF 静的コンテンツはエッジで返す + L7 フィルタで HTTP flood を弾く Cloudflare, AWS CloudFront + WAF, Fastly
BGP RTBH / FlowSpec 攻撃宛先の IP/プレフィックスを上流ルータでブラックホール ISP / Tier-1 キャリア
L4 LB / SYN proxy SYN cookies でハーフオープン状態にしない F5 BIG-IP, AWS NLB, HAProxy, nginx stream
OS 設定 net.ipv4.tcp_syncookies=1 / conntrack 上限拡大 Linux カーネル
アプリ層 rate limit IP / セッション / トークンごとの request 数上限 nginx limit_req, Cloudflare Rate Limiting
静的化 / circuit breaker 重い動的ページを cache + 過負荷時の自動 503 アプリ設計
Linux サーバ単体での最低限 (帯域以外)
$ sudo sysctl -w net.ipv4.tcp_syncookies=1 # SYN flood 緩和 $ sudo sysctl -w net.ipv4.tcp_max_syn_backlog=8192 # 受付バックログ拡大 $ sudo sysctl -w net.netfilter.nf_conntrack_max=2000000
nginx の rate limiting 設定
# /etc/nginx/conf.d/rate.conf limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s; location /api { limit_req zone=api burst=20 nodelay; ... }
Cloudflare API で攻撃時の Under Attack mode を即有効化
$ curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE/settings/security_level" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ --data '{"value":"under_attack"}'
08

被弾時の最初の 30 分 #

実際に DDoS を受けたときにやることはほぼ決まっている。事前にランブックを作っておくことが何より重要。

▸ 意識すべき — DDoS は「火事と同じ、事前準備が全て」

火事になってから消火器の場所を探す人はいない。DDoS も同じで、受けてから「Cloudflare に申し込もう」では遅い — DNS の伝播に時間がかかるし、攻撃中の判断ミスは致命的になる。(1) 平時に Cloudflare / AWS Shield 等を前段に立てておく(2) 「Under Attack mode を 1 クリックで有効化する手順」を文書化(3) 「攻撃 → 関係者連絡 → 顧客への status page 更新」のランブックを年 1 回訓練これを準備していたかどうかで、攻撃当日の被害規模が 10 倍違う

1. 被害確認
どのサービスが落ちているか / どの帯域・rps が異常か / origin 直撃か CDN 経由か。
2. 攻撃の種類を識別
tcpdump, NetFlow, CDN ダッシュボードで L3/L4 (UDP/SYN flood) か L7 (HTTP flood) かを確認。
3. CDN/WAF を防御モードに
Cloudflare の "Under Attack mode" / AWS Shield Advanced の Engagement Hotline / Akamai SOC へ連絡。
4. 送信元 IP/国の絞込み
攻撃元の集中地域があれば一時的に GeoIP block。
5. Origin の隔離
origin の IP を CDN 側 IP のみ許可に。直撃を防ぐ
6. rate limiting の厳しい設定
/api/* /login /search など重いエンドポイントを優先的に絞る。キャッシュも aggressive 化。
7. 法執行機関 / 顧客対応
被害規模が大きければ警察 / JPCERT / NICTER 通報。Status page 更新、SNS で進捗発表。
8. 事後分析
攻撃 IP リスト / amplifier の特定 / 追加防御策 / RTO・RPO の見直し。
▸ DDoS の最良の対策は事前準備

1 度受けてからカード払いで Cloudflare Enterprise に切り替えるより、普段から CDN/WAF を前段に立てて攻撃を受け流す経路を持っておくほうが圧倒的に安全。個人サイトでも Cloudflare の無料プランは L7 緩和に十分効く。

09

まとめ #

  • DDoS はコードに脆弱性がなくても成立する数少ない攻撃クラス。インターネットの open 設計と amplifier の遍在という構造的問題に根ざし、ベンダーパッチで解決できない
  • Volumetric (帯域) / Protocol (状態) / Application (アプリ資源) の 3 分類と、Reflection + Amplification が「桁違いの威力」を生むメカニズムを押さえると、ニュースで「N Tbps の DDoS」と聞いたとき何が起きたか組み立てられる
  • 防御の根本は「上流に投げる」 — Cloudflare / Akamai / AWS Shield のような anycast 網と scrubbing 容量を持つ事業者に守らせる。自社運用で 1 Tbps を受けきるのは Google / AWS クラスでも厳しい
  • 「DDoS 対策 = CDN/WAF を前段に置く」が現代インフラの最低基準。その後ろに OS の SYN cookies、アプリの rate limit、circuit breaker を多層で積み上げるのが 2026 年の標準形
𝕏 ポスト B! はてブ