
複数の SAP 公式 npm パッケージが、開発者のシステムから認証情報と認証トークンを盗むための TeamPCP サプライチェーン攻撃と思われる危険にさらされた。
セキュリティ研究者の報告によると、この侵害は4つのパッケージに影響を及ぼし、現在NPM上で非推奨となっているバージョンも含まれている:
- cap-js/sqlite – v2.2.2
- cap-js/postgres – v2.2.2
- cap-js/db-service – v2.10.1
- mbt – v1.2.48
これらのパッケージはSAPのCloud Application Programming Model (CAP)とCloud MTAをサポートしている。
Aikidoと Socketによる新たな報告によると、侵害されたパッケージは、npmパッケージのインストール時に自動的に実行される悪意のある「preinstall」スクリプトを含むように修正されている。
このスクリプトは、setup.mjsという名前のローダーを起動し、GitHubからBun JavaScriptランタイムをダウンロードし、それを使って高度に難読化されたexecution.jsペイロードを実行する。
このペイロードは、開発者のマシンとCI/CD環境の両方から、以下のようなさまざまな認証情報を盗むために使用される情報ステーラーです:
- npm および GitHub 認証トークン
- SSHキーと開発者認証情報
- AWS、Azure、Google Cloudのクラウド認証情報
- Kubernetesの設定とシークレット
- CI/CDパイプラインの秘密と環境変数
マルウェアはまた、TeamPCPが以前のサプライチェーン攻撃で認証情報を抽出した方法と同様に、CIランナーのメモリから直接秘密を抽出しようとします。
“CIランナー上で、ペイロードは埋め込まれたPythonスクリプトを実行し、Runner.Workerプロセスの/proc/<pid>/mapsと/proc/<pid>/memを読み込み、”key” :{ “value” に一致するすべての秘密を抽出します:”…”、”isSecret”:true}に一致するすべての秘密を、CIプラットフォームによって適用されるすべてのログマスキングをバイパスして、ランナーのメモリから直接抽出します」とSocket氏は説明する。
“秘密のためのこのメモリスキャナは、BitwardenとCheckmarxのインシデントで文書化されたものと構造的に同じです”。
データが収集されると、暗号化され、被害者のアカウントで公開されているGitHubリポジトリにアップロードされる。これらのリポジトリには “A Mini Shai-Hulud has Appeared “という記述があり、これはBitwardenのサプライチェーン攻撃で見られた “Shai-Hulud: The Third Coming “という文字列にも似ています。

ソースはこちら:合気道
このマルウェアはまた、トークンを取得してさらにアクセスするためのデッドドロップ・メカニズムとして、GitHubのコミット検索に依存している。
「このマルウェアは、GitHubのコミットでこの文字列を検索し、一致したコミットメッセージをトークンのデッドドロップとして使用します」とAikido氏は説明する。
“OhNoWhatsGoingOnWithGitHub:<base64>にマッチするコミットメッセージは、GitHubトークンにデコードされ、リポジトリへのアクセスがチェックされる”
これまでの攻撃と同様に、デプロイされたペイロードには、他のパッケージに自己増殖するコードも含まれている。
盗んだnpmやGitHubの認証情報を使って、アクセスした他のパッケージやリポジトリを変更しようとし、さらに拡散するために同じ悪意のあるコードを注入する。
TeamPCPは、Trivy、Checkmarx、Bitwardenに対する以前のサプライチェーン攻撃で同様のコードと戦術を使用していました。
脅威行為者が SAP の npm パブリッシングプロセスをどのように侵害したかは不明ですが、セキュリティエンジニアのAdnan Khan 氏は、設定ミスの CircleCI ジョブによって NPM トークンが公開された可能性があると報告しています。
npmパッケージがどのように侵害されたかを知るためにSAPに問い合わせたが、公開時点では回答は得られなかった。
.article-callout { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; overflow: hidden; } .article-media { flex: 1; max-width: 220px; display: flex; } .article-media a { display: flex; width: 100%; height: 100%; } .article-media img { width: 100%; height: 100%; border-radius: 8px 0 0 8px; display: block; } .article-callout .article-media img { margin-top: 0 !important; height: 100% !important; } .article-body { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .article-body h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .article-body p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .article-link { background-color:#border:color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; padding:10px 20px; width: fit-content; } @media (max-width: 600px) { .article-callout { flex-direction: column; align-items: center; } .article-media { max-width: 100%; } .article-media img { border-radius: 8px 8px 0 0; } .article-body { padding:.article-body { padding: 15px; width: 100%; } .article-link { width: 100%; margin: 0 auto; box-sizing: border-box; } } .
Mythosが発見した問題の99%はまだ未パッチである。
AIは4つのゼロデイを1つのエクスプロイトに連鎖させ、レンダラーとOSのサンドボックスの両方をバイパスした。新たなエクスプロイトの波が押し寄せている。
自律的検証サミット(5月12日、14日)では、自律的でコンテキストに富んだ検証がどのように悪用可能なものを見つけ、コントロールが有効であることを証明し、修復のループを閉じるかをご覧ください。




Comments