「npm install」は任意のコード実行か?サプライチェーン攻撃の脅威と開発環境の新たな防御策
本記事は、ソフトウェア開発におけるサプライチェーンセキュリティの深刻な課題を指摘し、開発者や企業が取るべき対策を解説している。近年、CI/CDパイプラインの自動化が進む一方で、オープンソースソフトウェア(OSS)の依存関係を悪用したセキュリティインシデントが多発しており、ソフトウェアサプライチェーン全体の信頼が揺らいでいる。
問題の深刻化は、2025年以降に顕著となり、特に「GitHub Actions」のようなCI/CDツールを侵害し、マルウェアを含む改ざんされたバイナリパッケージを配布する手口が主流となっている。具体的な事例として、2025年3月のGitHub Action「reviewdog」の侵害や、npmパッケージを改ざんし自己増殖する「Shai-Hulud」攻撃が挙げられる。さらに、2026年に入ってからは、セキュリティツール「Trivy」への侵害が発生し、これは筆者(米内氏)が「最も大きな動き」と評価するほど深刻な事態となった。このTrivy侵害では、攻撃者がバイブハッキング的な動きや、複数のシークレット情報(GitHubトークン、APIキーなど)を窃取し、連鎖的に被害を拡大させた点が特徴的である。
米内氏は、攻撃の傾向が「連鎖前提の攻撃」へと進化し、攻撃練度も向上していると指摘。また、開発現場でのAI活用が進み、人間が判断をAIに委譲する傾向が、攻撃者にとっての新たなリスクを拡大させていると警鐘を鳴らしている。このため、単に「自分は特定のパッケージを使っていないから大丈夫」という認識は危険であり、影響は広範囲に及ぶと強調している。
対策として、単なるSBOM(ソフトウェア部品表)の導入だけでは不十分であり、以下の4つの具体的なアプローチを推奨している。①受け入れ評価の強化(パッケージ利用に厳しい目を持つ)、②評価したものへの依存固定(SHA Pinningなど)、③DevOps系アーキテクチャの堅牢化(ビルドとデプロイの分離)、④DevOps系エンドポイント統制の強化(CI/CD環境の監視とインシデント対応準備)。また、パッケージ利用の判断が難しい場合は、数日間の「クールダウン期間」を設けることも重要である。
背景
ソフトウェア開発の自動化(CI/CD)とオープンソース化が進む一方で、依存関係の複雑化がセキュリティリスクを高めている。過去のLog4jのような脆弱性問題から、現在はサプライチェーン全体を狙う高度な攻撃(改ざん、侵害)へと脅威が進化している。
重要用語解説
- SBOM(Software Bill of Materials): ソフトウェア部品表の略。ソフトウェアに含まれるすべてのオープンソースライブラリやコンポーネントをリスト化し、脆弱性特定やリスク管理に役立てる仕組み。
- CI/CDパイプライン: 継続的インテグレーション/継続的デリバリーの略。コードの変更を自動的にテスト、ビルド、デプロイする一連の自動化された開発プロセス。
- Transitive Dependency(推移的依存): 直接利用するパッケージ(A)が、さらに別のパッケージ(B)に依存している場合、Aを通じて間接的に利用されるパッケージBのこと。影響範囲を広げる原因となる。
- 影響: 本ニュースは、開発プロセス全体に根本的なセキュリティ意識改革を促す。企業は、単なるツール導入に留まらず、開発ライフサイクル全体(設計、ビルド、デプロイ)におけるセキュリティ統制(DevSecOps)の強化が必須となる。今後の開発は、侵害を前提とした防御策が求められる。