ソフトウェアサプライチェーン攻撃とは
ソフトウェアサプライチェーン攻撃とは、ソフトウェアの開発・配布プロセスを侵害し、正規のソフトウェアにマルウェアや悪意あるコードを混入させる攻撃手法です。利用者は信頼できるベンダーから提供されたソフトウェアだと信じてインストールするため、従来のセキュリティ対策では検知が困難です。
この攻撃は、サプライチェーン攻撃の手口と侵入経路で解説している3つの類型のうち、最も技術的で高度な攻撃手法です。ビジネスサプライチェーン攻撃が取引先の信頼関係を悪用するのに対し、ソフトウェアサプライチェーン攻撃はソフトウェアへの信頼を悪用します。
- 攻撃の特徴
- 正規のソフトウェア配布チャネルを通じてマルウェアが配布されるため、ファイアウォールやアンチウイルスソフトでは検知が困難です。利用者にとっては、通常のソフトウェアアップデートと区別がつきません。
- 影響範囲の広さ
- 1つのソフトウェアを侵害することで、そのソフトウェアを利用するすべての組織に攻撃を波及させることができます。人気のあるソフトウェアほど影響範囲が広くなります。
- 検知の困難さ
- 正規の署名がされた正規のソフトウェアに見えるため、従来のセキュリティツールでは検知が難しく、長期間にわたって侵害が発覚しないことがあります。
ソフトウェアサプライチェーン攻撃は、標的型攻撃(APT)の一環として行われることが多く、国家レベルの攻撃者が関与していることもあります。この攻撃への対策は、技術的な知識を必要とするため、技術者向け対策ガイドで詳しく解説しています。
アップデート改ざんの手口
ソフトウェアサプライチェーン攻撃で最も一般的な手口が、正規のソフトウェアアップデートへのマルウェア混入です。この手口は、ユーザーが日常的に行うアップデート作業を悪用するため、非常に効果的です。
ソフトウェアサプライチェーン攻撃では、正規の配布チャネルを通じてマルウェアが配布されるため、従来のセキュリティ対策だけでは防御が困難です。
— 出典:IPA「情報セキュリティ10大脅威 2025」
配布サーバーの侵害
攻撃者がソフトウェアベンダーのアップデート配布サーバーに侵入し、正規のアップデートファイルを悪意あるファイルに差し替える手口です。
この手口の危険性は、ユーザーが正規のアップデートサーバーから直接ダウンロードするため、URLやダウンロード元に不審な点がないことです。配布サーバーに署名検証の仕組みがない場合や、署名鍵も一緒に窃取されている場合は、改ざんを検知することが困難になります。
対策としては、ソフトウェアベンダー側での配布サーバーの厳重な保護、多要素認証の導入、侵入検知システムの設置が重要です。利用者側では、ダウンロードしたファイルのハッシュ値を公式サイトで公開されている値と照合することで、改ざんを検知できる可能性があります。
ビルド成果物の改ざん
ビルド成果物の改ざんは、ソースコードは正常なまま、ビルド後のバイナリファイルに不正なコードを挿入する手口です。この手口は、SolarWinds事件で使用されたことで注目を集めました。
SolarWinds事件では、攻撃者はビルドプロセスに介入し、ソースコードには存在しない悪意あるコードをビルド成果物に挿入しました。ソースコードのレビューでは問題が見つからず、完成したソフトウェアにだけマルウェアが含まれていたため、発見が非常に困難でした。
この攻撃を防ぐためには、ビルド環境の厳重な保護と、ソースコードとビルド成果物の整合性を検証する仕組み(再現可能なビルド)が必要です。詳しくはCI/CDセキュリティで解説しています。
署名鍵の窃取
ソフトウェアのコード署名用秘密鍵を窃取し、マルウェアに正規の署名を付与する手口です。正規の署名がされたマルウェアは、セキュリティソフトでも信頼されたソフトウェアとして扱われるため、検知が極めて困難になります。
署名鍵が窃取されると、攻撃者は任意のマルウェアに正規の署名を付与できるようになります。この状態では、そのベンダーのソフトウェアすべてが信頼できなくなるため、被害の影響は甚大です。
対策としては、署名鍵の厳重な管理、HSM(Hardware Security Module)の使用、署名プロセスの分離と監視が重要です。また、万が一窃取された場合に備えて、鍵の失効と再発行の手順を準備しておくことも必要です。
開発工程への侵入
ソフトウェアの開発工程そのものに侵入し、開発段階から悪意あるコードを埋め込む手口もあります。この手口は、ソースコードレベルで改ざんが行われるため、ビルド成果物の検証だけでは検知できません。
ソースコードリポジトリの侵害
GitHubやGitLabなどのソースコードリポジトリに不正アクセスし、悪意あるコードを直接コミットする手口です。2021年のCodecov事件では、CI/CDツールのスクリプトが改ざんされ、多くの企業の環境変数や認証情報が流出しました。
- 攻撃の流れ
- 攻撃者はリポジトリへのアクセス権限を持つアカウントを侵害し、正規のコミットに見せかけて悪意あるコードを追加します。変更が小さい場合や、コードレビューが不十分な場合は、長期間発覚しないことがあります。
- 被害の影響
- ソースコードに直接悪意あるコードが含まれるため、そのソフトウェアを利用するすべての組織に影響が及びます。また、過去のバージョンにまで遡って改ざんされる可能性もあります。
対策としては、リポジトリへのアクセス権限の厳格な管理、多要素認証の必須化、すべてのコミットへのコードレビュー義務化が重要です。また、署名付きコミットを義務化することで、不正なコミットを検知しやすくなります。
開発者アカウントの乗っ取り
開発者の認証情報を窃取し、正規の開発者として悪意あるコードをコミットする手口です。フィッシングやクレデンシャルスタッフィングが使われることが多く、開発者個人のセキュリティ意識が問われます。
開発者アカウントが乗っ取られると、攻撃者は正規の開発者として振る舞うことができます。コミット履歴には正規の開発者の名前が表示されるため、不正なコミットを見分けることが難しくなります。
対策としては、開発者アカウントへの多要素認証の必須化、パスワードスプレー攻撃への対策、開発者向けのセキュリティ教育が重要です。また、通常とは異なる時間帯やIPアドレスからのコミットを検知する仕組みも有効です。
開発環境の汚染
開発者が使用するマシン、IDE(統合開発環境)、開発ツールを侵害し、開発作業中に悪意あるコードが自動的に挿入されるようにする手口です。
開発者のマシンがマルウェアに感染している場合、開発者自身が気づかないうちに悪意あるコードがソースコードに追加されることがあります。また、開発用のIDEやプラグインに悪意あるコードが含まれていた場合も、同様のリスクがあります。
対策としては、開発用マシンのセキュリティ強化、開発ツールの信頼性確認、開発環境の分離(本番環境との分離)が重要です。
ビルドシステムの侵害
CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインへの攻撃は、ソフトウェアサプライチェーン攻撃の中でも特に巧妙な手口です。ソースコードには問題がなくても、ビルドプロセスを改ざんすることで、最終的な成果物にマルウェアを混入させることができます。
| 攻撃手法 | 侵害対象 | 影響 |
|---|---|---|
| ビルドサーバーへの侵入 | CI/CDサーバー | ビルド成果物への不正コード挿入 |
| ビルドスクリプトの改ざん | ビルド設定ファイル | ビルド時の悪意ある処理の実行 |
| 依存関係の改ざん | 外部ライブラリ | 悪意あるライブラリの取り込み |
| 環境変数の窃取 | シークレット、認証情報 | 他システムへの横展開 |
この攻撃への対策として、SLSA(Supply-chain Levels for Software Artifacts)フレームワークが注目されています。SLSAは、ソフトウェアサプライチェーンのセキュリティレベルを4段階で定義し、各レベルで必要な対策を明確にしています。詳しくはCI/CDセキュリティをご覧ください。
OSSパッケージへの悪意あるコード混入
オープンソースソフトウェア(OSS)のパッケージを狙った攻撃も増加しています。現代のソフトウェア開発では、npmやPyPIなどのパッケージリポジトリから多数の外部ライブラリを取り込むため、これらのパッケージが侵害されると影響は広範囲に及びます。
人気パッケージの乗っ取り
人気のあるOSSパッケージのメンテナーアカウントを乗っ取り、悪意あるコードを含むバージョンを公開する手口です。event-stream事件(2018年)では、人気のnpmパッケージのメンテナー権限が不正に譲渡され、暗号通貨ウォレットを狙うマルウェアが混入されました。
- 攻撃の手口
- 攻撃者は、メンテナーのアカウントを乗っ取るか、開発が停滞しているプロジェクトに対して「メンテナンスを手伝いたい」と申し出て権限を取得します。権限を得た後、悪意あるコードを含む新バージョンを公開します。
- 検知の困難さ
- 正規のメンテナーによる正規のアップデートに見えるため、自動更新を有効にしている場合は、悪意あるバージョンが即座にインストールされてしまいます。
タイポスクワッティング
人気パッケージに似た名前の悪意あるパッケージを公開する手口です。開発者がパッケージ名を入力ミスすると、悪意あるパッケージがインストールされてしまいます。
例えば、正規のパッケージ名が「lodash」の場合、「1odash」(lの代わりに1)や「lodash-utils」(存在しないバリエーション)などの名前で悪意あるパッケージが公開されることがあります。
この攻撃は、npmやPyPIなどのパッケージリポジトリで頻繁に発生しています。詳しくはnpmセキュリティをご覧ください。
依存関係の悪用
現代のソフトウェアは多数の外部ライブラリに依存しており、その依存関係は複雑なツリー構造を形成しています。直接依存しているパッケージだけでなく、その依存先(推移的依存関係)まで含めると、数百から数千のパッケージに依存していることも珍しくありません。
攻撃者は、この複雑な依存関係の中に悪意あるパッケージを紛れ込ませます。直接依存していないパッケージは見落とされやすく、長期間にわたって検知されないことがあります。
対策としては、SBOM(ソフトウェア部品表)を活用した依存関係の可視化と脆弱性管理が重要です。
代表的な事例
ソフトウェアサプライチェーン攻撃の代表的な事例を紹介します。これらの事例から、攻撃の手口や影響の大きさを理解できます。
| 事例名 | 発生年 | 攻撃手法 | 影響 |
|---|---|---|---|
| SolarWinds事件 | 2020年 | ビルドシステム侵害、アップデート改ざん | 米国政府機関を含む18,000以上の組織 |
| 3CX事件 | 2023年 | 正規アップデートへのマルウェア混入 | 60万以上の企業 |
| Codecov事件 | 2021年 | CI/CDスクリプト改ざん | 多数の企業の認証情報流出 |
| event-stream事件 | 2018年 | npmパッケージの乗っ取り | 暗号通貨ウォレットへの攻撃 |
| ua-parser-js事件 | 2021年 | npmパッケージの乗っ取り | 暗号通貨マイニング、パスワード窃取 |
SolarWinds事件は、ソフトウェアサプライチェーン攻撃の代表的な事例として知られています。ネットワーク監視ソフトウェア「Orion」のビルドプロセスが侵害され、正規のアップデートにバックドアが混入されました。この攻撃は、ロシアの国家支援を受けた攻撃者グループによるものとされ、米国の国家安全保障に重大な影響を与えました。
3CX事件は、2023年に発生した大規模なサプライチェーン攻撃です。ビジネス電話システムの正規アップデートにマルウェアが混入され、世界中の企業が影響を受けました。この攻撃は、北朝鮮の攻撃者グループによるものとされています。
詳しい事例解説は、サプライチェーン攻撃の海外事例をご覧ください。
ソフトウェアサプライチェーン攻撃への対策
ソフトウェアサプライチェーン攻撃への対策は、技術的な対策が中心となります。ここでは対策の方向性を概説しますが、詳細な実装方法については技術者向けカテゴリをご参照ください。
- SBOM(Software Bill of Materials:ソフトウェア部品表)の活用
- ソフトウェアに含まれるすべてのコンポーネント(ライブラリ、フレームワークなど)を一覧化し、脆弱性管理を行います。SBOMを活用することで、問題のあるコンポーネントを迅速に特定できます。詳しくはSBOM解説ページをご覧ください。
- 署名検証の徹底
- ダウンロードしたソフトウェアのデジタル署名を検証し、改ざんされていないことを確認します。署名が無効な場合や、署名されていないソフトウェアのインストールは避けるべきです。
- SLSA(Supply-chain Levels for Software Artifacts)の採用
- ソフトウェアサプライチェーンのセキュリティレベルを示すフレームワークです。開発・ビルド・配布の各段階でのセキュリティ要件を定義しており、組織のセキュリティ成熟度に応じて段階的に対策を強化できます。
- 依存関係の管理
- 直接依存だけでなく、推移的依存関係まで含めて把握し、脆弱性のあるパッケージを特定・更新します。依存関係の自動スキャンツールを活用することで、効率的に管理できます。
ソフトウェアサプライチェーン攻撃への対策として、SBOMの整備と署名検証の徹底が重要です。特に、重要インフラを支えるソフトウェアについては、これらの対策を優先的に実施することが求められます。
— 出典:経済産業省「サイバーセキュリティ経営ガイドライン」
関連する攻撃手法
ソフトウェアサプライチェーン攻撃は、単独で行われることは少なく、他の攻撃手法と組み合わせて実行されることが多いです。関連する攻撃手法を理解することで、より効果的な対策を講じることができます。
- マルウェア感染:改ざんされたソフトウェアを通じてマルウェアが配布されます
- 標的型攻撃(APT):国家レベルの攻撃者がソフトウェアサプライチェーンを狙うことがあります
- 不正アクセス:開発者アカウントや配布サーバーへの不正アクセスが攻撃の起点になります
- フィッシング:開発者の認証情報を窃取するために使われます
- ランサムウェア:サプライチェーン経由で配布されることがあります
- 情報漏洩:侵害されたソフトウェアを通じて機密情報が流出することがあります
- 認証情報の窃取:開発環境やCI/CDパイプラインから認証情報が窃取されることがあります
これらの攻撃手法への対策も併せて講じることで、ソフトウェアサプライチェーン攻撃のリスクを低減できます。
よくある質問
- Q: ソフトウェアサプライチェーン攻撃はどのように検知できますか?
- A: ソフトウェアサプライチェーン攻撃の検知は非常に困難ですが、いくつかの方法があります。まず、ダウンロードしたファイルのハッシュ値を公式サイトで公開されている値と照合することで、改ざんを検知できる可能性があります。また、EDR(Endpoint Detection and Response)製品を導入することで、インストール後の不審な挙動を検知できます。SBOMを活用した脆弱性スキャンも有効です。ただし、完全な検知は難しいため、予防的な対策を優先することが重要です。
- Q: 正規のアップデートをインストールしても危険なのですか?
- A: ソフトウェアサプライチェーン攻撃では、正規のアップデートチャネルを通じてマルウェアが配布されるため、正規のアップデートであっても危険な場合があります。ただし、これはアップデートを避けるべきという意味ではありません。アップデートを適用しないことによる脆弱性のリスクの方が一般的には高いです。対策としては、重要なシステムへのアップデート適用前にテスト環境で検証する、信頼できるベンダーのソフトウェアのみを使用する、署名検証を行うなどの方法があります。
- Q: OSSを使うのは危険ですか?
- A: OSSの使用自体が危険というわけではありません。OSSは世界中の開発者によってコードがレビューされるため、セキュリティ上の問題が発見されやすいという利点もあります。ただし、依存関係の管理が重要です。使用するOSSパッケージを把握し、脆弱性情報を定期的に確認し、問題のあるパッケージを速やかに更新する体制を整えることが必要です。タイポスクワッティングに注意し、パッケージ名を正確に入力することも重要です。
- Q: 自社で開発していなくても影響を受けますか?
- A: はい、影響を受ける可能性があります。購入したソフトウェアやクラウドサービスがソフトウェアサプライチェーン攻撃の被害に遭った場合、利用者である自社も影響を受けます。SolarWinds事件では、Orionを利用していた多くの組織が攻撃の影響を受けました。自社で開発していない場合でも、使用するソフトウェアのベンダーのセキュリティ体制を確認し、セキュリティ情報を収集することが重要です。
まとめ
ソフトウェアサプライチェーン攻撃について、重要なポイントを整理します。
- ソフトウェアサプライチェーン攻撃は、ソフトウェアの開発・配布プロセスを侵害し、正規のソフトウェアにマルウェアを混入させる攻撃手法
- アップデートの改ざん、開発環境への侵入、ビルドシステムの侵害、OSSパッケージの乗っ取りなど、複数の攻撃手法がある
- 正規のソフトウェアに見えるため、従来のセキュリティ対策では検知が困難
- SolarWinds事件や3CX事件など、大規模な被害事例が発生している
- 対策にはSBOM、署名検証、SLSAの採用など、技術的な対策が重要
- 標的型攻撃(APT)やフィッシングなど、他の攻撃手法と組み合わせて実行されることが多い
次は、取引先を踏み台にするビジネスサプライチェーン攻撃について学びましょう。
攻撃タイプ別の概要については、サプライチェーン攻撃の種類をご覧ください。サプライチェーン攻撃の全体像については、サプライチェーン攻撃とは|仕組み・事例・対策を初心者にもわかりやすく解説【2025年版】をご参照ください。
重要なお知らせ
- 本記事は一般的な情報提供を目的としており、個別の状況に対する助言ではありません。
- 実際にサイバー攻撃の被害に遭われた場合は、警察(#9110)やIPA(03-5978-7509)などの公的機関にご相談ください。
- 法的な対応が必要な場合は、弁護士などの専門家にご相談ください。
- 記載内容は作成時点の情報であり、攻撃手法は日々進化している可能性があります。
サプライチェーン攻撃 完全ガイド ナビゲーション
総合ガイド
目的別に探す
攻撃タイプ別に探す(現在のカテゴリ)
役職・立場別に探す
業種別に探す
人気のページ
更新履歴
- 初稿公開