Edge「仕様」撤回、起動時のパスワード平文展開を修正へ
「仕様だ」と突っぱねていたMicrosoftが、わずか2週間で姿勢を変えた。Edgeが起動時に保存パスワードをすべて平文でメモリに展開する挙動を、次回アップデートから廃止する。
2週間で覆った「仕様」回答
Microsoftが、Edgeブラウザの保存パスワード処理を変更している。起動時に全パスワードを復号化してプロセスメモリに常駐させる挙動を、次回の更新から取り止める。同社が当初「仕様(by design)」と回答していた挙動だ。
経緯は短い。ノルウェーのセキュリティ研究者、トム・ヨラン・ソンステビセター・ロニング(Tom Jøran Sønstebyseter Rønning)が4月29日、Palo Alto Networks Norway主催のイベント「BigBiteOfTech」で、Edgeの挙動を公開した。EdgeはChromiumベースのブラウザだが、テストした他のChromium系ブラウザとは違い、Edgeだけが起動した瞬間に保存済みパスワードを全件復号し、セッション中ずっと平文でメモリに保持する。
ロニング氏はこの挙動をMicrosoftに事前報告していた。同社からの回答は「仕様」。
|
「仕様」のまま放置できなかった理由
5月4日、ロニング氏が実証映像を公開すると、批判が一気に広がった。Chromeはパスワードが必要になった瞬間にだけ復号する。App-Bound Encryption(アプリケーション束縛型の暗号化)で復号鍵をブラウザプロセスに紐づけ、他プロセスからの読み取りを防ぐ仕組みも備える。Edgeにはどちらの保護もない。保存した全クレデンシャルが、ユーザーがそのサイトを訪れていなくても、ブラウザを開いた瞬間にプロセスメモリに並ぶ。
| 比較項目 | Edge(修正前) | Chrome |
|---|---|---|
| 復号の タイミング |
起動時に 全件を一括復号 |
必要時のみ その都度復号 |
| メモリ上の 滞在時間 |
セッション中 常駐 |
使用直後に 消去 |
| 復号鍵の プロセス紐付け |
なし | あり (App-Bound Encryption) |
| 未訪問サイトの パスワード |
起動時から 平文で展開 |
展開されない |
| 設計の 脅威モデル |
ローカル攻撃は モデル外と明記 |
ローカル攻撃にも 対抗する設計 |
ロニング氏は実証ツール「EdgeSavedPasswordsDumper」をGitHubで公開している。
ツールは管理者権限なしでも動作するが、その場合は同一ユーザーが起動したEdgeプロセスにしかアクセスできない。管理者権限で実行すると、同じマシンの他ユーザーのEdgeプロセスのメモリも読み取れる。
(EdgeSavedPasswordsDumper、README)
ツールを管理者権限で動かせば、同じマシンにログイン中の他ユーザーのEdgeプロセスからもパスワードを抜き出せる。ターミナルサーバや仮想デスクトップ、共用ワークステーションのように複数ユーザーが同居する環境では、管理者権限を奪った攻撃者が全ユーザーの認証情報を一括で収穫できる。
ロニング氏自身はこれを「エクスプロイト」とは呼んでいない。メモリを読むには管理者権限が必要で、その権限があれば他の手段でもパスワードは取れる。問題視しているのは「使ってもいない全パスワードを起動時に復号して保持する」設計判断のほうだ。
Chromeは設計上、プロセスメモリを読むだけで保存済みパスワードを抜き出すことを、はるかに困難にしている。Edgeはそうなっていない。
(ロニング氏の投稿を要約)
「by design」から「defense-in-depth」へ
Microsoftの当初の回答は、技術的には筋が通っている。デバイスがすでに侵害されている前提のシナリオであり、Edgeの脅威モデル外である、と。事実、Edgeのパスワードマネージャ公式ドキュメントには、ローカル攻撃やマルウェアによる復号データへのアクセスは脅威モデルの外、と明記されている。
ブラウザがパスワードをメモリに読み込むのは、ユーザーが素早く安全にサインインできるようにするためです。これはアプリケーションの想定された機能です。
(Microsoft広報の当初の声明)
ただ、この立場は批判をかわせなかった。セキュリティ業界の議論が燃え広がり、ThreatLockerやProtonといったセキュリティベンダー各社が「Edgeのパスワードマネージャから移行すべき」と公に推奨した。
そしてMicrosoftは方針を変えた。Edgeのセキュリティリードを務めるガレス・エヴァンス(Gareth Evans)は、報告されたシナリオは既存の脅威モデル内に収まる(つまり脅威ではない)としつつ、それでも全サポートチャンネルに修正を展開すると表明した。Stable、Beta、Dev、Canary、そして企業向けのExtended Stableまでが対象だ。
修正はすでにEdge Canaryに入っており、build 148以降の通常アップデートで他チャンネルにも届く。
「想定通り」と「修正する」の同居
注目すべきは、Microsoftが「これは脆弱性ではない」というスタンスを崩していない点だ。修正の位置づけは多層防御(defense-in-depth)であって、脆弱性パッチではない。
この使い分けは、企業のセキュリティ広報としては合理的だ。「仕様」と認めた挙動を「脆弱性だった」と言い直すと、過去の判断が否定される。一方で「多層防御の改善」なら、過去の判断を保ったまま将来の挙動だけを変えられる。
ロニング氏の指摘の核心は、まさにそこだった。攻撃者がデバイスを掌握した時点で勝負はついている、という理屈は正しい。けれど、勝負がついた後にどれだけ広い被害が生まれるか、そのブラスト半径はアーキテクチャの選択で決まる。Chromeは選択していた。Edgeは選択していなかった。
Microsoftが今回の修正で認めたのは、結局のところその差だ。
残る問い
修正後のEdgeが具体的にどう動くかは、まだ詳細が公開されていない。Chromeのようなオンデマンド復号に切り替えるのか、ロード対象を訪問サイトに限定するのか、復号鍵をプロセスに紐づけるのか。エヴァンス氏のコメントは「メモリ上のパスワード露出を減らす実用的な一歩」と述べるにとどまっている。
ブラウザ内蔵パスワードマネージャという仕組みそのものへの疑問も残る。利便性と引き換えに、ユーザーは自分のクレデンシャルをブラウザに委ねている。その委ね先が、起動時に全部を平文で広げていた事実は、修正後も記憶される。
「仕様」と回答した瞬間に終わるはずだった話が、2週間で覆った。次に「仕様です」と返答が来たとき、それを信じる理由が一つ減った。
参照元
- EdgeSavedPasswordsDumper(実証ツール、L1v1ng0ffTh3L4N/GitHub)
- Tom Jøran Sønstebyseter Rønning(@L1v1ng0ffTh3L4N、X)
他参照
関連記事
- Edge起動と同時に全パスワードが平文展開、それは仕様だ
- MicrosoftがEdge乗り換えに100万ドルと車、ブラウザ賞金化の末路
- Defenderの新たなゼロデイ「RoguePlanet」、月例パッチ当日に投下
- Chromeに今年5件目の実悪用ゼロデイ、V8に脆弱性
- ブラウザ6社がMicrosoftに公開書簡、Edge優遇の即時停止を要求
- Microsoftが折れた、ゼロデイ騒動の裏側
- Windowsゼロデイ6件、業界が問うMSRCの崩壊
- BitLockerバイパス脆弱性をめぐりMicrosoftと研究者が対立
- 修正済みのはずがまだある—ChromiumのRCE脆弱性、Googleが誤公開
- Defenderのゼロデイ2件、すでに攻撃で使われていた