脅威情報
RSS

見えるところに潜む攻撃:CDNサービスを悪用したC2の不明瞭化

5.10.2022Cyber Threat Intelligence
Share:
Cobalt Strikeは、数秒で機能豊富なバックドアを作成することに特化して設計された、定評のあるレッドチーム向けツールキットです。しかしながら、その登場以来、このツールは世界中の脅威アクター(Polaris/MustangPanda、APT32/OceanLotus、サイバー犯罪者など)に多用されています。 Cobalt Strikeの人気の理由は、主に内蔵されている強力なペイロードジェネレータ、ターゲットマシンにビーコンを展開できる柔軟さ、そして最も注目すべきなのが、ターゲットネットワーク内のペイロードトラフィックを偽装できる点にあります。
ここ1年ほどは、サードパーティーのサービスをプロキシとして利用するビーコンが多く出回っています。これらのサードパーティーCDNを利用することで、C2の匿名化が可能となり、検知回避を強化できるため、多くのAPTがこういったサービスを利用し始めています。以下のセクションでは、これらの脅威アクターが使用するテクニックのいくつかを紹介すると共に、こういった悪用された設定を設定するのがいかに簡単かをお見せしようと思います。

サーバーレス関数

脅威グループが採用しているもう1つのテクニックが、Cloudflare Workersなどのサードパーティサービスを利用する方法です。サーバーレスサービスを利用することで、Cobalt Strikeエンドポイントへのリバースプロキシとなる設定を、お金をかけずに行うことができます。適切に設定することで、これらのサービスを通してさらなる保護レイヤーを形成することができます。ドメインを検索しても、オリジンサーバーではなく、サービスのIPのみが取得されるからです。
202205_blog_pic1.png
これらのサービスはサブドメインを使って設定されることが多く、脅威アクターは本物のドメインを購入せずに自由に設定することができ、ある程度の説得力のある偽ドメインに設定することもできます。この例では、C2が route.moffice365.workers.dev に設定されており、トラフィックがMicrosoftサービスに多少関連しているように見せかけています。
202205_blog_pic2.png
これらのサーバーレス関数は性質上、攻撃の発生源をたどったり、脅威アクターを特定したりすることは極めて困難です。サーバーレスコードはCloudflare上にのみ保存され、Cloudflareサーバー上で実行されるため、C2インフラを特定することは現実的に不可能です。

CDNを介したドメインフロンティング

ドメインフロンティングとは、よく認知されたサービスやドメインにデータを潜ませることでトラフィックを偽装しようとするテクニックです。つまり、先ほどのテクニックと同様に、サービスを停止させたり、内部のリクエストを調べたりすることなくドメインフロンティングをブロックすることは現実的に不可能です。実は、Cobalt Strikeを提供するHelpSystemsが、2017年にCloudFrontを使用したCobalt Strikeのドメインフロンティングに関する記事を書いています[1]。
202205_blog_pic3.png
原則的に、一部のウェブサイトは、CloudFrontなどのCDNを採用して、ウェブサイト上にアセットを配信しています。通常は、ホストヘッダーがリクエストの行き先を決定し、このヘッダーはウェブサイトによって割り当てられます。しかしながら、この「関数」を悪用することで、ビーコンが特定のドメインに行くようにして、そのドメインにウェブサイトが使用する標準のCDNではなく、こちらで用意したCDNへと行くように指定したホストヘッダーを持たせることができます。HTTPSの場合、リクエスト自体が暗号化されているため、IT管理者がこのリクエストをブロックすることは極めて困難または不可能であり、表面上は、ユーザーが単に信頼できるサイトを訪問しているように見えます。

存在しないドメインを使用したドメインフロンティング

しかしながら、次のテクニックでは、少し違う方法をとっています。昨年のある時期に、C2アドレスが pypi.python.org に設定された、かなり奇妙に見えるCobalt Strikeペイロードを検出しました。Python Foundationが所有するドメインの権利を脅威アクターが取得することは明らかに不可能であり、サービスを悪用できる可能性もほとんどありません。
202205_blog_pic4.png
では何が目的なのでしょうか?その秘密は、サブドメインを操作するサービスと、ビーコンで指定されているHTTPヘッダーにあることが判明しました。Python Foundationは、同社のサービスのほとんどでFastlyを使用しています。Fastlyでは、リクエスト内で指定されたホストヘッダーを使用して、内部のどのサービスにリクエストをリダイレクトするのかを指定します。例えば、Fastly上に dl-python.org という名のサービスを作成し、ビーコンのホストヘッダーを dl-python.org にした場合、Fastlyはその名前のサービスにリクエストを転送します。
202205_blog_pic5.png
この方法と前述のドメインフロンティングのテクニックとの違いは、C2が dl-python.org に向けられるという、ホストヘッダーに誤った印象を与える点にあります。実際には、Fastlyのサービスを通すとdl-python.org.global.prod.fastly.net として解決されます。その後このサービスは、脅威アクターが行った設定に従って、内部でリクエストを my-c2domain.com に転送します。この手口は、脅威調査担当者がインシデントと関係があるかどうかもわからない、まったく別のドメインを調査するようにうまく誘い込む可能性があります。
202205_blog_pic6.png

結論

この記事では、脅威アクターがペイロード通信におけるCobalt Strikeの柔軟性を悪用する際の3つの方法を説明しました。サーバーレス関数の悪用と、CDNドメインフロンティングに対する様々な悪用です。Cobalt Strikeのレジリエンスは、まさにこういった理由から多くの人に気に入られて(あるいは嫌われて)います。ますます多くの創造性に富んだ戦略が発見され、採用される中、レッドチームのためのツールキットはしばらく利用されることになるでしょう。

参考文献

[1] Mudge, R. (2017, February 6). High-reputation Redirectors and Domain Fronting—Cobalt Strike Research and Development. (高信頼性リダイレクタとドメインフロンティング - Cobalt Strikeの研究および開発)➔ リンク
*画像のソース: Pexels
5.10.2022Cyber Threat Intelligence
Share: