要約

  • Akamaiは、2004年6月15日、同社ネットワークへの攻撃によってサービス妨害が生じ、顧客のおよそ4%が短時間のサービス提供遅延を経験したと開示した。[1]
  • 公開記録は、攻撃規模、正確な継続時間、パケットの発信源やベクトル、顧客名、地域、対象プレフィックス、経路変更、具体的な緩和方式を明らかにしていない。
  • 分散エッジでは、DNSの応答、リクエスト割当、BGP到達性、ピアリングとトランジットの容量、エッジの健全性、外部プローブの観測を、共通の時刻基準で突き合わせる必要がある。
  • フェイルオーバーは、それ自体では耐障害性の証明にならない。トラフィックの移動先に十分な容量がなければ、障害を封じ込めるのではなく別の拠点へ移送するだけになり得る。
  • 「顧客のおよそ4%」という数値には、分母、遅延判定、観測期間、顧客と技術対象の対応関係、重複排除、不確実性処理を再現できる算定方法が必要である。
  • 説明責任は、Akamaiだけに無限定の責任を負わせることではない。プラットフォーム、トランジット、アクセス網、再帰リゾルバー、緩和事業者、顧客オリジンの各制御境界を明確にすることである。
  • 後年のIETF文書は、分散DNS、Anycast、DDoS、経路撤回、負荷移送の技術的な論点を整理するために有用だが、2004年当時のAkamaiの非公開実装を証明するものではない。
  • 最終的な基準は稼働中のネットワークである。設計図や「分散」という名称ではなく、実際の名前解決、経路、容量、制御変更、利用者到達性を結び付けた記録が、影響範囲と復旧の妥当性を支える。

短い開示が生んだ重い証明課題

この事象について最も優先すべき一次記録は、Akamaiの2004年第3四半期Form 10-Qである。同社は、2004年6月15日、ハッカーによる同社ネットワークへの攻撃からサービス妨害が生じ、顧客のおよそ4%が短時間のサービス提供遅延を経験したと開示した。また、攻撃はAkamaiの顧客である複数の著名なウェブサイトを標的にしたと考えていること、再発の可能性を低減し、同様の攻撃による影響を緩和するための措置を講じたことも述べている。[1]

この開示から直接確認できるのは、日付、事業者、サービス妨害という事象、顧客単位のおおよその影響割合、短時間の遅延という定性的な症状、標的に関する会社の認識、そして事後措置の存在である。そこから先は慎重でなければならない。

公開資料は攻撃トラフィックの規模を示していない。開始時刻と終了時刻、プロトコル、送信元の分布、反射や増幅の有無、対象となった顧客名、地域、エッジ拠点、DNS名、IPプレフィックス、BGPの変更、フィルタリングやスクラビングの方式も明らかにしていない。したがって、この事件を「全世界的な停止」「正確に何時間続いた障害」「DNSだけの障害」「特定のAnycast経路撤回による復旧」と記述することはできない。

同様に、Akamaiが再発可能性と影響の低減に向けた措置を講じたという記述は、何らかの対応が行われたことを支えるが、その内容までは示さない。容量増強だったのか、監視やフィルタリングだったのか、DNSまたは配信先選択の変更だったのか、上流事業者との調整だったのか、運用手順の改定だったのかは公開記録から判断できない。

しかし、詳細が開示されていないからといって、運用上の分析が不可能になるわけではない。むしろ、事実と推測を分離し、どの記録があれば開示された境界を検証できるのかを明確にする必要がある。

「およそ4%」は小さく見える一方で、無視できるほど曖昧な表現ではない。そこには分母と分子があり、何らかの顧客識別と影響判定が存在したはずである。「短時間の遅延」にも、観測期間と正常時との差分が必要になる。分散ネットワーク事業者がこのような限定的影響を公表するなら、説明責任の中心は、その境界を稼働中ネットワークの記録から再現できるかに移る。

これは法的責任を断定する議論ではない。公開資料だけでは、過失、契約違反、欺罔、隠蔽、または特定当事者の不適切な行為を認定できない。ここで扱うのは、分散ネットワークの運用者が、自ら公表した影響範囲を技術的に裏付けるために保持すべき証拠である。

分散アーキテクチャは「動いていた」という証拠ではない

当時のAkamaiの企業資料は、同社サービスが単一のデータセンターに閉じたものではなかったことを示している。サーバーとソフトウェアは多数のネットワークや国に分散され、DNSや独自のリクエストルーティング機構を用いて、利用者の要求を適切な配信先へ向ける構成が説明されていた。ネットワークやサーバーの状態を監視し、代替またはバックアップ機構を持つことも記載されている。[4][5][6][7]

ただし、アーキテクチャの説明は、2004年6月15日に各機構が設計どおり動作したという証拠ではない。設計資料は「何を意図していたか」を示す。インシデント記録は「実際に何が起きたか」を示す。この二つを混同すると、分散しているという事実そのものが耐障害性の証明であるかのように見えてしまう。

単一拠点型のサービスであれば、調査対象は入口回線、ロードバランサー、フロントエンド、アプリケーション、ストレージ、オリジンなど、比較的限定された経路に収まることがある。分散エッジでは、その前後に複数の判断層が加わる。

利用者は名前解決を行い、その結果や関連する制御によって配信先候補へ導かれる。リクエストルーティングは、ネットワーク状態、サーバー状態、地理的またはトポロジー上の条件などを材料として宛先を選ぶ場合がある。選ばれた宛先に対して、インターネットの経路制御が実際にパケットを届けなければならない。ピアリングやトランジットには、正当なトラフィックと攻撃トラフィックを扱うだけの実効容量が必要である。エッジのプロセスは接続を受け、要求を処理し、必要であれば顧客オリジンや他の依存先へアクセスする。

分散は、局所的な障害を切り離せるという点で強力である。ある場所に集中した負荷が、必ずしもすべての場所を止めるわけではない。正常な拠点へ利用者を移動できれば、影響を局所化できる。

一方で、分散は説明すべき制御判断を増やす。代替拠点が存在したというだけでは足りない。利用者がその拠点を名前解決上選択できたのか、その経路に到達できたのか、受け側に余剰容量があったのか、移動によって別の依存関係が飽和しなかったのかを示さなければならない。

Akamaiの開示では、報告された影響は全顧客ではなく、およそ4%に限定されている。その境界は、攻撃の局所化が成功した結果かもしれないし、顧客ごとのトラフィック量、設定、ネットワーク経路、エッジ容量、計測範囲の違いによるものかもしれない。複数の要因が重なった可能性もある。公開記録は、そのいずれかを選べるだけの詳細を提供していない。

それでも、必要な証拠の構造は示せる。DNSと配信先選択が利用されたなら、利用者が実際に受け取った応答と割当先を確認する必要がある。多数のネットワークにサーバーが配置されていたなら、BGP、ピアリング、トランジットを通じた到達性を確認しなければならない。監視結果が制御判断に使われたなら、判断時点でどの状態が観測されていたかを残す必要がある。代替機構が作動したなら、開始時刻、対象、受け側容量、停止条件、利用者への効果を示す必要がある。

分散配信を一枚の可用性グラフに畳み込まない

分散エッジのインシデントでは、「サービスは稼働していたか」という一つの質問だけでは不十分である。少なくとも、次の制御面を分離して扱う必要がある。

制御面 運用上の問い 必要な証拠
DNSと名前空間 利用者は、どの名前に対して、どの配信先または別名を、いつ受け取ったか 権威DNSのログ、応答サンプル、応答コード、遅延、TTL等のキャッシュ関連値、委任状態、観測地点
リクエストルーティング なぜ特定の要求がそのエッジへ割り当てられたか 判断ログ、健全性入力、ポリシー、設定版、判断時刻
BGP到達性 選ばれたエッジへインターネット経路上で到達できたか 広告・撤回、経路選択、外部コレクター、ルーター状態、データプレーン測定
ピアリングとトランジット 利用可能な経路に実効的な余裕があったか インターフェースカウンター、フロー、損失、キュー、輻輳、上流事業者との連絡記録
エッジ健全性 選択されたサービス実体が要求を正しく処理できたか レイテンシ、成功率、エラー、キュー、接続数、資源圧力、オリジン取得結果
緩和制御 どの制御を、どこで、何の目的で適用したか 操作記録、ルール状態、適用範囲、開始時刻、期待効果、ロールバック条件
顧客・オリジン依存 顧客設定やオリジン到達性が結果に影響したか プロパティ対応表、オリジン取得、設定履歴、依存先の状態
外部到達性 事業者の外から利用者経路はどう見えたか 分散プローブ、再帰リゾルバー観測、合成トランザクション、外部経路観測、顧客報告
影響算定 「およそ4%」をどう求めたか 分母、影響判定、時間窓、顧客対応表、重複排除、欠損処理、信頼区間または不確実性

これらは相互依存するが、代替関係にはない。DNSが正常に答えても、到達不能なエッジを返せば配信は成立しない。BGP経路が見えていても、その下の回線が飽和していれば実用的な到達性はない。エッジプロセスがローカル監視に応答していても、利用者と同じトランジット経路を通らないヘルスチェックでは外部障害を見逃すことがある。

制御プレーンとデータプレーンの区別も重要である。DNS応答、割当ポリシー、BGP広告は「この宛先へ到達できるはずだ」という状態を表す。実際の利用者トラフィックは、その宣言が現実に成立するかを検証する。両者が食い違うとき、緑色の内部ダッシュボードだけを根拠に封じ込め成功を主張することはできない。

また、全体平均は局所障害を隠す。ある拠点の損失が別の拠点の改善で相殺されれば、プラットフォーム全体の成功率は安定して見えるかもしれない。しかし、特定のアクセス網、地域、再帰リゾルバー群、顧客設定に集中した障害は残る。説明責任には、平均値だけでなく、結果の偏在を保った観測が必要である。

発生時刻を発明せずに、復元可能な時系列を設計する

公開資料は攻撃の正確な継続時間を示していない。そのため、根拠のない開始・終了時刻を記述すべきではない。一方、運用者がどのような時系列を復元できるべきかは定義できる。

最初に必要なのは平常時の基準線である。通常のトラフィック分布、DNS応答、エッジ利用率、経路状態、回線余力、サービス遅延、顧客の活動量がなければ、異常な増加や劣化の大きさを評価できない。受け側拠点がトラフィック移送前にどの程度の余裕を持っていたかも、この基準線で判断する。

次は、最初に観測された乖離である。これは攻撃者が送信を開始した時刻と同じとは限らない。フロー監視が先に異常を捉えることもあれば、外部プローブや顧客が内部監視より先に遅延を観測することもある。異なるセンサーが異なる開始点を示す場合、それを一つの都合のよい時刻に丸めるべきではない。

その後に分類が続く。トラフィック急増を攻撃と判断したのはいつか。通常の需要増、機器故障、設定不良、上流障害とどのように区別したのか。初期判断が不確実だったとしても、それ自体が直ちに不適切とは限らない。重要なのは、各判断時点で利用可能だった証拠と、後から判明した情報を混同しないことである。

介入が行われた場合は、時刻、担当、範囲、理由、期待効果、停止または取消条件を残す必要がある。一般論としては、フィルタリング、レート制御、上流との調整、DNSによる割当変更、経路変更、サービス実体の隔離などが考えられる。ただし、これらを2004年のAkamaiが実施したと断定できる公開証拠はない。

介入後には波及評価が必要になる。元の拠点で正当な要求の成功率が改善したか。受け側のリンクやサービスが飽和に近づいていないか。オリジン取得量が増え、別の依存先へ圧力が移っていないか。ローカルな回復が、他の場所で新しい劣化を生んでいないかを確認する。

安定化は、攻撃トラフィックの減少だけでは証明できない。名前解決、経路到達性、エッジの余力、正当な要求の遅延と成功率、外部プローブ、顧客報告が整合して初めて、利用者向けサービスが安定したと判断できる。DNSキャッシュ、経路収束、滞留キュー、オリジン負荷が残っていれば、攻撃入力が減っても影響は続き得る。

最後に、技術的な時系列を顧客単位へ変換する。ここで「およそ4%」が、定義済みの規則から再計算されなければならない。誰を分母に含めたか、何を遅延としたか、同一顧客の複数プロパティをどうまとめたか、断続的な症状をどう扱ったか、欠損データをどのように評価したかを示す必要がある。

DNS応答は名前の回答であると同時に配信判断の記録である

RFC 3568は、コンテンツネットワーク間におけるリクエストルーティングを整理し、DNSを用いる方式を配信ノード選択の一つとして説明している。[17] これは、分散配信への攻撃を考える際にDNSの記録が重要である理由を示す。ただし、Akamaiの非公開実装や、2004年の事象で特定のDNS構成が障害を起こしたことを証明するものではない。

分散配信におけるDNS応答は、単なる文字列からIPアドレスへの変換ではない場合がある。応答に含まれる宛先や別名が、その後の利用者トラフィックを特定のネットワーク地点へ向けるなら、それは容量、遅延、攻撃への露出を左右する配信判断の一部である。

したがって、説明可能な記録には、問い合わせ名、応答コード、返された宛先または別名、応答時間、観測地点、TTLその他のキャッシュ関連値、判断に使われた設定や健全性入力が必要になる。すべての問い合わせを無期限に保存できない場合でも、異なる利用者群が受けた結果を復元できるサンプリングと集約の規則を定めるべきである。

権威DNSの可用性とコンテンツ配信の可用性も分けなければならない。権威DNSが正しく応答していても、障害中のエッジへ利用者を向けていれば配信は遅延する。逆に、エッジが正常でも、名前解決が失敗する、適切でない宛先を返す、古い応答がキャッシュに残るといった理由で利用者が到達できないことがある。

再帰リゾルバーの挙動は、制御変更の反映をさらに複雑にする。事業者内部では新しい割当ポリシーが即時に有効になったように見えても、利用者側では以前の応答がTTLの範囲で残り続ける可能性がある。リゾルバー群ごとに切替時刻が異なるため、移行期間には複数の配信状態が併存する。

RFC 9199は、大規模な権威DNSサービスについて、複製、負荷分散、Anycastを含む運用上の考慮事項を説明し、個々のAnycastインスタンスが不均等な攻撃負荷を受け得ることを指摘している。[9] ここで重要なのは、グローバルなサービス名が局所的な圧力を隠し得るという点である。多くの地点でDNSが応答していても、特定インスタンス、経路、リゾルバー群では深刻な劣化が生じる可能性がある。

ただし、この一般的な知見を、Akamaiが2004年に特定のAnycast設計や経路撤回方針を採用していたという主張へ変換してはならない。Anycastや共有アドレスが当該事象に関係していたなら、実際の経路とインスタンス状態を示す必要がある。関係していなかったなら、実際に配信先を決めた仕組みを別途説明すべきである。

核心となる検証は明確だ。影響があった各時間帯と利用者群について、利用者が受け取ったDNSまたはリクエストルーティング上の判断を、選択先の到達性と健全性へ結び付けられるか。これができなければ、内部システムの多くが稼働していたことは示せても、利用者が実際に到達するよう指示された先が利用可能だったことまでは示せない。

選択されたエッジを実在させるのはBGPとトランジットである

DNSや配信先選択は宛先を決められるが、インターネット上でそこまでパケットを運ぶことはできない。実際の到達性は、BGP広告、経路選択、上流ネットワーク、ピアリング、トランジット、輻輳、フィルタリング、経路伝播によって決まる。

ルーティングテーブルにプレフィックスが存在していても、その経路を構成するリンクが飽和していれば利用者にとっては実質的に到達不能になり得る。ある場所で経路を撤回しても、伝播の途中では別のネットワークが以前の経路を保持している可能性がある。同じ宛先を受け取った利用者でも、アクセス事業者の経路選択が異なれば、結果は同じにならない。

そのため、調査にはローカルなルーター状態と外部から見た経路観測の両方が要る。ローカル記録は、事業者が何を広告し、受け入れ、優先しようとしたかを示す。外部コレクターは、他のネットワークから何が見えたかを示す。データプレーンのプローブは、その可視経路が実際にパケットを通したかを示す。どれか一つだけでは不十分である。

経路が安定して見えても、リンク下層の状態は変化し得る。インターフェース利用率、パケット損失、キュー、フロー分布、バースト、上流からの通知を、要求遅延やエラーと同じ時間軸で確認しなければならない。攻撃トラフィックと正当なトラフィックの分類に不確実性があるなら、その不確実性も保持する必要がある。

ピアリングやトランジットの証拠は、責任を即断するためではなく、依存関係を特定するために役立つ。特定の利用者群がある外部経路の輻輳によって遅延したとしても、その事実だけで誰かの過失が証明されるわけではない。しかし、どの境界で追加の記録が必要か、各当事者が何を観測できたかは明確になる。

Akamaiの公開資料は、2004年の事象で影響を受けたネットワーク、プレフィックス、地域、経路変更を特定していない。したがって、分散サーバー数や地理的配置だけを根拠に、経路が健全だった、あるいは特定の経路変更が行われたと推測することはできない。分散が可用性へ寄与するのは、十分な容量を持つ経路を通じて利用者が実際に到達できる場合だけである。

フェイルオーバーは攻撃を封じ込めることも、障害を移送することもある

運用上の重要な問いは、「フェイルオーバー機能が存在したか」ではない。「移動されたトラフィックを受け側が処理できたか」である。

RFC 3258、RFC 4786、RFC 7094は、分散した権威サービスやAnycastの設計・運用上の論点を扱っている。[11][12][13] これらはAkamaiが2004年に採用した具体的な構成を示すものではないが、不健全なインスタンスへの到達性を維持する場合と撤回する場合の双方にリスクがあることを理解する助けになる。

制約を受けているインスタンスがトラフィックを引き付け続ければ、そこへ導かれる利用者の損失や遅延は続く。一方、経路を撤回する、DNS割当を変える、別の方法でトラフィックを移す場合でも、負荷そのものは消えない。正当な要求に加え、攻撃の構造によっては攻撃トラフィックまで受け側へ移る。

RFC 7094は、継続中のサービス妨害に対して経路を撤回すると、他のインスタンスへ負荷が移り、連鎖的な障害を引き起こし得ると警告している。[11] これはAkamaiが当該攻撃中に経路を撤回した証拠ではない。局所的に妥当な防御が、システム全体では新たなリスクを作るという一般的な制御課題を示している。

同じ問題はAnycast以外にも存在する。DNSのマッピング変更は、利用者を別のエッジへ移す。トランジット優先度の変更は流入地点を変える。制約を受けた拠点を停止すれば、生き残った拠点への需要が増える。フィルタリング位置を変えれば、別の装置や上流事業者へ処理負荷が移る。すべての変更は、移動元と移動先の双方で評価されなければならない。

制御されたフェイルオーバーには、移動前、移動中、移動後の受け側証拠が必要である。移動前には、現在の正当トラフィック、平常時の処理能力、攻撃への露出、回線余力、オリジン取得量、依存サービスの健全性を確認する。移動中には、DNSキャッシュや経路伝播による混在状態、流入速度、キューや損失の変化、飽和への接近を監視する。移動後には、元の利用者体験が改善したか、別の利用者群に新しい劣化が生じていないかを外部観測も用いて確認する。

「稼働中」という二値だけでは、余剰容量は分からない。現在の負荷では正常でも、急な移送トラフィックを受け入れる余裕がない場合がある。必要な指標は、レイテンシ分位、要求キュー、接続上限、CPUやメモリーの圧力、ネットワーク利用率、損失、エラー率、オリジン取得、異常時に確保した容量などである。

攻撃がサービス識別子や利用者の配信先を追従する性質なら、正当トラフィックを移すことで攻撃も移る可能性がある。攻撃が特定アドレスや経路に固定されているなら、利用者だけを別の場所へ逃がせるかもしれない。2004年の開示は、どちらだったかを示していない。だからこそ、運用記録には、その時点で採用した仮説と、それを支えた観測を残すべきである。

さらに、事前の停止条件が必要になる。受け側の損失、遅延、利用率、オリジン負荷がしきい値を超えたら、移送を停止するのか、戻すのか、別の緩和策へ切り替えるのか。結果が分かった後に成功物語を組み立てるのではなく、判断時点の条件を保存することが、運用上の説明責任になる。

したがって中心的な問いは、「フェイルオーバーしたか」ではない。「どのトラフィックを、どこからどこへ、どの健全性と容量の証拠に基づいて移し、正当な利用者にどのような結果が出たか」である。

「およそ4%」には再現できる測定法が必要である

「およそ」という修飾が付いていても、4%という数字は具体的に見える。その具体性には、対象集団、影響の定義、算定方法を説明する責任が伴う。

最初の問題は分母である。「顧客」が、全契約顧客を指すのか、インシデント中に活動していた顧客を指すのか、関連製品を利用していたアカウントを指すのか、トラフィックを発生させたウェブプロパティを顧客へ集約したものなのかは、開示から分からない。

全契約顧客を分母にすれば集計は容易かもしれないが、当該時間帯に利用されていないプロパティまで含めると、観測された影響割合が薄まる可能性がある。活動中の顧客だけを数えるなら、活動判定のしきい値と時間窓が必要になる。ホスト名やプロパティを数えるなら技術的な露出を表しやすいが、顧客単位の割合として公表するにはアカウントへの対応付けが必要である。

分子にも定義が要る。「短時間のサービス提供遅延」とは何か。一件の遅い要求で影響顧客としたのか。一定期間のレイテンシ上昇か。契約上のしきい値超過か。合成トランザクションの失敗か。顧客からの報告か。特定ネットワークからのエラー群か。公開資料は答えていない。

説明可能な方法では、平常時の基準、対象サービス指標、重要な逸脱とするしきい値、最低観測数、時間間隔を定める必要がある。誤検知、断続的な症状、欠損データをどう扱ったかも示すべきである。顧客報告を用いたなら、検証と重複排除の方法が必要になる。

顧客割合と要求割合を混同してはならない。顧客のおよそ4%が何らかの遅延を経験していても、遅延した要求の比率はそれより大きい場合も小さい場合もある。一つのプロパティだけが影響を受けた顧客を一件と数える一方、高トラフィック顧客の重大な劣化も一件と数えるなら、技術的な負荷分布は顧客数だけでは表せない。

だからといって、4%という数字が直ちに誤解を招くとは限らない。顧客単位の割合が答える問いと、要求量、エラー率、遅延幅、地域、ネットワーク範囲が答える問いは異なるということである。強い開示では、顧客割合に加えて、公開可能な範囲で要求割合、ピークと継続的なレイテンシ変化、エラー率、影響範囲、算定上の不確実性を併記する。

時間の扱いも重要である。インシデント中に活動顧客の集合が変わる可能性がある。ある顧客は一部の時間だけ遅延を経験するかもしれない。異なるネットワークや地域で復旧時刻が異なる場合もある。まず時間区間ごとに観測を保存し、その後、顧客単位の結果へ集約する規則を定めるのが望ましい。

また、4%に含まれなかった顧客が完全に無影響だったとは限らない。Akamaiが用いた定義上の影響顧客に入らなかったという意味であり、軽微な劣化、観測できなかった失敗、測定対象外サービスが存在しなかったことまでは示さない。

再現可能な算定であれば、同じ顧客台帳、トラフィック記録、遅延定義、時間窓、集約規則を与えられた分析者が、実質的に近い結果へ到達できる。担当者の記憶だけに依存する割合は、監査可能なネットワーク測定とは言い難い。

最低限保持すべき証拠パッケージ

分散ネットワーク事業者が、すべての内部ログを公表する必要はない。しかし、外部向けの主張を内部で検証し、制御が安全に動作したかを再評価できるだけの関連付け済み証拠は保持すべきである。

1. 時刻の完全性と共通イベント識別子

DNSログ、経路変更、フローレコード、ヘルスチェック、緩和操作、外部プローブ、顧客報告は、時刻を相互に調整できて初めて意味を持つ。タイムゾーン、時計同期状態、収集遅延、集約間隔、既知の時刻誤差を保存し、発生時刻と取り込み時刻を区別する必要がある。

共通イベント識別子も重要である。別の障害や通常変動を誤って同一インシデントへ結び付けないため、各データストリームの抽出物に安定した識別子を持たせる。

時刻誤差は単なる事務的問題ではない。経路変更が輻輳より前に見えれば予防的措置に見え、実際には後なら事後対応になる。緩和ルールの適用直後にトラフィックが減ったように見えても、フロー収集に遅延があれば因果関係は確定できない。

2. 不確実性を消さない攻撃テレメトリー

攻撃状態を説明するには、フロー、パケットサンプル、プロトコル分布、宛先識別子、送信元分布、流入地点、レート、フィルタリングカウンターなどが必要になる。ただし、公開資料にない攻撃規模やベクトルを推定値として事実化してはならない。

初期には、通常の急増と攻撃を区別できない可能性がある。後から送信元詐称、反射、アプリケーション動作、複数の同時パターンが判明することもある。記録は、対応中に利用可能だった分類と、事後分析で得た分類を分けるべきである。

正当トラフィックと攻撃トラフィックの識別が完全でない場合、その不確実性を残す必要がある。分類器の更新履歴やしきい値変更を消してしまうと、当時の緩和判断を再評価できない。

3. DNSとリクエスト割当の判断記録

代表的な権威DNS応答と、その結果を生んだ設定、ポリシー、健全性入力を保存する。問い合わせ名、応答コード、応答遅延、宛先または別名、観測地点、キャッシュ関連値、設定が有効になった時刻を含める。

重要なのは、DNSが応答したかだけではない。その応答が、到達可能で処理能力のあるエッジを選んだかである。DNS結果を、対応するエッジ、経路、サービス状態へ関連付ける必要がある。

変更後も一部のリゾルバーが古い回答を保持していたなら、その残存期間を時系列に含める。DNSが遅延に関係しなかったと判断する場合にも、単なる仮定ではなく、応答と利用者到達性の記録で支えるべきである。

4. BGPと経路状態

関連する経路広告、撤回、ポリシー変更、経路選択、外部観測を保存する。ローカルルーターのログは意図した操作を示し、外部経路コレクターは伝播した可視性を示し、データプレーンのプローブは実用上の到達性を示す。

経路変更がなかった場合も、その事実には意味がある。緩和が別の層で行われた、経路が引き続き使用可能だった、あるいは再配分しない判断が行われた可能性がある。ただし、「ログが見つからない」ことと「変更がなかった」ことは同じではない。

5. ピアリング、トランジット、リンク容量

インターフェースカウンター、フロー分布、損失、キュー、輻輳、上流事業者からの通知、緩和サービスへの引渡しを記録する。利用率の数値だけでなく、バースト、パケットサイズ、キュー構成、トラフィック構成、下流制約も考慮しなければならない。

第三者のトランジットや緩和事業者が関与していた場合は、責任境界と観測境界を明らかにする。それは責任追及を先取りするためではなく、劣化が境界の前、境界上、境界の後のどこで起きたかを調べるためである。

6. エッジとサービス実体の健全性

各エッジやサービス実体について、要求遅延、成功率、エラー率、キュー、接続数、資源飽和、プロセス状態、パケット損失、オリジン取得を同一時間軸で残す。

「正常」「異常」という二値フラグだけでは不十分である。ヘルスチェックが何を測ったか、どの経路から実行されたか、顧客トラフィックにどの程度似ていたか、頻度は短い劣化を捉えられたかを保存する必要がある。

部分的な状態も消してはならない。キャッシュ済みオブジェクトは配信できてもオリジン取得が失敗する場合がある。プロトコルやアドレスファミリーごとに結果が異なる可能性もある。特定顧客の設定だけが既定動作と異なることもある。顧客影響を計算する前に、これらを全体平均へ埋没させるべきではない。

7. 緩和とトラフィック制御の操作履歴

すべての重要な操作には、時刻、担当者または担当機能、対象、理由、期待効果、ロールバック条件が必要である。フィルタリング、レート制御、上流との調整、DNS変更、配信先変更、経路変更、サービス隔離のいずれであっても同じである。

2004年にAkamaiがこれらの特定操作を実施したと公開資料から断定することはできない。ここでの要件は、もし実施したなら何を残すべきかという一般的な基準である。

各操作には変更前後の測定を結び付ける。攻撃トラフィックは減ったか。正当な要求の成功率は改善したか。遅延は別の場所へ移ったか。受け側の余力は保たれたか。外部プローブも回復を確認したか。効果が混在したなら、その混在を記録する。

8. 移動先の健全性と余剰容量

トラフィックを移動する場合、受け側の事前評価を独立した証拠として残す。対象拠点、移動前負荷、予想流入量、検証済み処理能力、ネットワーク余力、依存先の状態、停止しきい値を記録する。

これは連鎖障害を発見するうえで特に重要である。元の拠点で改善が見えても、複数の受け側で小さな劣化が発生していれば、全体集計で相殺される可能性がある。インスタンスや地域ごとの不均衡を示せる粒度が必要になる。

9. 外部到達性と利用者体験

内部監視は、事業者ネットワーク外部からの観測と照合する。分散プローブ、合成トランザクション、再帰リゾルバー観測、外部経路ビュー、顧客報告を用い、名前解決、接続確立、要求完了、有効な応答までの利用者経路を試験する。

観測点は、同じ上流経路に偏らせない。地理的な多様性だけでなく、ASやトランジット経路の多様性も必要である。内部からの試験が成功していても、特定アクセス網から失敗していれば、その差がインシデントの重要な事実になる。

顧客報告は自動的にプラットフォーム障害の証明にはならないが、内部監視が正常だからという理由だけで退けるべきでもない。時刻を付け、技術記録と照合し、差異を説明することが目的である。

10. 顧客影響の算定記録

公表割合の計算には、顧客母集団、影響判定、観測時間、重み付け、重複排除、除外規則、欠損処理、不確実性を含める。技術観測がホスト名、サービス、エッジ単位で得られ、公表が顧客単位なら、当時有効だった顧客・プロパティ対応表が必要である。

計算は版管理し、後から証拠が追加されて推定が変わった場合も、旧版と変更理由を残す。「およそ」という表現は合理的な不確実性を許すが、算定方法を隠す理由にはならない。

これら十種類の記録は、単独では十分でない。攻撃テレメトリーだけでは顧客割合を支えられない。顧客報告だけでは障害点を特定できない。経路ログだけでは移動先容量を証明できない。DNSの稼働率だけでは、応答先で配信が継続していたことを示せない。説明責任は、各記録を同一の事象、時刻、顧客影響へ結び付けることで成立する。

責任はネットワークの制御境界に沿って配分する

分散サービスは複数の管理主体を横断する。したがって、責任分析は単一事業者への包括的な帰責でも、外部依存を理由にした責任消失でもない。誰がどの状態を制御し、何を観測し、どの操作を行えたかに沿って整理する必要がある。

Akamaiは、自社プラットフォームのアーキテクチャ、監視、リクエストルーティング、サービス実体の管理、インシデント対応、顧客向け説明、自ら公表した割合の根拠となる記録を制御していた。DNSや配信先の割当がAkamaiのシステムによって行われた範囲では、その判断とエッジ健全性を結び付ける位置にあった。

トランジットおよびピアリング事業者は、経路可視性、ルーティングポリシー、リンク容量、トラフィック処理の一部を制御する。Akamai側のログが境界までの流入や流出を示しても、境界の先で起きたことを説明するには隣接事業者の記録が必要になる場合がある。

アクセス網と再帰DNS事業者は、利用者がどの応答を受け、どの経路を通るかに影響する。キャッシュ、リゾルバー集中、ローカルな経路選択、アクセス回線の輻輳は、Akamai内部から見えにくい利用者体験を生み得る。ただし、可能性を列挙するだけで原因とみなしてはならず、観測による検証が必要である。

緩和事業者が関与した場合、その事業者は検知、フィルタリング、迂回、シグナリングの記録を制御する。公開資料は、特定の緩和事業者や方式が2004年の事象に関与したとは述べていない。一般原則として、サービス事業者は配信に重大な影響を与えた外部制御を把握し、調整履歴を保持すべきである。

顧客は、自らのオリジンとDNS・アプリケーション設定の一部を制御する。オリジン容量は、エッジが到達可能でも未キャッシュ要求の処理を制約する可能性がある。プロパティ設定が配信や依存関係へ影響する場合もある。これも、顧客が2004年の遅延を引き起こしたという証拠ではない。調査時にプラットフォーム側と分離すべき層を示しているにすぎない。

各主体が説明すべきなのは、自ら制御した状態、観測した信号、実施した操作、共有した情報である。そしてプラットフォーム全体について顧客影響を公表する事業者は、それらの境界を突き合わせる役割を負う。

Akamaiがインターネット上のすべてのルーター、リゾルバー、アクセス網、顧客オリジンを制御していたとみなすのは誤りである。しかし、外部依存が存在することを理由に、商用エッジ事業者の説明責任が消えるわけでもない。分散配信サービスの価値の一部は、まさにそれらの依存関係を観測し、経路を選び、障害を局所化することにある。

後年の標準を2004年の義務へ遡及させない

この事象を分析するためのIETF文書は、発行時期も対象も異なる。それぞれはプロトコルや運用上のトレードオフを理解する材料であり、後年の知見を2004年の実装義務へ変換するためのものではない。

RFC 3568は、コンテンツネットワークにおけるリクエストルーティングの位置付けを示す。[17] RFC 3258は、共有ユニキャストアドレスを用いた権威ネームサーバーの分散を扱う。[12] これらは、名前解決や配信判断が複数地点へ分散し得ることを説明する。

RFC 4732は、サービス妨害への耐性を、攻撃パケットだけでなく、共有依存、資源枯渇、障害増幅を含むシステム問題として整理する。[10] これは、攻撃入力をルーティング、容量、サービス状態から切り離して考えるべきではないという分析に役立つ。ただし、2004年のAkamaiに特定の制御を義務付けていたことを示す文書ではない。

RFC 4786とRFC 7094は、Anycastの設計と運用に関する論点を示す。[11][13] 経路を維持する場合にも撤回する場合にも証拠が必要であり、負荷移動が連鎖障害を引き起こし得ることを理解する助けになる。しかし、Akamaiが当該事象でAnycastを特定の方法で使った、または経路を撤回したと証明するものではない。

RFC 5358はオープン再帰DNSサーバーが反射器として悪用される問題を扱い、RFC 8482はDNS ANY問い合わせへの最小応答を扱う。[14][15] これらは特定の増幅面を縮小する後年の運用策を理解するために有用だが、Akamaiの2004年攻撃がそのベクトルを用いたことや、当時これらの対策が必須だったことを意味しない。

RFC 9199は権威DNSの複製、負荷分散、Anycast、攻撃負荷の偏在を整理し、RFC 9284は管理ドメイン間のDDoS緩和シグナリングを説明する。[9][16] いずれも現在の証拠設計を改善するが、欠けている歴史的事実を補うものではない。

Akamaiの後年のSEC提出資料は、ネットワーク中断や攻撃が継続的な事業リスクであることを理解する助けになる。[2][18][19] 同社の後年のDDoS恐喝に関する記事も脅威状況の参考にはなる。[20] しかし、それらから2004年の攻撃者、動機、ベクトル、対象、緩和方式を逆算することはできない。

ICANNのアーカイブ資料は第三者による歴史的な特徴付けとして参照できるが、Akamai自身のSEC提出資料にない正確な継続時間や根本原因を確定する根拠にはできない。[8]

この時間的な境界を守らなければ、現在の知識によって過去の不確実性が消されてしまう。後年の標準の妥当な使い方は、今日の運用者が何を観測し、何を保存し、どのリスクを検証すべきかを明確にすることである。過去の非公開動作を発明したり、後年の推奨を遡及的な過失基準へ変えたりすることではない。

稼働中ネットワークに基づく説明責任の基準

Akamaiの2004年開示は、内部記録が公開されていなくても、実務的な評価基準を導き出せる。

第一に、影響境界は再現可能でなければならない。「およそ4%」は、定義済みの顧客母集団、遅延条件、観測期間、集約規則から得られる必要がある。顧客名を公表する必要はないが、数値を裏付ける内部対応表は保持されるべきである。

第二に、到達性はエンドツーエンドで測る必要がある。DNSの可用性、BGPの可視性、トランジット容量、エッジ健全性、オリジン到達性は関連しているが同一ではない。選択された宛先が、代表的な外部ネットワークから実際に要求を完了できたかを確認する。

第三に、重要なトラフィック制御判断を、当時の証拠へ結び付ける。移動したなら、理由、移動元、移動先、受け側余力、結果を示す。移動しなかったなら、既存割当を維持する方が安全だった理由と観測を示す。

第四に、局所化は分散配置から推定せず、観測で証明する。多数のサーバーやネットワークが存在しても、共有DNS、共通経路、集中した制御系、顧客オリジンなどの共通依存が残る可能性がある。どのサービス実体、経路、顧客設定、時間区間に影響が限られたかを示す必要がある。

第五に、フェイルオーバーを連鎖障害の観点から評価する。移動元の改善だけでは成功とは言えない。受け側の健全性、余剰容量、外部プローブ、移動後のトラフィック分布を確認し、別の利用者群に新しい劣化が生じていないことを示す。

第六に、不確実性を明記する。攻撃分類、顧客影響、因果関係が完全に確定しないことはある。既知、推定、未確認、復元不能を分ける方が、過度に精密な断定より信頼性が高い。

第七に、是正措置を検証可能な結果へ結び付ける。Akamaiは再発可能性と同様の攻撃による影響を減らす措置を講じたと述べたが、その内容は公開していない。[1] 内部では、各変更を対象となる故障条件、検証試験、容量仮定、結果へ結び付けるべきである。制御が存在することより、悪条件下で正当なサービスを到達可能に保てることの方が強い証拠になる。

第八に、判断権限を記録する。ただし、担当者を特定することを責任断定の近道にしない。DNSポリシー、配信先選択、BGP、トランジット調整、エッジ容量、顧客連絡、影響算定について、誰がどの情報に基づき判断できたかを示す。

第九に、公表表現の精度を証拠の解像度へ合わせる。データが顧客単位のおおよその割合と定性的な遅延しか支えないなら、その範囲にとどめる。より精密な時間、影響量、原因を公表するなら、それを支える測定が必要である。

第十に、当時の判断記録を保存する。後から得たテレメトリーや顧客報告によって説明が改善されても、各判断時点で何が分かっていたかを残す。そうしなければ、後知恵が初期の不確実性を消し、即興的な対応を最初から計画されていたもののように見せてしまう。

この基準を2004年の開示に当てはめると、結論は限定される。公開資料は、攻撃に起因するサービス妨害があり、顧客のおよそ4%に短時間の遅延が報告されたことを支える。Akamaiが複数の著名な顧客サイトを標的と考え、事後措置を講じたという会社の記述も確認できる。[1]

一方、公開資料だけでは、4%の算定法、パケットの性質、影響経路、受け側容量、経路変更、DNS障害、具体的な緩和、顧客ごとの結果を検証できない。企業開示がパケットキャプチャやルーティングアーカイブではない以上、詳細が書かれていないこと自体は、内部記録が存在しなかった証拠でもない。

問われるのは、事業者が内部で一貫した復元を行えたか、その復元に基づいて外部向けの境界を定めたかである。

分散という主張は、運用結果によって証明されなければならない

分散エッジは、ある場所の攻撃や障害が全体の結果を決めないという強力な継続性の約束を含んでいる。しかし、地理的な広がり、サーバー数、アーキテクチャ図は、その約束が実現したことを証明しない。

稼働中のネットワークでは、名前解決が正確であり、選択された経路が実用可能であり、受け側に余剰容量があり、トラフィック移動が制御され、外部利用者から見た到達性が回復していなければならない。制御面の宣言と実際のデータプレーンが一致することが必要である。

Akamaiの「およそ4%」という記述は、この運用上の現実を可視化した。公開された影響は全体停止ではなかったが、ゼロでもなかった。その間に、分散ネットワークの説明責任が存在する。どの利用者群が遅延し、なぜその群に影響が残り、他の群はどう守られたのかを説明する責任である。

公開証拠から、攻撃ベクトル、正確な継続時間、対象顧客、地域、経路変更、非公開の緩和技術を断定することはできない。DNSだけが故障したとも、Akamaiが経路を撤回したとも、特定のスクラビング方式を用いたとも、別拠点を過負荷にしたとも言えない。過失、隠蔽、法的責任も認定できない。

それでも、持続的に使える基準は明確である。分散事業者が影響を限定的だったと述べるなら、攻撃テレメトリー、DNSとリクエスト割当、BGPとトランジット、エッジ健全性、容量、制御操作、外部到達性を共通時系列へ結び付けるべきである。トラフィックを移したなら、受け側が健全で余裕を持っていたことを示すべきである。割合を公表するなら、算定境界を理解し再現できる方法を保持すべきである。

フェイルオーバーが説明可能になるのは、それを単なる障害移送と区別できるときである。耐障害性が信頼できるのは、内部制御状態と外部到達性が一致するときである。限定的な影響の開示が信頼できるのは、稼働中ネットワークと保持された証拠から、その境界を再現できるときである。

Akamaiの2004年開示の長期的な意味はここにある。分散エッジ配信を、設計上の約束から検証可能な問いへ変えたのである。ネットワークは被害を回避するよう設計されていたか、という問いだけではない。実際に被害がどこへ行き、誰に残り、なぜ対応が別の障害を作らなかったのかを、運用者が示せるかという問いである。

出典

  1. https://www.sec.gov/Archives/edgar/data/1086222/000095013504005247/b52052ate10vq.htm
  2. https://www.sec.gov/Archives/edgar/data/1086222/000095013505001475/b53269ate10vk.htm
  3. https://www.ir.akamai.com/static-files/aa7d1608-afb9-47e4-9bcb-8eff98d9351f
  4. https://www.sec.gov/Archives/edgar/data/1086222/000095013503002051/b45644ake10vkxpdfy.pdf
  5. https://www.sec.gov/Archives/edgar/data/1086222/000095013502001140/b42039ate10-k405.htm
  6. https://www.sec.gov/Archives/edgar/data/1086222/000095013503002051/0000950135-03-002051-index.htm
  7. https://www.sec.gov/Archives/edgar/data/0001086222/000095013504003886/b51102ate10vq.htm
  8. https://archive.icann.org/en/tlds/net-rfp/applications/afilias.htm
  9. https://www.ietf.org/rfc/rfc9199.html
  10. https://datatracker.ietf.org/doc/rfc4732
  11. https://datatracker.ietf.org/doc/html/rfc7094
  12. https://www.ietf.org/ietf-ftp/rfc/rfc3258.txt.pdf
  13. https://datatracker.ietf.org/doc/rfc4786/
  14. https://datatracker.ietf.org/doc/html/rfc5358
  15. https://datatracker.ietf.org/doc/rfc8482/
  16. https://www.ietf.org/rfc/rfc9284.html
  17. https://datatracker.ietf.org/doc/html/rfc3568
  18. https://www.sec.gov/Archives/edgar/data/1086222/000108622224000148/akam-20240331.htm
  19. https://www.sec.gov/Archives/edgar/data/1086222/000108622225000028/akam-20241231.htm
  20. https://www.akamai.com/blog/security/fake-cozy-bear-group-making-ddos-extortion-demands