写真=Andreessen Horowitzのジョエル・デ・ラ・ガルザ氏、マリカ・アウバキロバ氏、ジェイン・レイキー氏(LinkedIn掲載写真をGeminiで加工)

インターネットで広く使われるソフトウェアパッケージを狙うサプライチェーン攻撃が、AIコーディングの普及で新たな局面に入っている。Andreessen Horowitzのジョエル・デ・ラ・ガルザ氏、マリカ・アウバキロバ氏、ジェイン・レイキー氏は、AxiosやTrivyを例に、依存関係を悪用した攻撃が急速に広がる一方、CVE照合に依存する従来型の検知では対応しきれないと指摘した。

最近被害を受けたAxiosは、JavaScriptエコシステムでHTTPリクエストを処理する中核ライブラリで、週間ダウンロード数は1億件を超える。今回の事例では、攻撃者はソースコードを直接書き換えることなく、広範な端末にマルウェアを拡散し得ることを示した。

攻撃の手口は比較的単純だった。メンテイナーのアカウントを奪取し、依存パッケージを1件追加した上で、更新版を配布しただけだったという。

追加されたのは、攻撃の数時間前に新規登録された「plain-crypto-js」だった。このパッケージはインストール時にOSを判別し、OSごとに最適化したリモートアクセス型トロイの木馬をダウンロードして実行した後、痕跡を消去した。開発者がnode_modulesフォルダを確認する時点では既に削除され、マルウェアは攻撃者のサーバーとの接続を終えていたという。

問題は、既存のセキュリティツールではこの攻撃を捉えられなかった点にある。3氏は「多くのソフトウェア構成分析ツール(SCA)は、既知の脆弱性データベース(CVE)との照合を前提に動作する。新たに投入された悪性パッケージはCVEでは確認できない」と説明する。実際、改ざんされたAxiosにnpm auditを実行しても「異常なし」と判定されたとしている。

3氏は今回の事例について、「手口は単純だったが、影響範囲は広かった」と評価した。その上で、AIコーディングの普及に伴い、ソフトウェアサプライチェーンのリスクが一段と高まっている実例だと位置付けている。

開発者の生産性を高めるAIコーディングツールは、一方で供給網の弱点にもなり得る。3氏は、GitHubリポジトリ数千件を対象に11万7000件超の依存関係変更を分析した研究を引用し、AIエージェントは人間より50%高い頻度で、既知の脆弱性を含むバージョンを選択する傾向があると紹介した。

さらに、AIが選んだ脆弱なバージョンは修正も難しいという。3氏は、こうしたケースではコード全体の見直しを伴う大規模なアップグレードに発展することが、人手による選定よりはるかに多いと指摘した。

新たな攻撃手法として「slopsquatting」も浮上している。大規模言語モデル(LLM)が実在しないパッケージ名を生成しがちな点を突く手口だ。3氏は別の研究を引用し、AIが推奨したパッケージの約20%は実在せず、このうち43%は複数回問い合わせても同じ名称が繰り返し提示されたと説明した。攻撃者はこうした傾向を悪用しているという。

自律型コーディングエージェントも、セキュリティ面では新たなリスク要因になっている。3氏によると、これらのエージェントは人手を介さず依存関係をインストールし、ビルドを実行し、プルリクエストまで作成する。「動くかどうか」の最適化が優先され、「安全かどうか」の検証は後回しになりやすい。結果として、セキュリティレビューに割ける時間は実質的にゼロに近づくとしている。

「TeamPCP」と呼ばれるキャンペーンは、サプライチェーン攻撃が連鎖的に拡大する過程を示した事例だ。3氏によると、起点となったのはオープンソースの脆弱性スキャナーTrivyだった。

攻撃者は、コードの自動ビルドやテスト、配布に使われるGitHub Actionsでワークフロー設定の不備を突き、アクセストークンを窃取した。その後、Trivyのほぼすべてのバージョンタグに悪性コードを混入させたという。

セキュリティ点検のためTrivyをダウンロードした利用者は、意図せず攻撃者が仕込んだコードを実行することになった。マルウェアは自動化された開発環境に保存されていた各種認証情報を窃取し、その中にはサーバ接続用の鍵情報、クラウドサービスの認証情報、パッケージ配布権限などが含まれていた。npmへの接続に必要なトークンも奪われ、次の攻撃段階に悪用されたとしている。

3氏は「1つのトークンから始まった攻撃が、8日間でGitHub Actions、Docker Hub、npm、PyPI、VS Code拡張機能マーケットプレイスへと拡大した。数千の組織が潜在的な被害範囲に置かれた」と述べた。

AIコーディング時代のサプライチェーンリスクに対する有効策として、3氏が挙げるのが検知速度の大幅な引き上げだ。コードはもはや人ではなく機械の速度で生成・配布されるため、防御側も同じ速度で追随できなければ、コードを届ける仕組みがそのままマルウェアの拡散経路になると警鐘を鳴らしている。

もっとも、業界全体がその速度に対応できているとは言い難い。3氏によると、サプライチェーン侵害の平均検知時間は267日で、SolarWindsでは14カ月、XZ Utilitiesでは2年を要した。

こうした中、セキュリティスタートアップのSocketは、Axios攻撃で使われた悪性の依存パッケージを配布開始から6分で検知したと明らかにし、注目を集めた。業界平均と比べて約6万3000倍の速さで、改ざんされたAxiosが初めて配布される16分前に悪性パッケージそのものを先に検知したとしている。

3氏によると、Socketの手法は従来のCVE照合型とは異なる。既知データベースとの一致を探すのではなく、コードの実際の挙動を分析する。具体的には、ネットワークアクセスの有無、シェルプロセスの実行、ペイロードの難読化、環境変数の読み取りなどを調べることで、CVEにも前例にも存在しない新種の悪性パッケージを見つけ出せるという。

3氏は、先行するチームには共通点があると強調する。侵害の通知を待つのではなく、依存関係がビルドに入る瞬間という脅威に最も近い地点へセキュリティ統制を移している点だ。CVEデータベースだけに頼らず、パッケージの挙動そのものを分析し、依存関係グラフを単なるライブラリ一覧ではなく、継続的に監視すべき生きた攻撃面として扱う必要があるとしている。

キーワード

#AI #ソフトウェアサプライチェーン #依存関係 #CVE #npm #GitHub Actions #Trivy #Socket
Copyright © DigitalToday. All rights reserved. Unauthorized reproduction and redistribution are prohibited.