パイプラインへの毒入れ:「Frank」キャンペーンがNPM依存関係混乱を通じてAppleとGoogleをどのようにターゲットにしたか

サイバーセキュリティ専門家が、完成した製品の侵害を回避し、ビルドプロセス自体の脆弱性を悪用する、開発者をターゲットとした蔓延した悪意あるキャンペーンを明らかにしました。パブリックNPMレジストリを利用することで、攻撃者は大手企業の内部ツールを装った有害なパッケージを配布しようとし、自動化された開発パイプラインが知らず知らずのうちに偽造ソフトウェアを統合することを予想していました。

Panther Threat Researchによると、2026年4月24日から4月30日の間にNPMに38個の悪意あるパッケージが出現しました。これらは「frank」というペンネームを使用するインドネシア人のオペレーターと主要アカウントfrengki0707に起因し、raya4321、cketol、frengki4321などの二次アカウントによって支援されています。

採用された主な手口は依存関係混乱でした。犯人はApple、Google、GCP、Alibaba、Aliyunの非公開ライブラリを模倣するために、「internal」という文字列を含む名前を注意深く選択しました。CI/CDパイプラインが設定ミスの場合、パブリックの悪意あるパッケージは本物の内部依存関係よりも優先され、通常のインストール中に実行される可能性があります。

最も重要なパッケージクラスターはAppleの内部ツールを模倣し、App Storeライブラリ、PKIユーティリティ、CloudKit、および様々なインフラストラクチャコンポーネントが含まれました。命名法は多くの場合、防御回避、ステルス、データ流出を示唆する用語を含みました。v3v9v99などの配布されたバージョンは、package.jsonファイル内でパッケージに合法性の外観を与えるように設計されました。

GoogleとGCPをターゲットとするパッケージは、ビルドユーティリティ、ロギングツール、モノレポマネージャー、監査スクリプトとして装われました。それらの目的はGCPサービスキー、OAuthトークン、およびKubernetes設定の収集でした。Alibabaエコシステム内では、敵対者はAliyun RAMキーをインターセプトするためにAlibaba Cloud SDKコンポーネントをシミュレートしました。さらに、frank-newton3シリーズは、.envファイル、データベース変数、SSHキー、およびMySQLまたはPostgresダンプを流出させるために設計された多目的ツールキットとして機能しました。

悪意あるペイロードは標準的なnpm installコマンドに続くpostinstallスクリプトを通じてトリガーされました。最初に、これらのパッケージはシステムテレメトリを収集するための偵察を実施しました—ユーザー名、ホスト名、OSデータを含む—コマンド・アンド・コントロール基盤に送信する「秘密」をスカウトする前に。特に強調されたのは、NPM_TOKENNODE_AUTH_TOKENを流出させることでした。これらの認証情報を侵害することで、正当な、広く使用されているソフトウェアへの悪意あるコードの注入が容易になる可能性があるためです。

Pantherはこのキャンペーンを、反復する「frank」というペンネーム、類似のアカウント命名規約、ソースコード内のインドネシア語のコメント、および共有されたウェブフックアドレスに基づいて、単一のオペレーターに関連付けています。アカウントの回転は、特定の公開が削除された後でも、攻撃インフラストラクチャを保持するための戦略的な操術でした。開発チームは、タイトルに「internal」を含むパブリックNPMリクエストを注意深く精査し、CI/CD環境内のpostinstallスクリプトを厳密に管理し、~/.npmrc~/.aws/credentials~/.kube/configなどの機密ディレクトリへのビルドプロセスアクセスを監視するよう促されています。

翻訳元: https://meterpreter.org/poisoning-the-pipeline-how-the-frank-campaign-targeted-apple-and-google-via-npm-dependency-confusion/

ソース: meterpreter.org