脆弱性のあるブラウザ拡張機能がバックドアになる危険性

ブラウザのアドオンに与えている権限を確認していますか?

これは盲点になりがちです。アプリに与える権限には注意すべきだということは知られていますが、Chrome や Firefox などのブラウザの拡張機能に与える権限については、悪意のある拡張機能による不審な挙動が発見された時にだけ注意が払われる傾向があります。

しかし、下位 API を研究しているコートダジュール大学の研究者、Dolière Francis Somé 氏によると、問題は悪意のある拡張機能だけではありません。

拡張機能には、Web サイトにはない機能があります。Web サイトは同一生成元ポリシー (SOP) というポリシー (他のドメインの Web サイトがデータを共有することを制限するレイヤー) によって保護され、機能を制限されています。

Somé 氏は、不正な Web サイトが権限を与えられたブラウザ拡張機能を悪用し、ユーザーデータや閲覧履歴、ユーザー認証情報などに不正にアクセスしたり、ストレージにファイルをダウンロードしたりすることで、SOP による基本的な保護機能を迂回できるかどうかに注目しました。

WebExtensions API を使用する 78,315 件の Chrome、Firefox、Opera の拡張機能を対象に、静的解析と手作業での調査を組み合わせて分析した結果、197 件の拡張機能が保護を迂回できることが発見されました。

この 197 件のうちの 171 件が Chrome の拡張機能でした。この数字は、Firefox や Opera がセキュリティ上優れているというよりは、Chrome で利用可能な拡張機能の数が飛び抜けて多いことを示しています。残りは 16 件が Firefox、10 件が Opera のものでした。

問題の深刻度

脆弱性を持つ拡張機能は非常に少なく、一見深刻な問題ではないように思えます。不正な拡張機能の半数以上はインストール数が 1,000 回未満であり、10,000 回以上インストールされたものはわずか 15% でした。

しかし、これらの拡張機能の多くは正当化しがたい動作を行っていました。63 件は SOP を迂回し、19 件はコードを実行し、33 件の Chrome の拡張機能にいたっては他の拡張機能のインストールが可能でした。

Somé 氏によると、ブラウザメーカー各社はテストで発見された拡張機能の問題について報告を受けており、Mozilla はそのすべてを、Opera は 2 つを除いたすべてを削除し、Google は削除するか修正するかを現在検討中です。指摘された拡張機能の一覧は論文の最後に記載されています。

対策

最も簡単な解決策はおそらく、拡張機能と Web ページとのやり取りをブロックすることですが、正規の動作までもブロックしてしまう可能性があります。

代りに、拡張機能そのものにやり取りする相手の Web サイトを強制的に開示させることも、またブラウザベンダーが拡張機能を精査して、挙動をチェックすることもできます。

Somé 氏は以下のように結論付けています。

(引用文日本語訳) ブラウザのベンダーは拡張機能を厳密に検査すべきです。特に、メッセージパッシングインターフェイス (MPI) の使われ方に着目する必要があります。

本当の問題は稀にしかパッチが公開されない現在の拡張機能のアーキテクチャーそのものだ、という意見もあります。

多くの Chrome の拡張機能は、下位レベル API の悪用が可能なだけでなく、インストール時に高い権限 (アクセスした Web サイト上の全データを読み取り、変更する権限など) を要求する傾向にあります。

一方 Google は最近 Chrome の拡張機能の権限に変更を加え、ユーザーが指定した特定のサイトに限ってアクセスできるようにしました。

これまでと同様、最も現実的なアドバイスは「インストールする拡張機能の数はできるだけ少なくし、拡張機能が要求する権限を慎重に確認する」です。

Chrome ではインストール後に、[拡張機能] > [詳細] で確認ができます。

Firefox では、[Firefox に追加] ボタンをクリックすると権限が一覧表示されます。

Opera では、[拡張機能] > [情報] で確認できます。