Google ChromeやMicrosoft Edgeに入力した個人情報がGoogleやMicrosoftに筒抜けになる「スペルジャッキング」という不具合が見つかった。パスワードも漏れてしまう。
「Google Chrome」や「Microsoft Edge」には便利な機能が備わっている。英単語のつづりを修正するスペルチェッカーもその一つだ。
だが、このスペルチェッカーがユーザーの入力した個人情報を盗み出すのだという。どういうことだろうか。どうすれば防ぐことができるのだろうか。
英Comparitechが運営する比較サイト「Comparitech.com」は2023年9月18日(現地時間)、Webブラウザが備えるスペルチェッカーを介した「スペルジャッキング」について報告した。
同社のマーク・ダハン氏(オンラインプライバシースペシャリスト)によれば、Webサイトのフォームにユーザーが入力したデータをユーザーの同意なく、GoogleやMicrosoftといったWebブラウザのベンダーに送信しているという。
まず押さえておきたいのは、スペルジャッキングは金銭などを目的とした犯罪者によるサイバー攻撃ではないということだ。Webブラウザのバグまたは設計上の欠陥によって起こる問題だ。ただし、結果としてサイバー攻撃を受けたときのようにデータが漏えいする可能性がある。
スペルジャッキングは、GoogleとMicrosoftがそれぞれのWebブラウザに機能を実装する際の不手際から起こる。どちらのWebブラウザでもインストール時にスペルチェッカーが有効になっているものの、この状態ではまだデータの漏えいは起こらない。
しかし、ユーザーがWebブラウザのオプションを触って、拡張スペルチェッカーを有効にすると問題が起きる。Googleの場合は「Enhanced Spellcheck」、Microsoftでは「Microsoft Editor」が原因だ。
これらを有効にすると、フォームのデータがGoogleやMicrosoftと共有される。つまり意図せずにデータが漏えいする。ユーザーがアクセスするWebサイトとは無関係だ。
米国で使われている社会保障番号(SSN)や社会保険番号(SIN)はもちろん、氏名や住所、生年月日、メールアドレス、連絡先、口座番号、さらにはパスワードの入力フィールドもGoogleやMicrosoftから丸見えになる。
ただし、パスワードが漏えいするにはひと手間必要だ。パスワード入力フィールドの一部では、ユーザーが入力したパスワードを難読化して、「●●●●●●」というように表示する。この状態では何を入力したのか、GoogleやMicrosoftには分からない。
だが、パスワードを入力しているときにミスを恐れて「パスワードを表示」ボタンをユーザーがクリックした瞬間、パスワードがGoogleやMicrosoftに送信されてしまう。
このバグを発見したのは、JavaScriptセキュリティを提供するotto-jsのジョシュ・サミット氏(共同設立者兼CTO《最高技術責任者》)だ。サミット氏によれば、個人情報が漏えいするのはもちろん困ったことだが、企業内のユーザーにとっては社内のデータベースやクラウドインフラストラクチャのような内部資産への認証情報が漏れることが問題なのだという。
図1では、AlibabaのログインページのパスワードがGoogleに送信されている様子を示した。この問題がバグに起因していることがはっきりする。右下(サーバのレスポンス、つまりGoogle側)を見ると、スペルチェックを実行するためにテキストが送信されたことが分かる。「パスワードを表示」ボタンをクリックすると、パスワードが送信される。
Googleはスペルジャッキングに対応するため、次のような声明を発表している。
「強化されたスペルチェック機能(Enhanced Spellcheck)を利用するには、ユーザーからのオプトインが必要だ。ユーザーが入力したテキストは、機密性の高い個人情報の可能性があり、GoogleはこれをいかなるユーザーIDともひもづけず、サーバで一時的に処理するだけだ。ユーザーのプライバシーをより確実にするため、パスワードをスペルチェックの対象から積極的に除外するよう取り組んでいく。セキュリティコミュニティーとの協力に感謝し、ユーザーのプライバシーと機密情報をより良く保護する方法を常に模索している」
スペルジャッキングが実際に起こるかどうか、Comparitechは代表的なWebサイトでテストした。
パスワードの漏えいを調べた実験によれば、SSAやBank of America、Verizonは対策済だ。つまり、後ほど紹介するユーザー側の対策以外に、サーバ側でも対策が可能だ。
サーバ側の対応は単純だ。「spellcheck」HTML属性を追加して「spellcheck=false」と設定するだけでよい(図2)。これだけで、ユーザーの個人情報が漏えいするリスクを軽減できる。この属性を全ての入力フィールドに設定すれば、そのWebサイトに限ればスペルジャッキングを完全に防止できる。手間を惜しむなら、パスワード入力フィールドのような最も機密性の高い部分の改修だけでもよい。
サーバ側の対応が十分進めば、ユーザーはパスワード漏えいを気にしなくても済む。だが、実験結果から分かるように現時点では対応が必要だ。
最も単純な対策は「パスワードを表示」ボタンをクリックしないことだ。パスワード以外の情報は漏れてしまうが、パスワードはスペルジャッキングの対象にならない。
もう少し複雑な対策もある。Microsoft Edgeの場合は「Microsoft Edit」アドオンをインストールしないことだ。
インストールしたかどうか分からない場合はMicrosoft Edgeの設定を変える。アドレスバーの右側にある「拡張機能」をクリックすると、インストール隅の拡張機能/アドオンのリストが表示される。ここでインストール済みとなっていた場合は削除する。
Google Chromeの場合は多少対策が異なる。スペルチェックが有効になっているかどうかをまず確認する。Chromeのアドレスバーに「chrome://settings/?search=Enhanced+Spell+Check」と入力してインストールされているかどうかを調べる。インストール済みの場合は拡張スペルチェックではなく、基本スペルチェックを選択する。
スペルジャッキングはサイバー攻撃ではないが、個人情報や企業の機密情報の漏えいにつながる。GoogleやMicrosoftは十分なセキュリティ対策を採っていると主張するが、そもそも外部に漏れてはいけないデータを漏れる設定にしておくべきではない。Webサイト(サーバ側)、ユーザー(クライアント側)ともパスワードの漏えい対策だけは実行すべきだろう。
Copyright © ITmedia, Inc. All Rights Reserved.
製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。