人気のnpmパッケージ「node-ipc」がサプライチェーン攻撃を受け、認証情報が盗まれる
人気の**node-ipc**パッケージが新たなサプライチェーン攻撃の標的となり、最近公開されたバージョンに認証情報を盗むマルウェアが注入されました。プロセス間通信に広く使用されているこの侵害されたパッケージは、開発者とそのシステムに重大なリスクをもたらします。
ハッカーが、npmを標的とした新たなサプライチェーン攻撃において、人気のプロセス間通信パッケージである**node-ipc**の最近公開されたバージョンに、認証情報を盗むマルウェアを注入しました。
**node-ipc**パッケージは、Unix、Windows、UDP、TLS、TCPを含むあらゆる形式のソケットを介して様々なプロセスが通信できるようにするNode.jsモジュールです。
メンテナーが2022年3月に、ロシアによるウクライナ侵攻への抗議として、ロシアとベラルーシを拠点とするシステムを標的としたデータ上書きモジュールを搭載した[武器化されたバージョン](https://www.bleepingcomputer.com/news/security/big-sabotage-famous-npm-package-deletes-files-to-protest-ukraine-war/)を公開したにもかかわらず、このパッケージはnpmで毎週69万回以上ダウンロードされています。
### 攻撃の発見
最近のサプライチェーン攻撃は、**Socket**、**Ox Security**、**Upwind**を含む複数のアプリケーションセキュリティ企業によって検出され、以下の3つのバージョンが悪意のあるものであることが確認されました。
* [email protected]
* [email protected]
* [email protected]
悪意のあるコードはCommonJSエントリポイント(node-ipc.cjs)内に隠されており、アプリケーションがロードされるたびに自動的に実行されます。
マルウェアは高度に難読化されており、感染したシステムをフィンガープリントし、環境変数と機密性の高いローカルファイルを収集し、盗まれたデータをアーカイブに圧縮して、DNS TXTクエリを介して外部に送信します。
最新の侵害は、非アクティブなメンテナーである「atiertant」のアカウントを侵害した外部の攻撃者の仕業であるようです。
### マルウェアによって標的とされるデータ
研究者によると、新しい**node-ipc**バージョンに注入されたインフォスティーラーは、感染したシステムから以下の種類の情報を収集します。
* **AWS**、**Azure**、**GCP**、**OCI**、**DigitalOcean**などのクラウド認証情報
* SSHキーとSSH設定
* Kubernetes、Docker、Helm、Terraformの認証情報
* npm、GitHub、GitLab、Git CLIトークン
* .envファイルとデータベース認証情報
* シェル履歴とCI/CDシークレット
* macOS KeychainファイルとLinux keyring
* Firefoxプロファイルとキーデータベースファイル(macOS上)
* Microsoft TeamsのローカルストレージとIndexedDBパス
マルウェアは、4 MiBを超えるファイルをスキップし、効率を高め、ホスト上の運用上のノイズを減らすために.gitおよびnode_modulesディレクトリのスキャンを回避します。

### DNS TXTレコードを介した外部送信
注目すべき運用上の特徴は、データ外部送信のために従来のHTTPベースのコマンド&コントロール(C2)トラフィックではなく、DNS TXTクエリを使用していることです。攻撃者は偽のAzureテーマのドメイン(sh[.]azurestaticprovider[.]net:443)をブートストラップリゾルバとして使用し、xh、xd、xfのようなクエリプレフィックスで「bt[.]node[.]js」にデータを送信します。
**Socket**によると、500 KBの圧縮アーカイブを外部送信すると、約29,400件のDNS TXTリクエストが生成され、トラフィックが通常のDNSアクティビティに紛れ込むのに役立ちます。
送信前に、マルウェアは収集されたデータを一時的な圧縮tar.gzアーカイブに保存し、外部送信後に削除してフォレンジックトレースを減らします。
マルウェアは永続性を確立したり、二次的なペイロードをダウンロードしたりしないため、操作は迅速な認証情報窃盗と外部送信に焦点を当てているようです。
### 緩和策
影響を受ける可能性のある開発者は、直ちに影響を受けたバージョンを削除し、公開されたシークレットと認証情報をローテーションし、ロックファイルとnpmキャッシュを検査する必要があります。