Google ChromeやFirefoxなどのウェブブラウザは、ブラウザの機能を向上させるために第三者が開発した自作のソフトウェアをブラウザ内で動作させる「拡張機能」「アドオン」などの仕組みを備えています。

今月3日、Chromeの拡張機能マーケットプレイス「Chromeウェブストア」において、「ドテンくる」という名前で配信されていた拡張機能が、利用者の仮想通貨を窃取する不正なコードを埋め込んでいたことがユーザーの報告で明らかになりました。

—

仮想通貨の売買を補助することを目的としていたこの拡張機能は「Crypto KAERU」と名乗る国内の開発者によって先月11日にリリースされ、今月3日までにおよそ2000人のユーザーが利用していました。

Crypto KAERUは他に7つもの仮想通貨関連のChrome拡張機能を制作しており、そのうちのいくつかにも不正なコードが埋め込まれていたことが確認されています。

不正なコードは、拡張機能内の “jquery.js” と名付けられたファイルに、JavaScriptライブラリであるjQueryの圧縮版のコード内に紛れ込む形で埋め込まれていました。

拡張機能のマニフェストファイルで定義されている内容によると、このJavaScriptファイルはユーザーがbitFlyer (*.bitflyer.jp/*)およびBitMEX (*.bitmex.com/*)のウェブサイト2つにアクセスした際に読み込まれるようになっており、これは新たに以下のURLのスクリプトを読み込むコードを実行します。

https://cryptowatch-lib.bitbucket[.]io/lib/endpoint.js

現在このファイルは削除されており、当該Bitbucketのリポジトリも削除されていますが、有志によってファイルが保存されていました。

このファイルのJavaScriptコードは難読化処理が施されており、内容を人の目で確認することは難しくなっていますが、復号化されたコードから、ユーザーがbitFlyerとBitMEX内で仮想通貨を入金するページにアクセスした際に、サイトから提示される入金先の仮想通貨アドレスを攻撃者(Crypto KAERU)の所有するものに書き換え、入金をしようとするユーザーの仮想通貨を盗み取るプログラムであることがわかりました。

攻撃者はbitFlyerとBitMEX内で取り扱われている全7種類の通貨のアドレスをそれぞれ用意し、記事執筆時点ではBitcoinのみ被害が確認されていますが、その総額は 4.54216802 BTC（日本円でおよそ500万円分）にものぼります。

以下のアドレスがこれらの書き換えに用いられていました。

Bitcoin:

3MH79vqn7UXda6KsdaG8LYMJn6Sw1xPJUw (bitFlyer専用)

3BMEXrCExsAqeTM6xVV2ikCX3uxXASwfbz (BitMEX専用)

3MH79vqn7UXda6KsdaG8LYMJn6Sw1xPJUw (bitFlyer専用) 3BMEXrCExsAqeTM6xVV2ikCX3uxXASwfbz (BitMEX専用) Ethereum/Ethereum Classic:

0x0BBA18dE2dc9253F0D5B6263b7edfd07C3362854

0x0BBA18dE2dc9253F0D5B6263b7edfd07C3362854 Litecoin:

LbWFku9M6jpL7MvxQ3vZstUr7rXsjFfMUM

LbWFku9M6jpL7MvxQ3vZstUr7rXsjFfMUM Bitcoin Cash:

18xoskGuGYDxgbFJB2f6pNBLto3ngYAPUp

18xoskGuGYDxgbFJB2f6pNBLto3ngYAPUp Monacoin:

M81FsiM85d3avGjq9nVPcQcCEuT67fSr6w

M81FsiM85d3avGjq9nVPcQcCEuT67fSr6w LISK:

3778633812712628562L

さらに特筆すべき点は、BitMEX専用の書き換えるアドレスについては先頭の文字列が「3BMEX」で始まっていますが、これは実際にBitMEX内でもこのような文字列から始まるアドレスがユーザーごとに提供されており、その特徴をよく知ったうえで似せていることがよくわかります。

これらのアドレスの入出金履歴を確認すると、入金が行われるようになったのは今月2日からであることから、拡張機能のリリース直後からこのような動作が行われていたのではなく、しばらくは正規のソフトウェアとして稼働していたこともわかります。

—

この問題がユーザーの間で広まって以降、間もなくCrypto KAERUのTwitter/GitHub/Bitbucketのアカウントおよびリポジトリは削除されました。

また、ユーザーの報告によってChromeウェブストアからもドテンくるや同開発者の拡張機能は削除されました。

過去の同様のケースでは、拡張機能の開発者のGoogleアカウントを乗っ取り、このような不正活動に加担させるということがありましたが、今回のケースでは、関連するすべてのアカウントが削除されている点や、開発者がほかの場所でも声明等を出していない点などを考慮すると、開発者が意図的にマルウェアを混入させた可能性は高いでしょう。

ある拡張機能の開発者によれば、Googleの「Chromeウェブストア」の登録にはクレジットカードの登録が必要であるとのことで、そのほかにもGoogleやTwitterのアカウント登録には電話番号が必要となる場合もあり、捜査のうえで証拠となる情報はいくつも残されているところから、今後の警察の捜査に期待することはできそうです。

被害に遭わないためには

不正なGoogle Chromeの拡張機能への対策が、必ずしも容易であるとは限りません。

アンチウイルスソフトなどを頼ることもいいかもしれませんが、このような小規模の不正活動では、被害が顕在化する前に対策が取られることはなかなか難しいでしょう。

拡張機能をブラウザにインストールする前に、その入手元や開発者について調べることは一つの対策として挙げられますが、特に暗号通貨コミュニティではハンドルネームのみの個人が主体となって活動していることが多いため、誰を信頼するかという判断が難しくなっています。

Chromeの拡張機能はオープンソースで、ドテンくるのソースコードもGitHubにホストされており、その中身を検証することはできましたが、今回のケースでは拡張機能とは別のファイルから不正なコードが実行され、またその別ファイルで不正なコードが稼働し始めたのがこの数日以内であるとされることから、より気づかれずに不正な活動をすることが可能になっていました。

さらに今回のケースではそのほかにも、コードの読み込みが気づかれないように圧縮版jQueryの複雑なコード内への埋め込み、実際にアドレスの書き換えを行うコードの難読化、書き換えられるBitcoinアドレスもサービスで提供されているものに類似させたものを用意するなど、綿密に計画された手口であることが伺えます。

ユーザーが講じられる現実的な対策を以下に挙げました（随時追加します）。

日常的に大きな額の暗号通貨を扱う場合、それ専用にVirtualBoxなどのソフトウェアによる仮想化や、あるいは実機のパソコン/スマートフォンを用意して、入出金操作を行う環境を隔離する

（ただし、仮想マシンについては、ホストOSにマルウェアが侵入している場合には有効ではない）

暗号通貨コミュニティは個人の開発者たちがともにその世界を創り上げることができる点も魅力の一つとされていますが、一方で悪意のある人物の参入も容易にさせてしまう側面も孕んでいます。

—

Crypto KAERUが、初めからこのような意思のもと拡張機能の開発を行ったかどうかについては、わかっていません。

何か進展があり次第、記事を更新します。