ニュースの概要
- 2021 年 9 月、Cisco Talos は、リーク版の Cobalt Strike を使用した新しいサイバー攻撃を発見しました。
- 元々は正規ツールとして作成された Cobalt Strike ですが、攻撃を仕掛けるために利用されているため、引き続き監視が必要です。
- 今回のケースでは、コンテンツ配信ネットワーク Cloudflare でドメインフロンティングが使用され、攻撃者が制御するサーバーにミャンマー政府所有のドメインがリダイレクトされています。
- 検出を回避するため、レピュテーションの高いドメインを攻撃チェーンに組み込む戦術が採られていました。
- 攻撃では、MITRE ATT&CK フレームワークのさまざまな手法が使用されています。特に注目すべきは、間接的なコマンド実行(T1202)、難読化されたファイルまたは情報(T1027)、侵入ツールの転送(T1105)、アプリケーション層プロトコル:Web プロトコル(001)です。
最新情報
Cisco Talos は、難読化された Meterpreter ステージャを使用して Cobalt Strike ビーコンを展開するサイバー攻撃を 2021 年 9 月に発見しました。ビーコンのフロントドメインとして、ミャンマー政府が所有および運営するドメインである Myanmar Digital Newsのネットワークが使用されていました。
この脅威の変遷から、遅くとも 2021 年 8 月には攻撃者が Meterpreter ステージャと Cobalt Strike ビーコンを組み合わせて使用し、被害者のエンドポイント上で攻撃の足場を築いていたことがうかがえます。
仕組み
このマルウェアは攻撃対象のマシン上で動作し、反射型インジェクションによって Cobalt Strike ビーコンの DLL を復号して実行するという一般的なローダーです。実行時に複数のライブラリをロードし、組み込まれている設定ファイルに基づいてビーコントラフィックを生成します。設定ファイルには、コマンド & コントロール(C2)サーバーに関連する情報が含まれています。この設定情報は、ミャンマー政府が所有するドメイン www[.]mdn[.]gov[.]mm に接続を試みる最初の DNS リクエストを送信するよう攻撃対象のマシンに指示を出します。このサイトはコンテンツ配信ネットワーク Cloudflare でホストされていますが、実際の C2 トラフィックは、ビーコンの設定ファイル内に指定されている HTTP リクエストのホストヘッダー情報に基づいて、攻撃者が制御するサーバーである test[.]softlemon[.]net にリダイレクトされます。
影響
Cobalt Strike は、エクスプロイト後の攻撃活動や横展開に使用される代表的なツールです。これまでにも多くの攻撃者によって使用されてきました。このツールを使用して、商用マルウェアから国家が支援する高度な攻撃活動まで、さまざまなペイロードが展開されています。
Cobalt Strike を使えば、ビーコンのトラフィックをシェーピングして、正規のトラフィックパターンを模倣できます。DNS ベースのフィルタリングからトラフィックを隠蔽する手法に、ドメインフロンティングがあります。これは、レピュテーションの高い正規ドメインを使用して検出を回避する手法です。ドメインフロンティングでミャンマー固有のドメインが選択されていることから、攻撃者はこの地域の地政学的要素に関心を抱いている可能性があります。
今回の攻撃では、Meterpreter ステージャを使用してステージ型のペイロードである Cobalt Strike ビーコンが展開されていました。これをさらなる攻撃に使用するつもりだったことがうかがえます。Cobalt Strike は、サイバー犯罪グループや APT 攻撃グループに特によく使用される攻撃ツールの 1 つです。警戒を怠ることなく、Cobalt Strike のアクティビティを検出できるようネットワークトラフィックを監視する必要があります。
攻撃の変遷
攻撃の変遷を調べた結果、ドメインフロンティングの手法を完全なものとするため、攻撃者がさまざまなホストの組み合わせを試していたことが明らかになっています。
2021 年 8 月中旬に発見された最初のビーコンの C2 URI は、test[.]softlemon[.]net に設定されています。一方、HTTP GET および POST リクエストのヘッダーは、Cloudflare のサーバーレス ワーカー ドメインである dark-forest-002[.]president[.]workers[.]dev となっています。リクエストのデフォルトのホストヘッダー設定では、ホスト名 test[.]softlemon[.]net が指定されています。最近のサンプルでも、これと同じホストが使用されています。
2021 年 8 月下旬に発見された別のサンプルのホストヘッダーの設定を見ると、C2 ホストは URI xxx[.]xxxx[.]tk で、test[.]softlemon[.]net を指すようになっています。
2021 年 9 月からは、ビーコンのフロントドメインとして Myanmar Digital News のドメインが使用されるようになりました。デフォルトで指定されている C2 ドメインは www[.]mdn[.]gov[.]mm です。一方ビーコンのトラフィックは、HTTP GET および POST メタデータを介して実際の C2 である test[.]softlemon[.]net にリダイレクトされるようになっていました。
攻撃を開始する前に、インフラストラクチャとドメインフロンティング機能をテストするために設定が変更された可能性があります。ビーコンの設定テンプレートと実際の C2 ホストが test[.]softlemon[.]net であることから考えて、これらのサンプルは同じ攻撃者によって作成された可能性があると Cisco Talos では推測しています。
マルウェアのサンプルが最初に確認された日付
Cobalt Strike ビーコンの設定
ペイロードからビーコン設定を抽出したところ、攻撃で使用されているマルウェアのユーザーエージェント、C2 サーバー、ホストヘッダーには、さまざまな値が使用されていることが判明しました。
通常、サンプルのビーコン設定では、Mozilla 互換で Windows 7 のユーザーエージェントが指定されています。
ビーコンに設定されている、C2 サーバー、ユーザーエージェント、実際の攻撃に使用される C2 のバリエーション
ウォーターマーク
Cobalt Strike のウォーターマークはライセンスファイルから生成される番号であり、Cobalt Strike ライセンスに固有のものです。今回の攻撃で使用されたビーコンのウォーターマークは 305419896(16 進数:0x12345678)でした。
このウォーターマークは、以前はリーク版の Cobalt Strike のものとされていました。当然ながら Maze ランサムウェアや Trickbot グループなどの攻撃者も使用しているため、ウォーターマークで攻撃者の素性を特定することはできません。攻撃者は、かつて登録され期限が切れたドメインを C2 サーバーに使用し、リーク版の Cobalt Strike を使用しています。素性を隠そうとする意識が高まっているせいなのか、利用できるリソースに制約があるからなのかは判別しがたいところです。
ドメインフロンティング
今回の攻撃では、ドメインフロンティングが使用されています。レピュテーションの高いドメインを使用して Cobalt Strike の C2 トラフィックを隠蔽する手口です。今回のケースでは、ミャンマーの政府ドメイン www[.]mdn[.]gov[.]mm が使用されています。
フロントドメインである mdn[.]gov[.]mm は、Myanmar Digital News(ミャンマーの国営デジタル新聞)の正規ドメインです。この Web サイトは 2 月にも、民兵組織 Brotherhood of Myanmar によって侵害されています。過去 Brotherhood of Myanmar が行った同ドメインの改ざんと本記事で取り上げている攻撃の関連を示す兆候はありません。ただ、このドメイン自体がさまざまな攻撃者の注目を集めていることは明らかです。
ドメインフロンティングは、悪意のあるサーバーと標的のドメインとの間でリダイレクトを行うことで実現します。さまざまなコンテンツ配信ネットワーク(CDN)が悪用され、攻撃者が制御する C2 サーバーが提供するコンテンツに CDN のコンテンツがリダイレクトされるよう設定される可能性があります。Cloudflare は CDN サービスの 1 つであり、サーバーでホストされているファイルのキャッシュ(グローバルに分散)をユーザーに提供します。Cloudflare は、リソースのリクエストに使用された FQDN によってディストリビューションを識別します。Cloudflare ユーザーは、独自のサブドメインを使用し、Cloudflare を指す DNS レコードを作成することもできます。サブドメインは、その DNS レコードを特定のディストリビューションに関連付けるように Cloudflare に指示します。
ビーコンは www[.]mdn[.]gov[.]mm,/api/3 にコールホームを実行しますが、ホストヘッダーでは実際の C2 サーバー test[.]softlemon[.]net が設定されています。ビーコントラフィックは Cloudflare の IP アドレスに解決されるものの、この IP アドレスにトラフィックを誘導した DNS リクエストは失われ、HTTP リクエストの他の部分(ホストヘッダーなど)と実際の C2 である test[.]softlemon[.]net が利用されることになります。
ミャンマー政府のドメインに偽装するドメインフロンティングの概要
Cobalt Strike のペイロード
今回確認されたビーコンで特に目を引くのは、最初の DNS リクエストがブロックされないように、政府所有のドメインを使用したドメインフロンティングの手法を利用しているところです。このマルウェアが使用する MITRE ATT&CK フレームワークの手法は以下のとおりです。
また、ローダーのバイナリを分析して、メモリの読み込みと機能の詳細を確認しました。
その結果、圧縮されエンコードされた悪意のあるコードを含む疑わしいセクション .kxrt が見つかりました。マルウェアは実行時に複数の機能にリンクしているほか、Meterpreter のステージングコードを備えています。
マルウェアが実行されると、最初に .tls セクションが実行されます。ライブラリがロードされ、.kxrt セクションのエントリポイントで悪意のあるコードの実行が開始されます。エントリポイントのコードは、独自のプロセス空間に仮想メモリを割り当てる関数を呼び出します。
仮想メモリの割り当てを示すアドレス 00401550 の関数
次に、VirtualProtect 関数が呼び出されます。仮想メモリページのアクセス権が読み取り/書き込み/実行に設定され、新しいスレッドで実行される Cobalt Strike ビーコンのイメージベースが書き込まれます。
仮想メモリページのアクセス権を読み取り/書き込み/実行に設定する関数
マルウェアは、実行時に 2 つのライブラリにリンクすることが確認されています。その 2 つ以外にも、実行時にマルウェアがリンクする標準ライブラリが複数あります。
実行時にライブラリをロードする関数
仮想メモリが割り当てられ、ページのアクセス権限が読み取り/書き込み/実行に設定されると、復号ルーチンが実行されます。これにより、.kxrt セクションに残っていた悪意のあるコードが復号され、仮想メモリに書き込まれます。
ビーコンの DLL を復号するルーチン
復号される悪意のあるコードが、実際の Cobalt Strike ビーコンです。コードが復号されると、ローダーの実行が DLL の先頭にジャンプし、ローダープロセスメモリにビーコンが反射的にロードされます。このビーコンは、設定を復号する役割を担うようになります。
ビーコン設定からロードされた情報
ビーコンは、WinHTTPGetProxyForUrlEx および WinHTTPCreateProxyResolver を呼び出してプロキシを解決し、URL のプロキシをバイパスします。
攻撃対象のシステムの URL のプロキシを解決する関数
その後すぐに、C2 サーバーへの Cobalt Strike ビーコントラフィックを開始します。最初のホストに対する DNS リクエストは、Cloudflare が所有する IP アドレスに解決されます。こうして、攻撃者はドメインフロンティングを使用し、Cloudflare によってプロキシされた実際の C2 ホスト test[.]softlemon[.]net にトラフィックを送信できます。
分析した時点では、サンプルの C2 のホストインフラストラクチャがオンラインではなく、受信したのは 404 エラーでした。
Cobalt Strike のビーコントラフィック
ビーコンには、GetTickCount、IsDebuggerPresent、NtDelayExecution コールを使用してデバッガを検出する機能があります。検出した場合、マルウェアの実行を遅らせてサンドボックスベースの動的分析システムを回避します。また、システム電源ポリシーのレジストリキーを管理して、最小スリープ時間と最大スリープ時間を設定したり、カバー開閉時のアクションポリシーを設定したりすることもできます。
攻撃対象のシステム電源とカバー開閉時のポリシーをレジストリで変更するビーコン
コマンド & コントロール(C2)
C2 サーバーである test[.]softlemon[.]net は、softlemon[.]net のサブドメインです。softlemon[.]net は 2019 年 8 月まで Google ドメインに登録されていましたが、その後は有効期限が切れていたと思われます。このドメインを、攻撃者が 2021 年 8 月 5 日に再登録しました。softlemon[.]net の SSL 証明書(シリアル番号は 4aa6af6d719bfdd1c6dff3d7b640aed7ee3was)は、無料の SSL 証明書プロバイダである Let’s Encrypt によって発行されています。
Talos のレピュテーションエンジンは、このドメインを信頼できないドメインに分類しています。Cisco Umbrella では、2021 年 9 月に DNS クエリの急増が確認されています。この動きは、前述した Cobalt Strike ビーコンの変遷と一致しています。攻撃者は 9 月初めに Myanmar Digital News をドメインフロンティングに利用してビーコンの展開を開始しています。
test[.]softlemon[.]net への DNS クエリの急増と日付
調査の結果、C2 サーバーの test[.]softlemon[.]net は、インターネット インフォメーション サービス(IIS)を実行する Windows サーバーであることが判明しました。
ホスト test[.]softlemon[.]net からの IIS サービス応答
Shodan によると、ロシアのプロバイダがホストする IP アドレス 193[.]135[.]134[.]124 は、ポート 8443 で提供される SSL 証明書が Cloudflare に属しており、X509v3 サブジェクト代替名が DNS:*.softlemon.net となっています。したがって、これが Cloudflare インフラストラクチャによって保護されている実際の C2 サーバーの IP アドレスである可能性があります。
まとめ
ドメインフロンティングは、DNS フィルタリングによる保護を回避するために攻撃者が使用する手法です。今回の攻撃では、コンテンツの提供に使用するホストをプロキシに指示するために Cloudflare などのコンテンツ配信ネットワークで使用されている仕組みを利用して、悪意のある Cobalt Strike ビーコンが設定されています。
起動されたビーコンは、Cloudflare インフラストラクチャでホストされているレピュテーションの高い正規ドメインに対する DNS リクエストを送信します。また、後続の HTTP リクエストヘッダーを変更し、攻撃者が制御するホストにトラフィックを誘導するように CDN に指示します。
Cobalt Strike などの攻撃ツールを使用したドメインフロンティング攻撃である可能性を突き止めるためには、たとえレピュテーションの高いドメインに対するものであったとしてもネットワークトラフィックを監視する必要があります。Cobalt Strike ビーコンと Meterpreter ステージャは、さまざまな攻撃者に頻繁に利用されます。こうしたマルウェアの動作を検出するため、XDR ツールをエンドポイントに導入することをお勧めします。
カバレッジ
今回の脅威は、以下の製品で検出してブロックすることが可能です。
Cisco Secure Endpoint(旧 AMP for Endpoints)は、この記事で説明したマルウェアの実行を阻止するのに最適です。Cisco Secure Endpoint の無料トライアルはこちらからお申し込みください。Threat Defense Virtual、適応型セキュリティアプライアンス、Meraki MX など、
Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。
Cisco Secure Malware Analytics(旧 Threat Grid)は悪意のあるバイナリを特定し、Cisco Secure のすべての製品に保護機能を組み込みます。
Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。Umbrella の無料トライアルはこちらからお申し込みください。
今回の脅威を検出するために、以下の ClamAV 署名がリリースされました。
Win.Backdoor.CobaltStrike-9909816-0
オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.orgで購入可能な最新のルールパックをダウンロードすると、最新状態を維持できます。
IOC
ハッシュ
658d550322cefa6efc51fbfd1a3e02839d1e519a20f8f17f01c534c0eaf36f27
e806e55713b9e46dc7896521ffb9a8b3abaa597147ea387ff2e93a2469546ba9
a0aec3e9cb3572a71c59144e9088d190b4978056c5c72d07cb458480213f2964
ネットワーク IOC
ホスト
test[.]softlemon[.]net
dark-forest-002.president[.]workers[.]dev
IP アドレス
193[.]135[.]134[.]124
URL
hxxp://test[.]softlemon[.]net:8081/api/3
hxxp://test[.]softlemon[.]net/
tcp://test[.]softlemon[.]net:8080/
hxxps://193[.]135[.]134[.]124:8443
hxxp://193[.]135[.]134[.]124:8080
hxxp://193[.]135[.]134[.]124:8081
本稿は 2021 年 11 月 16 日に Talos Group のブログに投稿された「Attackers use domain fronting technique to target Myanmar with Cobalt Strike」の抄訳です。