npmでまた悪意あるパッケージが発見、暗号資産ウォレットを標的に
2019年6月17日
0 分で読めます暗号資産ウォレット開発企業Komodoが、npm依存関係を介した悪意あるコードの注入による暗号資産攻撃の標的となり、最近話題になっています。SuperNET/Iguanaの暗号資産API向けにグラフィカルユーザーインターフェース(GUI)を提供するEasyDEX-GUIプロジェクトに、悪意あるパッケージ namedelectron-native-notify が含まれていることが判明しました。このプロジェクトはKomodoのAgamaウォレットで使用されています。GitHubユーザーsawlysawlyによるソースリポジトリへのGitHubコミットを通じて公表されました。Agamaウォレットには約1,300万米ドル相当の暗号資産が保管されていると推定されており、npmのセキュリティチームが迅速に対応していなければ、その一部が盗まれていた可能性があります。
Snykは今回、この悪意あるパッケージを脆弱性データベースに追加しました。プロジェクトがSnykによって監視されており、悪意ある依存関係(electron-native-notifyのすべてのバージョン)が見つかった場合は、Snykから通常のアラートで通知されます。
プロジェクトがSnykによって監視されていない場合、このパッケージが使われているかどうかを以下からテストできます。または、CLIを使用してローカルでプロジェクトをテストすることもできます。
これまでの経緯

2019年3月6日: 悪意のないelectron-native-notifyパッケージがバージョン1.0.0としてnpmに追加される。
2019年3月8日: 9回のマイナーリリースを経て、electron-native-notify v1.1.5がnpmに公開される。
2019年3月8日: ユーザーsawlysawlyが、バージョン「^1.1.5」のelectron-native-notify依存関係をEasyDEX-GUIプロジェクトに追加するコミットを作成。このプロジェクトは、影響を受けたAgamaウォレットで使用されています。
2019年3月23日: electron-native-notifyの悪意あるバージョンが、バージョン1.1.6としてnpmに公開される。
2019年4月16日から5月11日の間: Agama Walletが再ビルドされて公開される。このとき使用されたelectron-native-notifyライブラリの最新バージョンは1.2.0。
2019年6月4日: npmのセキュリティ担当者とKomodoがEasyDEX-GUIプロジェクトから悪意ある依存関係を削除し、パッケージをnpmから取り下げて、安全なバージョンに置き換える。
2019年6月5日:npmとKomodoが、セキュリティ上の欠陥をユーザーに公表。
影響
悪意あるコードはHerokuのエンドポイントhttps://updatecheck.herokuapp.com/checkにHTTP GETリクエストを送信し、ペイロードをダウンロードすると報告されています。このペイロードはさらに実行され、ウォレットのシードを同じサーバーに送信します。npmチームがその動作を示す動画を公開しています。

影響を受けている場合、まず何をすべきですか?
まず、問題の悪意あるライブラリを使用しているか確認してください。使用している場合、今後アプリケーションをビルドできなくなります。ただし、すでにデプロイ済みのアプリケーションには悪意あるコードが含まれている可能性が高く、実行されているおそれもあります。
プロジェクトがSnykによって監視されている場合、アプリケーションにこの悪意あるパッケージが含まれていれば、Snykから通常のアラートで通知されます。
まだSnykでプロジェクトを監視していない場合は、Snykを使ってリポジトリを一度テストするか、CLIを使用してローカルでプロジェクトをテストできます。
Amamaウォレットのユーザー、またはKMDとBTC以外の資産を保有している方に対し、Komodoはできるだけ早くAgamaから新しいアドレスへすべての資金を移すことを強く推奨しています。安全なウォレットの一覧と資金の移動方法については、サポートページをご覧ください。
Capture the Flagを始めよう
オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。


