SAPのnpmパッケージを標的とするサプライチェーン攻撃により、企業の開発環境が危険にさらされている。
Aikidoの研究者は、開発者のシステムやCI/CDパイプラインから認証情報と秘密情報を窃取するよう設計された悪意のあるコードを発見した。
この攻撃は「ローカルの開発者認証情報、GitHubとnpmのトークン、GitHub Actionsのシークレット、AWS、Azure、GCP、Kubernetesのクラウドシークレットを収集する」と述べたのは、Aikidoのセキュリティ研究者であるRaphael Silva氏だ。
「LLMがセキュリティ監視をほとんど受けないまま、できるだけ早く『動作させる』ことに取り組む中で、組織には危険なインストールスクリプト、リスクのある依存関係の更新、ハードコードされたシークレットを検出する適切なガードレールが必要だ」と、Semgrepの共同創業者兼CEOであるIsaac Evans氏はeSecurityPlanetへのメールで述べた。
SAP npmパッケージ侵害の内部事情
この問題はSAP Cloud Application Programming Model(CAP)とCloud MTAのパッケージに影響し、開発者やビルドシステムが通常の依存関係のインストール中に、知らないうちに悪意のあるコードを実行していた可能性がある。
研究者によると、侵害されたパッケージには@cap-js/sqlite v2.2.2、@cap-js/postgres v2.2.2、@cap-js/db-service v2.10.1、およびmbt v1.2.48が含まれていた。
npmのpreinstall攻撃の仕組み
この攻撃では、npmのpreinstallスクリプト機能が悪用された。この機能はパッケージのインストール中に自動的に実行される。
このケースでは、スクリプトがローダー(setup.mjs)を実行し、BunのJavaScriptランタイムをダウンロードして、難読化されたペイロードの実行に利用した。
この手法により攻撃者は、日常的で信頼された開発プロセスの一部として悪意のあるコードを実行できたため、ユーザーによる追加の操作は必要なかった。
認証情報の窃取とデータの標的化
実行されると、ペイロードは情報窃取マルウェアとして機能し、広範な機密データを標的にした。
これには、npmとGitHubの認証トークン、SSHキー、AWS、Azure、Google Cloudのクラウド認証情報、Kubernetesの設定、CI/CDパイプラインのシークレットが含まれていた。
また、このマルウェアはCIランナーのメモリから直接シークレットを抽出しようとした。ログのマスキングなど一般的な保護を回避することで、認証情報が露出する可能性を高めていた。
コマンド&コントロールと拡散の手法
研究者はまた、このマルウェアがコマンド&コントロール(C2)インフラの一部としてGitHubを利用していたことも確認した。
窃取したデータは暗号化され、被害者のアカウントにあるリポジトリへアップロードされた。一方、追加のトークンを取得するため、特別に細工されたコミットメッセージがデッドドロップの仕組みとして使われた。
またペイロードは、窃取した認証情報を使って追加のnpmパッケージやリポジトリを侵害し、自身を拡散しようとした。
Aikidoの研究者は、この活動をTeamPCP脅威グループと関連付けている。同グループはこれまでにも、Bitwardenなどの企業やCheckmarxを標的に同様のサプライチェーン攻撃を実施している。
ソフトウェアサプライチェーンのリスクを低減する
ソフトウェアサプライチェーン攻撃が一般化する中、組織は開発環境全体のリスク低減に向け、積極的に取り組む必要がある。
現代のアプリケーションはサードパーティ製パッケージや自動化されたパイプラインに大きく依存しており、適切に保護されていなければ、侵害につながる機会が複数生じる。
- 侵害されたパッケージを削除し、信頼できるソースから影響を受けたシステムを再構築し、露出した可能性のある認証情報をすべてローテーションする。
- バージョンを固定して強固な依存関係管理を実施し、パッケージの完全性を検証するとともに、プライベートレジストリや承認済みパッケージの許可リストを使用する。
- パッケージのライフサイクルスクリプトを制限・監査し、インストールやビルドのプロセス中に信頼できないコードが実行されるのを制限する。
- 最小権限と短命トークンを徹底し、多要素認証を開発者アカウント、CI/CDシステム、パッケージリポジトリに適用する。
- 分離された一時的なビルドでCI/CDパイプラインを保護し、ネットワークアクセスを制限するとともに、異常なアクティビティを継続的に監視する。
- 依存関係を継続的にスキャン、監視、分析し、DevSecOpsツールを使って環境を分析する。
- インシデント対応計画をテストし、攻撃シミュレーションツールをソフトウェアサプライチェーン攻撃のシナリオで使用する。
こうした対策により、組織はソフトウェアサプライチェーンへの露出を低減し、新たな脅威に対するレジリエンスを構築できる。
ソフトウェアサプライチェーンが標的になる理由
今回の攻撃は、脅威アクターが初期アクセスにどのように取り組むかが、より広い範囲で変化していることを示している。
組織がオープンソースやベンダー管理のパッケージへの依存を強める中、ソフトウェアサプライチェーンは侵害の現実的な侵入口となっている。
攻撃者は信頼された配布チャネルを狙うことで、依存関係のインストールや更新といった日常的なプロセスを通じて、気付かれないまま環境に悪意のあるコードを持ち込める。
こうしたリスクを受け、組織はゼロトラストソリューションを導入して、アクセスを継続的に検証し、侵害されたソフトウェア依存関係の影響を抑えようとしている。





