
2026/09/10 0:55
Read the Docs を標的とした最近の DDoS 攻撃について理解する
RSS: https://news.ycombinator.com/rss
要約▶
日本語翻訳:
2026 年夏後半、Read the Docs はほぼ 10 日間続いた最も高度な DDoS 攻撃を受けました。この攻撃は毎分最大 550 万件のリクエスト(通常の基盤トラフィックの約 100 倍)を発信し、数百万の一意の IP アドレスを含む数百のグローバルネットワーク(住宅接続および主要ホスティングプロバイダーを含む)から高度に分散して行われました。また、防御を回避するために迅速に適応しました。攻撃者はキャッシュされていないリソース(404 エラーページやハードコードされた Nginx リダイレクトなど)を標的にし、署名ベースのフィルタを回避するためにランダム化された HTTP ヘッダーおよび TLS パラメータ(JA3/JA4)を使用するとともに、「ヨヨ」パターンを用いてレートリミットの閾値を発見した後撤退することで間欠的な劣化を引き起こしました。Cloudflare が既知のボットネットをブロックしたにもかかわらず、多くのリクエストが依然として内部のレート制限および WAF ルールに到達しました。Read the Docs は API 統合の破損やユーザーへの摩擦の導入を防ぐため、サイト全体での JavaScript チャレンジを実行することを意図的に避けていました。この事象は、適応的かつ分散型の脅威に対して IP ブロックと単純な署名一致だけでは不十分であることを示しています。主な推奨事項には、以前無視していた 404 ページやリダイレクトを含むすべてのリソースを積極的にかつ徹底的にキャッシュし、基本的なルールセットを超えて防御を強化して急速に進化する攻撃に対応することなどが含まれます。
本文
Read the Docs による巨大 DDoS 攻撃への対応と防御戦略レポート
概要:2026 年 6 月の攻撃事情
2026 年 6 月中旬から下旬に、Read the Docs は過去最大かつ最も高度な分散型サービス拒否(DDoS)攻撃に直面しました。
- 被害の規模: ピーク時に1 分間に 550 万件を超えるリクエストがインフラへ集中し、平常時の約100 倍の負荷が発生しました。
- 継続期間: 影響は約10 日間にわたり続きました。
- 攻撃の特徴:
- 単なるトラフィック洪水ではなく、高度な分散化と急速な適応能力を備えていました。
- キャッシュ回避経路(404 エラーや一時的なリダイレクト)を意図的に標的としていました。
小規模な運用チームが通常業務に戻った今、攻撃メカニズム、既存防御策の限界、および可用性維持に寄与した戦略について解説します。
DDoS 攻撃の進化と新たな脅威
Read the Docs は長年、スパイダーやボットに対して寛容でしたが、約 2 年前から AI クローラーの一般化により被害が増加しています。
主な特徴
- 莫大なトラフィック量: 通常(月間ピーク)の 10 倍以上、分間に 550 万件規模。
- グローバルな分布: 数百万のユニーク IP から、世界中の数百の ASN を含む悪意あるリクエストを検出。
- ヘッダーと TLS のランダム化: JA3/JA4 フィルタ回避のために、HTTP ヘッダーと TLS パラメータを体系的にランダム化。
- 自動化された CDN 防御の限界: Cloudflare の自動保護は一部のみ軽減し、残りは自社のレート制限/WAF に到達。
- キャッシュ回避: ユニークなパスを持つ存在しないページ(404)や一時的なリダイレクト(302)を狙う。
- 適応的な行動: ブロックを検知すると周波数を調整し、ターゲットを切り替え、防御境界を探る。
攻撃の影響範囲
- 真にグローバル: 国や IP ブロックに偏らず、世界中から同時にアクセスが到来。分散型攻撃を制限しつつ正当なユーザーを守るのは極めて困難。
- 全サービスへの影響: コミュニティドキュメントだけでなく、商用ホスティングも標的とされました。
- インフラの圧迫: ハードコーディングされた Nginx リダイレクトが数千 req/sec 以上の流量で過負荷となり、リクエストドロップを誘発。
なぜ「Under Attack Mode」を採用しなかったのか?
正当なユーザー全員に対して JavaScript チェallenge を提示(Cloudflare Under Attack Mode)する選択肢がありましたが、採用せず、以下の方針をとりました。
- 理由: API インテグレーションの崩壊や、数十万人の読者への不具合を防ぐため。
- 代替策: レート制限、ターゲット化されたチェallenge、積極的なキャッシング、エッジ機能の拡張に依存。
防御策への適応と運用フロー
Read the Docs は Cloudflare と Terraform を活用した多層的な防御を構築しています。
攻撃開始時の対応
- 初期発見: 攻撃は特定のドメインから始まり、エッジでキャッシュされていない302 リダイレクト(Python バックエンド経由)が標的にされました。
- 即座の移行:
- 運用チームへのアラート後、約半時間以内にリダイレクト処理を自サーバーからCloudflare エッジへ移行。
- これによりキャッシュ切れによるユーザーへの影響を最小化。
「ヨーヨーパターン」への対策
攻撃はレート制限の閾値を探るため、上昇→後退を繰り返す「ヨーヨー(Yo-Yo)」パターンの変動を示しました。
- 目的: 自動スケーリングのコスト最大化と間欠的なサービス劣化の誘発。
- 対策: Cloudflare エッジでのキャッシング強化により、このパターンによるインフラ負荷を抑えました。
巨大トラフィック量への防御:Defense-in-Depth
数百万リクエスト/分の洪水に対抗するためには、単一機能ではなく以下を組み合わせたアプローチが必要です。
1. エッジキャッシング
- 戦略: CDN を採用し、オリジンサーバーへのアクセス数を最小化。
- 課題と解決:
- 攻撃者はキャッシュ切れの瞬間を探りましたが、非常に短いライフサイクル(Cache-Control ヘッダー利用) のキャッシュレスポンスでも防御に効果的。
- Slack 通知で未キャッシュリクエストが閾値(4 万 5 千件/分)を超えたら即座に対応する体制を維持。
2. レート制限とフィンガープリンティング
- 方針: JavaScript チェallenge は最後の手段とし、ボット確率スコア + IP 単位制限によるターゲット化ルールを採用(Terraform で管理)。
- 判断基準: 悪意あるトラフィックを少しでも通過させても許容し、真のユーザーへの摩擦を減らす。
リクエスト特徴に基づく制限対象
防御は送信元(IP/国)ではなく、リクエスト自体の特徴に焦点を当てます。
| 項目 | 検出基準と対策 |
|---|---|
| TLS・暗号スイート異常 | ブラウザとは異なる自動スクレイパーの挙動を検出(Cloudflare ボット検出機能活用)。 |
| 不良リクエスト過多 | 200 レスポンスではなく、リダイレクト/404 が多数見える場合、ブラウザフィンガープリントや ASN 全体に対する制限(「ペナルティボックス」)を適用。これが攻撃軽減の最大の要因。 |
| プロトコル不整合 | User-Agent と HTTP バージョンの不整合を検出(今回の攻撃は HTTP/2, 3 使用で検出しにくかった)。 |
| クライアントフィンガープリント | JA4 フィンガープリントをベースにするも、TLS ランダム化のため有効性低。 |
| IP ブロック分類 | 主要クラウド ASN は高制限値とし、住宅/小規模ホスティングには厳しい制限を課す。 |
ユーザーへの配慮:脱出口の確保
- 原則: 正当なユーザーに対する「アウトライght ブロック」や「バン」は非常に稀。
- 最悪ケース: JavaScript チェallenge をクリアすれば、翌日以降再チャレンジされる可能性は極めて低い。
- ** philosophy**: 真のユーザーを犠牲にするか、攻撃者の一部を受け入れるかの判断で後者を採択。
経験から得られた教訓と要点
2026 年 6 月の攻撃を通じて確認された重要な事実です。
- IP ブロック化は時代遅れ: プロキシを介したボットネットに対し、単なる IP バックは無意味。ASN、ホスト名など広範な範囲への制限が必要。
- 積極的にキャッシュする:
- 静的ファイルだけでなく、404 エラーや一時的なリダイレクトもキャッシュ対象にすべき。
- 短いキャッシュウィンドウ(数分)でもインフラ攻撃を防止できる。
- キャッシュミスの表面を保護: 動的リダイレクトや検索エンドポイントなど、意図的にキャッシュできないパスもエッジで処理・制限する。
- ターゲット化されたチェallenge の有効性: ボット管理ヒューリスティクスとレート制限を組み合わせることで、ユーザー体験を損なわず攻撃を緩和可能。
- Infrastructure as Code(IaC)の重要性: Terraform を活用したエッジ/WAF ルールの管理により、フィルタリングルールのレビュー・テスト・バージョン管理が迅速かつ安全に実施可能。
結論:「延期された休息」への展望
現在も背景トラフィックは確認されますが、インフラストラクチャは以前よりはるかに堅固です。 AI ツールとプロキシネットワークの進化により、DDoS は大企業のみならず、高プロフィールな公共サービスのバース(標準) となっています。
- 現状認識: 「攻撃が過去のものになった」のではなく、「延期された休息(reprieve)」 と捉える。
- 未来への姿勢: 運用チームは再び安眠できつつありますが、常時警戒と適応的な防御の継続が必要です。