Chrome拡張攻撃の手口
Black Hatのプレゼンテーションで両氏は1つの拡張機能に問題があることを示し、それによって別の拡張機能への攻撃が可能になることを示した。この技術を人気パスワード保存サービスのLastPass(同名の企業が提供)に対して実証。LastPassに脆弱性はなかったにもかかわらず、ある拡張機能に存在するXSSの脆弱性を突いて被害者のLastPassアカウントのパスワードを盗み出し、完全に制御して見せた。この技術にはセッションcookieを盗み、被害者による同サービスへのアクセスを乗っ取る過程が含まれる。
「RSSリーダー、メール着信通知、メモ取りツールなど、どこかの場所から取り入れた情報をユーザーに表示するものは事実上全てこの危険にさらされる。被害者のHDDについてはアクセスすることにもその内容にも気を留めない。XSSは、攻撃者が求めている以上のものを全て与えてしまう」とヨハンセン氏は解説する。
さらに悪いことに、「BeEF」というブラウザ活用フレームワークがサイバー犯罪集団による攻撃の自動化支援に使われる可能性もある。BeEFはセキュリティ専門家が使っている正規のオープンソースツールだが、脆弱性のある拡張に挿入して被害者のChromebookのバックグラウンドに常駐させ、攻撃者の思うままに悪質なJavaScriptを実行させることが可能だという。
サードパーティー開発者の責任
問題は、サードパーティー開発者が設定するChrome拡張のパーミッションにある。パーミッションでは拡張機能がGoogle DocsやサードパーティーのWebサイトといったWebベースのリポジトリにアクセスしてデータを利用できるようにする。例えば銀行用の拡張機能なら、銀行のサーバにアクセスして情報を取得する必要がある。RSSフィードリーダーの拡張機能の場合、ほぼあらゆるドメインにアクセスできるパーミッションが必要になるため、大きな問題になるかもしれないと研究者は言う。WhiteHatの研究者が説明した技術を使えば、攻撃者がリポジトリをハッキングしてデータを盗み出すことも可能になる。
脆弱性を修正して不必要なパーミッションを排除する責任はサードパーティーの拡張機能開発者にあるかもしれない。Googleのリポジトリにはコード検証プロセスが存在しないため、拡張機能に要求されるパーミッションが多過ぎるかどうかを判断するのはユーザーの裁量に委ねられる。
「つまりわれわれは開発者のセキュリティに対する配慮についてのみならず、実行のためにオープンなパーミッションを要する一部の拡張機能についても心配しなければならない。パーミッションが極めて幅広くオープンな拡張も出回っている」とヨハンソン氏。