要約
- Mozilla は、2019年5月のイベントの原因として、Firefox アドオン署名システムにおける中間証明書の期限切れを特定した。インストール済みのアドオンが無効になり、新規インストールが失敗する可能性があった。署名要件は、悪意のある改ざんされた拡張機能からユーザーを保護するために存在しており、この障害は悪意のあるアドオン侵害の証拠ではなかった。
- トリガーイベントは2019年5月4日1:00 UTC 直後に発生した。ほとんどすべてのアドオンがこの中間証明書を共有しており、ほぼ毎日のクライアント検証により、目に見える影響は段階的に現れた。Mozilla は太平洋時間5月3日午後6時頃に問題を認識し、太平洋時間午前2時44分に最初の Normandy/Studies システムアドオンホットフィックスを配信した。
- 確認された根本原因、共通モード証明書設計、期限切れ検出の疑問、緊急リモート配信パス、その後の Firefox および ESR リリース、ユーザーデータ警告、ホットフィックスデータの取り扱いは、それぞれ異なる責任レベルに属する。この記録は、影響を受けた正確なユーザー総数、開発者の完全な経済的損失、またはすべての Firefox 製品および下流ビルドにわたる統一した結果を確立するものではない。
正当なツールを無効にしたセキュリティスイッチ
ブラウザ拡張機能は異常に敏感な位置を占めている。ページを変更し、閲覧アクティビティを監視し、パスワードを管理し、コンテンツをブロックし、アプリケーションを接続し、ユーザーの作業方法を変えることができる。したがって、ブラウザベンダーには、整合性と出所が信頼できない拡張機能を拒否する正当な理由がある。Mozilla の署名要件は、悪意のある改ざんされたアドオンから Firefox ユーザーを保護することを目的としていた。
2019年5月、その保護ルールはユーザーが期待するものとは逆の運用結果をもたらした。Firefox は正当なインストール済み拡張機能を無効として扱い始め、新しいインストールは失敗する可能性があった。公開された技術的説明では、マルウェア、アドオン内の悪意のあるコード、または署名システムを乗っ取った攻撃者は特定されなかった。Mozilla は検証チェーン内の証明書の期限切れを特定した。
この区別は重要である。セキュリティポリシーは、それを支える証明書が期限切れになったからといって、違法になったわけではない。また、5月3日に Mozilla がユーザーのツールを削除する意図的なポリシー選択をしたわけでもない。必須の管理は期限付きの信頼オブジェクトに依存しており、そのオブジェクトのライフサイクルが、プラットフォームが混乱なしに超える準備ができていない境界に達した。
これにより、その証明書は運用上の責任スイッチとなった。期限切れ前は、Firefox が署名付きアドオンと必要な信頼プロセスを通過していないソフトウェアを区別するのに役立っていた。期限切れ後は、同じ強制ロジックが、ユーザーと開発者が合理的に正当とみなすツールを無効にすることができた。ポリシーは依然として保護的であったが、それを支えるインフラストラクチャはもはや有効なチェーンを提供していなかった。
ここでの「責任」という言葉は、裁判所の判決や定量化された法的請求を想定するものではない。プラットフォーム管理によって生み出された責任の割り当てを説明するものである。Mozilla は署名を要求し、署名階層を運用し、Firefox がアドオンを検証する方法を決定し、鍵回復チャネルを制御し、修正を伝達した。ユーザーと開発者はこれらの選択に依存していたが、自分たちで中間証明書を更新することはできなかった。
したがって、この障害は、セキュリティメカニズムが共通モードの依存関係になるという、より広いクラスの障害に属する。障害は Firefox が信頼をチェックしたことではなかった。単一のライフサイクルイベントが多数の正当な拡張機能に影響を及ぼし、プラットフォームにセキュリティ検証と可用性の両方を同時に修復するよう強いたことであった。
集中した責任のトラストチェーン
Mozilla の技術的説明は、異なる役割を持つ階層を説明していた。ルート証明書はハードウェアセキュリティモジュール内でオフラインで保管されていた。オンラインの中間証明書は署名に使用されていた。エンドエンティティ証明書は個々のアドオンをサポートしていた。この分離により、ルートを日常的な露出から保護しながら、中間証明書を通じて運用上の署名を継続することができた。
これは認識可能なセキュリティ設計である。ルートをオフラインに保つことで、日常業務で最高レベルのキーが露出する可能性が低減される。中間証明書を介した委任により、頻繁な署名が実用的になる。アドオンにエンドエンティティ証明書を付与することで、Firefox が適用できる検証パスが作成される。
可用性への影響は、その階層内の集中から生じた。Mozilla は、ほとんどすべてのアドオンが同じ中間証明書を共有していたと述べている。個々のアドオンに不正な署名があった場合、想定される爆発半径は狭い。共有中間証明書が期限切れになると、検証はエコシステムのはるかに広い部分で失敗する可能性がある。
これは共有中間証明書が本質的に不適切であることを意味するものではない。セキュリティアーキテクチャは常に、キーの管理、運用規模、更新、配布、失効のバランスを取る。証拠はより狭い推論を支持する:共有証明書が広範なエコシステムに必須である場合、その有効期限は暗号プロパティであると同時に可用性の期限でもある。
プラットフォームの所有者は、したがって分離できない2つの義務を負う。署名階層を悪用から保護しなければならず、署名されたソフトウェアが機能することが期待される期間、有効な信頼マテリアルを利用可能に保たなければならない。ライフサイクル継続性のない強力なキー管理は、正当なソフトウェアを中断させる可能性がある。安全な管理なしの容易な継続性は、署名が提供することを意図した保護を弱める可能性がある。
階層はまた復旧を形作った。署名施行を維持することが目標である場合、Mozilla はこのイベントを単純な設定ミスとして扱うことはできなかった。Firefox が受け入れる証明書パス、そのパスを配布する方法、およびすべてが同じ更新条件を持っているわけではないユーザーに到達するシーケンスが必要だった。
これが、このインシデントを誰かがカレンダーのリマインダーを忘れたことに還元できない理由である。確認された原因は中間証明書の期限切れであった。完全な説明責任は、証明書の在庫、所有権、更新、期限前テスト、クライアントの動作、緊急配布、リリースチャネルがどのように相互作用したかも問う。公開証拠はすべての内部管理または決定を特定していないため、各部分を名前の付いたチームに割り当てることはできない。
5月3日:ユーザー影響が進行中に認識
公開された時系列は2019年5月3日と4日に及ぶ。Mozilla は太平洋時間5月3日午後6時頃に問題を認識したと述べている。中間証明書は5月4日1:00 UTC 直後に期限切れになった。これらのタイムスタンプは同じ進行中のイベントを異なるタイムゾーンから説明したものであり、矛盾として解釈すべきではない。
ユーザーは全員が正確に同じ瞬間に障害に遭遇したわけではない。Firefox はすべてのアドオンを毎秒継続的に再検証していなかった。Mozilla は検証がおおよそ毎日のスケジュールで発生したと説明した。個々のブラウザインストールがチェックに達するにつれて、アドオンは承認済みから無効に移行する可能性があった。これにより、1つの明確でグローバルに同期された停止ではなく、段階的な波が生じた。
段階的な影響は検出を複雑にした。サーバーサイドシステムは多くの場合、1つのサービスのメトリックがしきい値を超えるのを観察できる。ここでは、目に見える症状が異なるスケジュールでクライアントインストール全体に現れた。ユーザーは拡張機能が消える、アドオンが無効になる、インストールが失敗するなどを報告できたが、他のユーザーはまだ同じ検証ポイントに達していなかった。
記録は Mozilla の認識時間を確認している。その時点までの完全なアラートパスは明らかにしていない。証明書の期限切れモニター、内部エスカレーション、ユーザー報告、エンジニアリング観測はすべて示されていない。したがって、特定のアラームが欠落していたか無視されたという決定的な主張ではなく、検出問題を支持する。
それでも、証拠に裏付けられた推論は可能である。ほとんどすべてのアドオンを無効化できる証明書は、影響の大きい運用依存関係として監視されるべきである。その残りの有効期間、更新ステータス、展開準備、クライアント受容性は、移行をテストするのに十分な余裕をもって可視化されるべきである。これは爆発半径から導き出された管理期待値であり、Mozilla にまったく監視がなかったという証明ではない。
段階的な影響はコミュニケーションにも影響した。拡張機能がまだ動作しているユーザーは、ローカルな体験と矛盾する報告を見る可能性がある。ワークフローがすでに変わったユーザーは即時のガイダンスを必要としていた。Mozilla は、問題が現実であることを、すべての Firefox ユーザーが同時に同じ結果を持っているわけではないことを説明しなければならなかった。
承認された記録によって確立された影響を受けた正確なユーザー数はない。共有中間証明書の広範さは潜在的な範囲が大きかった理由を説明するが、潜在的な範囲は監査された人口ではない。すべての Firefox ユーザーが影響を受けたという主張は証拠を超え、検証タイミング、製品バージョン、構成、配布の違いを無視することになる。
5月4日:期限切れがトリガーイベントに
トリガーイベントは正確だった:中間証明書は2019年5月4日1:00 UTC 直後に期限切れになった。Firefox の署名ルールの下でチェーンを検証できなくなると、正当なアドオンが無効として扱われる可能性があった。新しいインストールも失敗する可能性があった。
Mozilla は期限切れの中間証明書を根本原因として特定した。これは根本原因の候補よりも強い。プラットフォームの技術的再構築から来ており、検証失敗を直接説明している。しかし、確認された根本原因でさえ因果マップを完成させるわけではない。
寄与条件はイベントのサイズと形状を説明する。ほとんどすべてのアドオンが中間証明書を共有していた。検証は必須だった。クライアントチェックは段階的だった。エコシステムには15,000以上のアドオンが含まれており、インストールされたすべての拡張機能が必ずしも現在のホストチャネルを通じて配布されていたわけではない。複数の Firefox および ESR リリースパスを考慮する必要があった。
検出は別の層に属する。公開された説明は期限切れと認識時間を提供するが、更新または展開が影響を防げなかった理由を判断するのに十分な内部テレメトリはない。期限切れ監視、所有権、移行リハーサル、またはリリース準備が失敗したかどうかを問うことは合理的である。それらの質問を確認された内部事実に変換することは責任ある態度ではない。
対応は Mozilla が失敗を理解し、復旧オプションを評価した後に開始された。その作業には1つのサービスプロセスを復元する以上のものが含まれていた。ブラウザはすでにクライアントデバイスで無効状態を強制していた。修復は、署名ポリシーを放棄したり追加のユーザー被害を生み出したりせずに、それらのクライアントに到達しなければならなかった。
復旧は最初の成功したホットフィックスを超えて拡張された。Firefox ポイントリリースと ESR リリースが続いた。ユーザーガイダンスは拡張データを保存しようとした。緊急メカニズムを通じて収集されたデータに関する疑問が生じた。したがって、持続可能な復旧には、信頼の回復、リリースカバレッジ、ユーザーデータの安全性、プライバシー処理、エコシステムの信頼が含まれていた。
これらの層を区別し続けることは重要である。「停止」という言葉はそれらを平らにする可能性がある。トリガーは期限切れだった。根本原因は署名システム内の期限切れの中間証明書だった。共有アーキテクチャと配布の複雑さが爆発半径に寄与した。検出証拠は不完全なままである。対応はリモートおよびリリースチャネルを使用した。復旧には、将来のセキュリティを弱めることなく、正当な拡張機能がサポートされるパス全体で有効であり続けるという証明が必要だった。
4つの復旧オプション、いずれも無料ではない
Mozilla の技術的説明は、対応中に検討されたいくつかのオプションを説明していた。1つは再検証を一時的に停止することだった。別のものはアドオンに再署名することだった。3つ目はアプリケーションアップデートを発行することだった。4つ目は交換用の中間証明書を発行することだった。
再検証の停止は即時の無効化を減らす可能性があったが、信頼システムが精査されている瞬間に保護ルールの一部を停止することにもなった。証拠はそのオプションが無料であったとか、すべてのクライアントに均一に到達したであろうとは述べていない。復旧に使用されるセキュリティバイパスは、厳格な範囲、時間制限、および出口経路を必要とする。
アドオンの再署名は直接的と思われたが、エコシステムの規模に直面した。Mozilla は15,000以上のアドオンを説明した。すべてのインストール済み拡張機能が現在の配布チャネルを通じてホストされていたわけではない。その人口に再署名して再配布するには、アーティファクトの取り扱い、開発者の調整、クライアントへの配信、および古いインストールが新しいマテリアルを受信できるという信頼が必要だった。
アプリケーションアップデートは従来のルートを提供した。修正されたブラウザビルドは、確立されたリリースチャネルを通じて耐久性のあるロジックまたは信頼マテリアルを運ぶことができる。しかし、ブラウザのアップデートはビルド、テスト、リリース、エンタープライズポリシー、ネットワーク可用性、ユーザーの採用に依存する。影響を受けるすべてのインストールに対する即時制御プレーンではない。
交換中間オプションにより、Mozilla は署名アーキテクチャを維持しながら有効なチェーンを復元できた。Mozilla は同じサブジェクトと公開鍵を持つ中間証明書を選択し、Firefox のリモート設定およびシステムアドオンメカニズムを通じて配布した。この選択は、署名を不要と宣言することなく、緊急の信頼失敗に対処した。
各オプションはリスクを異なる方法で割り当てた。チェックの停止は速度を強調したが、施行を弱める可能性があった。再署名はアーティファクトの正確性を強調したが、規模と到達範囲に直面した。アプリケーションリリースは通常のアップデートガバナンスを強調したが、伝播に時間がかかる可能性があった。中間証明書の交換とリモート配布は、それ自体が信頼とプライバシーガバナンスを必要とする緊急チャネルを通じた迅速な復旧を強調した。
責任ある決定は単に最速の技術的行動ではなかった。それは、保護が弱まった期間を最小限に抑え、不必要なユーザーデータの損失を回避し、多様なインストールに到達し、持続可能な更新パスを残す、正当なアドオンを復元する行動だった。公開された時系列は選択されたシーケンスを示しているが、すべての内部比較や承認を明らかにしているわけではない。
Normandy/Studies が緊急インフラに
Mozilla は太平洋時間午前2時44分に最初の Normandy/Studies システムアドオンホットフィックスを配信した。技術的説明によると、その配信は Mozilla が太平洋時間午後6時頃に認識してから9時間未満だった。タイミングは迅速な対応を示しているが、速度だけが完全な説明責任の尺度ではない。
Normandy と Studies は、Firefox インストールに変更を配信できるリモートメカニズムだった。通常の状態では、そのようなインフラは実験、設定、または標的介入をサポートできる。停止中、それは信頼修復のための緊急配布チャネルとなった。
その役割はパラドックスを生み出す。プラットフォーム管理の署名システムが正当なツールを無効にしたため、ユーザーは Mozilla がブラウザに迅速に到達することを必要としていた。しかし、多くのクライアントにシステムアドオンやリモート変更を送信する能力は、それ自体が強力な機能である。復旧を改善する同じ中央到達範囲は、制御を集中させる。
したがって、緊急インフラはそれ自体のガバナンスを必要とする。誰が展開を承認できるか?どのアーティファクトが配信されるか?どのように署名され検証されるか?どのクライアントが対象か?どのテレメトリが収集されるか?変更はどのように撤回または置き換えられるか?ユーザーと管理者は何が起こったかをどのように理解できるか?
公開記録はホットフィックスを具体的なシステムアドオンアーティファクトファミリーと関連する Bugzilla 作業に結び付けている。これにより、リモート修正が送信されたという曖昧な声明よりも対応が監査可能になる。それでも、すべての内部承認やクライアント側の条件を明らかにするわけではない。
証拠に裏付けられた推論は、リモート復旧パスは緊急事態の前に運用上重要な制御として扱われなければならないということである。それらはテスト、アクセス制限、ロールバック、プライバシーレビュー、および参加を無効にしているか変更を受信できないクライアントのためのルートを必要とする。失敗時にのみ発見される復旧チャネルは、その制限がすでに文書化されているものよりも信頼性が低い。
Normandy/Studies を緊急インフラと呼ぶことは、Mozilla がそれを悪用したことを意味するものではない。記録は信頼検証を復元するために使用されたことを示している。説明責任のポイントは構造的である:ベンダーが必須のセキュリティ依存関係を修復できるリモートコントロールを保持する場合、その制御の信頼性と抑制は製品の継続性の約束の一部である。
システムアドオンがアドオンの信頼障害を修復
システムアドオンパスはさらに別の複雑さを追加した。共有チェーンが期限切れになったため、Firefox のアドオン署名ルールは通常の拡張機能を拒否していた。その後 Mozilla は特権的な配布メカニズムを使用して検証を復元するマテリアルを配信した。
それは循環的に聞こえるかもしれないが、差別化された信頼パスを反映している。プラットフォームメンテナンスに使用されるシステムアドオンは、必ずしもサードパーティの拡張機能と同様に配布または評価されるわけではない。公開情報源はホットフィックスアーティファクトファミリーと Mozilla の選択した証明書アプローチを示しているが、通常の署名ポリシーが全員に対して単純にオフにされたという主張を正当化するものではない。
この区別はセキュリティの教訓を保護する。対応がセキュリティをバイパスするものとして説明される場合、Mozilla がなぜ交換中間証明書を選択し、リリースを続けたのかという点を見逃す。目的は保護モデルを無傷に保ちながら信頼チェーンを修復することだった。
また、ベンダー依存性を浮き彫りにする。ユーザーは信頼された交換証明書を生成したり、ローカルの Firefox インストールに安全に認識させることはできなかった。開発者は既存のすべてのインストールに対して独立して受容を復元することはできなかった。ルートおよび中間階層を運用するエンティティが行動しなければならなかった。
その依存性は自動的に問題ではない。中央署名施行は、悪意のある配布や改ざんからユーザーを保護できる。それは、プラットフォームがユーザーが交換できない信頼オブジェクトと修復チャネルの継続性を所有しなければならないことを意味する。
したがって、共通モード制御は双方向で評価されるべきである。セキュリティレビューは、攻撃者が署名機能を取得した場合に何が起こるかを問う。可用性レビューは、有効な署名または検証マテリアルが期限切れになったり、失効したり、到達不能になったり、不正確に展開されたりした場合に何が起こるかを問う。2019年5月のイベントは期限切れのケースに具体的な回答を提供した。
復旧証拠は、緊急マテリアルが意図された修復に限定され、通常の検証が安定した状態に戻り、後のブラウザリリースが一時的なパスへの依存を減らしたことを示すべきである。ホットフィックスからポイントリリースおよび ESR アップデートへのシーケンスは、すべてのインストールがそれを完了したことを証明することなく、その方向性を支持する。
ポイントリリースが緩和策をリリースの道筋に
Mozilla は緊急対応に続いて Firefox 66.0.4と Firefox 66.0.5、ならびに Firefox 60.6.2 ESR と Firefox 60.6.3 ESR をリリースした。リリースノートは重要である。なぜなら、復旧が1回のリモート介入で終了しなかったことを示しているからである。
ポイントリリースはブラウザの通常のソフトウェアライフサイクルを使用する。確立されたアップデートメカニズムを通じてユーザーや組織に到達でき、リモート研究が無効、制限、または不適切な環境も含まれる。ESR リリースは、安定性と管理された展開を優先する管理された設定に特に関連する。
複数のリリースの存在は、即時の緩和策と耐久性のある修復を分離する。最初の成功した復元は多くのユーザーにとって目に見える失敗を止めることができる。後のリリースは追加のパス、エッジ条件、または長期的なパッケージングに対処できる。承認された記録は各ビルドのすべてのコード変更に関する詳細な主張を支持しないため、バージョンは修復の道筋のマイルストーンとして扱われるべきである。
エンタープライズ管理者にとって、リリースの道筋は異なる説明責任タスクを生み出す。インストールされているバージョンを特定し、該当するチャネルを判断し、アップデートをテストし、展開し、拡張機能とユーザープロファイルが期待どおりに動作することを確認する必要がある。消費者インストールを支援したリモート修正は、その運用作業を排除しない。
Mozilla にとって、Firefox と ESR をサポートすることは、復旧が複数の配布リズムを尊重しなければならないことを意味した。これは、ソフトウェアライフサイクルとロックインが同時に作用する例である。ユーザーはベンダーの信頼階層に依存していたが、ベンダーもユーザーや組織が選択したチャネルを通じてアップデートを受け入れることに依存していた。
記録は Firefox デスクトップ、ESR、Android、または下流ビルド全体への影響の完全な分布を確立していない。リリースノートの存在から均一な動作を推測するのは安全ではない。防御可能な結論は、Mozilla が1つのパスだけがサポートされる人口全体を代表していなかったため、緊急リモート配信と正式なリリースの両方を使用したということである。
耐久性のある復旧は、プラットフォームがもはや例外的な介入に依存せず、サポートされるバージョンが修正を運び、管理者が結果を確認できるときに達成される。リリースノートはその状態への進展の証拠を提供する。監査されたグローバル完了率は提供しない。
ユーザーデータの警告が注意義務を変えた
Mozilla のユーザー向けガイダンスには具体的な警告が含まれていた:「アドオンを削除したり再インストールしたりしないでください」。その理由は、削除や再インストールにより拡張データが削除される可能性があったためである。その指示はイベントを狭い検証失敗からユーザーデータ保存問題に変えた。
正当な拡張機能が突然無効になると、ユーザーはよく知られた修復手順を試すかもしれない。ソフトウェアの削除と再インストールは通常のアプリケーション問題に対する一般的なアドバイスである。このインシデントでは、その行動が拡張機能に関連するデータを変更することにより状況を悪化させる可能性があった。
したがって、プラットフォームは停止によって生み出された行動リスクを管理しなければならなかった。技術的復旧だけでは十分ではなかった。ユーザーは一時的な信頼失敗が永続的なローカル損失にならないようにするガイダンスを必要としていた。サポートフォーラムとコミュニティ記録は、インシデントが抽象的な証明書イベントではなく即時の実用的問題として人々にどのように届いたかを示している。
承認された証拠は、削除された拡張データが常に回復不能であったことを確立していない。それは Mozilla がなぜ削除と再インストールに対して警告したかを確立している。損失に関するより広範な主張は、拡張機能固有およびプロファイル固有の証拠を必要とする。
これは復旧失敗の境界である。組織は元の原因を修正できるが、ガイダンスが遅かったり、不明瞭だったり、安全でなかったりすると、回避可能な二次的被害を許容する可能性がある。逆に、明確な警告は、元のインシデントが防止されるべきであったとしても、対応の成熟度の証拠である。
警告はまた、拡張機能エコシステムがプラットフォームの中央サービスの外部に価値を保存する方法を明らかにする。アドオンは設定、リスト、ワークフロー設定、または他のローカル状態を保持できる。情報源はこれらのカテゴリやその経済的価値を定量化していない。それらは、アドオンの継続性にはアイコンが再びアクティブになるかどうかだけでなく、ユーザーデータも含まれるという一般的なポイントを支持する。
したがって、優れたインシデントガイダンスは、ユーザーが避けるべき行動を特定し、データがまだ存在するかどうかを説明し、無効と削除を区別し、リリースが届くにつれて指示を更新する必要がある。段階的なクライアントイベントでは、それらのメッセージは検証および更新サイクルの異なるポイントにいるユーザーに対して正確でなければならない。
緊急テレメトリがプライバシー義務を生み出した
独立した報道は後になって、Firefox アドオン修正を通じて収集されたデータと、Mozilla がそのメカニズムに関連する使用データを削除する計画に対処した。この証拠は、無関係の不正行為の証明としてではなく、対応時系列の文脈として属する。
リモート修復はしばしば何らかの可視性を必要とする。ベンダーは、対象クライアントがホットフィックスを受信したか、実行したか、対象の状態が変わったかを知る必要があるかもしれない。しかし、緊急時に収集されたテレメトリは、目的、最小化、保存、アクセス、削除の義務の対象である。
説明責任の問いは、すべての診断シグナルが禁止されているかどうかではない。修復に必要なデータが収集され、適切に伝達され、保護され、正当化された場合にのみ保存され、目的が終了したときに削除されたかどうかである。承認された情報源は後日のデータ取り扱い対応の存在を支持するが、すべてのフィールドや内部プライバシー管理の完全な目録を提供するわけではない。
この層は重要である。なぜなら、緊急性は例外的な収集を正常化する可能性があるからである。危機は可視性を最大化し迅速に行動するプレッシャーを生み出す。収集パスが強力なリモートチャネルに結びついている場合、技術的およびプライバシーレビューは展開後に続くように誘惑される可能性がある。
それは Mozilla がプライバシーを無視したことを意味しない。記録には使用データの削除に関する後の行動が含まれている。証拠に裏付けられた推論は、緊急ツールにプライバシーが組み込まれなければならず、迅速な修復が別の不透明なデータライフサイクルを生み出さないようにするということである。
同じ原則がインシデントアーティファクトの保存にも適用される。運用ログは、リーチの検証と障害の診断に不可欠である。また、即時の目的を超えて存続する可能性がある。成熟した対応は、セキュリティ調査と法的義務の例外を含む、削除および保存ルールを事前に定義する。
リモート制御、テレメトリ、および信頼修復は、したがって1つの説明責任システムを形成する。プラットフォームは、ユーザーを安全に復元するための十分な制御、復元が機能したことを知るための十分な証拠、および緊急観測を無期限の収集に変えないための十分な抑制を必要とする。
開発者はプラットフォーム管理の中断を継承した
Mozilla は15,000以上のアドオンのエコシステムを説明した。そのエコシステム内の開発者は拡張機能を作成および維持したが、共有中間証明書や Firefox の検証動作を制御していなかった。証明書が期限切れになると、独自のコードやエンドエンティティマテリアルが変更されていなくても、正当な製品が無効化される可能性があった。
これはブラウザの継続性問題であると同時に開発者ツールの経済問題でもある。拡張機能開発者はコード品質、互換性、サポートに責任を持つことができるが、ベンダーが運用する署名および配布システムに依存したままになる。共通モードの信頼失敗は、サポート作業と風評圧力を下流に移す。
承認された記録は総経済効果を確立していない。収益の損失、サポート時間、ユーザー解約、または開発者全体の事業中断を定量化していない。それらの結果は大きく異なり、発明されるべきではない。
記録が支持するのは依存構造である。開発者は Mozilla が検証を復元する必要があった。一部のインストール済みアドオンは現在のチャネルを通じてホストされていなかった可能性があり、大規模な再署名戦略を複雑にしていた。ユーザーは共有証明書が原因であっても、無効化された機能を拡張機能に帰する可能性があった。
したがって、プラットフォームの説明責任には開発者向けコミュニケーションが含まれるべきである。メンテナーは明確な原因、伝達できるガイダンス、リリースの期待、およびプラットフォームの失敗とアドオンの失敗を区別する方法を必要とする。また、ビルド、署名、または配布プロセスに影響を与える可能性のある証明書ライフサイクルの変更についての通知も必要である。
システムは保護的でありながら、その運営者に義務を課すことができる。必須の署名は、個々の開発者が完全に機能するためにオプトアウトできない品質とセキュリティの境界を作成する。運営者は、コンプライアンスを遵守する開発者が予防可能な共通モードの中断にさらされないように、その境界を十分に信頼できるものにしなければならない。
これは署名を削除するための議論ではない。署名サービスと証明書カレンダーを開発者インフラの一部として扱うための議論である。可用性目標、更新リハーサル、緊急チャネル、およびコミュニケーションは、そのインフラに置かれた経済的依存を反映すべきである。
根本原因は既知だったが、組織的な因果関係は不明
公開記録は即時の技術的根本原因について異常に明確である:アドオン署名システムにおける中間証明書の期限切れ。その明確さは曖昧な「証明書問題」に薄められるべきではない。それは信頼オブジェクトとその役割を特定する。
記録は組織的な因果関係についてあまり完全ではない。完全な所有権マップ、更新ワークフロー、アラート閾値、変更承認、または期限前テストを示していない。タスクを逃した人物を指名していない。意図、欺瞞、または証明書を期限切れさせる意図的な決定を確立していない。
寄与条件はよりよく支持されている。ほとんどすべてのアドオンが共有中間証明書に依存していた。クライアント検証は段階的だった。エコシステムは大きかった。配布パスは様々だった。緊急修復はリモートシステムアドオンチャネルとその後のアプリケーションリリースに依存していた。
検出の問題は境界のあるままである。Mozilla の認識は太平洋時間5月3日午後6時頃に技術的説明で確認されている。内部システムが数日または数ヶ月前に警告を発するべきだったかどうかは合理的なガバナンス問題であるが、承認された証拠はそれらのシステムが何をしたかを明らかにしていない。
対応証拠は具体的である。Mozilla は複数の復旧戦略を検討し、交換中間証明書を選択し、Normandy/Studies を使用し、太平洋時間午前2時44分にシステムアドオンホットフィックスを配信し、ユーザーガイダンスを伝達し、Firefox および ESR リリースを発行した。
復旧証拠は分散している。アドオン検証は戻らなければならず、新しいインストールは機能しなければならず、ユーザーは破壊的な修復試行を避けなければならず、管理チャネルはリリースを必要とし、緊急データの取り扱いは終了を必要としていた。単一の行動がそれらのすべての条件をグローバルに証明するわけではない。
この階層化された説明は、単一の過失行為の検索よりも有用である。何が失敗したか、何が影響を増幅したか、何が不明のままか、Mozilla が何をしたか、持続可能な改善を示す証拠は何かを特定する。また、技術的事後分析を支持されていない法的評決に変えることを避ける。
証明書ライフサイクルのアカウンタビリティに必要なこと
第一に、すべての必須の信頼オブジェクトには所有者と可用性分類が必要である。ほとんどすべてのアドオンで共有される中間証明書は、単なる暗号資産ではない。その期限切れは製品継続性イベントである。所有権は発行から更新、展開、重複、廃止、緊急交換まで拡張されるべきである。
第二に、監視は最終期限切れの瞬間ではなく、影響までの時間に基づくべきである。アラートは、発行、セキュリティレビュー、クライアントテスト、段階的展開、ロールバックのための十分なリードタイムを必要とする。今日のグリーンステータスは、次の移行が一度も実行されたことがない場合には十分ではない。
第三に、更新はサポートされるクライアントとチャネル全体でテストされるべきである。Firefox ポイントリリース、ESR、リモート設定、システムアドオン、管理展開、下流ビルドは異なる動作をする可能性がある。承認された記録はすべての製品結果をマッピングしていない。まさにその理由から、期限前のカバレッジ証拠が重要である。
効果的なリハーサルは、新しく発行された証明書が暗号的に有効かどうかだけでなく、クライアントが古い証明書の期限切れ前にチェーンを受信するか、移行中にオフラインのインストールが後で復旧するか、管理環境が変更を受け入れるか、リモート配信除外がリリースベースの代替手段を持つか、ロールバックが信頼された状態を残すかをテストする。5月の時系列は、Mozilla がイベント前にこれらのテストのどれを実行したかを明らかにしていない。ライフサイクル所有者が、更新マテリアルが存在するという証拠だけでなく、移行が配布条件全体で機能するという証拠をなぜ必要とするかを示している。
第四に、共通モードの爆発半径は明示的であるべきである。中間証明書の共有は運用を簡素化するが、失敗を集中させる。アーキテクチャレビューは、セグメンテーション、重複有効期間、または代替信頼パスが、署名施行を弱めることなく、一緒に失敗する正当なツールの数を減らすことができるかどうかを問うべきである。
第五に、緊急リモートチャネルは特権インフラとして統治されるべきである。アクセス、承認、署名、適格性、テレメトリ、ロールバック、公開説明は危機の前に定義されるべきである。Normandy/Studies の対応はリーチの価値を示している。そのリーチはまた抑制を要求する。
第六に、ユーザーデータを安全に保つガイダンスは最初の公開対応に伴うべきである。「アドオンを削除したり再インストールしたりしないでください」という正確な指示は、予測可能な反応に対処した。復旧計画は、ユーザーが発見する前に、同様に危険な自己救済行為を特定すべきである。
第七に、開発者の継続性はプラットフォームインシデント計画の一部であるべきである。開発者は権威ある原因、ステータス、修復パス、および伝達できる期待を必要とする。プラットフォームは、コンプライアンスを遵守するサードパーティが共有制御の失敗に対して責任があるように見せかけることを避けるべきである。
第八に、緊急修復のために収集されたテレメトリには削除計画が必要である。目的と保存は、展開が緊急だったという理由だけで無期限に延期することはできない。リーチの証拠は、ライフサイクルが事前に設計されている場合、プライバシー最小化と共存できる。
最後に、復旧は通常のリリースチャネル全体で実証されるべきである。緊急ホットフィックスは迅速にサービスを復元できるが、耐久性のある保証はサポートされるビルド、検証された信頼状態、閉じられた一時的措置、および次の期限切れが同じパスを繰り返さないという証拠から得られる。
これらの制御は、Mozilla がすべてを欠いていたという所見ではない。確認された原因と修復シーケンスによって露呈された説明責任要件である。公開記録はそれらの必要性を確立している。内部証拠は、停止の前後にそれらがどの程度存在していたかを判断する。
不明点は判断を制限する
影響を受けたユーザーの正確な数は確立されていない。共有中間証明書と広範な報告は広範囲への影響を支持するが、普遍的な数ではない。「すべての Firefox ユーザー」は支持されていない主張となる。
デスクトップ Firefox、ESR、Android、下流ビルド全体の完全な分布は、承認された証拠によって閉じられていない。リリースノートは名前付きバージョンの修復マイルストーンを確立する。すべてのバリアントにわたる同一の症状や完了を確立するものではない。
開発者の総経済的影響は不明である。15,000以上のアドオンはエコシステムの規模を説明するが、収益を失った開発者の数や中断された作業の価値ではない。
完全な内部検出および更新履歴はここでは公開されていない。技術的原因は確認されているが、期限切れに至る組織的なシーケンスは部分的にしか見えていない。記録から意図的な無効化、詐欺、悪意のある行為の主張は生じない。
緊急テレメトリの範囲と取り扱いは、支持証拠に結びついたままであるべきである。記録は Mozilla が修正メカニズムを通じて収集された使用データの削除に後で対処したことを示している。無関係の閲覧データや無期限の収集プログラムについての推測を支持するものではない。
削除された拡張データが常に回復不能であったことは証明されていない。Mozilla の警告は実際の保存リスクと安全なガイダンスの必要性を確立する。すべてのプロファイルや拡張機能の結果を確立するものではない。
インシデント後の長期的な制御状態は公開記録によって完全に確立されていない。リリースの道筋は修復を示しているが、証明書在庫、更新所有権、アラート閾値、移行リハーサル、緊急チャネルガバナンスの後の監査を提供するものではない。それらの欠落した詳細は、すべてのライフサイクルリスクが永久的に閉じられたという主張を防ぐべきである。確認された修復シーケンスを減少させるものではなく、耐久性を評価するために必要な証拠を定義するものである。
保護制御には可用性の所有者が必要
Firefox の2019年のアドオン停止は、拡張機能の署名が間違いであったことを示さなかった。保護制御がインフラとして失敗し得ることを示した。中間証明書は共有信頼オブジェクトであり、時間制限のある依存関係であり、正当なツールが使用可能かどうかを変更できるスイッチだった。
タイムラインは具体的である。Mozilla は太平洋時間5月3日午後6時頃に認識した。中間証明書は2019年5月4日1:00 UTC 直後に期限切れになった。Mozilla は太平洋時間午前2時44分に最初の Normandy/Studies システムアドオンホットフィックスを配信した。Firefox および ESR リリースが続いた。
因果カテゴリも具体的である。期限切れがトリガーだった。Mozilla は期限切れの中間証明書を根本原因として特定した。共有依存、段階的チェック、エコシステム規模、複数の配信パスが寄与条件だった。完全な期限前検出の話は不明のままである。リモート修復、ユーザーガイダンス、ポイントリリースが対応証拠だった。安定した信頼、ユーザーデータの安全性、プライバシーの終了、サポートされるチャネルカバレッジが復旧義務だった。
その分離は2つの安易な誤りを避ける。1つは、承認された証拠がそうでないと言っているときに、イベントを悪意のあるアドオンインシデントとして説明することである。もう1つは、証明書が大規模な開発者およびユーザーエコシステムの可用性を制御していたときに、無害な事務的過失として免罪することである。
セキュリティ制御は、攻撃への耐性と通常のライフサイクルイベント下での継続性の両方を通じて信頼を得る。期限切れは予測可能である。安全なキー管理、広範なクライアント配布、互換性、ロールバックすべてが連携して機能する必要があるため、更新は依然として運用上困難である。予測可能性は実行を些細なものにするのではなく、準備をより重要にする。
Mozilla の対応は署名モデルを維持しながら、緊急および正式なリリースチャネルを通じて正当なアドオンを復元した。公開された道筋はまた、ユーザーガイダンスと緊急データに関する義務を露呈した。これらは、元の期限切れが中心的な失敗であり続ける中でも、対応記録における重要な強みである。
永続的な教訓は、必須の信頼インフラには、セキュリティ所有者と同じ明確さを持つ可用性所有者が必要であるということである。ブラウザエコシステムを保護する証明書は、それを停止させることもできる。説明責任は、時計がゼロに達する前に両方の結果が統治されるときに始まる。
情報源
- https://blog.mozilla.org/addons/2019/05/04/update-regarding-add-ons-in-firefox/
- https://hacks.mozilla.org/2019/05/technical-details-on-the-recent-firefox-add-on-outage/
- https://www.firefox.com/en-US/firefox/66.0.4/releasenotes/
- https://www.firefox.com/en-US/firefox/66.0.5/releasenotes/
- https://www.firefox.com/en-US/firefox/60.6.2/releasenotes/
- https://www.firefox.com/en-US/firefox/60.6.3/releasenotes/
- https://bugzilla.mozilla.org/show_bug.cgi?id=1548973
- https://bugzilla.mozilla.org/show_bug.cgi?id=1549061
- https://bugzilla.mozilla.org/show_bug.cgi?id=1549078
- https://bugzilla.mozilla.org/show_bug.cgi?id=1549129
- https://bugzilla.mozilla.org/show_bug.cgi?id=1549204
- https://bugzilla.mozilla.org/show_bug.cgi?id=1549192
- https://bugzilla.mozilla.org/show_bug.cgi?id=1549249
- https://archive.mozilla.org/pub/system-addons/hotfix-bug-1548973/
- https://discourse.mozilla.org/t/fixed-certificate-issue-causing-add-ons-to-be-disabled-or-fail-to-install/39047
- https://discourse.mozilla.org/t/thread-add-ons-not-working-due-to-certificate-expiration/38968
- https://wiki.mozilla.org/Add-ons/Expired-Certificate
- https://www.bleepingcomputer.com/news/software/firefox-addons-being-disabled-due-to-an-expired-certificate/
- https://www.bleepingcomputer.com/news/software/mozilla-to-delete-usage-data-collected-from-firefox-addon-fix/
- https://support.mozilla.org/en-US/questions/1258030

