深刻なサプライチェーン攻撃により、npmレジストリで広く使用されているAxios HTTPクライアントが侵害されました。
攻撃者は特定のAxiosリリースに悪意のある依存関係を注入し、数百万の開発者を多段階のリモートアクセストロイの木馬にさらしており、任意のコマンド実行とシステムデータの盗難が可能です。
悪意のあるAxiosバージョン1.14.1および0.30.4は、対応するGitHubタグなしで直接npmレジストリに公開されました。
この異常は、脅威アクターが通常のリリースパイプラインをバイパスし、信頼できるメンテナーにリンクされた侵害された長期npml公開トークンを悪用したことを示しています。
メンテナーが攻撃者のアカウント権限が自分たちを上回っていたため、アクセスを直ちに取り消すことができないことに気付いたとき、状況はエスカレートしました。
注入された依存関係である[email protected]は、毒入りされたAxiosリリースのわずか数分前に戦略的に公開され、キャレット範囲の更新を使用して、新しいインストールが自動的に侵害されたコードをプルするようにしました。
実行フローと難読化タクティック
Socket Devによると、攻撃はnpmのpostinstallライフサイクルフック経由でパッケージのインストール段階中に自動的に開始されます。
このフックはsetup.jsという名前のドロッパースクリプトを実行します。静的分析ツールとシグネチャベースの検出から隠れるため、攻撃者は カスタムの2層難読化スキームを採用しました。
この手法はBase64エンコード文字列をリバースし、ハードコードされたキーを使用して特殊なXOR暗号を適用します。

デコードされると、スクリプトはホストオペレーティングシステムを識別し、攻撃者の指令統制サーバーに接続して、マルウェアの次段階を取得します。
マルウェアは高度に適応可能であり、被害者のオペレーティングシステムに基づいてカスタマイズされたペイロードを配信します。
macOSでは、AppleScriptを使用してC++ Mach-Oリモートアクセストロイの木馬をフェッチしており、これは偽装されたシステムキャッシュディレクトリに自身を保存することで、正当なAppleのバックグラウンドデーモンになりすまします。
このトロイの木馬はシステムにフィンガープリント、一意の被害者IDを生成でき、専用のpeinjectコマンドを使用して追加の悪意のあるバイナリに署名して実行できます。
Windowsでは、マルウェアはPowerShellをWindows Terminalに偽装してエンドポイント検出ツールをバイパスし、標準実行ポリシーをバイパスしながら最終ペイロードをダウンロードする非表示のVBScriptを実行します。
Linuxシステムは、バックグラウンドで静かに実行される分離されたPythonスクリプトを受け取ります。すべてのバリアントは、通常のレジストリトラフィックを模倣するようにフォーマットされた欺瞞的なHTTP POSTリクエストを使用してサーバーと通信します。
ペイロードが正常に実行された後、マルウェアは法医学的な証拠を破壊するための足跡を丹念にカバーします。
初期のsetup.jsドロッパースクリプトと悪意のあるpackage.json設定ファイルを自動的に削除します。
その後、削除された設定を置き換えるためにクリーンなマークダウンファイルの名前を変更し、インストールされたディレクトリを、残りの悪意のあるコードのない無害な暗号化ライブラリとまったく同じに見えるようにします。
翻訳元: https://gbhackers.com/axios-npm-packages-breached/