平文でのパスワードの保持

ほぼこもセキュリティニュース By Terilogy Worx

私たちは日々いろいろなWebサイトを利用しています。
そしてWebサイトを利用する際に、Webブラウザを利用します。
Webブラウザにはいろいろなものがありますが、大きな利用者数を持つものにChromeがあります。
ChromeはオープンソースのChromiumがベースとなっていますので、Chrome以外にも同じソースコードを利用したWebブラウザが多数出てきています。

Chromeの便利さはChromeの機能性そのものにもありますが、Chromeで利用できる拡張機能によるところも大きいのではないでしょうか。
とてもたくさんの拡張機能がリリースされていますので、なにかを実現しようと思って探すと、大抵はその目的の拡張機能を見つけることができます。
そしてこれらの拡張機能はストアに登録される際に、審査されて安全と思われるものだけが公開されていると、私たちは思っています。

この前提は、信じたいものですが、十分ではないのかもしれません。
この現在の審査の基準が必要十分ではない可能性が出てきています。
研究者がこれを概念実証する拡張機能を作成し、ストアにアップロードする検証を実施しました。
こんな動作内容の拡張機能でした。

  • ユーザーがページにログインしようとすると、そのHTMLソースコードをキャプチャする
  • CSSセレクターを悪用してターゲットの入力フィールドを選択し、「.value」関数を使用してユーザーの入力内容を抽出する
  • 要素置換を実行して、JavaScriptベースの難読化されたフィールドを安全でないパスワードフィールドに置き換える

この動作が意図通り動作した場合、ユーザが入力したパスワードは平文の状態でHTMLのコード上に保持された状態になります。
これは、他のJavaScriptなどのDOM操作が可能な機構から容易にその平文の文字列を取得することができる状態といえます。

この動きをするように実装された拡張機能を、概念実証としてストアにアップロードする検証が試みられました。
結果は、アップロード成功となってしまいました。
前述の動作を実現する機構は、その機構の中に、明らかな悪意のあるコードが含まれていません。
また外部からコードを取得するような動作も含まれないため、静的解析として危険と判定されませんし、現在多くのWebブラウザで採用されているManifest V3プロトコルにも抵触しないものとなっていました。

開発者はアプリケーションを開発する際に多くの安全のための基準に適合するように開発を進めます。
これにより、一定の安全が確保されるのは確かだと思います。
しかし、場合によっては、その用意された基準の想定範囲に入りきらない悪用方法が残ってしまっていることもあるといえそうです。
それぞれの開発の現場でどこまでこういったものを阻止できるのかはわかりませんが、せめて準拠の推奨される基準に適合するように開発することは心掛けたいものです。

参考記事(外部リンク):Chrome extensions can steal plaintext passwords from
websites

www.bleepingcomputer.com/news/security/chrome-extensions-can-steal-plaintext-passwords-from-websites/