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

サプライチェーン攻撃では、攻撃者はサードパーティの依存関係を悪用して、ターゲットのシステムやネットワークに侵入します。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • 「サプライチェーン攻撃」の定義
  • サプライチェーン攻撃はどのように行われるのか説明する
  • サプライチェーン攻撃を阻止する方法を学ぶ

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

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

サプライチェーン攻撃は、「サプライチェーン」と総称されるサードパーティツールやサービスを利用して、標的のシステムやネットワークに侵入する攻撃です。このような攻撃は、「バリューチェーン攻撃」や「サードパーティ攻撃」と呼ばれることもあります。

サプライチェーン攻撃は、その性質上、間接的なものであり、最終的な標的が(多くの場合、無意識のうちに)依存しているサードパーティの依存関係を狙います。依存関係とは、アプリケーションの機能を強化するサードパーティプロバイダーのプログラムまたはコード(多くの場合、JavaScriptで記述されている)の一部です。例えば、eコマースの小売業者に使用される依存関係は、顧客支援チャットボットの実行や、サイト訪問者の活動に関する情報の取得に役立つかもしれません。このような依存関係は、標的がアプリケーションやネットワークを維持するために使用する幅広いソフトウェア、アプリケーション、サービスにおいて、何百、何千と見出すことができます。

サプライチェーン攻撃では、攻撃者はサイバーセキュリティベンダーを標的にし、そのソフトウェアに悪意のあるコード(または「マルウェア」)を追加し、システムアップデートとしてそのベンダーのクライアントに送信することが考えられます。このマルウェアは、クライアントが信頼できるソースからのアップデートであると信じてダウンロードすると、攻撃者にそのクライアントのシステムと情報へのアクセスを許可してしまうのです。(2020年に18,000人の顧客に対して行われたSolarWindsを介した攻撃は、基本的にこの方法で行われました。)

サプライチェーン攻撃はどのように行われるのか?

サプライチェーン攻撃を行う前に、攻撃者は悪用しようとするサードパーティシステム、アプリケーション、またはツールにアクセスする必要があります(「アップストリーム」攻撃とも呼ばれます)。これは、盗まれた資格情報を使用する、組織のシステムに一時的にアクセスできるベンダーを標的にする、未知のソフトウェアの脆弱性を悪用する、などの方法によって行われます。

このサードパーティの依存関係へのアクセスが確保されると、「ダウンストリーム」攻撃(最終的な標的に到達する攻撃、多くはブラウザやデバイス経由)が様々な方法で実行されるようになります。

先ほどの例に戻ると、「アップストリーム」攻撃は、攻撃者がサイバーセキュリティベンダーのソフトウェアに悪意のあるコードを追加することで発生します。そして、そのマルウェアが日常のソフトウェアアップデートによってエンドユーザーのデバイスで実行されることで、「ダウンストリーム」攻撃が行われます。

サプライチェーン攻撃の一般的な種類とは?

サプライチェーン攻撃は、サードパーティが管理するハードウェア、ソフトウェア、アプリケーション、またはデバイスを標的とする場合があります。よくある攻撃の種類には、次のようなものがあります。

ブラウザベースの攻撃は、エンドユーザーのブラウザ上で悪意のあるコードを実行します。攻撃者は、ユーザーデバイス上で自動的にコードを実行するJavaScriptライブラリやブラウザの拡張機能を狙っている可能性があります。あるいは、ブラウザに保存されているユーザーの機密情報を盗むこともあります(Cookie、セッションストレージなどを経由して)。

ソフトウェア攻撃は、ソフトウェアのアップデートにマルウェアを偽装します。SolarWindsを介した攻撃のように、ユーザーのシステムが自動的にこれらのアップデートをダウンロードし、不注意にも攻撃者がデバイスに感染させ、さらに行動を起こすことを許してしまう可能性があるのです。

オープンソース攻撃は、オープンソースコードの脆弱性を悪用します。オープンソースコードパッケージは、組織がアプリケーションやソフトウェアの開発を加速させるのに役立ちますが、攻撃者が既知の脆弱性を改ざんしたり、ユーザーのシステムやデバイスに侵入するために使用されるマルウェアを隠したりすることを可能にする可能性もあります。

JavaScript攻撃は、JavaScriptコードの既存の脆弱性を悪用するか、悪意のあるスクリプトをWebページに埋め込み、ユーザーが読み込むと自動的に実行されるようにします。

Magecart攻撃は、悪意のあるJavaScriptコードを使用し、サードパーティが管理していることが多いWebサイトのチェックアウトフォームからクレジットカード情報を抜き取るものです。これは、「フォームジャッキング」とも呼ばれています。

Watering hole攻撃は、多くのユーザーが共通して利用するWebサイト(例:Webサイトビルダーや政府のWebサイト)を特定します。攻撃者は、様々な手口でサイト内のセキュリティの脆弱性を特定し、その脆弱性を利用して、疑いを持たないユーザーにマルウェアを配信することがあります。

暗号ジャックで、攻撃者は、暗号通貨のマイニングに必要なコンピューターのリソースを盗むことができます。その方法とは、悪意のあるコードや広告をWebサイトに挿入する、オープンソースのコードリポジトリに暗号マイニングスクリプトを埋め込む、フィッシングの手口を使い、無防備なユーザーにマルウェアに感染したリンクを配信する、などさまざまです。

サプライチェーン攻撃に対する防御方法

サードパーティのソフトウェア、ハードウェア、アプリケーションを悪用したり、改ざんしたりする攻撃は、サプライチェーン攻撃とみなされます。組織は通常、さまざまな外部ベンダーと連携しており、それぞれのベンダーが自社のツールやサービスに数十もの依存関係を使用している場合があります。

そのため、組織がサプライチェーン攻撃から完全に保護することは不可能ではないにせよ、難しいかもしれません。しかし、一般的な攻撃方法に対して、組織が先手を打って防御できる戦略もいくつかあります。

  • サードパーティリスク評価の実施:これには、サードパーティ製ソフトウェアのデプロイメント前のテスト、ベンダーに対する特定のセキュリティポリシー遵守の要求、ブラウザが実行できるリソースを制御するコンテンツセキュリティポリシー(CSP)の実装、またはJavaScriptに疑わしいコンテンツがないかチェックするサブリソース完全性(SRI)の使用などが含まれる場合があります。
  • Zero Trustの実装Zero Trustは、従業員から請負業者、ベンダーまで、組織のネットワーク内のすべてのユーザーが継続的な検証および監視の対象であることを保証します。ユーザーおよびデバイスのアイデンティティと権限を検証することで、攻撃者が正当なユーザー資格情報を盗むだけでは組織に侵入できないようにすることができます(既存のセキュリティ対策に違反した場合は、ネットワーク内で水平移動します)。
  • マルウェア対策の使用:ウイルス対策ソフトのようなマルウェア防止ツールは、悪意のあるコードの実行を防ぐために、デバイスを自動的にスキャンします。
  • ブラウザ分離の導入:ブラウザ分離ツールは、Webページのコードをエンドユーザーのデバイスで実行する前に分離(またはサンドボックス化)するため、マルウェアが意図した標的に到達する前に検出・軽減されます。
  • シャドーITの検出:シャドーIT」は、従業員が組織のIT部門の承認なしに使用するアプリケーションやサービスのことを指します。これらの無許可のツールには、IT部門がその使用を認識していないため、パッチを適用できない脆弱性が含まれている可能性があります。シャドーIT検出機能のあるCloud Access Security Broker(CASB)を使用すると、組織は従業員が使用しているツールをより適切に分類し、セキュリティの脆弱性がないかどうかを分析することができます。
  • パッチ適用と脆弱性の検出を有効にする:サードパーティツールを使用する組織には、それらのツールにセキュリティ脆弱性がないことを保証する責任があります。すべての脆弱性を特定し、パッチを適用することは不可能かもしれませんが、それでも組織は、ソフトウェア、アプリケーション、その他のサードパーティリソースにおける既知の脆弱性を発見し、開示するためのデューディリジェンスを行う必要があります。
  • ゼロデイエクスプロイトの防止*:サプライチェーン攻撃は、しばしば、まだパッチが適用されていないゼロデイエクスプロイトを利用します。ゼロデイ脅威を予測する確実な方法はありませんが、ブラウザ分離ツールやファイアウォールは、悪意のあるコードが実行される前に分離してブロックするのに役立ちます。

*ゼロデイエクスプロイトを阻止することは、ほとんどの組織にとって、今なお特に骨の折れる課題です。2021年、開発者がJavaアプリケーション内でデータを記録するのに役立つオープンソースのソフトウェアライブラリであるLog4jに、ゼロデイ脆弱性が発見されました。これにより、攻撃者は何億台ものデバイスに感染させて制御できるようになり、そこからランサムウェア攻撃や違法な暗号マイニングなど、さらなる攻撃が行われるようになりました。CloudflareのLog4jの脆弱性に対する防御方法の詳細をご覧ください。

Cloudflareはどのようにしてサプライチェーン攻撃を阻止しているのか?

Cloudflare Zero Trustは、潜在的にリスクの高いWebサイトへのアクセスをブロックし、悪意のあるアップロードやダウンロードを防止し、組織内のSaaSアプリケーション(承認済み、未承認の両方)を監査することにより、サプライチェーン攻撃を阻止することができます。

Cloudflare Zarazは、アプリケーションをクラウドで読み込むサードパーティツールマネージャーで、悪意のあるコードがエンドユーザーのブラウザ上で実行されないようにするものです。Zarazは、ユーザーがサイト上で実行されるサードパーティスクリプトを見えるようにして制御ができるようにし、リスクのある行為を分離してブロックすることを可能にします。