2018年11月27日 14時00分 セキュリティ

アプリユーザーのビットコインを盗み出すバックドアがオープンソースのコード改変により仕込まれる



オープンソースのコードライブラリを利用した仮想通貨ウォレットにバックドアが仕込まれて、ユーザーのBitcoin(ビットコイン)を盗む企てがされていたことが明らかになりました。この事件はオープンソースソフトウェアに関するサプライチェーン攻撃の危機的な状況を物語っています。



I don't know what to say. · Issue #116 · dominictarr/event-stream · GitHub

https://github.com/dominictarr/event-stream/issues/116



Widely used open source software contained bitcoin-stealing backdoor | Ars Technica

https://arstechnica.com/information-technology/2018/11/hacker-backdoors-widely-used-open-source-software-to-steal-bitcoin/



ユーザーのビットコインを盗み出すバックドアが仕掛けられたのはビットコインウォレットアプリの「Copay」です。Copayアプリ内で使用されたコードライブラリ「event-stream」にバックドアが仕込まれている可能性がGitHubユーザーから公式掲示板に報告され、コードが検証されていました。



検証の結果、2018年9月8日に公開されたevent-streamのバージョン3.3.6に新たに導入された「flatmap-stream」と呼ばれるモジュールに問題があることがわかりました。バージョン3.3.6公開時のflatmap-stream自体は脆弱性のないものでしたが、2018年10月10日にflatmap-streamへ悪質なコードが含まれるという2段階の手続きを踏んでバックドアが仕込まれたとのこと。このバックドアは、Copayの開発したビットコインウォレットを狙い撃ちしたもので、Copayアプリ利用者の保有するビットコインを盗み出すのが目的で設計されていました。





GitHub掲示板で問題を提起した有志からはCopayに対して悪質なコードの挿入が指摘されましたが、2018年10月11日までCopayは対応しませんでした。当初は「リリース済みのすべてのCopayアプリには、悪意のあるコードが含まれたevent-streamは導入されていない」と主張していたCopayでしたが、2018年11月26日になりCopayアプリのバージョン5.0.2から5.1.0まではバックドアの影響を受けていることを認め、これらのバージョンのユーザーには最新版の5.2.0にアップデートするまでアプリを実行しないように求めています。



Statement on NPM Package Vulnerability in v5.0.2-5.1.0 of Copay Wallets

https://blog.bitpay.com/npm-package-vulnerability-copay/



event-streamをホストするパッケージ管理ツールNPMの関係者によると、今回見つかった脆弱性は一般的なモジュール開発者をターゲットにしたものではなく、特定の開発環境をもつCopayの一部の開発者をターゲットにしていたとのこと。そして、仕込まれた脆弱性は開発者のコンピューターでは作動せず、開発者がアプリをリリースしたときにエンドユーザーのアプリでパッケージ化されるという特徴があったそうで、攻撃を事前に発見することが難しかったことがわかっています。



GitHub掲示板の議論の中で、長年、event-streamを開発してきた開発者が、更新プログラムを提供する時間がなくなったため数カ月前に未知の開発者の助けを受けていたことが指摘されています。オープンソースソフトは不特定多数の開発者が関わり改良されていくものであり、悪意のある者が悪意のあるコードをひっそりと仕込ませたとしても、これを見抜けないことは十分あり得ます。すべてのコードを開発者自身が書くのではなく、すでにある優れたサードパーティのコンポーネントを利用することで、新たに優れたソフトウェアがスピーディーに開発されていくという状況では、オープンソースのサプライチェーンを狙ったサイバー攻撃への対応はますます困難になっていきそうです。

