This post is also available in: English (英語)
背景
現代世界では、どんな企業も自社開発ですべてをまかなうことはできません。金融機関から政府機関、石油会社、原子力発電、軍需産業までどの産業を例に取っても、サードパーティのベンダーが開発したソフトウェアやハードウェアをあらゆる組織が使用しています。しかしこの場合、どの企業もサードパーティ ベンダーのセキュリティ対策を信頼するだけでなく、そのベンダーのベンダー リストに含まれる他の全企業を信頼する状況に陥ってしまいます。サプライチェーンは連鎖的につながっており、その誰もが攻撃に遭う可能性があります。
サイバー犯罪グループにせよ、国家の支援を受けた攻撃者にせよ、この状況は執念深い攻撃者にとってサプライチェーン上の最も弱い部分を狙って主目標への足掛かりを築くチャンスを生み出すのです。
サプライチェーン攻撃とは
ソフトウェアを利用したサプライチェーン攻撃では、(一般に国家の支援を受けた)攻撃者がソフトウェア ベンダーのシステムに侵入し、攻撃者に利する形でコードの追加や改変を行います。先述のとおり、攻撃者の狙いはベンダーの顧客のすべてまたは一部に侵入することです。そしてこの狙いは最小限のバックドアを仕込めば達成できます。すなわち、攻撃者だけしか知らない脆弱性を組み込み、ベンダーの顧客への攻撃に利用するのです。
また、攻撃キルチェーンを支援する目的で、偵察機能などの追加ロジックをベンダーのソフトウェアに組み込む場合もあります。少し前のSolarWindsサプライチェーン攻撃がその例です。この攻撃では、SolarWinds Orionソフトウェアの更新に組み込まれたコードによって、Orionユーザーやその顧客やパートナーのシステム、ネットワーク、データへのアクセスを実現しています。
SolarWindsサプライチェーン攻撃の場合、攻撃者はCobalt Strikeなどの既知の攻撃的なサイバーセキュリティ ツールを攻撃の後半で使用しています。一方で、国家の支援を受けた攻撃の分野では、こうしたツールの利用は怠慢だと見なされます。なぜなら、公開されている既知の攻撃ツールや手法を使用すると、発見される可能性が高まるためです。そのため、国家の支援を受けた攻撃者は、標的へのアクセスを可能にする機密アクセス能力と公開ツールの併用を避けています。
このことから、SolarWinds攻撃で使用された手法は攻撃者にとって機密能力ではないことが示唆されます。つまり、国家の支援を受けた攻撃者は、SolarWindsに類似したより大規模で被害の大きいサプライチェーン攻撃を多数準備している可能性があるのです。
サプライチェーン攻撃ではないもの
サプライチェーン攻撃という用語はサイバーセキュティ ベンダーに広く用いられていますが、しばしばベンダーの都合に合わせた緩い定義が採用されています。サプライチェーン攻撃に関しては多数の過剰な宣伝が行われているため、無理もありません。しかし、さまざまな攻撃のタイプを区別することは重要です。広く普及した製品に含まれるリモート コード実行(RCE)を可能にする脆弱性が、必ずしもサプライチェーン攻撃とは限りません。言い換えれば、Log4ShellやSpringShell (別名Spring4Shell)といったタイプの重大な影響を与えた脆弱性は、いずれもサプライチェーン攻撃ではありません。
また、サイバーセキュリティ業界にはソースコード検査機能に対して「サプライチェーン攻撃への保護」という言葉を使用している製品が存在します。ですが、この機能では製品を使用する顧客をサプライチェーン攻撃から保護することはできません。こうした製品にできることは、既知の脆弱性を依存関係として含むソフトウェアを実行するリスクから、製品の利用者が自分の顧客を守ることです。
サプライチェーン保護に関する既存のソリューション
現在、サプライチェーン関連の既存の保護ソリューションは、ソフトウェア企業を対象としたセキュリティ製品が中心です。こうした製品は、既知の問題と脆弱性を発見する目的で、コードと継続的インテグレーション/継続的デリバリ(CI/CD)スクリプトを分析します。ここで2つの問題があります。1つは既知の脆弱性しか保護できない点で、ゼロデイ脆弱性や、実際のサプライチェーン攻撃を通じて獲得した能力を用いる攻撃グループには対処できません。そしてもう1つは、自社のベンダーが開発した製品に存在するかもしれない脆弱性やエラーから、顧客としての自社を保護できない点です。
サプライチェーン セキュリティ分野は2つのカテゴリに分類できます。
クラウドネイティブ サプライチェーン セキュリティ
DevSecOpsアプローチを構成するセキュリティ製品が該当します。コードとCI/CDスクリプトを分析することで、設定ミス、ソフトウェア エンジニアやDevOpsエンジニアによるありがちなミス、既知の脆弱性を含むオープン ソース パッケージの利用を検出します。このアプローチの採用がふさわしいのはソフトウェアを開発・販売する企業だけです。
侵害後のサプライチェーン攻撃への保護
このアプローチはソフトウェア開発企業に限らず全企業に適用できます。ベンダーだけでなく、あらゆる企業を保護可能です。コンピュータを使用する企業なら、自社のサプライヤへの攻撃や、サプライヤのサプライヤへの攻撃が原因で、誰もが攻撃を受ける可能性があります。
各社のセキュリティ製品がSolarWindsサプライチェーン攻撃を検出できなかったことから推測できるように、この記事の執筆時点でこのような保護を提供できるサイバーセキュリティ企業はパロアルトネットワークスだけです。また、この試みを開始できるチャンスがある企業もほとんどありません。参入障壁が高いのは、この課題を解決する上で、サイバーセキュリティ企業が満たせなければならない以下の要件があるためです。
- 国家の支援を受けた攻撃者の主目標になりうる多数の企業顧客から、膨大な量のエンドポイント ディテクション&レスポンス(EDR)データを収集する。
- OSの低レベルな内部動作・活動に関するイベントを絶えずアップロードして保管する。
- そして最も重要な要件として、継続的に収集される非常にきめ細かいEDRデータを土台とした実績あるアルゴリズムとモデルを用いて、高品質・高拡張性の分析能力が確立されている。
Cortex XDRの分析能力について
Cortex XDRの分析能力の本質は、他の手法では検出が非常に難しいか不可能な攻撃の検出に用いる学習メカニズムです。拡張ディテクション&レスポンス(XDR)データの分析能力は、拡張性が高く効率的な手法で動作する多数の収集・取り込み技術に依存しています。
追跡、正規化、関連付け、統合というフェーズを経た高品質なデータを利用して、分析モデルがさまざまなエンティティの多様な挙動を学習するのです。このプロセスは、エンドポイント、ネットワーク、ID、SaaS、クラウド データなど、多様なデータソースのイベントに適用されます。分析モデルがエンドポイント データを基に学習する知見の例としては、「どのエンティティがプロキシ サーバーやドメイン コントローラか」、「通信しているエンドポイントとドメイン/IPアドレスはどれか」、「スレッドを挿入した/挿入されたプロセスはどれか、またその手段は」、「どのsyscallが実行されたか。また各プロセスでどれだけの量が、いつ使用されているか」などです。
Cortex XDR Global Analyticsについて
Global Analyticsは、分析学習のコンセプトであるCortex XDRに新たに追加された強力な機能です。Cortex XDRは顧客環境レベルで動作し、各顧客の環境に合わせてさまざまな基準を学習しますが、Global Analyticsはこれをグローバルレベルに拡張します。つまり、従来の分析では顧客環境で基準を定め異常を検出できていたとすると、Global Analyticsの登場により、Cortex XDRは顧客基盤全体で使用されているアプリケーションの基準を定め、異常を検出できるようになったのです。
この学習はすべて、正規化・匿名化されたデータを基に行われます。洗練されたモデルと正規化技術を利用することで、次の点で優れた能力を発揮できるのです。
- 新種のツールを用いたAPTの一部かもしれないグローバル規模の異常を検出。
- 精度のさらなる向上により、既存の検出手法を強化。
Global Analyticsによるエンドポイント データの利用
Cortex XDRエージェントは、非常に詳細なOSの内部データを継続的かつ大量に収集します。収集されるイベントの例としては、プロセスの実行、モジュールの読み込み、ネットワーキング、システム コール、リモート プロシージャ コール(RPC)、Windows Management Instrumentation (WMI)クエリ、レジストリ、ファイル、マウント、インジェクションなどがあります。さらに、スタック トレース、ファイル エントロピー、上位プロセス、メタデータなどのコンテキストを付加する追加データを用いてイベントのエンリッチ化を行います。
大規模なエンタープライズ顧客基盤から継続的に収集される非常に詳細なデータをすべてスケーラブルな分析エンジンに入力すると、さまざまなアプリケーションの振る舞いを学習するよく訓練されたモデルができあがります。多くのデータを収集するほど、悪意ある技術の利用を示唆するかもしれないアプリケーションの異常な振る舞いをグローバルに発見する能力が高まるのです。
Global Analyticsによるサプライチェーン攻撃対策
サプライチェーン攻撃の根幹はソフトウェア更新
Cortex XDRの目にサプライチェーン攻撃はどのように映るのでしょうか。
先述のとおり、サプライチェーン攻撃において攻撃者はサプライヤの顧客に侵入する目的で既存ソフトウェアにコードを組み込みます。サプライヤが攻撃を受けた場合、その顧客は不正なコードを含む更新バージョンを無意識にダウンロードしてしまうでしょう。しかも、この更新バージョンにはベンダーのデジタル署名がなされています。
この流れは、サプライチェーン攻撃の標的となったソフトウェアとベンダーだけでなく、定期的に更新されるあらゆるソフトウェアに当てはまります。では、正規のソフトウェア更新と不正なソフトウェア更新をどうすれば見分けられるのでしょうか。答えは、Global AnalyticsとCortex XDRエージェントです。
国家の支援を受けた攻撃者の意図と活動
国家の支援を受けた攻撃者と諜報機関はほぼ常にインテリジェンス データを狙っています。それぞれの攻撃者に、何らかの方法で達成しなければならないインテリジェンスの収集目標があります。たとえば、シンク タンク、原子炉、民間企業、政治的に重要な人物、その他の産業や団体などです。
初期アクセスが容易な標的もあれば、困難な標的もありますが、粘り強い攻撃者はいずれアクセス方法を見つけ出します。この際、ソーシャル エンジニアリング、ソフトウェアのエクスプロイト、サプライチェーン攻撃などさまざまな手段が使用される可能性があります。それぞれが有効な手法と機能ですが、一度でも大規模に使用すると検出され役に立たなくなります。つまり、その手法を今後使用できなくなるだけでなく、過去の使用実績と、その手法によって達成したすべての成果が調査を通じて明らかになる可能性が高いのです。
そのため、国家の支援を受けた攻撃者は強力な機密能力の使用に慎重です。特に、成功すれば世界中のあらゆる組織にアクセスできるサプライチェーン攻撃については、攻撃の機会を慎重にうかがっています。
もちろん、大部分の組織は攻撃者にとって重要な標的ではないでしょう。そのため攻撃者はまず、追加リソースの投入に見合うだけの重要性があるのは具体的にどの組織への侵入かを判断します。これが偵察ステージです。次のステップでは標的組織をより詳細に把握し、横方向の移動を行い、インテリジェンスや機密データを探します。
したがって、攻撃者は侵入可能な大部分の企業では疑わしい活動をほとんど行わない一方で、ごく一部の企業では比較的多くの疑わしい活動を行います。そして、Global Analyticsはまさにこの状況を利用して攻撃者を検出するのです。
Global AnalyticsによるCortex XDRの機能の活用
検出方法
サプライチェーン攻撃の標的になりやすいベンダーの産業とアプリケーションを保護
問題解決の第一段階は焦点を絞ることです。既存の全アプリケーションからサプライチェーン攻撃を探すのではなく、サプライチェーン攻撃者にとって成功の見込みがあり魅力的な標的となる製品とベンダーに問題空間を絞り込みます。対象のベンダーとアプリケーションはいくつかの階層構造に整理できます。また、弊社の顧客基盤全体から取得した多様な種類のEDRイベントを利用して、サプライチェーン攻撃を受ける可能性があるベンダーの階層構造をそれぞれ学習します。
さまざまなEDRイベントをローカル/グローバルにプロファイル化
それぞれの監視対象の署名済みプロセスは、プロセスの振る舞いに関する非常に詳細なOS固有の低レベル データを継続的に収集・アップロードします。このデータをCortex XDRで分析することで、各顧客のプロファイルを毎日生成しているのです。各エンドポイントにおける、それぞれの監視対象の署名済みプロセスの振る舞いがプロファイルに保存・学習されます。以下はその例です。
- アクセスしたドメイン/IPアドレス、使用したプロトコル、パラメータ、ポート
- どこで、どのようにスレッドを挿入したか
- どのモジュールを動的にロードしたか
- モジュールのハッシュ
- モジュールの署名
このほか、追加イベント タイプに関する追加プロファイルも対象です。こうした分析プロファイルをプロセスで統合することで、署名済みプロセスの振る舞いに関するグローバル プロファイルを毎日作成します。
グローバル プロファイルを利用することで、関連データ ソースからCortex XDRにアップロードされるすべてのイベントに対して、リアルタイムに検出ルールの定義と比較を行えるのです。各イベントに対しては、ローカル プロファイルとグローバル プロファイルの双方に関して、さまざまな視点での振る舞いの共通点に基づく特徴からスコアが算出されます。
成果
Global Analyticsは実際のサプライチェーン攻撃を独自の手法で検出するだけでなく、悪意あるコード実行技術を他の正規プロセスのコンテキストから正確に検出し、幅広い保護を提供します。たとえば、既知/未公開のDLLハイジャック/サイドローディング、エクスプロイト、何らかのスレッド インジェクションなどを検出可能で、ルートキットを利用した攻撃にも対応しています。
先日もGlobal Analyticsの検出機能により、最新のAPT攻撃を検出しています。詳細はUnit 42のブログをご覧ください。
まとめ
今回のケースでも、Cortex XDRは現実の非常に巧妙な攻撃からお客さまを保護します。Global AnalyticsはCortex XDRバージョン3.3のリリースから利用可能です。本記事で紹介した、サプライチェーン攻撃やその他の手法を検出する検出ルールは、「Globally uncommon <action> from a signed process」検出ルールを改変したものです。