アップストリーム攻撃は、ソフトウェアサプライチェーン攻撃のうち、開発、依存関係、ビルドなど上流側の工程を侵害し、下流の製品や利用者環境へ影響を広げる攻撃です。攻撃者は、ソースコード、OSSパッケージ、ビルド環境、署名鍵、CI/CDなどの信頼されている工程に悪意ある変更を混入させます。正規の開発・配布プロセスに紛れ込むため、利用者側では不正な変更を見分けにくく、被害範囲の特定にも時間がかかります。
アップストリーム攻撃という語は、文脈によって指す範囲が変わります。この記事では、サプライチェーン攻撃の中でも、ソフトウェアの上流工程を狙う攻撃として扱います。対象になるのは、ソースコード管理、依存パッケージ、ビルド環境、リリース前の成果物、署名・検証の仕組みなどです。
重要なのは、攻撃者が最終利用者の端末を直接狙うとは限らない点です。上流側で悪意あるコードや設定を混入させると、その後のビルド、配布、更新の流れを通じて、多数の組織や利用者へ影響が及びます。利用者は正規のソフトウェアや更新として受け取るため、侵害の発見が遅れやすくなります。
ソフトウェアサプライチェーンは、企画、開発、依存関係の取得、ビルド、テスト、署名、配布、運用、更新までの一連の流れで構成されます。アップストリーム攻撃は、このうち主に開発からビルドまでの工程を狙います。
一方、更新配布基盤の侵害や正規アップデートの悪用は、厳密には配布・更新工程の侵害です。ただし、上流で混入した悪意ある変更が配布される経路にもなるため、ソフトウェアサプライチェーン全体の対策としてあわせて管理します。
アップストリーム攻撃では、単一の脆弱性だけでなく、開発者アカウント、依存パッケージ、ビルド設定、署名鍵、配布手順などが狙われます。代表的な対象は次の通りです。
| ソースコード管理 | リポジトリ、ブランチ、プルリクエスト、レビュー権限が侵害され、正規コードに悪意ある変更が混入します。小さな差分や設定変更に見せかけられると、レビューで見落とされる可能性があります。 |
| 依存関係 | 悪意あるOSSパッケージ、タイポスクワッティング、依存関係の置き換え、保守者アカウントの侵害などにより、開発者が意図しない部品を取り込む可能性があります。 |
| ビルド環境 | CI/CD、ビルドサーバー、ビルドスクリプト、コンテナイメージ、生成物の保管場所が侵害され、ソースコードが正しくても成果物に不正な変更が加えられる可能性があります。 |
| 署名・検証 | 署名鍵、証明書、検証手順、成果物の来歴情報が不適切に管理されると、改ざんされた成果物を正規のものとして扱うリスクがあります。 |
| 配布・更新 | 配布サーバー、パッケージレジストリ、更新機構が侵害されると、利用者が正規更新として不正な成果物を受け取る可能性があります。 |
アップストリーム攻撃の影響は、侵害された開発元だけで完結しません。同じ成果物、同じライブラリ、同じ更新経路を使う組織へ連鎖する可能性があります。
開発環境やビルド環境には、ソースコード、APIキー、アクセストークン、署名鍵、クラウド認証情報が置かれている場合があります。これらが盗まれると、攻撃者は追加のシステムへ侵入し、顧客情報や業務データを取得する可能性があります。
正規の成果物に不正なコードが混入すると、利用者は通常の更新やインストールとして受け取ってしまいます。その結果、情報窃取、遠隔操作、バックドア設置、ランサムウェアの配布などにつながる場合があります。
依存関係やビルド工程が複雑な場合、どの成果物に影響があるかを特定するだけで時間がかかります。特に、利用しているOSS、パッケージの取得元、ビルド時の依存関係、成果物の署名・来歴情報を管理していない場合、調査と復旧の負担が大きくなります。
ソフトウェアサプライチェーンに関わる事故では、自社が直接侵害された場合だけでなく、利用者や取引先への説明も必要になります。影響を受けたバージョン、確認手順、回避策、修正版の提供時期、再発防止策を整理して示せなければ、信頼回復に時間がかかります。
対策は、開発者の注意やコードレビューだけでは不十分です。開発、依存関係、ビルド、署名、配布、運用をつなげて管理し、どこで混入しても検知・追跡・遮断できる状態を作ります。
利用しているOSS、ライブラリ、フレームワーク、コンテナイメージ、取得元、バージョン、ライセンス、更新履歴を管理します。依存関係を把握できなければ、脆弱性や不正パッケージが見つかったときに影響範囲を判断できません。
SBOMを整備すると、ソフトウェアを構成する部品を一覧化し、脆弱性対応や利用者への説明に使いやすくなります。ただし、SBOMは一覧であり、改ざんを自動的に防ぐ仕組みではありません。署名、検証、取得元の制御、ビルド来歴の確認と組み合わせて使います。
CI/CDは、開発から配布までを自動化するため、侵害された場合の影響が大きくなります。ビルド環境では、ジョブの権限、シークレットの保管、外部通信、ビルドスクリプトの変更、成果物の保管先を管理します。
依存パッケージやベースイメージは、信頼できる取得元から入手し、必要に応じて社内ミラーや承認済みレジストリを使います。バージョンを固定せずに取得すると、意図しない更新や置き換えを取り込む可能性があります。
更新は速さだけで判断しません。更新物の正当性、署名、ハッシュ、変更内容、テスト結果、ロールバック手順を確認し、重要システムでは段階的に適用します。
NIST SSDFやSLSAは、ソフトウェアサプライチェーンを守るための実践を整理する際の参考になります。SSDFは、安全なソフトウェア開発の実践を、組織、ソフトウェア保護、安全な開発、脆弱性対応の観点から整理します。SLSAは、成果物の来歴やビルドの信頼性を高め、ソースコードで確認した内容が配布されるバイナリにも反映されているかを扱いやすくします。
これらをそのまま形式的なチェックリストとして扱うのではなく、自社の開発形態、リスク、利用者への影響、運用負荷に合わせて採用範囲を決めます。DevSecOpsの実践として、開発、セキュリティ、運用が同じ情報を見ながら判断できる状態を作ることが重要です。
アップストリーム攻撃は、完全な予防だけを前提にすると対応が遅れます。侵害を疑った時点で、調査、隔離、配布停止、利用者通知、修正版提供を進められるように準備します。
平時に決めていないことは、事故発生時に遅れます。特に、配布停止や更新差し替えは事業影響が大きいため、技術部門だけでなく、法務、広報、営業、顧客対応部門も含めて手順を確認しておく必要があります。
アップストリーム攻撃は、ソフトウェア開発の上流側を侵害し、正規の成果物や更新を通じて下流へ影響を広げる攻撃です。ソースコード、依存関係、ビルド環境、署名鍵、CI/CD、配布基盤のいずれも攻撃対象になり得ます。
対策では、リポジトリと開発アカウントの保護、依存関係の可視化、SBOMの整備、ビルド環境の堅牢化、成果物の署名・検証、更新ルートの管理を組み合わせます。さらに、配布停止、鍵の失効、利用者通知、修正版提供の手順を事前に決めておくことで、侵害が起きた場合の影響を抑えやすくなります。
A.ソフトウェアサプライチェーン攻撃のうち、開発、依存関係、ビルドなど上流側の工程を侵害し、下流の製品や利用者へ影響を広げる攻撃です。
A.上流で混入した不正な変更が、正規のビルド、配布、更新の流れに乗り、多数の利用者へ届く可能性があるためです。
A.ソースコード管理、依存パッケージ、CI/CD、ビルドサーバー、署名鍵、成果物の保管先、配布・更新基盤が狙われます。
A.悪意あるパッケージや侵害されたパッケージを、開発者やビルド環境に取り込ませる手口です。
A.影響します。正規ソフトウェアや正規更新に見える形で不正な成果物を受け取る可能性があります。
A.利用しているOSS、ライブラリ、取得元、バージョン、ビルド手順、配布経路を棚卸しし、影響範囲を確認できる状態を作ることです。
A.対策の一部になります。構成部品を把握し、脆弱性対応や影響調査に使えますが、署名や検証などと組み合わせる必要があります。
A.ソースコードが正しくても、ビルド時に不正な変更を混入されると、正規リリースとして配布される可能性があるためです。
A.早さは重要ですが、取得元、署名、変更内容、テスト、段階適用、ロールバック手順を確認したうえで適用します。
A.開発、依存関係、ビルド、署名、配布、インシデント対応を一連の流れとして管理し、配布停止や利用者通知の手順まで決めておきます。