サイエンス

なぜ拡張機能にマルウェアが仕込まれる問題が後を絶たないのか?


2021年2月5日に、Chrome向けの拡張機能「The Great Suspender」がChromeウェブストアから消滅し、ブラウザからも強制的にアンインストールされました。Linuxやフリーソフト開発コミュニティ向けのニュースサイト・LWN.netが、この拡張機能が削除された背景とオープンソースコミュニティが直面している課題について解説しています。

Malware in open-source web extensions [LWN.net]
https://lwn.net/SubscriberLink/846272/37d25507fa3e9cd3/

Chrome向け拡張機能のThe Great Suspenderは、使用していないタブを一時停止してメモリ消費を抑えることが可能なことから、200万人以上の愛用者を擁する人気の拡張機能でした。しかし、2020年6月に所有権が元の開発者から新しい所有者に譲渡されたことをきっかけに不審な動作をするようになり、最終的にマルウェアと認定されました。

The Great Suspenderの問題点は、以下の記事で詳しく解説されています。

Chrome向け拡張機能「The Great Suspender」がマルウェア化しているという指摘 - GIGAZINE


2021年2月にThe Great SuspenderがChromeウェブストアから排除された際は、「The Great Suspenderの強制アンインストールと同時に一時停止されていたタブまで消えてしまいユーザーが困惑する」といった一幕もありましたが、かねてからThe Great Suspenderの危険性を警告してきたオープンソースコミュニティは胸をなで下ろしたそうです。

LWN.netに記事を寄稿したカルム・マコーネル氏によると、The Great Suspenderにマルウェアが仕込まれるという事件の根本的な原因は、ずる賢いクラッカーの犯行でも開発者のうっかりミスでもなく、オープンソースコミュニティが長年にわたり抱いていた「一体誰がこのコードの所有者なのか?」という疑念にあるとのこと。


オープンソースの基本的な理念は、ソフトウェアのコードを一個人が所有するのではなく、コミュニティが全体で共有できるようにすることです。しかし、マコーネル氏は「この理念は実際には通用しません。なぜなら、コードがコミュニティのメンバーから別のメンバーへと魔法のように移動するようなことはないからです。そのため、コードには所有者が必要です。つまり、サーバーを運営し、GitHubのアカウントを持ち、リリース時に署名を行い、その上でソフトウェアを公開する人がいなければならないわけです」と説明します。

ここで問題になるのが、オリジナルの開発者がコードを誰かに譲ることを決めた場合です。GitHubのようにオープンソースプロジェクトを前提としているサイトを使えば、メンテナーやコントリビューターが集まって独自のプロジェクトを維持することが可能です。しかし、ChromeウェブストアやAppleのApp Storeのように配布を行うだけのシステム上では、コードやリリースの責任は実質的に一個人の手に委ねられることになります。


The Great Suspenderの場合、開発者のDean Oemcke氏が長年にわたりメンテナーを務めていましたが、同氏は2020年6月にThe Great Suspenderを手放すことを決意。GitHubリポジトリとWebストアの権利を移譲する考えを表明しました。この時、コミュニティ内ではThe Great Suspenderを買い取ろうという話も持ち上がりましたが、「無料の拡張機能のために誰が、なぜお金を払うのか?」という問題から実現には至らなかったとのことです。

その後、新しいメンテナーが2020年10月にThe Great Suspenderのアップデートを実施しましたが、そこに潜んでいる問題に気付いた人はほとんどいませんでした。なぜなら、このアップデートは「GitHubでタグ付けが行われていない」といったささいな点を除けば、ごく普通のリリースだったからです。また、The Great Suspenderはタブのプロセスを制御する複雑な仕組みを持っており、このことも問題の表面化が遅れた一因となりました。

それでも、ごく一握りのコミュニティメンバーは、The Great Suspenderの新しいアップデートを注意深く調べて「拡張機能が怪しいJavaScriptファイルをダウンロードしている」ということに気付きました。しかし、そのファイルの出どころは、一見するとGoogle Analyticsの代わりに使用することが認められているOpen Web Analyticsのように見えたため、問題は見過ごされたままとなってしまいます。

それから1カ月近くが経過して、ようやく「問題のファイルが悪意あるコードを含んだ別の拡張機能へのリンクを含んでいる」ということが発覚しました。しかし、すぐに悪意あるコードが削除されたバージョンがリリースされ、問題のあるバージョンが公開されなくなったため、正体不明のファイルに関する調査も立ち消えになってしまったとのこと。


一時とはいえ200万人近いユーザーに向けて配信されていた悪意あるバージョンについて、マコーネル氏は「The Great Suspenderの自動更新は無効化されていたらしく、2021年2月にThe Great Suspenderが強制削除されるまで、ほとんどのユーザーが悪意あるバージョンを持っていたようです。つまり、2020年10月のアップデートの時点で、多くのユーザーが事実上すでにハッキングされていたことになります」と述べています。

この一件には、「コードの所有権と責任があいまいなために悪意あるコードが紛れ込んでしまう」という問題の他に、「悪意ある拡張機能が放置されてしまう」という別の問題も潜んでいると、マコーネル氏は考えています。

The Great Suspenderに悪意あるコードが混入していることに気付いた少数のユーザーは、すぐさまThe Great Suspenderをアンインストールして別の拡張機能に乗り換えました。その結果、The Great Suspenderの問題を知っている人が議論の場から消えてしまい、「安全なバージョンが配信されたからもう大丈夫だろう」という考えがコミュニティを席巻してしまうようになったとのこと。これにより、一度は明るみに出たはずのThe Great Suspenderの問題が、Googleにより拡張機能が強制削除されるまで放置されたままになってしまいました。

この問題は、The Great Suspenderだけに限ったものではありません。マコーネル氏は、広告ブロッカーとして人気のuBlock Originから派生した「Nano Adblocker」と「Nano Defender」の問題も同根の事件だと指摘しています。

Nano AdblockerとNano Defenderは、uBlock Originを元に作成された拡張機能でしたが、開発者が権利を売却したためにユーザーの個人情報を収集するコードが仕込まれてしまいました。この一件についての詳細は、以下の記事を読むとよく分かります。

30万回ダウンロードの広告ブロック拡張機能が勝手に個人情報を収集してSNSを改ざんしていたことが判明 - GIGAZINE


マコーネル氏は末尾で「Nano DefenderやThe Great SuspenderがChromeウェブストアから消えても、根本的な問題は残ったままです。GoogleがThe Great Suspenderを排除するのに4カ月かかっていることから分かるとおり、Chromeの拡張機能プラットフォームは長年にわたり慢性的な人手不足と動きの鈍さを抱えています」と記し、拡張機能をめぐるオープンソースコニュニティの問題が依然として続いていることを訴えました。

この記事のタイトルとURLをコピーする

・関連記事
Chrome向け拡張機能「The Great Suspender」がマルウェア化しているという指摘 - GIGAZINE

マルウェア化した「The Great Suspender」がChromeウェブストアから消滅、拡張機能削除時に巻き添えで消えたタブを復旧させる方法はコレ - GIGAZINE

Google Chromeの複数の拡張機能で個人情報の窃取が行われていたことが判明、該当する拡張機能の総DL数は3300万回 - GIGAZINE

Chrome拡張機能はウェブページを表示する際のパフォーマンスにどれほど影響しているのか?100の拡張機能を調査した結果がコレ - GIGAZINE

GoogleがChromeウェブストアで拡張機能の有料配布を段階的に廃止へ - GIGAZINE

Google Chrome 88正式版リリース、拡張機能の新たな仕様「マニフェストv3」がついに到来 - GIGAZINE

in ソフトウェア,   セキュリティ, Posted by log1l_ks

You can read the machine translated English article here.