Netskope Threat Labs

はじめに

攻撃者は、Cobalt Strike、Brute Ratel、Mythic、Metasploit、Sliver、Merlinなど、広く入手可能な一般的なC2フレームワークツールを使用し、IPSシグネチャやIP/ドメイン/URLブロックリストに基づく一般的な静的防御を容易に回避できる、新しく高度なコマンドアンド制御(C2)機能をマルウェアに追加しています。これらのツールは、コマンドアンド制御、権限昇格、ホスト上でのアクションなど、エクスプロイト後の機能を提供し、もともとは侵入テストやレッドチーム活動向けに設計されていました。

しかし、MythicやMerlinなど多くの製品がオープンソースである一方、Cobalt StrikeやBrute Ratelなどの商用製品も、クラックされたコピーや漏えいしたソースコードを通じて攻撃者に窃取されており、攻撃者はこれらと同じツールキットを乗っ取って悪意のある目的で組み込んでいます。これにより、これらのツールは事実上、悪意のあるエクスプロイト後活動に使用される敵対的C2フレームワークへと変貌しています。

これらのツールではC2通信の多くのパラメーターを簡単に形成、変更できるため、マルウェアは現在の防御をさらに容易かつ長期間にわたって回避できます。その結果、被害者のネットワーク内で、より多くのデータの窃取、より価値の高いデータの探索、ビジネスアプリケーションやサービスの利用不能化、将来の攻撃に備えたネットワークへの隠れたアクセスの維持など、より大きな被害が発生します。

C2フレームワークを使用する最新のマルウェアを検出する現在のアプローチでは、インプラント実行ファイルの検出、C2トラフィック検出用のIPSシグネチャ、IP/URLフィルターなどの静的シグネチャや指標が使用されていますが、これらは広く入手可能なC2フレームワークツールの動的で変更可能なプロファイルに対処するには不十分です。

既知の攻撃に過度に固定されず、デバイスとユーザーのリスクをきめ細かく追跡しながら、包括的なシグナル群を訓練済み機械学習モデルに入力して異常を検出する、新たなアプローチが必要です。このアプローチは既存のアプローチを補完するものであり、誤検知を低く抑えながら検出率を大幅に向上させ、同じC2フレームワークツールによって容易に実現される、進化し続けるC2トラフィックパターンへの将来にわたる対応を可能にします。

本稿では、現在のアプローチにおけるギャップと、追加のネットワークシグナルおよびユーザーと組織レベルのモデルに基づくきめ細かなリスク指標を使用した、特化型機械学習アプローチによる有効性の向上について説明します。また、C2ビーコン検出ソリューションの有効性をテストする際の主な課題についても取り上げます。

敵対的C2フレームワーク

Cobalt Strike、Metasploit、Mythic、Brute Ratelは、もともとマルウェア検出のレッドチームテスト向けに設計された、商用およびオープンソースの攻撃シミュレーションツールです。これらのツールキットは、攻撃チェーンのエクスプロイト後のコマンドアンド制御部分に重点を置き、レッドチーム活動中に実際の脅威活動をシミュレートするための豊富な機能セット(Gill)を提供するため、脅威エミュレーションツールまたはC2フレームワークと呼ばれることもあります。

本稿では、これらの用語の一部を同じ意味で使用することがありますが、一般的にはC2フレームワークという用語を使用します。これは、これらのツールが悪意のあるアクターによって本番環境への影響に使用されており、解決すべき問題が友好的な内部レッドチームによるシミュレーションやエミュレーションにとどまらないことを強調するためです。

これらのC2フレームワークツールは組み込まれたり、ハッキングまたは窃取されたりして、多数の攻撃者(“Cobalt Strike:国際的な法執行活動が「スイスアーミーナイフ」型侵入テストツールの違法使用に対処”)に使用されています。これには、SolarWindsにおけるロシアのAPT29(“SolarWindsサプライチェーン攻撃がSUNBURSTバックドアを使用”)や中国のTA415(Larson and Blackford)などの国家支援アクターも含まれ、さまざまなRAT、ボットネット、C2対応マルウェアのステルス通信機能を強化、進化させています。

Cobalt Strikeは最も一般的なC2フレームワークツールであり、本稿では具体例として使用しますが、ここでの考察は同様のすべてのツールに当てはまります。次のCobalt Strikeの高レベルアーキテクチャ図は、その基本コンポーネント(Rahman)と実行時の攻撃フローを示しています。

Cobalt Strikeの高レベルアーキテクチャ

図1:Cobalt Strikeの高レベルアーキテクチャ

#攻撃ステップ説明
1初期アクセス/感染ビーコンペイロード用のダウンローダーとローダーを含む、初期感染ベクトル。
2コールホーム(C2)Beaconは通常、HTTP/HTTPS/DNSを使用してTeam Serverにコールホームします。プロキシ、ドメインフロンティング(CDNなど)、ドメイン偽装などのリダイレクターを介して、ドメイン/IPを難読化する場合があります。Beaconは、内部ネットワークのセグメンテーションを回避するために通信を連鎖させる場合もあります。
3攻撃者によるコマンドアンド制御攻撃者はBeaconを制御し、さまざまなコマンドを発行します。ワークフローの自動化や最適化にAggressor Scriptsを使用する場合があります。
4コマンドの実行Beaconは、別のプロセスでExecute Assembly(.NET実行ファイル)を使用したり、Beaconセッション/プロセス内でBeacon Object Filesを使用したりして、エクスプロイト後の機能を拡張できます。メモリインジェクションは、悪意のあるファイルに関連するファイルやディスク活動に重点を置くエンドポイント防御による検出を回避するために使用されます。
5ホスト上でのアクションBOFまたはExecute Assemblyとして拡張機能を使用することで、新しい機能を実現する多数の組み込みアクションが提供されます。
表1:Cobalt Strike C2フレームワークを使用した攻撃チェーン

Cobalt Strikeおよび類似のツールキットでは、HTTP/Sトラフィックを容易かつ幅広く設定でき、多くの場合、無害に見え、通常のHTTP/Webトラフィックのように見えるほか、Webブラウザーや一般的なアプリケーションのトラフィックに類似したC2トラフィックを生成できます。これらのツールには、既知のマルウェアと既知の正規アプリケーションの両方をエミュレートするデフォルト設定が用意されています。

DNSもC2プロトコルとしてサポートされていますが、本稿ではHTTP/S C2に焦点を当てます。これは、HTTP/Sが組織に出入りするネットワークトラフィックの大部分を占め、HTTP/Sを使用するアプリケーションが多様であるため複雑であり、正規で無害なC2ビーコンを含むネットワークノイズの中に隠れようとする悪意のあるアクターの大半を引き付けるためです。

これらのツールキットは変更可能なプロファイルを通じて高度に設定でき、C2通信のタイミング、頻度、量、アプリケーションプロトコル、宛先IP/ドメイン、ユーザーエージェント、HTTPヘッダー、HTTP動詞、URI、パラメーター、SSL/TLS証明書、ランダムジッターを伴うビーコニング遅延、ペイロード/コンテンツを簡単に変更できます。C2フレームワークツールでは、暗号化され、ダウンロード後にメモリ内で実行される多数のエクスプロイト後アクションも可能であるため、侵害後の活動をエンドポイントで検出することは非常に困難です。

ここでは、C2フレームワークツールの具体的なC2通信機能(C2ビーコニングなど)、通信をいかに容易に変更できるか(Cobalt StrikeのC2 Malleable Profilesなど)、ステルス性の高いマルウェアを検出しようとする組織が直面する課題に焦点を当てます。

Cobalt StrikeのMalleable Profilesの機能について説明した優れた資料は複数ありますが(Gill)、ここでは一般的に使用される機能をいくつか取り上げます。以下は、Cobalt StrikeでGmailブラウザーアプリケーションを模倣するための変更可能なプロファイルの一部です(Mudge)。

C2 Malleable Profile(gmail)

図2:C2 Malleable Profile(gmail)

プロファイルの主な機能と領域は次のとおりです。

セクション設定と説明
https-certificate
# Use an existing certificate or generate a self-signed certificate as seen in the above example.
global options
# These global options below set the C2 beacon sleep time to 60 seconds with a
# random jitter of +/- 15%, showing the ability to vary the call-home timing to avoid
# easy detection.
set sleeptime “60000”;
set jitter “15”;

# Other global options specify on-host post-exploit action parameters such as the
# process name spawned to execute commands using in-memory injection or the
# pipename used for IPC communications. These are not relevant to C2.
set pipename “interprocess_##“;
set spawnto “userinit.exe”;
http-get
# The uri path used for beacon->server communications can be varied with a list
set uri “//scs/mail-static//js/”;

# Client (beacon->server) communications including cookies, headers, and encoding
# can all be specified and varied easily at the HTTP protocol level
client {
metadata {}
header {}
}

# Similarly, server->beacon communications can also be varied at the HTTP
# protocol level
server {
header {}
}

# Cobalt Strike allows shaping of the 2-way communications flow between the
# Beacon client and C2 Team Server (“A Beacon HTTP Transaction Walk-through”):
# 0. http-stager {} optional stager to download full Beacon
# 1. http-get {client} client — call home -> server
# 2. http-get {server} server — cmds -> client
# 3. http-post {client} client — cmd output -> server
# 4. http-get {server} server — confirm -> client
表2:C2 Malleable Profileの説明(gmail)

上記のとおり、これらのプロファイルをわずかに変更するだけで、一般的なアプリケーション、そのビーコン、Webトラフィックを模倣するようにC2通信の動作を簡単に変更できます。Cobalt Strikeだけでも240を超える公開Malleable Profilesがあり、すぐに使用できるほか、容易に変更できます。

現在の検出アプローチ

悪意のあるC2トラフィックを検出する現在のアプローチでは、ハードコードされたバイトシグネチャとの照合、正規表現によるペイロードまたはヘッダーの照合(IPSシグネチャ)、IP/ドメイン/URLリストとの照合が多く使用されます。これらのアプローチは静的であり、攻撃者が組み込んだC2フレームワークツールキットの動的で設定可能な性質によって容易に回避されます。

IPSシグネチャ

IPSソリューションの課題を示すため、Zeus Trojanを検出するSnortルールの1つを以下に示します(Snort)。

Snortルール(Zeus Trojan)

図3:Snortルール(Zeus Trojan)

Snortや多くのIPSソリューションでは、ルール内のアクション動詞が示すように、レイヤー3および4、さらにアプリケーションレベルでコンテンツやヘッダーをさまざまな方法で照合できます。contentルールオプションなどの多くの照合は静的なバイト/文字照合であり、pcreルールオプションは正規表現による照合です。

攻撃側(前述のgmail用C2 Malleable Profileなど)と防御側(ZeusのSnortルールなど)を並べて見ると、静的でハードコードされた照合の脆さは明らかです。攻撃者がCobalt Strikeを使用する新しいZeus亜種を作成して展開し、Snort IPSにその新しいマルウェアを効果的に検出する上記のZeusルールが設定されていたとします。攻撃者は、MSIEにスペースを追加してcontent:"|3B 20|MSIE|20|";との照合を回避するなど、プロファイルの1文字を変更するだけで、マルウェアにIPSシグネチャを回避させることができます。

コンテキスト認識や状態追跡が存在するとはいえ、IPSシグネチャのアプローチは静的照合により本質的に制限されており、その結果、検知漏れや容易な回避が発生します(文字どおり、1つのフィールドの1文字を変更するだけでIPSルールを回避できます)。

これは、IPSソリューションが役に立たないという意味ではありません。IPSシグネチャは、有用な境界防御として機能し、多くの既知のネットワークエクスプロイトを迅速かつ効率的にブロックするため、維持する必要があります。この場合、IPSの検出率が60%にすぎなくても、その60%は容易にブロックまたはアラート化でき、コストの高い後続処理を回避できます。

IP/URLブロックリスト

ブロックリスト(IPまたはURL)の使用など、その他の従来型アプローチは、Web閲覧中のマルウェアへの初期アクセスやダウンロードを防止するとともに、潜在的なC2トラフィックをブロックする目的で使用されることがよくあります。

ブロックリストに共通する課題は、情報が古いことが多いため誤検知を引き起こすこと、また標的第1号または患者ゼロが侵害された後に更新されるという事後対応型であることです。

この問題は、C2サーバーのドメインまたはIPアドレスを隠すために使用されるIP/ドメイン間接化手法によってさらに悪化します。Cobalt Strikeには、C2サーバーの実際のドメインまたはIPを難読化する、単純なIPプロキシなどのリダイレクターがあります。また、CDNを使用したドメインフロンティングやドメイン偽装など、TLS(SNI)とHTTPS(host)の不一致を利用して、一部のURLセキュリティフィルターから最終的な悪意のあるドメインを隠す手法もあります。

ネットワークトラフィックのヒューリスティック

別のアプローチでは、一般に通信量や時間に基づくネットワークトラフィックパターンにヒューリスティックを適用します。典型的な例は、登録済みのDNS AレコードがないIPアドレスなどへの、定期的なアウトバウンド通信(60分ごとなど)を検出することです。

検出を回避するために、C2フレームワークツールキットでは、Cobalt Strike Malleable Profileのジッター設定を使用して、ビーコニング遅延にランダム要素を容易に設定できます。

C2 Malleable Profileの設定(ビーコニングのタイミング)

図4:C2 Malleable Profileの設定(ビーコニングのタイミング)

これらの設定では、コールホーム間隔を60秒±15%に指定します。つまり、実際の間隔は51~69秒となり、一定間隔で繰り返されるビーコニングを対象とする単純なチェックを回避できます。

有効性

現在のアプローチの問題は、変更可能なC2通信を効果的に検出できず、個別に調整した場合でも容易に回避されることです。これらのアプローチは、よく知られた指標を持つ静的な攻撃手法を効率的に検出するという目的には役立ちますが、より動的または高度な攻撃を見逃すか、多数の誤検知を生成します。

1つのデータポイントとして、公開リポジトリにある最も一般的なCobalt Strike C2 Malleable Profilesをテストしたところ、SnortやSuricataなどの標準状態のIPSソリューションが検出できたのは、最も一般的なC2フレームワークツールキットによるC2通信の20%を大幅に下回りました。

可能な限り多くの公開プロファイルに照合するルールを個別に追加し、この特定のテスト向けに最適化した後でさえ、本番環境で重大な問題となる大量の誤検知を発生させずに、カバレッジを合理的に向上できたのは約60%まででした。

有効性には多数の問題があります。誤検知が増えるだけでなく、生成された設定は対象の特定テスト向けに固定的に構築され、プロファイルをわずかに調整するだけで容易に回避できます。最終的には約40%のプロファイルが未検出のままであり、これは非常に高い検知漏れ率です。さらに、既存の有名なアプリケーションをわずかに異なる方法で模倣するようC2プロファイルをカスタマイズする、強い意志を持った攻撃者による追加の検知漏れもあります。

新しい検出アプローチ

純粋な静的指標に依存せず、特化型機械学習モデルに基づく、より効果的なアプローチが必要です。このモデルでは、特定の組織内の特定ユーザーについて、正規アプリケーションが通常行う動作と比較し、疑わしいコマンドアンド制御活動を示す多数のネットワークシグナルを使用して、ネットワークトラフィックの異常を検出できます。さらに、最も正確で効果的な緩和措置を実現するため、ユーザーレベルできめ細かなリスク指標を追跡する必要があります。C2フレームワークツールによるステルス性の高いC2ビーコニングの検出を大幅に改善するには、次の3つの領域でイノベーションが必要です。

C2ビーコン検出の新しいアプローチ

図5:C2ビーコン検出の新しいアプローチ

包括的なシグナル

包括的なシグナルセットが必要です。これには、送信元(環境内部のマルウェア)と宛先(C2サーバー)の両方で使用されるSSL/TLS証明書、ドメイン/IP/URL、ユーザーエージェントやプロセス特性などの送信元特性、トラフィックのサイズ/バースト性/パターン、HTTPヘッダー/ペイロード/URIなど、送信元、宛先、トラフィックの特性を含める必要があります。

時間、通信量、ネットワークレイヤー、トラフィック全体のプロファイリングにわたってさまざまなシグナルを確認することで、振る舞い検出は、疑わしい悪意のあるC2ビーコニング活動を介して最新のマルウェアを検出する、汎用的で効果的なメカニズムを提供できます。

包括的なシグナル

図6:包括的なシグナル

シグナルの種類には、複数の次元があります。

  • ネットワークフロー: 送信元と宛先の属性、およびトラフィックパターン
  • ネットワークレイヤー: レイヤー3から7までのさまざまなシグナル(TCP/IPヘッダー、SSL/TLSフィンガープリント、HTTPヘッダー/ペイロード、アプリケーションレベルのコンテンツにわたる異常)
  • 時間: 低頻度で低速な活動を検出するための頻度と異常なタイミングパターン
  • データ: コンテンツと通信量(異常なパケットサイズ、バースト、累積統計)

さらに、次のようなシグナルの種類があります。

  • トラフィックパターンベース(通信量、タイミング、コンテンツ)。異常なユーザーエージェントやドメインと組み合わされた反復ビーコニングなど。
  • ヒューリスティック(疑わしいレジストラーや既知の悪意のあるSSLフィンガープリントなど)
  • 異常(通常と異なるドメイン、ユーザーエージェント、SSLフィンガープリント)

重要な点の1つは、上記のシグナルの一部が現在のアプローチや既存のソリューションに含まれていることです。これは、トラフィック急増(大容量)などの特定のシグナル自体が、良いか悪いか、効果的か非効果的かというものではないことを裏付けています。むしろ、シグナルのコンテキストと処理が決定要因です。ネットワーク境界でトラフィックのブロック/許可に使用する場合、誤検知しやすいシグナルは深刻な運用上の問題を引き起こす可能性があります。しかし、そのシグナルをきめ細かなリスク指標(後述)に組み込む異常検出システムと、十分に訓練されたモデルに入力すれば、誤検知を低く抑えながら、新しい脅威を堅牢に検出するうえで極めて効果的になります。

異常検出

C2フレームワークツールキットによるC2ビーコニングを効果的に検出するには、現在のC2フレームワークツールキットと、C2活動を示す可能性のある将来の疑わしいネットワーク動作を特定するため、より包括的なシグナル群に基づく機械学習モデルが必要です。

異常検出

図7:異常検出

異常検出は、ユーザー/デバイス、役割、組織レベルのモデルに基づく必要があります。つまり異常とは、比較対象となる活動または動作の有効な「正常」ベースラインが存在することを前提とします。疑わしい活動は、さまざまな状況で検出できます。ユーザーの行動をそのユーザーの過去の「正常」ベースラインと比較した異常、組織の「正常」ベースラインと比較した異常、または同様の役割を担う個人と比較した異常があります。これらはすべて、互いに排他的な有効なユースケースを持っており、優れたアプローチでは、スコープの異なる複数のモデルを組み込みます。

訓練データ

訓練データセットには、悪意のあるトラフィックと無害なトラフィックの両方を含める必要があります。

  • 悪意のあるトラフィックは、一般的なC2テストツール、公開されているC2フレームワークツールの設定に基づく特定の敵対的C2ビーコニングテスト、レッドチームの視点で作成したカスタム設定、正式なレッドチーム演習を使用してシミュレートできます。
  • 無害なトラフィックまたは正規トラフィックは、ユーザーおよび組織の偏りを正規化できる十分な期間にわたり、実在する多数の組織の実際のユーザーから収集するのが最適です。

訓練データセットはテストデータセットの裏面に相当し、優れた訓練データとテストデータの分析および検証には多くの時間を費やす必要があります。優れたテストデータセットを作成する際の要因の一部については、後続のセクションで説明します。

きめ細かなリスク指標

異常検出の出力は極めて重要です。最適なアプローチでは、生のシグナルに基づいて単純なブロック/許可やアラート/無視の判定を行うのではなく、ユーザー、役割、組織レベルできめ細かなリスク指標を追跡、調整します。これを、アラート、指導、ブロックなどの修復アクションに使用できます。

リスクを追跡して対処するこのアプローチは、現在一般的に使用されているものとは根本的に異なります。予防的で、通常はトラフィックをブロック/アラート/許可する境界防御の多くは、概して静的であり、高い誤検知率が発生しやすいものです。その結果、これらのソリューションでは確実な既知のリスクをブロックする保守的なポリシーが有効化され、多数の検知漏れを許すことになります。ファイアウォールでは、IP脅威インテリジェンスに基づく過度に積極的なブロックアクションによる誤検知の問題が見られます。IPSソリューションについては、静的シグネチャで高度に設定可能かつ動的なC2トラフィックを検出しようとする場合の、誤検知の課題を説明してきました。

一方、境界レイヤーでの誤検知は、よりインテリジェントなレイヤーへのシグナルとして非常に有用です。このシナリオでは、二値評価(許可/ブロック、アラート/無視)には使用せず、時間の経過とともに調整されるきめ細かなリスク指標(ユーザーリスクスコアなど)として使用し、調整済みのしきい値を超えてからアクションを実行します。たとえば、ユーザー、デバイス、さらにはIPアドレスに対する1000(リスクなし)から0(極度のリスク)までのリスクスコアなど、きめ細かなリスク指標を使用すると、100%悪意がある、または100%無害であると明確に評価できることがほとんどない、現実世界の脅威に関連するグレーの範囲をモデル化できます。

概念的には、次の図で表されています。ここでは、それぞれ単独では誤検知しやすい3つの異なるシグナルが検出される場合があります。しかし、段階的なリスクに関連付け、調整済みの機械学習モデルで評価すると、同じシグナルが時間の経過に伴う累積リスクを評価し、最終的に信頼度の高い異常検出を実現します。

きめ細かなリスク指標

図8:きめ細かなリスク指標**

この例のシグナルは、単純な静的シグナルとは限りません。たとえば、「通常と異なるドメイン、認識されないユーザーエージェント、およびSSL/TLS証明書」は、特定ユーザーの過去の「正常」なトラフィックベースライン、同様の職務を持つユーザー、または組織全体と比較した場合に異常となる可能性があります。「疑わしいレジストラー」は、時間をかけて相関付けたドメインレピュテーションを統合したものかもしれません。また「定期的なビーコニング」は、固定レートや期間との単純な照合ではなく、正規アプリケーションデーモンのコールアウトではなくボット関連活動に類似した、時間枠内の異常ながら規則的かつ反復的な活動を検出できます。

実際には、これにより、精度の低いシグナルに基づいてリスクスコアを段階的かつ適切に調整できます。累積リスクスコアが、調整済みの高いしきい値を超えるまで、ブロックやアラートのアクションは発生しません。これにより、精度が低く、わずかなリスクを示す指標が多数存在し、それが特定のユーザーまたはデバイスに対する精度とリスクの高い指標と組み合わされた場合に、誤検知の可能性を大幅に下げながら、重大なリスクアラートとアクションを累積的に生成できます。

評価とテスト

新しいアプローチは理論的には妥当でも、実際には惨めに失敗する可能性があり、その証明は多くの場合、データまたはテストにかかっています。ソリューションを提供するベンダーと、ソリューションを探す組織には、新しい脅威をテストし、ソリューションを評価するための堅牢なアプローチが必要です。正確な結果を得るには、悪意のあるトラフィックと無害なトラフィックの両方を含む、多様なデータセットでテストすることが不可欠です。

無害なトラフィック

無害なトラフィックは、ユーザー数と活動の面で、現実的、包括的で、本番環境に類似している必要があります。多くの場合ユーザーに依存する正常なトラフィックは、多数のユーザーサンプルと妥当な期間にわたって調査する必要があります。このテストデータセットで、誤検知(FP)率を測定します。データセットの主な差異は、使用されるアプリケーション、ユーザーエージェント、クライアントSSL/TLS証明書などのクライアントシグナル、宛先ドメイン/IPアドレスに見られる宛先シグナル、ヘッダー、ペイロード、サイズ、タイミングに見られるトラフィックパターンシグナルです。

良い点は、組織のユーザーによる日常業務から良質な無害トラフィックを容易に収集できることですが、悪い点は、それが無害であることを検証する必要があることです。実用的なアプローチでは、無害なトラフィックを統計的にサンプリングして妥当な信頼係数を確保し、その後、テスト対象のC2検出ソリューションからのアラートに大部分の時間を費やして、アラートが真陽性か誤検知かを検証します。つまり、事前にサンプリングおよび検証してベースラインを形成し、無害なデータセットがクリーンであると仮定したうえで、テストに基づいて誤検知の特定を進めます。

無害なトラフィックのテスト

図9:無害なトラフィックのテスト

悪意のあるトラフィック

一般的なC2フレームワークツールの公開プロファイルを使用することで、悪意のあるトラフィックをテストするための強固な基盤を構築できます。これらのプロファイルは、防御を回避する実用的かつ頻繁に使用される設定を表し、検知漏れ(FN)率の測定に役立ちます。ただし、次の図に示すように、カバレッジとデータセットがテストする内容には複数のレベルが存在する可能性があるため、代表的な「悪意のあるトラフィック」データセットの作成には多くの検討が必要です。

悪意のあるトラフィックのテスト

図10:悪意のあるトラフィックのテスト**

  1. SafeBreachなどの侵害・攻撃シミュレーションツールは、カバレッジテストと反復テストに優れています。通常、そのC2テストケースには、少なくともC2フレームワーク活動の何らかのシミュレーションが含まれます。利点は、一般的なマルウェア攻撃を含む幅広い機能、適切に設計されたGUIとアーキテクチャ、反復可能なテスト手順とレポートを利用できることです。これらのツールは、低速で目立たない活動、IaaS/CSPインフラストラクチャ、HTTPおよび非HTTPトラフィック、SSL/HTTPSトラフィック、さまざまなユーザーエージェントのなりすましなど、幅広いシナリオを提供できます。
  2. C2フレームワークツール(公開プロファイル)。 C2フレームワークを詳細にテストするには、重点的な作業が必要です。1つのアプローチは、Cobalt Strikeなど、C2フレームワークツールの特定の公開プロファイルに基づいてテストデータセットを作成することです。これらの公開Malleable Profilesにはgmailなどの無害なアプリケーションの有用なエミュレーションが含まれるため、広く共有され、多くのユーザーや悪意のあるアクターによって使用される傾向があります。このアプローチでは通常、特定のC2フレームワークについて、より包括的なテストを実施できます。
  3. C2フレームワークツール(カスタムプロファイル)。 C2 Malleable Profilesを内部でカスタマイズすることで、C2フレームワークをさらに現実的にテストできます。これらのカスタム設定は、内部レッドチーム活動中に作成できます。レッドチームのオペレーターがC2フレームワークツールに精通する必要があるため、より多くの作業と投資が必要です。
  4. 現実的な攻撃。 最も現実的なテストには、外部侵入テストやバグ報奨金プログラムを使用するブラックボックステストがあります。このようなシナリオでは、特定のC2フレームワークツールまたは任意のC2ビーコニング動作を使用する実際のPOCエクスプロイトを必須とする、または奨励するように演習要件を慎重に構築し、一定期間にわたって検出を回避するという条件を設けます。演習の目的は、一般的な初期アクセスベクトルのテストだけではなく、C2活動が実証されたバックドアペイロードをインストールできることを示し、侵害後の活動に重点を置くことです。これにより、C2フレームワークの範囲を超えてテストデータセットが充実し、カスタムC2通信を備えたバックドアPOCコードをテストできます。また、異なるTTPまたはカスタムTTPを使用する熟練した「攻撃者」に対する検出ツールの耐性をテストする優れた方法でもあります。

テストには1つまたは複数のアプローチを含めることができますが、テストデータセットをどのように作成、収集、検証するか、また期待される結果をどのように測定するかについて、明示的に選択する必要があります。テストを自動化して容易に反復できるようにするには、テストデータセットの作成と収集が非常に重要です。

テスト中に完全な指標、つまり真陽性、誤検知、真陰性、検知漏れを測定することも極めて重要です。すべての指標を収集することは当然に思えますが、定義を正確にし、測定方法を明確かつ反復可能にすることは難しく、誤解を招く結果につながる可能性があります。

誤検知と検知漏れの目標

C2フレームワークによって作り出される新しい回避型脅威に対して、新しい検出ソリューションには広く受け入れられたFP率とFN率がありません。しかし、FPとFNの目標を設定することは不可欠です。品質が既知のテストデータセットを使用すれば、現在の環境とユーザー/デバイスに対するベースラインを作成でき、それらのベースラインに対する妥当な目標を設定できます。

たとえば、IPSのみを使用する組織が新しいC2検出ソリューションの評価を開始し、どの程度のFP/FN率を許容できるかが不明だとします。その場合でも、次のようなテスト方法に従うことで、妥当な目標を設定できます。

  • 高品質なテストデータを作成する。 本番データに基づく無害なトラフィックと、たとえばCobalt Strikeの公開C2 Malleable Profilesに基づく悪意のあるトラフィックを用意し、それらのデータセットのサンプルを手動で検証します。
  • 明確で反復可能なテスト方法を作成する。 テストツールと測定ツールを定義します。
  • テスト中にすべての指標(TP/TN/FP/FN)を測定する。
  • 新しいソリューションをテストし、指標を比較する。 たとえば、悪意のあるトラフィックに対するTP率を改善するためにIPSを個別に調整できますが、FP/TN/FN率も測定、検証する必要があります。その後、特に後述の「影響」セクションで説明する組織への総合的な影響を踏まえ、異なるソリューションの有効性を適切に評価できます。
  • 新しいデータセットをテストして比較する。 攻撃者による妥当な調整を反映するよう、データセットをカスタマイズします。これには複数の方法があります。
    • たとえば、Cobalt Strikeをテストする場合、そのC2 Malleable Profilesを容易に変更し、無害なアプリケーションを少し異なる方法でエミュレートしたり、特定の組織内で使用されているまったく新しい無害なアプリケーションをエミュレートしたりできます。これは、プロキシ経由でHTTP/Sアウトバウンドトラフィックをスニッフィングすることで実行できます。
    • C2フレームワークツールは機能と手法が異なるため、1つだけでなく複数をテストします。別のC2フレームワークツールを使用することも、そのC2トラフィック形成が異なるため有効な変更です。
    • 独自にハンドコーディングしたC2通信を備えるカスタムテストペイロードの作成も、テストデータセットを変更する方法ですが、最も多くの時間と投資が必要です。

耐性テスト

異なるソリューションに対して新しいデータセットでテストすることで、各ソリューションの固定性と耐性に関する有用な知見も得られます。本稿では、ハードコードされたシグネチャベースのアプローチは、C2フレームワークの検出効果が低いだけでなく、固定的でもあるため、高いFP/FN率をもたらし、Malleable Profileの変更など、攻撃をわずかに変更するだけで容易に回避できるという問題を提起しました。

データセットが妥当な範囲内、つまり同じTTPカテゴリー内で変更されるようにすることで、あらゆるソリューションの耐性をテストできます。つまり、C2 Malleable Profilesを使用して悪意のあるトラフィックデータセット内のC2通信を変更し、TP/TN/FP/FN率を監視することで、現実的な耐性テストを実施できます。これにより、カバレッジがどのように変化するかを確認し、特定のTP/TN/FP/FN目標に対するカバレッジを維持するために、検出ソリューションにどのような変更が必要かを把握できます。

この方法で変更済みデータセットを使用して再テストすることは、攻撃者がTTPを変更することに相当します。同じ脅威手法カテゴリー(HTTP/S経由のC2通信)内の変更を引き続き検出できるかどうかを確認できるため、新しい検出ソリューションの耐性と有効性を評価できます。

誤検知と検知漏れの影響

FP/FN率の測定は有用で、相対的な改善を可能にしますが、FPとFNの影響も測定、または少なくとも推定する必要があります。そうしなければ、検出ソリューションの真の有用性を評価できません。つまり、1%のFP率またはFP率の5%改善は、その1%または5%の影響をセキュリティ予算の意思決定者が理解できる形で測定しない限り、コンテキストを持ちません。

TP/TN/FP/FN率を、より定量化可能な影響に変換するうえで役立つ2つのアプローチを以下に示します。

  1. 時間の経過に伴うユーザーへの影響:FP率に相当する誤検知の絶対数を確認し、時間あたり、ユーザーあたりの割合として正規化します。これは定性的な尺度ですが、パーセント率や絶対数よりも理解しやすい場合があります。たとえば、1%のFPまたは2,437件の誤検知ではなく、ユーザー1人あたり1日0.1件の誤検知と表現する方が、影響を評価しやすい場合があります。これがセキュアWebゲートウェイであれば、組織内の担当者は、時間の経過に伴うユーザーへの影響に基づき、特定のFP目標が許容可能かどうかを判断できます。この場合、C2フレームワーク対応マルウェアは侵害をもたらし、ユーザーへの影響は、一定期間におけるユーザーあたりのダウンタイムまたはデータ損失として特徴付けられます。毎年、ユーザー1人あたり$Xの損失が発生する可能性がN%あります。多くの場合、これは概算ですが、定期的な反復によって修正、改善できるため、着手すること自体に価値があります。影響を時間あたりのユーザー数で評価すると、多くの場合、年間ユーザー数に基づいて価格設定される検出または保護ソリューションを簡単に評価できます。
  2. 時間、金額、侵害確率の観点から見たセキュリティ運用への影響。エンドユーザーへの影響だけでなく、管理上の影響、特に検出アラートへの対応に時間を費やすことの多い運用担当者への影響も評価する必要があります。ノイズの多いアラートへの対応に費やす時間は、FTEの人件費に直接換算できます。アラート疲れという追加要因も実際の影響であり、有効性(対応時間)の観点、そしてより重要なこととして、失われた、または調査されなかった、真に影響の大きい脅威に向ける時間と注意力の損失として推定できます。後者の影響は侵害による影響の一因となります。セキュリティ運用が調査、削除すべき誤検知を過剰に抱えている場合、侵害が発生する可能性が高くなります。

多くの場合、影響評価は、検出の有効性による真のコストなどの重要な知見を理解する唯一の方法です。たとえば、FNが低くFPが高い設定の過度に積極的な検出ソリューションは、セキュリティ運用がより効果の高い活動に取り組まず、精度の低いアラートへの対応に過剰な時間を浪費するため、役に立たないだけでなく有害です。同様に、FPは低いもののFNが高い過度に保守的な検出ソリューションは、潜在的な侵害に対する高いリスクに組織をさらします。これは、総合的なリスク評価の観点から許容できない場合があります。

影響は、中核となるTP/FP/TN/FN指標と同時に推定、評価する必要があります。

現実的なテスト

自動化された侵害ツールや侵入テストツールだけでなく、人間によるレッドチームを使用します。C2ビーコニングソリューションのテストには、本番環境のユーザーと環境だけでなく、侵入テストやバグ報奨金などの現実的な敵対シナリオも使用することを強く推奨します。報奨金額と要件を調整して、一般的なC2フレームワークツールキットの明示的な埋め込みと、エクスプロイト後アクションの成功を示すようにすることで、「悪意のあるトラフィック」を現実的かつ測定可能なものにできます。検出ソリューションの耐性をテストするため、カスタムコードを含むあらゆるC2ビーコニング活動に対象を広げることもできます。また、テスト要件には、検出されることなく、1週間にわたって毎日のビーコニング活動とコマンド実行に成功したことを実証する項目を含める必要があります。

外部侵入テストまたはバグ報奨金プログラムを繰り返すと、検出率の差異を測定でき、有効性とROIの評価に役立ちます。

厳格なテストアプローチを使用することで、テストの有効性を包括的に測定できるだけでなく、現在または過去のベースラインに対する継続的な目標を設定できます。また、複数のソリューションに同じテストと測定を実施すれば、パフォーマンスの比較と購入/実装の意思決定を容易に行えます。

設計上の考慮事項

これらの概念と全体的なアプローチに関する研究および設計については、「変更可能なコマンドアンド制御を検出するためのセキュリティシステムと方法」(Mulugeta)で詳しく説明されています。

利点

新しい未知の脅威の異常検出

このアプローチでは、組織内のユーザーに固有のアプリケーション動作で訓練された機械学習モデルを活用することで、未知の脅威を効果的に緩和します。きめ細かなユーザーリスク指標により、誤検知が大幅に減少します。

対照的に、既存の事後対応型アプローチでは、最初の被害者または患者ゼロ(より大きな利益のための犠牲)を特定した後、ベンダーが分析と調査を行います。これには数日、場合によっては数か月かかり、その後ようやく、まだ攻撃を受けていない顧客向けに、新しい脅威をブロックするシグネチャまたはルールがベンダーからリリースされます。このアプローチは設計上、新たに出現する変更可能な脅威をブロックするには効果的ではありません。

特定用途向けに調整された機械学習モデルを活用する異常検出アプローチでは、分析、リリース、更新のサイクルを必要とせず、疑わしい動作を独自に検出できます。このアプローチは、脅威の戦術が進化しても堅牢性を維持します。

包括的なシグナル分析

時間、通信量、TCP/IP通信、SSL/TLSフィンガープリント、アプリケーションプロトコルのペイロードなど、包括的なシグナルセット全体で異常を検出することで、高度で変更可能なC2通信を効果的に検出できます。

攻撃者ツールキットの検出

このアプローチでは、環境内のユーザーに固有の幅広いネットワークシグナルを使用した異常検出に依存し、環境内の正規で無害なトラフィックと比較することで、最新のC2フレームワークツールやC2フレームワークの使用、および新しい疑わしいC2ビーコニング活動を効果的に検出できます。

検出の有効性

現在のアプローチ(IPSシグネチャ+IP/ドメイン/URLブロック)は、最新のマルウェアに含まれる高度なC2通信の多くを見逃します(テストシナリオに応じて40~80%)。

調整済みの機械学習モデル、豊富なシグナルセットの異常検出、きめ細かなリスク指標を備えた新しいアプローチを使用することで、現在回避されているこれらの攻撃の85~95%以上を検出できます。

その結果、誤検知を最小限に抑えながら、全体で95%以上の真陽性検出率を実現できます。

結論

C2フレームワークツールキットは、コマンドアンド制御(C2)の検出を回避する高度な手法を攻撃者に提供しています。特にCobalt Strike、Brute Ratel、Mythicなど、広く入手可能なツールキットは、オープンソースとして、またはハッキング/窃取された商用コードとして入手できます。

IP/URLブロックリストなどの静的シグネチャや指標に大きく依存する従来の静的アプローチには重大な制限があり、進化するこれらの脅威によって容易に回避されます。

この課題に対処するには、機械学習モデルを活用する根本的に異なるアプローチが必要です。これらのモデルには包括的なネットワークシグナルセットが組み込まれ、ユーザーと組織の両レベルで個別に訓練されます。さらに、きめ細かなユーザーリスク指標を使用して誤検知を減らし、脅威に付随することの多いグレーの度合いを測定します。

機械学習アプローチの有効性は、ユーザーが慎重に評価する必要があります。これらの新しい脅威の検出と緩和における有効性を判断するには、悪意のあるトラフィックと無害なトラフィックで構成される堅牢なテスト環境に対する厳格なテストが不可欠です。

参考文献

  1. 「Cobalt Strike:国際的な法執行活動が「スイスアーミーナイフ」型侵入テストツールの違法使用に対処」The Record from Recorded Future News、2024年7月3日、https://therecord.media/cobalt-strike-law-enforcement-takedown。2024年8月23日参照。
  2. Gill, Andy. 「Cobalt Strike Profilesを理解する――Cobalt Strike 4.6対応版」ZSEC Blog、2022年4月13日、https://blog.zsec.uk/cobalt-strike-profiles/。2024年8月23日参照。
  3. Larson, Selena, and Daniel Blackford. 「Cobalt Strike:APTからサイバー犯罪まで愛用されるツール」Proofpoint、2021年6月29日、https://www.proofpoint.com/us/blog/threat-insight/cobalt-strike-favorite-tool-apt-crimeware。
  4. Mudge, Raphael. 「Malleable C2 Profiles:gmail」Malleable-C2-Profiles normal gmail.profile、rsmudge、2018年2月28日、https://github.com/rsmudge/Malleable-C2-Profiles/blob/master/normal/gmail.profile。
  5. Mulugeta, Dagmawi. 「変更可能なコマンドアンド制御を検出するためのセキュリティシステムと方法」Free Patents Online、2024年8月20日、https://www.freepatentsonline.com/12069081.html。
  6. Rahman, Alyssa. 「Cobalt Strike | Cobalt StrikeのコンポーネントとBEACONの定義」Google Cloud、2021年12月10日、https://cloud.google.com/blog/topics/threat-intelligence/defining-cobalt-strike-components/。
  7. Snort. 「SID 1:25050」Snort Rule: MALWARE-CNC Win.Trojan.Zeus variant outbound connection、https://www.snort.org/rule_docs/1-25050。
  8. 「SolarWindsサプライチェーン攻撃がSUNBURSTバックドアを使用」Google Cloud、2020年12月13日、https://cloud.google.com/blog/topics/threat-intelligence/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor/。