TL;DR
- axios周辺でサプライチェーン攻撃があり、ローカル環境が影響確認を行った
- 確認は以下に絞っておこなった
axios@1.14.1,axios@0.30.4のインストル履歴の有無plain-crypto-js@4.2.1の有無のインストール履歴の有無/Library/Caches/com.apple.act.mondの有無
- いずれかが該当した場合は、調査と認証情報ローテーションを実施する
サプライチェーン攻撃の内容
- axiosの該当バージョンをインストールした際に依存関係でインストールされる
plain-crypto-js@4.2.1のpostinstallがRATドロッパーとなっている模様
侵害有無の確認
1. axiosのバージョン確認
各プロジェクトで利用中のaxiosバージョンを確認する。
# npm
npm ls axios --all
2. plain-crypto-js@4.2.1 の有無を確認
依存関係に該当パッケージが含まれていないか確認する。
# npm
npm ls plain-crypto-js --all
3. /Library/Caches/com.apple.act.mond の有無を確認
MacのIoCとして報告されるパスの存在を確認する。
sudo ls -la /Library/Caches/com.apple.act.mond
判定メモ
- axiosバージョン確認: 問題なし
- plain-crypto-js@4.2.1: なし
- /Library/Caches/com.apple.act.mond: なし
- 一次判定: 大丈夫そう。よかった
今後のための対策
今回はnpmのpostinstallスクリプト悪用が疑われるため、まずはスクリプト自動実行を止めることにした。デフォルトで無効化されているpnpmへの乗り換えも検討
# プロジェクトルートの .npmrc
ignore-scripts=true
- 既存設定の確認と反映
# 現在値の確認
npm config get ignore-scripts
# プロジェクト単位で設定(.npmrcに保存)
npm config set ignore-scripts true --location=project
# ユーザー全体に設定したい場合
npm config set ignore-scripts true --location=user