編集部からのお知らせ
新着記事まとめPDF「データサイエンティスト」
ZDNet Summit 2021開催のご案内
ソフトウェアサプライチェーン攻撃の5つの手法

第3回:依存関係かく乱攻撃と敵対的乗っ取り--企業が直面する課題と対策

Chris Prevost (Imperva)

2021-07-20 06:00

 この連載では、ソフトウェアベンダーへの不正アクセス、サードパーティアプリケーションとオープンソースライブラリーの悪用の3種類のサプライチェーン攻撃手法に関して紹介してきました。最終回は、(4)依存関係かく乱攻撃と(5)敵対的乗っ取りについて取り上げるほか、ソフトウェアサプライチェーン攻撃を取り巻く現状の課題と対策について説明します。

  1. ソフトウェアベンダーへの不正アクセス(第1回
  2. サードパーティーアプリケーションの悪用(第2回
  3. オープンソースライブラリーの悪用(第2回
  4. 依存関係かく乱攻撃(本稿
  5. 敵対的乗っ取り(本稿

4.依存関係かく乱攻撃

 2021年2月、セキュリティ研究者のAlex Birsan氏は、攻撃の新たなベクトルとして「依存関係かく乱攻撃」を命名しました。これは、ソフトウェアプログラムの開発の仕組みを悪用した、巧妙かつシンプルな手法です。

 ソフトウェアプログラムは、専門のソフトウェアツール群を用いて開発されます。ソースコード自体の作成には、コードの記述プロセスを効率化する専用のテキストエディターが用いられます。

 記述されたコードは、バージョン管理されているリポジトリーに保存されます。ソフトウェア開発においてコードの再利用は一貫した目標であり、頻繁に使われるコードやユーティリティーコードは、多くのアプリケーションに組み込むことのできる「ライブラリー」と呼ばれるパッケージに集められます。アプリケーションを開発する際、それぞれのリポジトリーから適切なコードと、ライブラリーを利用するための「ビルドツール」が使用されます。

 そして、コードをコンパイル、アセンブル、パッケージし、最終的に納品します。上記以外にも、自動テストを実行し、テスト、ステージング、本番などの定められた導入環境にアプリケーションをプッシュするための各種ツールが使用されます。一般的なアプリケーション開発では、この作業は1日に何十回も行われます。

 オープンソースライブラリーとは、有用なユーティリティーコードをバンドルしたもので、「パブリック」リポジトリーを使用して無償公開されています。オープンソースソフトウェアは、多数のアプリケーションに採用されており、ビルドツールは、アプリケーションを開発する企業のみがアクセスできる「プライベート」リポジトリーと、パブリックリポジトリーの両方からコードを利用します。

 依存関係かく乱攻撃では、ライブラリーコードをどこで探すのか、そして、コードが重複している場合にどのバージョンを採用するかに関する仕組みが悪用されます。攻撃者はプライベートリポジトリーのパッケージと同じ名前のパッケージをパブリックリポジトリーに登録し、本来のパッケージより高いバージョン番号をファイル名に入れることで、開発者に攻撃者のライブラリーをプルさせます。モダンなアプリケーションの複雑性と、オープンソースへの過度の依存度を考えると、この攻撃ベクトルは効果的です。

 その結果による大惨事も想定されます。開発者のPCやIaaSの仮想サーバーなど、ビルドツールを実行するマシンでは、たった一度のプルの誤操作によって、攻撃者のコードが実行されてしまいます。上述のBirsan氏は、この手法を用いて概念実証(PoC)コードを作成し、Apple、Microsoft、Netflix、PayPal、Shopify、Tesla、Uberなど、ほぼ全ての標的企業の内部サーバーから、模擬攻撃者のサーバーにデータを送信できることを確認しました。この手法が公開された48時間以内には、同じ手法を試みているオープンソースパッケージの偽物が数百件も発見されました。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]