プロジェクトをデプロイしようとしていますが、突然このエラーが発生します。
npm ERR! 404見つかりません:[email protected]
tldr;
聖なる牛! event-streamパッケージに、ハッカーがビットコインを盗むことを可能にする脆弱性があることがわかりました。
これを修正するには、event-stream
パッケージを更新する必要があります。
node_modules
フォルダを削除します。package-lock.json
ファイルを削除します。npm install
を実行してください。これであなたのパッケージは安全なバージョンに更新されるはずですし、行ってもいいでしょう。
そして、これがNPMブログからの公式の回答です。
イベントストリームインシデントに関する詳細これは、今週初めに多くの皆さんが気付いたイベントストリームインシデントの分析です。 npmは、コミュニティの安全に影響を与える運用上の問題や問題に直ちに対処しますが、インシデントについて議論する前に、より徹底的な分析を行うのが一般的です。
11月26日の朝、npmのセキュリティチームは、よく知られているnpmパッケージである、イベントストリームに侵入した悪意のあるパッケージについて通知を受けました。マルウェアをトリアージした後、npm Securityは、レジストリからflatmap-streamと[email protected]を削除し、さらなる悪用を防ぐためにevent-streamパッケージの所有権を取得することで対応しました。
悪意のあるパッケージはflatmap-streamのバージョン0.1.1でした。このパッケージは、2018年9月9日にバージョン3.3.6で、新しいメンテナによってevent-streamパッケージの直接の依存関係として追加されました。イベントストリームパッケージは広く使用されていますが、悪意のあるコードは非常に特殊な開発環境設定を持つ会社の開発者を狙っています。ペイロードを他の環境で実行しても効果はありません。この特定のターゲティングは、悪意のあるモジュールを誤ってインストールしたとしても、最終的にはほとんどの開発者が影響を受けないことを意味します。
挿入されたコードはCopayアプリケーションをターゲットにしています。 Copayの開発者が自分のリリースビルドスクリプトの1つを実行すると、結果のコードはアプリケーションにバンドルされる前に変更されます。このコードは、100 Bitcoinまたは1000 Bitcoin Cash以上の残高を持つアカウントからアカウントの詳細と秘密鍵を取得するように設計されています。
Copayの最初の反応は、この悪意のあるコードを含むビルドは一般に公開されていないというものでしたが、Copayから「悪意のあるコードはバージョン5.0.2から5.1.0に展開された」との確認がありました
攻撃この攻撃はソーシャルエンジニアリング攻撃として始まりました。メンテナのふりをしている攻撃者が、イベントストリームモジュールの保守を引き継ぎました。
技術的な詳細これは、これに興味をお持ちの方のために、私たちが知っている技術的な詳細です。
挿入されたコード:
テストフィクスチャに偽装されたファイルからのAES暗号化データの読み込み自動的に設定された環境変数を使用して、それをインポートしたモジュールのnpmパッケージ記述を取得しました復号化されたデータはモジュールの一部であり、その後モジュールはメモリ内でコンパイルされて実行されました。
このモジュールは次のことを行いました。
偽装ファイルから別のデータチャンクを復号化最初の復号チャンクから2番目の復号チャンクの末尾まで、コメント付きの小さなプレフィックスを連結しました。連結されたコードブロックを無効なJSから有効なJSに変換しました。この処理されたJSブロックを、ビルドスクリプトによってパッケージ化される依存関係で格納されたファイルに書き出しました。書き出されたコードの塊は、実行を目的とした実際の悪意のあるコードでした。 Copayのエンドユーザーが所有するデバイス上。
このコードは次のことを行います。
現在の環境を検出する:モバイル/ Cordova/Electron被害者の自己勘定アカウントのBitcoinとBitcoin Cashの残高を確認する現在の残高が100 Bitcoin、または1000 Bitcoin Cashより大きい場合:被害者のアカウントデータをすべて収集します被害者のアカウントデータ/秘密鍵を111.90.151.134で実行されている収集サービスに送信します。 Copayアプリのユーザーには、「5.0.2から5.1.0までのバージョンを使用している場合は、Copayアプリを実行したり開いたりしないでください。」とbitpayは推奨します。
Npmユーザーの場合、npm auditを実行することでプロジェクトに脆弱な依存関係が含まれているかどうかを確認できます。このイベントストリームの影響を受けるバージョンをインストールした場合は、できるだけ早く新しいバージョンにアップデートすることをお勧めします。
実際には[email protected]に依存するすべてのパッケージを更新する必要はありません。
package-lock.json
を開き、すべてのイベントストリームの参照を削除して、もう一度npm install
を呼び出すことができます。早くなるでしょう。
その後、npm shrinkwrap && mv npm-shrinwrap.json package-lock.json
はファイル全体ではなくイベントストリーム参照だけを更新するべきです
以下の方法に従ってください。
Node_modulesファイルとpackage_lock.jsonファイルを削除します。
Npm list event-streamを実行します。
Package.jsonでnpm-run-allを4.1.3から4.1.5に更新しました(ロックファイルイベントストリームで削除)。それからnpm install。
私は以下のステップでこの問題を解決します。
event-stream
リーフのルートを見つけます、例えば:
45 silly saveTree +-- [email protected]
45 silly saveTree | +-- [email protected]
45 silly saveTree | +-- [email protected]
45 silly saveTree | | `-- [email protected]
45 silly saveTree | | `-- [email protected]
45 silly saveTree | | +-- [email protected]
45 silly saveTree | | +-- [email protected]
45 silly saveTree | | +-- [email protected]
45 silly saveTree | | `-- [email protected]