カテゴリー
ニュース

仮想通貨Moneroの公式クライアントにマルウェアが混入、俺も感染したが金は盗まれなかった

プライバシー保護を重視した仮想通貨「Monero」の公式サイトがハッキングを受け、公式クライアントがマルウェアに置き換えられていたことが判明しました。このマルウェアはMoneroのシード(ウォレットを構成するパスフレーズ。ウォレットを復元できる)を窃取するもので、シードを盗まれると攻撃者はそのMoneroのウォレットを復元し、盗むことができます。私もこのマルウェアに感染していましたが、幸いなことに被害はありませんでした。

広告

最初にこの報告が行われたのは11月18日にMoneroのGitHubページの投稿です。投稿者は、MoneroのLinux版クライアントとして配布されているファイル monero-linux-x64-v0.15.0.0.tar.bz2 のハッシュ値が、公式サイト(getmonero.org)とGitHubで配布されているものに違いがあることを指摘しました。内容が同じファイルにハッシュ値に違いが出ることはありません。そして、この2つのアーカイブ内に含まれるほとんどのファイルは同じハッシュ値でしたが、CLI(コマンドラインインターフェイス)版のクライアント monero-wallet-cli のみハッシュ値が違っていました。GitHubで配布されていた monero-wallet-cli のSHA256ハッシュ値は 5decc690a63aab004bae261630980e631b9d37a0271bbe0c5b477feffcd3f8c2 ですが、サイト上で配布されていたものは 7ab9afbc5f9a1df687558d570192fbfe9e085712657d2cfa5524f2c8caccca31 です。

掲示板サイトRedditでMoneroチームのユーザーは、公式サイトが侵害され、35分間サーバー上のファイルが別のもの、おそらくマルウェアに置き換えられたと報告しました。

Security Warning: CLI binaries available on getmonero.org may have been compromised at some point during the last 24h. from r/Monero

Redditではこのマルウェアによって実際に資金が盗まれたという報告も上がっています。ハッシュ値 7ab9af... のファイルがマルウェアであると主張しています。

(※機械翻訳)悪意のあるバイナリがコインを盗んでいることを確認できます。 バイナリを実行してから約9時間後に、1つのトランザクションでウォレットが空になりました。 昨日の午後6時頃にビルドをダウンロードしました。
https://www.reddit.com/r/Monero/comments/dyfozs/security_warning_cli_binaries_available_on/f8107ji/

このマルウェアを分析したいくつかの記事[1, 2]によると、これは正規のクライアントに情報窃取の機能を追加したものであるということがわかりました。追加された機能は2つあり、1つはマルウェアはウォレットのシードを node.hashmonero[.]com (91.210.104.245) に送信し、もう1つは資金を node.xmrsupport[.]co (45.9.148.65) に送信していました。

マルウェアのC2サーバーはポート18081に接続しており、これはMoneroのリモートデーモンと接続しているかのように見せています。

さらに、ウォレットが侵害された際の影響について記事を投稿したSerHack氏は以下のように述べています。

(※機械翻訳)ウォレットが侵害された場合、盗まれたのはコインだけではありません。攻撃者がシードを使用して他にできることを検討する必要があります。 Moneroはステルスアドレスを使用するため、攻撃者がトランザクションの送信先アドレスを再構築することは不可能です(したがって、この情報は安全です)。ただし、攻撃者はウォレットにXMRがいくつあるかを特定できます。また、トランザクションに接続された時間の分析を介して、攻撃者がタイムゾーンを推定できる可能性があります。最後に、攻撃者はどのトランザクションIDがウォレットに関連付けられているかを知っています。
https://serhack.me/articles/cli-binaries-compromised-monero-analysis/

俺は?

そして、私もTwitter上の報告を見て、自分が24時間以内にウォレットをダウンロードし、署名も確認せず実行していたことを思い出しました。恐る恐る実行ファイルのハッシュ値を確認すると 7ab9afbc5f9a1df687558d570192fbfe9e085712657d2cfa5524f2c8caccca31 であり、これはマルウェアでした。

まず私はクライアントを再度ダウンロードし、しっかり署名の確認も行いました。マルウェアで開いてしまったウォレットの残高を確認してみると、幸いなことに資金は盗まれていませんでした。即座に新規ウォレットを作成し、資金をすべてそこに移しました。マルウェアがどのようなものかまだ明らかになっていないため、同じデバイスを使わないほうがいいという助言も受け、PCを再起動しました。私はOSにTailsを使用しており、これは再起動することでPCの環境がリセットされる仕組みになっています。そして、安全を考慮して再起動後に更にウォレットを作成し、また資金を移しました。

なぜ私のMoneroが盗まれなかったか、これは推測ですが、おそらくTailsを使用していたことが関係していると考えています。TailsはTorを介さない通信をブロックするため、ウォレットのシードを送信するC2サーバーとの通信は行われなかったのではないか、という見立てです。

また、あとで気づいたことですが、再起動前にTailsのファイアウォールのログを確認しておくとよかったかもしれません。C2サーバーとの通信がブロックされていたのであれば、そのことはログに残っていたはずです。

どうすれば今回のような被害から防ぐことができるか?常にダウンロードしたファイルのハッシュやPGP署名をチェックしましょう。Moneroの場合は以下のURLにハッシュ値を署名したテキストがあります。

https://getmonero.org/downloads/hashes.txt

これによって、ハッシュ値が正しいものであることを確認できます(ただし、Monero開発者fluffyponyの正しい鍵で署名されていることも確認しなければなりません)。

Moneroチームの公式声明:

Warning: The binaries of the CLI wallet were compromised for a short time | Monero – secure, private, untraceable
https://web.getmonero.org/2019/11/19/warning-compromised-binaries.html

広告

投稿をシェア

記事の内容が面白いと思ったら、SNSでシェアしていただけると記事を投稿するモチベーションにつながります。

「仮想通貨Moneroの公式クライアントにマルウェアが混入、俺も感染したが金は盗まれなかった」への12件の返信

tailsでデータをリブート時にリセットされるなら、cheenaさんは毎回keepassxcのキーなりpiavpnソフトならウォレットならエディターなりダウンロードしてるんですか?

フォーク前にアップグレード促してマルウェアぶち込むとか中の人が一枚噛んでるんだろうな

その公開鍵が正しいと思える根拠ってなくないですか?
公開鍵も置き換えられてたら意味ない気がしますが、どうなんでしょう…

コメントを残す

メールアドレスが公開されることはありません。