2025年7月18日、毎週3100万ダウンロードを超える信頼のJavaScriptライブラリ、 eslint-config-prettier
この攻撃は、オープンソースのエコシステムがいかに脆弱であるかを浮き彫りにするものだった。この侵害は、メンテナを騙ってトークンを流出させるフィッシングメールから始まった。公開された認証情報を使用して、攻撃者は、インストール中にWindowsマシン上でトロイの木馬DLLを実行するポストインストールスクリプトを含むパッケージの不正なバージョンを公開しました。
ここでは、何が起こったのか、攻撃はどのように行われたのか、そしてOPSWAT 技術が今後どのように同様の脅威から身を守るのに役立つのかを紹介する。
攻撃概要
人気の npm linter パッケージ、 eslint-config-prettier
これは、Prettierを使用する際に不要な、あるいは競合するESLintルールを無効にするために使用される。これは通常、ローカルのIDEやCIパイプラインの開発依存として含まれる(本番コードには同梱されない)。
攻撃は次のように展開した:
1.support@npmjs.org になりすましたフィッシングメールがメンテナを騙し、悪意のあるリンク (npnjs.com とタイプされたもの) をクリックさせました。リンクをたどった後、メンテナは無意識のうちに npm アクセストークンを公開し、攻撃者はそれを使って悪意のあるバージョンのパッケージを公開しました。
2.攻撃者は盗んだnpmトークンを使って、悪意のあるバージョンの eslint-config-prettier
パッケージを使用しています。開発者からの報告に基づき、4つの危険なバージョンが特定された:8.10.1、9.1.1、10.1.6、バージョン 10.1.7
さらに、攻撃者は侵害されたトークンにアクセスできたため、同じ作者が管理する他のパッケージも影響を受けた: eslint-plugin-prettier, synckit, @pkgr/core
そして ナピポストインストール
3.攻撃者は2つの不審なファイルをソースコードに追加した: インストール.js
そして node-gyp.dll
.
ユーザーが不正なパッケージのバージョンをダウンロードしてインストールすると インストール.js
スクリプトが実行され、悪意のある node-gyp.dll
を経由してWindowsシステム上で実行できます。 ランドル32
使用された攻撃手法
フィッシングとソーシャル・エンジニアリング
なりすましメールは、基本的なメール保護(SPF/DKIM/DMARC)をうまく回避し、npmのサポートになりすました。
タイポスクワッティング
npmjs.comに似せて設計された偽装ドメイン(npnjs.com)が、認証情報を盗むために使用されました。これは古典的なタイポスクワッティングの手法です。
文字列連結によるコードの難読化
悪意のあるパッケージのバージョンには、ポストインストールスクリプト (インストール.js
)のインストール後に自動的に実行された。
内部では logDiskSpace()
一見無害に見えたが、ディスク容量をまったくチェックしていなかった。その代わりに、文字列の連結を使って、次のようなコマンドを実行していた。 ランドル32.exe
をロードし、DLLファイル(node-gyp.dll
)が同梱されている。
OPSWATソースコードとOSSをプロアクティブにSecure
MetaDefender Software Supply Chain™は、悪意のあるオープンソースの依存関係がCI/CDパイプラインに入る前に検出し、ブロックすることを支援します。
- SBOM分析:依存関係を自動的にスキャンし、この攻撃に関連するCVE-2025-54313 などの既知の脆弱性にフラグを立てる。
- マルチAV検出:MetaScan™Multiscanning、30以上の統合マルウェア対策エンジンを使用して、node-gyp.dllのような難読化マルウェアを検出します。
- ソースリポジトリの統合:GitHub、GitLab、JFrog Artifactoryと統合し、パッケージの完全性を継続的に検査・検証します。
攻撃ベクトルは電子メールから始まっており、MetaDefender Email Security ™の出番です。
- ファイルのサニタイゼーション: Deep CDR™は、電子メールの添付ファイルをスキャンし、サニタイズします。
- ハイパーリンクの抽出:すべてのリンクはプレーンテキストで表示され、ユーザーがクリックする前にnpnjs.comのようなそっくりなドメインが公開されます。
キーポイント
- メンテナのセキュリティはサプライチェーンのセキュリティだ。フィッシングされたトークン1つで、攻撃者は広く使われているライブラリを乗っ取ることができた。
- オープンソースのエコシステムは信頼に依存しているが、1つのソーシャルエンジニアリングの成功が、何百万もの下流のプロジェクトに波及する可能性がある。
- 依存関係のスキャンや電子メールのサニタイズなど、プロアクティブなセキュリティ対策はもはやオプションではなく、不可欠なものだ。
今なすべきこと
-
影響を受けるバージョンのインストールを避ける:
- eslint-config-prettier: 8.10.1、9.1.1、10.1.6、10.1.7
- eslint-plugin-prettier: 4.2.2, 4.2.3
- synckit0.11.9
- pkgr/core: 0.2.8
- napi-postinstall:0.3.1
- 影響を受けるビルドで使用される秘密のローテーション
- すべてのnpmアカウントで2FAを有効にする
- フィッシングに関する意識向上トレーニングの実施
サプライチェーンへの攻撃は、より賢く、より個人的になっています。OPSWAT電子メールと開発パイプラインのためのゼロトラスト・ソリューションで、次の攻撃の一歩先を行くことができます。
MetaDefender Software Supply Chain MetaDefender Email Security詳細についてはこちらをご覧ください。MetaDefenderのエキスパートにご相談ください。