サプライチェーン攻撃とは

さぷらいちぇーんこうげき

標的の組織を直接攻撃するのではなく、その組織が使うソフトウェアや部品、委託先などの供給の流れ(サプライチェーン)の弱いところを攻撃して、間接的に侵入する攻撃。正規の更新プログラムへの不正なコードの混入、オープンソースのパッケージの乗っ取りや似た名前の不正なパッケージ、ITの委託先を経由した侵入などがある。2020年に発覚したSolarWinds社の事件では、正規の署名付きの更新を通じて、多くの組織に被害が広がった。ハードウェアでは、製造の途中で不正な回路を加えるハードウェアトロイも、この種の脅威に含まれる。

「サプライチェーン攻撃」は、1分野の2問の練習問題に出てきます(サイバー攻撃と防御の実務など)。

この用語の分野: サイバー攻撃と防御の実務

サプライチェーン攻撃の練習問題に挑戦

ある企業は、社内のパッケージの置き場(プライベートレジストリ)に、社内専用のライブラリ acme-utils を置いて使っている。攻撃者が、公開のパッケージの置き場に、同じ名前 acme-utils でより大きな版番号のパッケージを登録したところ、ビルドの設定によっては、社内のビルドの環境が攻撃者のパッケージを取り込んでしまうことが分かった。この「依存関係の混乱(dependency confusion)」への対策として、最も適切なものはどれか。

  1. A社内専用のライブラリの版番号を小さく保ち、公開の置き場にあるパッケージと区別しやすくしておく
  2. B社内専用のパッケージは組織が管理する名前空間に置いて社内の置き場からだけ取得するように設定し、ロックファイルで版とハッシュ値を固定する
  3. C公開の置き場のパッケージは審査されていて信頼できるので、どの置き場から取得するかは設定しなくてよい
答えと解説を見る

正解:B. 社内専用のパッケージは組織が管理する名前空間に置いて社内の置き場からだけ取得するように設定し、ロックファイルで版とハッシュ値を固定する

依存関係の混乱は、ソフトウェアのサプライチェーン攻撃の一種です。パッケージの管理ツールの中には、複数の置き場を参照し、同じ名前があれば版番号の大きいほうを選ぶ設定のものがあり、攻撃者はそれを悪用して、社内の名前と同じ不正なパッケージを取り込ませます。対策は、社内のパッケージに組織が管理する名前空間(スコープ)を使い、その名前空間を社内の置き場だけに結び付けて、どの置き場から取得するかを明示することです。さらに、ロックファイルで依存するパッケージの版とハッシュ値を固定すれば、知らないうちに別のものに置き換わることを防げます。公開の置き場に組織の名前空間を先に登録しておくことも、なりすましを防ぐのに役立ちます。

2020年12月に発覚したSolarWinds社の事件では、IT管理用のソフトウェアのビルドの環境に攻撃者が入り込み、正規の更新プログラムに不正なコードが混ぜられた。この更新は、開発元の正規のコード署名が付いた状態で配布された。この事件から得られる教訓として、最も適切なものはどれか。

  1. Aコード署名が正しい更新プログラムには不正なコードが含まれないので、利用者は署名を確かめれば十分である
  2. B更新プログラムは危険なので、セキュリティの修正も含めて、ソフトウェアは一切更新しないようにする
  3. Cコード署名は誰が署名したかと署名後の改ざんの有無を示すだけなので、開発元はビルドの環境を守り、利用者は信頼するソフトウェアの振る舞いも監視する
答えと解説を見る

正解:C. コード署名は誰が署名したかと署名後の改ざんの有無を示すだけなので、開発元はビルドの環境を守り、利用者は信頼するソフトウェアの振る舞いも監視する

コード署名は、署名した者が誰かと、署名の後に内容が変えられていないことを確かめる仕組みで、署名の前に混ぜられた不正なコードは見分けられません。ソフトウェアのサプライチェーン攻撃の代表例であるSolarWinds社の事件では、ビルドの途中で不正なコードが加えられたため、署名付きの正規の更新として多くの組織に届きました。2024年3月に発覚したxz-utilsのバックドアでも、長い期間をかけて開発者として信頼を得た人物が、配布用のファイルに不正なコードを紛れ込ませていました。開発元はビルドの環境を分離して守り、ソースからビルドまでの来歴を記録して検証し、利用者は信頼しているソフトウェアでも、不審な通信や振る舞いをEDRなどで監視することが大切です。

解説の中の「サプライチェーン攻撃」

「サプライチェーン攻撃」が出てくる問題(2問)

  1. ある企業は、社内のパッケージの置き場(プライベートレジストリ)に、社内専用のライブラリ acme-utils を置いて使っている。攻撃者が、公開のパッケージの置き場に、同じ名前 acme-utils でより大きな版番号のパッケージを登録したところ、ビルドの設定によっては、社内のビルドの環境が攻撃者のパッケージを取り込んでしまうことが分かった。この「依存関係の混乱(dependency confusion)」への対策として、最も適切なものはどれか。
  2. 2020年12月に発覚したSolarWinds社の事件では、IT管理用のソフトウェアのビルドの環境に攻撃者が入り込み、正規の更新プログラムに不正なコードが混ぜられた。この更新は、開発元の正規のコード署名が付いた状態で配布された。この事件から得られる教訓として、最も適切なものはどれか。

サイバー攻撃と防御の実務の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

EDR(Endpoint Detection and Response) IoC(侵害の痕跡) インシデントレスポンス SBOM(ソフトウェア部品表) サイバーキルチェーン SIEM(セキュリティ情報イベント管理) 侵入検知システム(IDS) セキュリティオペレーションセンター ゼロトラスト デジタルフォレンジック

用語集の一覧へ