
PhantomRavenは、脅威キャンペーンにつけられた名称です。
活動はnpmを舞台にして行われます。
npmは、Node.jsのパッケージを管理するシステムです。
そして、世界中の開発者からnpmトークン、GitHubの認証情報、CI/CDのシークレットを積極的に盗み出します。
どんな流れで動くのでしょうか。
- 無害なスクリプトを作成する
まず初めに攻撃者はnpmで配布するパッケージを作成します。
その第一段階として、無害なスクリプトを作成します。
このパッケージの内容となるスクリプトには怪しい点がありません。
このため、セキュリティ製品でスキャンされても引っかかりません。 - package.jsonを作成する
次に作成するのは配布するパッケージを利用するための依存会計を記述するためのファイルです。
通常はここに配布するパッケージが必要とする他のパッケージを記述します。
PhantomRavenのポイントはここにあります。
よくある通常の方法では単に必要なパッケージの名称やバージョンを記述するだけなのですが、PhantomRavenでは依存パッケージを直接HTTPのURLで指定する方式で記述したのです。
通常、パッケージの名前とバージョンを指定して依存パッケージを取得する場合にはnpmjs.comから取得されることになるのですが、このようにHTTPのURLを指定するとこのパッケージをインストールした際にはその外部サイトから直接追加のパッケージが取得されて適用されます。 - 依存関係のパッケージで侵害する
外部に置いているパッケージなので、どんな悪意を持った機構を仕込んでいてもそれは持ち込むことができてしまいます。
npmjs.comはこれらのURLをたどりません。
セキュリティスキャナーはこれらのURLを取得しません。
依存関係分析ツールはこれらのURLを無視するのです。
あらゆる自動化セキュリティシステムでは、これらのパッケージは「依存関係なし」と表示されます。
ですが、実際には外部サイトから持ち込まれているのです。
この手法による攻撃では、被害者となる人の行動を必要とすることなく攻撃が開始されて完了されます。
そして完了してしまうと、その環境のnpmトークン、GitHubの認証情報、CI/CDのシークレットを盗み出します。
依存関係でもってくる外部パッケージの名称も実にそれらしいものにしてあります。
これらのパッケージ名称の作成には生成AIが使われていると考えられています。
いわゆるslopsquattingです。
このキャンペーンのように、パッケージそのものではなく、その依存関係を解消する仕組みを使って攻撃を成立させる手法は、また別のキャンペーンで使われることも考えられます。
注意が必要な部分が増えていきますね。
PhantomRaven: NPM Malware Hidden in Invisible Dependencies
https://www.koi.ai/blog/phantomraven-npm-malware-hidden-in-invisible-dependencies
| この記事をシェア |
|---|
一緒によく読まれている記事
-
サイバー領域
- 【GitGuardian最新調査】2022年における重大なシークレット流出事案
- シークレットの流出・漏洩は、今や企業にとって大きなリスクです。GitHubなどのパブリックな開発環境は、多くの脅威アクター(サイバー犯罪グループなど)にとって、攻撃に有⽤なシーク...
-
サイバー領域
- GitGuardian レポート 「The state of Secrets Sprawl 2023」公開/日本語翻訳版はテリロジーワークスが作成
- GitHub等から流出した機密情報をリアルタイムで検知するサービス「GitGuardian Public Monitoring」を提供するGitGuardian社より、昨年に引き...