C2回避テクニック:柔軟なC2プロファイルを理解する

2021年4月26日
Joshua St. Hilaire
Director of Security Research
C2回避テクニック:柔軟なC2プロファイルを理解する

今回は、コマンド&コントロール(C2)回避テクニック・シリーズの第2回で、可鍛性C2プロファイルについてお話しする。最初のブログ 最初のブログJA3シグネチャーのランダム化として知られる方法を検証している。

Malleable C2プロファイルは、ペンテスターやAdvanced Persistent Threat(APT)グループが使用する人気のフレームワークであるCobalt Strikeで広く採用され、使用されています。MalleableプロファイルはCobalt Strikeのユーザーにはおなじみだが、その採用が他のC2フレームワークにも広がり始めていることは注目に値する。この記事を書いている時点では、バージョン3.4のEmpire C2でもMalleableプロファイルが使われている。この開発をさらに興味深いものにしているのは、Empireチームが最近、人気のあるペンテスト用ディストリビューションであるKali Linuxとの提携を発表したことです。

回避のための柔軟なプロフィール

C2用の可鍛性プロファイルは、ネットワークベースの検知ツールだけでなく、エンドポイントセキュリティ製品からの検知を回避することを可能にする。Cobalt Strikeのオペレーターは、「可鍛性」のレベルにより、C2ビーコンの形状やタイミングを完全にカスタマイズできるだけでなく、プロセスインジェクションやインメモリ難読化手法のようなオンターゲット機能をカスタマイズすることもできる。ターゲット環境内でエージェントを実行する場合、運用上のセキュリティは常に懸念事項である。そのため、コマンド&コントロールでステルス性を維持する際には、ネットワークセキュリティの監視が常に考慮されます。攻撃者がネットワーク内の危険なマシンにエージェントをインストールし、これらのエージェントが C2 サーバに接続する際に生成するトラフィックが、同じか類似のユーザエージェント、URI、またはフラグを立てやすい他のアーティファクトを使用していたとします。繰り返し使用されるため、これらのアクティビティが事前に知られていた場合、検知されるリスクは非常に高くなります。そのため、「通常の」予想されるトラフィックに紛れ込ませるか、あるいは実行のたびに新しい値を使用するような方法で、トラフィックを変換または形成する必要がある。いずれのアプローチも、検知を回避するのに有効である。変更可能なプロファイルを採用するもう1つの動機は、既知の脅威に対してテストを行いたいという願望である。もしエージェントとC2サーバーをセットアップして、マルウェアがワイヤ越しに、あるいはターゲットのエンドポイント上でどのように見えるかを確認できれば、ネットワーク検知スタックやエンドポイント・セキュリティ・モニタリングがそのアクティビティにフラグを立てることができるかどうかを確認することができる。

ここで、可鍛性が活きてくる。C2をカスタマイズするために、オペレーターに提供されるオプションのいくつかを説明する価値がある。さらに、まとめとして、特にシグネチャ・ベースの検知戦略において、これらがいかに検知を困難にするかについて話す。機能の概要については、ネットワークとエンドポイントに分けて説明する。紹介するオプションは、決して網羅的なリストとはみなされない。

カスタマイズによる回避

ハイパーテキスト転送プロトコル(HTTP)や HTTPS などのネットワークプロトコルに関係なく、エージェントは指定された方法でサーバと通信します。HTTP を使用する場合、ネットワーク層の防御によって検査できる HTTP 会話の多くの部分があります。例えば、HTTP ヘッダ内の文字列は、十分ユニークなものであれば、防御側がワイヤ上の接続を検知するために使用することができます。ユニークなユーザーエージェント、カスタムのアクセプト文字列、ユニークなパス値のようなものは、すべて検査のためにオープンです 設定はまた、同様にサーバー側からヘッダー要素を変更するために使用することができます。

マレアブル・プロファイルを使用すると、HTTPヘッダー内の値など、正当なプログラムの値をミラーリングするだけで、例えばMicrosoft Windowsアップデート・エージェントのような良性の接続と同じに見せることができます。以下のスクリーンショットは、Cobalt Strike Windows update malleableプロファイルを使用したHTTPセッションをWiresharkで再構築したものです。

図 1:Cobalt Strike Windows Update の変更可能プロファイル

送信前にデータをエンコードするためにデータ変換が利用可能であることは指摘しておく価値がある。明白ではないかもしれないが、上のスクリーンショットのHTTP GETリクエストに続くUniform Resource Identifier(URI)は、送信前にbase64エンコードされ、サーバー側でデコードされる。以下のリストは、Cobalt Strike で利用可能なデータ変換です。

表1:Cobalt Strike データ変換

さらに、複数の変換を同時に行うこともできる。例えば、base64とmaskを一緒に重ねることで、OPSECを強化することができる。

HTTPSが使用されている場合でも、SSL(Secure Sockets Layer)証明書などの値を操作することができる。以下のSSL証明書は、前述のWindowsアップデートプロファイルで使用されています:

コネクションの表示方法を細かく制御するだけでなく、クライアントがC2サーバーに接続するタイミングを制御する値も、変更可能なプロファイルによって操作できる。ジッターやディレイなどの値により、攻撃者はC2接続のタイミング間隔を変更することができる。

エンドポイント可変型

Malleableは、エージェントがネットワーク経由でデータを送信するときだけでなく、メモリ内の特性、プロセスへの注入方法、および侵入後のタスクを制御するときにも使用されます。これは、エンドポイント検知とレスポンス (EDR)とアンチウイルス検知を回避するのに便利です。以下の例では、エージェントがターゲットエンドポイント上でどのように動作するかに関連するオプションをいくつか示しています。

図2:Cobalt Strike havexプロファイルにおける、エンドポイントに関連する変更可能なオプションの例。

ステージブロックでは、エージェントがメモリにロードする方法を制御できます。名前、コンパイル時間、メモリパーミッション、難読化、ローダータイプなどを指定できます。しばしば、プロセスにロードされた悪意のあるコードを探すアナリストは、最初にメモリセグメントをチェックし、疑わしいメモリセグメントで RWX パーミッションでロードされたセグメントをキーにします。

プロセス注入オプションでは、注入されたコンテンツを形成することができます。変換オプションを使用してデータをパディングし、割り当て方法を設定し、パーミッションを制御することができます。最後に、使用する異なるパイプ名を選択したり、スマートインジェクションを使用したり、スポーンロケーションを指定することで、悪用後のタスクを制御することもできます。これはEDRソリューションの回避やテストに最適です。より詳細な概要については、Cobalt Strikesオンラインガイドを参照できる。

ディフェンダーにとっての課題

C2通信とステージング動作を制御するためにこのようなきめ細かさを許可することは、シグネチャによる防御と検知を困難なものにする。もう1つ強調すべき点は、Cobalt Strikeがしばらくの間、可変性を認めている一方で、Empire C2のような他の一般的なC2フレームワークも可変性のあるプロファイルを採用していることである。これは、APTやランサムウェアのアクターによる最近の侵入において、その使用が増加しているという事実と相まって、防御者にとってますます複雑なタスクとなっている。

ネットワークとエンドポイントの防御技術は、迅速に更新されるシグネチャを持つか、データの繰り返しパターンやビーコン活動に対応するタイミングシーケンスにさえ頼らない、コマンド&コントロールを検知するための他の調査方法を使用しなければならないだろう。

よくあるご質問(FAQ)

可鍛性C2プロファイルとは何ですか?また、Cobalt Strike でどのように使用されていますか?

Cobalt Strike の Malleable C2 (Command and Control) プロファイルにより、オペレータは C2 トラフィックの動作や外観をカスタマイズすることができます。このカスタマイズは、ネットワークベースのセキュリティツールやエンドポイントセキュリティツールによる検知を回避するのに役立ちます。オペレーターは、HTTPヘッダー、ユーザーエージェント、URI、さらにはC2ビーコンのタイミングを変更することで、トラフィックを通常のネットワークトラフィックに紛れ込ませたり、Windows Updateエージェントからの通信など、正当なソフトウェア通信を模倣したりすることができます。

なぜMalleable C2プロファイルは攻撃者にとって有益なのか?

C2プロファイルは、セキュリティ・ツールによる検知を回避できるため、攻撃者にとって有益です。トラフィックをカスタマイズして正常なトラフィックに見せかけたり、正当なトラフィックを模倣することで、攻撃者はセキュリティ・アラートのトリガーを回避することができます。さらに、これらのプロファイルは、既知のmalware の動作をシミュレートすることによってセキュリティ対策をテストし、検出メカニズムの有効性を評価することを可能にします。

Malleableプロファイルは、侵入テストや攻撃時の運用セキュリティをどのように強化するのか?

変更可能なプロファイルは、防御側が悪意のあるC2トラフィックを識別してブロックすることを困難にすることで、運用上のセキュリティを強化します。正規のソフトウェア通信に見えるようにトラフィックをカスタマイズしたり、トラフィック・パターンを変化させたりすることで、攻撃者はステルス性を維持し、検知のリスクを低減することができます。これは、標的ネットワーク内の侵害されたマシンにエージェントをインストールして管理する場合に特に重要です。

Malleableプロファイルはエンドポイントセキュリティにどのような影響を与えるのか?

エンドポイントでは、Malleableプロファイルによって、メモリ内の特性、プロセスインジェクション方法、およびエクスプロイト後のタスクを制御できます。これらの機能は、悪意のあるコードがどのようにロードされ、メモリ内でどのように動作するかをカスタマイズすることで、エンドポイント検出およびレスポンス (EDR)ツールやウイルス対策ソフトウェアを回避するのに役立ち、従来の方法では検知 。

マレアブル・プロファイルの使用は、ビーコン活動の検出をどのように複雑にするのか?

可変性のあるプロファイルは、攻撃者がC2通信間のタイミング間隔(ジッターと遅延)をランダム化することを可能にするため、ビーコン活動の検出を複雑にします。このランダム化により、ネットワーク防御ツールは、C2サーバーと通信する侵害されたシステム(検知 )によく使用されるビーコンの規則的なパターンを識別することが難しくなります。

マレアブルC2のプロファイルはどのように他のフレームワークに広がっているのか?

Malleable C2 profiles は、もともとCobalt Strike によって普及したものですが、Empire C2 のような他の C2 フレームワークでも採用され始めています。Empire C2 は、バージョン 3.4 からこの機能を搭載しました。このような拡大は、Empire 社が Kali Linux と提携したことも一因となっており、ペネトレーション・テスターやcybercriminels の間で、マレ ーブル・プロファイルの普及と利用が進んでいます。

Malleableプロファイルを使用して、C2トラフィックのどのような要素をカスタマイズできますか?

Malleableプロファイルを使用することで、オペレータはHTTPヘッダー(ユーザーエージェント、accept文字列など)、URI、SSL証明書、タイミング値(ジッターや遅延など)など、C2トラフィックのさまざまな要素をカスタマイズできます。このようなカスタマイズによって、悪意のあるトラフィックは通常のトラフィックに紛れ込んだり、各操作でユニークに見えるようになり、検出がより困難になります。

マレアブル・プロファイルは守備側にどのような課題をもたらすのか?

可変性のあるプロファイルは、悪意のあるトラフィックの検出を複雑にすることで、防御側にとって大きな課題となる。カスタマイズされたトラフィックが既知の悪意のあるパターンと一致しないため、従来のシグネチャベースの検知手法は有効でなくなる。防御側は、疑わしい活動を特定するために、振る舞いベースの分析や異常検知など、より洗練された適応的な検知技術に頼る必要がある。

Malleableプロファイルはエンドポイントセキュリティにどのような影響を与えるのか?

Cobalt Strike では、オペレータは、ロードされたコードのメモリパーミッション、プロセスインジェクションの方法、データパディング、アロケーション方法、スマートインジェクションやスポーンロケーションの指定などのエクスプロイト後のタスクなど、エンドポイントの動作の様々な側面をカスタマイズすることができます。これらのオプションは、セキュリティツールが一般的な指標に基づいて悪意のある活動を特定することを困難にします。

セキュリティ・オペレーション・センター(SOC)がMalleableプロファイルに対応する際に、なぜ堅牢な脅威検知とレスポンス 。

Malleableプロファイルが可能にする高度な回避テクニックを考慮すると、SOCは堅牢な脅威検知およびレスポンス プラットフォームを持つことが極めて重要です。このようなプラットフォームは、リアルタイム分析、ビヘイビアベースの検知、高度な異常検知を提供し、従来のシグネチャベースの手法を回避する高度な脅威を特定し、対応することができる。これにより、全体的なセキュリティ態勢が強化され、潜在的な侵入に対してタイムリーかつ効果的な対応が可能になります。