読了時間:4分

出典:Scott Macmillan(Alamy Stock Photo経由)
業界全体で有害なソフトウェアが次々と現れる中、一部の脅威アクターはnpmパッケージ内に悪意のあるコードを隠し、ほとんどのセキュリティツールによる検出を回避する方法を見つけています。
本日公開されたブログ記事で、Koi Securityは86,000回以上ダウンロードされた126個の悪意のあるパッケージを発見し、これらがnpmトークン、GitHub認証情報、開発者の秘密情報を世界中の組織から盗み出していたことを詳細に説明しました。研究者が「PhantomRaven」と名付けたこのアクティブなキャンペーンは、依存関係内に悪意のあるコードを隠す手法を使用しています。
「それはあなたがレビューしているパッケージの中にはありません。インストール時に取得される見えない依存関係の中にあるのです」とKoi Securityの研究者Oren Yomtovはブログ記事で書いています。「この種の依存関係を持つパッケージをインストールすると、npmはその外部URLから依存関係を取得します。npmjs.comからではありません。攻撃者が望むどこからでも取得されます。」
PhantomRavenのアクターは、リモート動的依存関係(RDD)と呼ばれる手法を使ってこれを実現しており、すでに増え続ける有害なパッケージやコードリポジトリへの対応に苦慮している企業のセキュリティ担当者にとって、大きな課題となっています。
PhantomRavenの見えない依存関係
RDDを使うことで、悪意のあるnpmパッケージは無害に見えます。なぜなら、npmはURLを依存関係指定子として使えるという、あまり使われていない機能をサポートしているからです。Yomtovは、このようなURLを持つパッケージは自動化されたセキュリティシステムには「依存関係0」として表示されると説明しています。なぜなら、スキャナーはリンクをチェックしないからです。
何も知らないユーザーが一見クリーンなnpmパッケージをインストールすると、それはPhantomRavenが管理するサーバーから見えないRDDを取得します。この悪意のある依存関係は、インストール前に自動的に実行されるプリインストールスクリプトとともに送信されます。通知やユーザーの操作は一切必要ありません。このプロセスはわずか数秒で完了します。
読み込み中...
この手法により、Yomtovによれば、脅威アクターは各リクエストのIPアドレスをチェックすることで「高度なターゲティング」が可能となり、セキュリティ研究者には安全なパッケージを、企業ネットワークには悪意のあるコードやクラウド環境向けの特化したペイロードを送り込むことができます。
「PhantomRavenは、従来のセキュリティツールの死角を突く攻撃者の高度な手口を示しています」とYomtovは書いています。「リモート動的依存関係は静的解析では見えません。」
Koi Securityの最高技術責任者(CTO)兼共同創業者のIdan Dardikmanは、Dark Readingに対し、多くのソフトウェアパッケージの悪意あるコード検出ツールは静的解析のみを使用していると述べています。
「悪意のあるペイロードはnpmレジストリ内ではなく、攻撃者のサーバー(この場合はpackages.storeartifact.com)上に存在するため、レジストリのメタデータに依存する従来の依存関係スキャナーでは完全に見逃されてしまいます」と彼はメールで述べています。
AI「スロップスクワッティング」
RDDによる危険性や、依存関係スキャンツールにおける動的コード解析の欠如に加え、YomtovはPhantomRavenキャンペーンに寄与するもう一つの要因として生成AIを挙げています。
脅威アクターは、スロップスクワッティングと呼ばれる攻撃ベクトルを利用しました。これは大規模言語モデル(LLM)の「幻覚」に頼り、偽のパッケージに本物らしい名前を生成させる手法です。
「開発者がGitHub CopilotやChatGPTなどのAIアシスタントにパッケージの推奨を求めると、モデルは実際には存在しないもっともらしいパッケージ名を提案することがあります」と彼は書いています。「PhantomRavenはそのような存在しないパッケージを作成しました。」
スロップスクワッティング手法には2つの問題があります。まず、LLMが正規のパッケージに非常によく似ているが、タイポスクワッティングと見なされない程度に異なるパッケージ名を生成する点です。次に、幻覚による名前がAIアシスタントによって提案される可能性がある点です。
「すでに野生で、PhantomRavenマルウェアを依存関係として含むパッケージが発見されています。これらはAIの推奨に基づいてインストールした被害者であり、自分たちのシステムが侵害されていることに全く気付いていませんでした」とYomtovは書いています。
PhantomRavenの検出と対策
Koi Securityは今月、同社の行動監視がインストール時に外部ネットワークリクエストを行うnpmパッケージのパターンを検知したことで、初めてPhantomRavenを発見しました。すべてのリクエストは同じ疑わしいドメイン(packages.storeartifact.com)に送信されており、これは8月に始まったキャンペーンにたどり着きました。
Koi Securityによると、PhantomRavenの最初の悪意あるパッケージ群はその月に検知・削除されました。しかし、脅威アクターはその後2か月間で100以上の追加パッケージをアップロードし、検出を回避していました。
Dardikmanによれば、npmのセキュリティチームは現在、悪意のあるパッケージのレビューと削除作業を進めています。「削除プロセスには時間がかかります。npmは各報告を検証し、削除の調整を行う必要があるからです」と彼は述べています。「公開時点で多くのパッケージがまだアクティブなため、IOCを公開しています。完全なクリーンアップが進行中の間も、セキュリティチームが自分たちの環境を積極的にチェックできるようにするためです。」
Koi Securityは、ブログ記事の侵害指標(IOC)にパッケージ名、データ流出に使われたURLやIPアドレスを記載しました。開発者はインストールするnpmパッケージの名前を慎重に確認し、インストール時に行われるすべてのURLやネットワークリクエストも含めて、十分に分析されていることを確認すべきです。
翻訳元: https://www.darkreading.com/application-security/malicious-npm-packages-invisible-dependencies