- Cisco Talos は、北朝鮮政府が支援する攻撃グループの 1 つを「UAT-5394」として追跡しており、同グループが使用している可能性が高いインフラストラクチャ(ステージングサーバー、コマンド & コントロール(C2)サーバー、攻撃者がインプラントのテストに使用しているテストマシンなど)を公開しています。
- 攻撃グループのインフラストラクチャを Talos で分析したところ、C2 サーバーとステージングサーバーを行き来して、新しいインフラストラクチャの設置や既存のサーバーの変更を行っていました。
- この攻撃は、オープンソースの XenoRAT マルウェアの亜種を配布するものです。Talos が「MoonPeak」と呼んでいるこの亜種はリモートアクセス型トロイの木馬(RAT)であり、攻撃者によって積極的に開発が進められています。
- これまでに Talos が発見した MoonPeak マルウェアのサンプルと XenoRAT の比較分析は、攻撃者によってフォークされた後のマルウェアファミリの進化を示しています。
Cisco Talos は、「MoonPeak」という新たなリモートアクセス型トロイの木馬(RAT)ファミリを発見しました。XenoRAT ベースのマルウェアであり、Talos が「UAT-5394」と呼んでいる北朝鮮の攻撃者グループによって積極的に開発が進められています。攻撃で使用されたインフラストラクチャを分析したところ、UAT-5394 のインフラストラクチャとのさらなる関連性と、攻撃者の新たな戦術、手法、手順(TTP)が明らかになりました。
AhnLab 社が最近のレポートで、オープンソースの RAT ファミリである XenoRAT の初期の亜種を使用したスピアフィッシング攻撃を公開しましたが、この亜種は Talos が「MoonPeak」として追跡しているものへと進化しました。
一連の活動は、北朝鮮政府の支援を受けている APT グループ「Kimsuky」と TTP やインフラストラクチャのパターンが一部共通していますが、この攻撃を同グループと関連付ける実質的な技術的証拠はありません。
Kimsuky は 2024 年以降、インフラストラクチャとツールを急速に進化させ、アップグレードしています。この特定の攻撃で新しい RAT が開発され使用されていることから、次の 2 つの可能性を考慮する必要があります。
- 実際は UAT-5394 が Kimsuky(または Kimsuky のサブグループ)であり、QuasarRAT を MoonPeak に置き換えている(Talos は UAT-5394 が最終的に XenoRAT と MoonPeak を使用するようになる前に、QuasarRAT C2 サーバーを積極的に設置し、運用していたことを確認しています)。
- UAT-5394 は、北朝鮮の APT 組織内の Kimsuky とは別のグループであり、Kimsuky から TTP とインフラストラクチャ パターンを借用している。
Talos では、このマルウェア攻撃が Kimsuky による攻撃である、または UAT-5394 は実際のところ北朝鮮の APT 組織内で活動している別のグループである、と断定できるだけの情報が得られるまでは、当面の間、この一連の活動を UAT-5394 という名のもとで行われている独立した攻撃とみなします。
Talos の調査により、MoonPeak の新しいバージョンを作成するために使用された、テストおよびステージングのインフラストラクチャが明らかになりました。C2 サーバーは、悪意のあるアーティファクトをダウンロード用にホストしています。このアーティファクトはその後、攻撃をサポートするための新しいインフラストラクチャにアクセスし、設定を行うために使用されます。また、複数の事例において、攻撃者が既存のサーバーにアクセスしてペイロードを更新し、MoonPeak の感染から収集したログや情報を取得することも確認されています。攻撃者は、他のサーバーからサーバーにアクセスするだけでなく、VPN ノードからもインフラストラクチャにアクセスしていました。
UAT-5394 のインフラストラクチャのマッピング
この攻撃に関連するインフラストラクチャをマッピングした Talos の分析により、攻撃者が所有、運用、管理する新しいサーバーが多数あることが判明しました。このインフラストラクチャには、リモートアクセスサーバーや C2 サーバー、ペイロードをホストするサイト、さらには潜在的な標的に配布する前に攻撃者が MoonPeak インプラントをテストするために使用したテスト用の仮想マシンなどが含まれます。
インフラストラクチャの全体像は次のようにマッピングできます。
過去 2 か月間の UAT-5394 の活動から、この攻撃者が使用する複数のサーバー間の相互接続性がわかります。
クラウドサービスから攻撃者所有のインフラストラクチャ(95[.]164[.]86[.]148)への移行
2024 年 6 月 11 日以降、サポート インフラストラクチャの設置に関して、攻撃者の戦術に明確な変化が見られました。UAT-5394 は悪意のあるペイロードを合法的なクラウド ストレージ プロバイダー上でホストしていましたが、AhnLab 社の情報公開後、自分たちが所有、管理しているシステムとサーバーに移行しました。サービスプロバイダーによってクラウド拠点がシャットダウンされる可能性があり、感染を維持する目的でこの移行が行われたと考えられます。
95[.]164[.]86[.]148 は最初期のサーバーの 1 つで、遅くとも 2024 年 6 月 12 日以降、UAT-5394 が悪意のあるアーティファクト(AhnLab 社の情報開示に記載)をホストするために設定し、積極的に使用していました。このサーバーは、2024 年 7 月 4 日までは、ポート 9999 で MoonPeak の C2 サーバーとして機能していました。この間、この C2 サーバーは 27[.]255[.]81[.]118(攻撃者が登録した悪意のある複数のドメインを解決する UAT-5394 の別の IOC)によって RDP 経由でアクセスされていました。
2024 年 7 月 5 日、攻撃者は 95[.]164[.]86[.]148 を使用して、悪意のあるもう 1 つのサーバーである 167[.]88[.]173[.]173 に RDP 接続しました。このサーバーは、ポート 9966 で MoonPeak の C2 サーバーとしてすでに機能していました。この 167[.]88[.]173[.]173 への RDP 経由でのアクセスにより、ポート 9936 上に MoonPeak の 2 つめの C2 サーバーが展開されました。
さらに、2024 年 6 月 22 日から 7 月 2 日の間に、MoonPeak の C2 サーバー(95[.]164[.]86[.]148)が 84[.]247 [.]179 [.]77:443 に接続していたことも注目に値します。84[.]247 [.]179 [.]77 は、別のオープンソース RAT ファミリである QuasarRAT の既知の C2 サーバーであり、シリアル番号「8cf5fb326e1e6d3015c3846f09c93b」の SSL 証明書をホストしています。証明書の CN は「Quasar Server CA」となっています。Talos は、MoonPeak のサーバーが QuasarRAT に感染していた可能性があり、それによって攻撃者は QuasarRAT の C2 から C2 へのアクセスを維持する並行手段を持っていたと考えていますが、確信はありません。
極めて重要なサーバー「167[.]88[.]173[.]173」
167[.]88[.]173[.]173 は変更の頻度が高いサーバーで、2 か月足らずの間に 4 回もオペレーティングシステムと Web サーバーが変更されています。パッシブ DNS データを見ると、これは Gamaredon APT が所有する Linux サーバーのように見えます。Gamaredon APT は、ウクライナ保安庁(SSU)がロシア連邦保安庁(FSB)との関連を疑っている脅威グループです。しかし Talos の分析で、この IP を UAT-5394 が所有し管理していたと思われる期間が判明しました(かなりの確信があります)。
2024 年 6 月 30 日から 7 月 8 日の間、このサーバーは Windows Server 2022 オペレーティングシステムを搭載しており、UAT-5394 が所有していました。この期間(具体的には 2024 年 7 月 2 日)に、UAT-5394 はこの C2 のポート 9966 を指す MoonPeak v2 マルウェアのサンプルをコンパイルしています。
同じ日に、他の 2 つの IP アドレス(45[.]87[.]153[.]79 と 45[.]95[.]11[.]52)からも、ポート 9936 と 9966 を介してこの IP へのアクセスがありました。両ポートは、攻撃者によって作成された MoonPeak マルウェアが使用する C2 ポートです。AS 44477(Stark Industries Solutions Ltd.)に属するこの 2 つの IP アドレスは両方とも重要です。なぜなら、攻撃者がインプラントをテストするために使用するテスト用の仮想マシンであることが後で実証されるからです。
また、この新しい MoonPeak C2 サーバーが UAT-5394 の管理下にあった間、他の 2 つのリモート IP アドレス(80[.]71[.]157[.]55 と 95[.]164[.]86[.]148)からも、RDP(ポート 3389)経由で攻撃者からアクセスされていました。
2 つの C2 サーバー間のリンクを確立する中間システム「80[.]71[.]157[.]55」
167[.]88[.]173[.]173 が、UAT-5394 が所有する悪意のあるドメイン pumaria[.]store に解決され、SSL 証明書をホストしていることを Talos は発見しました。その後、2024 年 7 月 11 日には、このドメインは 104[.]194[.]152[.]251 に解決されました。これと同じ日に、攻撃者はテスト用の仮想マシンの 1 つで別のインプラントをテストし、このインプラントはポート 8936 でこの IP に接続しました。これは別の XenoRAT 感染であることから、104[.]194[.]152[.]251 は、攻撃者が設置した新たな MoonPeak C2 だということがわかります。
さらに、UAT-5394 の別のテストマシン(80[.]71[.]157[.]55)も 2024 年 7 月 8 日にポート 443 を介してこの IP に接続して通信していた証拠も見つかりました。感染ログとネットワーク分析に基づき、このシステム(80[.]71[.]157[.]55)が他のシステムにリモートアクセスしていただけでなく、2024 年 1 月以降に MoonPeak の感染テストにも使用されていたこと、および 104[.]194[.]152[.]251 との HTTPS(443)通信が感染テストの 1 つであることを、Talos はある程度確信しています。
分析の結果、104[.]194[.]152[.]251 は MoonPeak マルウェアと通信するための悪意のある C2 サーバーであり、攻撃者は悪意のある操作でこのシステムを使用する準備を行い、2024 年 7 月 8 日までに使用できる状態になっていたと考えられます。
C2 から C2 へ:新たに作成された MoonPeak C2 を発見
2024 年 6 月から 7 月にかけて Talos が 104[.]194[.]152[.]251 を分析したところ、UAT-5394 のものと思われる pumaria[.]store ドメインおよび yoiroyse[.]store ドメインに解決されていることがわかりました。
2024 年 7 月 11 日には、UAT-5394 の感染テスト用マシンの 1 つ(45[.]87[.]153[.]79)がポート 8936(MoonPeak v2 で使用されているものと同じポート)を介してこのサーバーと通信していることも確認され、104[.]194[.]152[.]251 が MoonPeak C2 をホストしているという Talos の判断を裏付けることになりました。
また、2024 年 7 月 11 日に攻撃者がこのシステムを使用して RDP(ポート 3389)経由で別の IP アドレス(91[.]194[.]161[.]109)にアクセスし、この IP アドレスをマルウェアと MoonPeak C2 の最新ホストとして設定したことも判明しました。
MoonPeak の最新 C2 サーバー「91[.]194[.]161[.]109」が登場
91[.]194[.]161[.]109 は、MoonPeak を最終的に標的に配布する感染チェーンを実行するためのスクリプトなど、悪意のある複数のアーティファクトをホストしています。
このサーバー上で発見された MoonPeak の最新バージョンは 2024 年 7 月 16 日に作成されたもので、ポート 8936 を介してサーバーに接続します。
同じ日に、攻撃者のテストマシンの 1 つ(45[.]95[.]11[.]52)がこの C2 サーバーと通信を開始したことが確認されています。
このタイムラインに基づくと、攻撃者は MoonPeak インプラントを作成し、C2 のコンポーネントを設定した後、テスト用の仮想マシン上で MoonPeak を実行し、亜種が正しく機能するかテストしたと考えられます。
この MoonPeak サーバーは、MoonPeak に至る感染チェーンの他のアーティファクトをホストしています。以下のものです。
- PHP ファイル:与えられた「id」の値に基づいて悪意のあるアーティファクトを提供します。
- PowerShell スクリプト(calc[.]txt):リモートホストから RTF ファイルを取得するためのもの。RTF がダウンロードされ、最初の 6 バイトが GZIP ヘッダーに置き換えられます。この GZIP に、感染したエンドポイントで実行される MoonPeak マルウェアが含まれています。
- 上記とは別の PowerShell スクリプト:GZIP ヘッダーのバイトを RTF のバイトに置き換えるためのもの。このスクリプトは GZIP を RTF に変換してサーバー上に保存します。
インプラントと感染チェーンをテストするための仮想マシン
Talos は、パブリック IP 上でホストされている 2 台の仮想マシンが、マルウェアに設定されたポートを介してさまざまな MoonPeak C2 サーバーに接続している実例を複数発見しました。
特定の C2 ポートを介して通信が行われた時期は、この攻撃でこれまでに発見されたさまざまな MoonPeak サンプルがコンパイルされた時期と対応しています。
両仮想マシン(45[.]87[.]153[.]79 と 45[.]95[.]11[.]52)は、遅くとも 2024 年 7 月 2 日以降、ポート 9966、9936、8936、9999 を介して MoonPeak の感染テストに使用されています。
3 台目のテストマシンである 80[.]71[.]157[.]55 も UAT-5394 によって使用されましたが、これは感染のテストと C2 サーバーへの RDP 接続という 2 つの目的を持つマシンです。
回避に向かってゆっくり進化する MoonPeak マルウェア
MoonPeak のサンプルを分析した結果、マルウェアとそれに対応する C2 コンポーネントが進化していることが明らかになりました。当然、攻撃者はインプラントの亜種(新しいバージョン)をテストマシンに何度も展開しています。MoonPeak の継続的な進化に伴い、攻撃者はインフラストラクチャの設定を新しくしています。MoonPeak の新しいバージョンはそれぞれ次の 2 つの点で変更されています。
- 検出と識別をさらに厄介にするのに十分な程度の難読化が追加で導入されています。
- MoonPeak マルウェアと C2 サーバーに対する不正な接続や操作を防ぐために、マルウェアの通信と周辺特性および対応する XenoRAT サーバーのコードに必要十分な調整が加えられています。簡単に言うと、攻撃者は MoonPeak の特定のバージョンが C2 サーバーの特定のバージョンでのみ動作するようにしています。
時間経過に伴う MoonPeak の進化
MoonPeak は、2023 年 10 月頃に GitHub で公開された XenoRAT のオープンソースのコードがベースになっています。MoonPeak にはオリジナルの XenoRAT の大半の機能が含まれていますが、Talos で分析したところ、この亜種全体にわたり一貫して変更が加えられていることが確認されました。これは攻撃者がオープンソースのバージョンとは別にコードを修正、進化させていることを示しています。
この分析で使用したサンプルには、Ahnlab 社によって報告されたサンプルと一致する特性に基づいて発見されたもの(Talos で「MoonPeak v1」と呼んでいるもの)と、Talos が独自に発見したサンプル(Talos で「Moonpeak v2」と呼んでいるもの)があります。これらのサンプルを相互に比較し、またオリジナルのソースコードから自分たちでコンパイルしたサンプルとも比較し、それぞれの変更の影響を把握しました。
Talos は、UAT-5394 が攻撃の初期段階で作成、使用したサンプルと一致する MoonPeak のソースコードのバージョンも発見しました。後述するように、これは Ahnlab 社からも報告されています。
XenoRAT アーキテクチャの理解
MoonPeak で実装された変更について詳細を見ていく前に、攻撃者が行ったいくつかの変更の理由を理解するために、XenoRAT がどのように動作するかを簡単に説明する必要があります。開発者がリリースしたオリジナルのソースコードには Visual Studio のプロジェクトが含まれており、その中には、RAT クライアントのスタブ、メインのサーバーコンポーネント、および C2 サーバーが RAT に展開できる追加プラグインのコードがあります。
サーバーはスタブに基づいて新しい RAT クライアントを作成します。C2 サーバーのアドレスやポート、ミューテックス名、スタートアップの設定、生成されたマルウェアサンプルの PE バージョンのプロパティなどの機能を変更できます。
インプラントがこのサーバーに通信を返すには、適切な暗号化パスワードと認証文字列を提供し、適切な圧縮プロトコルを使用する必要があります。圧縮プロトコルはサーバーとクライアントのソースコードで定義されており、互いに一致している必要があります。この設定が一致していないと、クライアント/RAT/インプラントが C2 サーバーと実質的に通信できなくなります。そのため、設定に不一致がある場合は、すべての XenoRAT サンプルがすべての C2 サーバーと互換性があるとは限りません。
サーバーは、クライアントによって実行される追加プラグインを配布することもできますが、これらのプラグインを適切に実行するには、クライアントに存在するコードが必要です。これはプラグインのソースコードを見ればわかることで、実行前に必要に応じてクライアントの名前空間を読み込むようになっています。
インプラントが使用する名前空間が、サーバーとプラグインのコンパイル時に使用した名前空間とは異なる場合、クライアントが正しいパスワードと認証文字列を提供しても、サーバーがクライアントにプラグインを送信しようとするたびにエラーが発生します。
MoonPeak での XenoRAT ソースコードに対する変更
MoonPeak のサンプルで確認された最初の変更はバージョン 1 とバージョン 2 のすべてのサンプルで一貫しており、クライアントの名前空間が「xeno rat client」から「cmdline」に変更されています。この単純な変更により、MoonPeak インプラントをオリジナルのサーバーコードに接続しようとすると失敗します。その逆も同様で、Xeno RAT の他の亜種は MoonPeak サーバーに接続しても動作しません。
これは、戦術的な回避を可能にするために攻撃者が RAT に加えた更新の典型的な例です。名前空間を変更することで、不正なインプラントが攻撃者のインフラストラクチャに接続できなくなり、さらに攻撃者自身のインプラントが標準設定の XenoRAT C2 サーバーに接続できなくなります。
MoonPeak のすべての亜種で一貫しているもう 1 つの変更は、通信プロトコルの暗号化の前に圧縮を強制的に使用することです。オリジナルのソースコードでは、暗号化の前または後に圧縮を使用するかどうかを定義する変数を使用しています。修正されたコードでは、常に暗号化の前に圧縮が行われることを前提としており、代替コードはソースプロジェクトから削除されました。
オリジナルのコード
修正されたコード
この修正は MoonPeak のすべてのバージョンに含まれているので、開発初期、つまり 2024 年 1 月から 2 月頃に MoonPeak のソースコードに変更が加えられたと考えられます。
これらのサンプルが作成されたタイムラインを作成しようとしたところ、MoonPeak v1 のサンプルには「コンパイル日」フィールドに無効なタイムスタンプが含まれていることに気づきました。
Microsoft 社によると、このアーティファクトは XenoRAT のソースコードにデフォルトで含まれている「/deterministic」パラメータでコンパイルされているサンプルに存在します。このパラメータは、タイムスタンプフィールドを使用して、コンパイル中に使用されたすべてのオプションのハッシュを格納します。つまり、これらのサンプルのコンパイル日については、サンプルが VirusTotal に送信された日付を使用する必要がありました。バージョン 1 のすべてのサンプルは、Visual Studio のデフォルト設定であるこのパラメータでコンパイルされていました。一方、バージョン 2 のサンプルには有効なタイムスタンプがあり、オプションなしでコンパイルされたことがわかります。この変更は、UAT-5394 によって開発環境で行われたものです。以下の表に、サンプルの作成日をまとめています。
ハッシュ | バージョン | 作成日 |
facf3b40a2b99cc15eee7b7aee3b36a57f0951cda45931fcde311c0cc21cdc71 | MoonPeak_V1 | 2024/2/28 5:42 AM |
b8233fe9e903ca08b9b1836fe6197e7d3e98e36b13815d8662de09832367a98a | MoonPeak_V1 | 2024/3/1 5:20 AM |
44e492d5b9c48c1df7ef5e0fe9a732f271234219d8377cf909a431a386759555 | MoonPeak_V1 | 2024/3/1 5:35 AM |
97ba8d30cf8393c39f61f7e63266914ecafd07bd49911370afb866399446f37d | MoonPeak_V1 | 2024/3/2 5:31 AM |
0b8897103135d92b89a83093f00d1da845a1eae63da7b57f638bab48a779808e | MoonPeak_V1 | 2024/5/17 9:30 PM |
148c69a7a1e06dc06e52db5c3f5895de6adc3d79498bc3ccc2cbd8fdf28b2070 | MoonPeak_V2 | 2024/7/2 3:55:41 AM |
1ad43ddfce147c1ec71b37011d522c11999a974811fead11fee6761ceb920b10 | MoonPeak_V2 | 2024/7/2 2:49:59 AM |
458641936e2b41c425161a9b892d2aa08d1de2bc0db446f214b5f87a6a506432 | MoonPeak_V2 | 2024/7/2 3:39:03 AM |
8a4fbcdec5c08e6324e3142f8b8c41da5b8e714b9398c425c47189f17a51d07b | MoonPeak_V2 | 2024/7/2 6:06:17 AM |
293b1a7e923be0f554ec44c87c0981c9b5cf0f20c3ad89d767f366afb0c1f24a | MoonPeak_V2 | 2024/7/16 2:23:22 AM |
2024 年 5 月頃にコンパイルされた 0b8897103135d92b89a83093f00d1da845a1eae63da7b57f638bab48a779808e 以外は、これらのサンプルは互いに近い時期に作成されたことがわかります。このサンプルは MoonPeak v1 と同じ C2 サーバー(159[.]100[.]29[.]122)を共有していますが、ポート(8811)が異なっています。これは、2 つのサンプルセット間の興味深い関連性を示唆するものであり、将来の亜種にコードベースの変更が加えられる兆候が現れ始めていることから、攻撃者が RAT コードを積極的に更新していたことがわかります。
このサンプルの第 1 の特徴は、C2 サーバーを認証するコードが含まれていないことです。このコードはクライアント/RAT から意図的に削除されており、サーバーポートに接続してすぐに終了するコードだけが残っています。この変更により RAT は期待どおりに動作しなくなるため、このバージョンはテストサンプルとして意図されたものであり、実際の悪意のあるサンプルの展開前にコードの変更をテストするために使用されたと考えられます。
このバージョンでは、MoonPeak v2 でのみ確認された変更も導入されていますが、これは RAT が使用するユーティリティ関数の格納に使用されるクラス名の変更です。このクラスは、オリジナルのソースコードおよび他のすべての MoonPeak v1 サンプルでは「Utils」と呼ばれていますが、このサンプルと以降のすべての MoonPeak v2 サンプルでは「Tools」に変更されています。
この時点から、難読化を改善し、分析を妨害するための他の変更が MoonPeak v2 サンプルに導入されました。
ハッシュ | バージョン | StrObf の使用 | ClassObf の使用 | 作成日 |
1ad43ddfce147c1ec71b37011d522c11999a974811fead11fee6761ceb920b10 | MoonPeak_V2 | × | ○ | 2024/7/2 2:49:59 AM |
458641936e2b41c425161a9b892d2aa08d1de2bc0db446f214b5f87a6a506432 | MoonPeak_V2 | × | ○ | 2024/7/2 3:39:03 AM |
148c69a7a1e06dc06e52db5c3f5895de6adc3d79498bc3ccc2cbd8fdf28b2070 | MoonPeak_V2 | ○ | ○ | 2024/7/2 3:55:41 AM |
8a4fbcdec5c08e6324e3142f8b8c41da5b8e714b9398c425c47189f17a51d07b | MoonPeak_V2 | ○ | ○ | 2024/7/2 6:06:17 AM |
293b1a7e923be0f554ec44c87c0981c9b5cf0f20c3ad89d767f366afb0c1f24a | MoonPeak_V2 | ○ | ○ | 2024/7/16 2:23:22 AM |
これらのサンプルでは、MoonPeak でステートマシンを使用するようになりました。ステートマシンはタスクを非同期で実行するために使用され、元の関数は実際の実装をステートマシンのメンバーメソッドに委譲するようになります。dnSpy のような .NET 分析ツールはステートマシンを認識しますが、ステートマシンに委譲されている関数の実際の実装は隠されているため、マルウェアのリバースエンジニアリングがさらに厄介になります。ステートマシンの使用は、マルウェア分析の試みを阻止または妨害するために UAT-5394 が使用した戦術であると考えられます。
ただし、ILSpy を使用することで、アナリストはステートマシンとコードの実際の実装を確認できます。
上記のステートマシンにおける実際の実装は、呼び出されたクラスに存在するオリジナルのコードを実行しました。
上記の各亜種では、関数の数が変更され、クラス名もより複雑になっています。Talos が発見したサンプルでは、これらの変更が短期間に導入されたことがわかります。後から追加された変更は、コードで使用されている文字列の難読化でした。この難読化は、.NET リソースオブジェクトに存在するキーで単純な AES 暗号化を行い、Unicode 文字列のように見せかけるものです。
この変更により、C2 の IP やポートなどの情報を抽出する前に文字列の復号が必要になるため、分析の負荷が高くなります。
MoonPeak のソースコード
調査中、XenoRAT のソースコードのコピーが入った ZIP ファイルが見つかりましたが、コードをよく調べると、以前発見した MoonPeak v1 サンプルに似た多くの特徴がありました。
最初に気づいたのは、クライアントの名前空間が「cmdline」に変更されていたことです。これは前に説明したように、意図しないクライアントと攻撃者のサーバーとの通信、またその逆で、MoonPeak と意図しないサーバーとの通信を防ぐために行われたものです。
プロジェクトフォルダには、デバッグバージョンとリリースバージョンの両方のコンパイル済みバイナリもいくつか含まれていました。ソースコード自体は C2 がローカルホスト IP 127[.]0[.]0[.]1 にハードコードされていたにもかかわらず、コンパイル済みのバイナリはすべて MoonPeak v1 で使用される IP に C2 が設定されていました。以下のとおりです。
- private static string ssssiiiii = “159[.]100[.]29[.]122“;
もう 1 つの類似点は、プロジェクトプロパティ内のアセンブリ情報ページにありました。このページには、プロジェクト名、説明、会社、著作権情報、アセンブリ GUID の詳細が含まれています。たとえば以下は、オリジナルの XenoRAT ソースコードに含まれている内容です。
一方、MoonPeak v1 のすべてのサンプルとフォークされたソースコード内のプロジェクトでは、異なる GUID を使用しています。
アセンブリタイトル(AssemblyTitle)が変更されており、ここにも、クライアントの名前空間に対する変更が反映されていることがわかります。しかし、MoonPeak v2 のサンプルでは、以前のサンプルとは異なる GUID とアセンブリの詳細が使用されています。
MoonPeak の事例のように、新しいマルウェアを一貫して使用していること、およびその進化の様子を時系列的に見てみると、UAT-5394 がより多くのツールを自分たちの戦力に追加し、強化し続けていることがわかります。UAT-5394 が新たなサポート インフラストラクチャを急速に構築していることは、同グループがこの攻撃を急速に拡散させ、より多くのドロップポイントと C2 サーバーの設置を目指していることを示しています。
カバレッジ
今回の脅威は、以下の製品で検出してブロックすることが可能です。
Cisco Secure Endpoint(旧 AMP for Endpoints)は、この記事で説明したマルウェアの実行を阻止するのに最適です。Cisco Secure Endpoint の無料トライアルはこちらからお申し込みください。
Cisco Secure Web Appliance の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、上述したような攻撃で使用されるマルウェアを検出します。
Cisco Secure Email(旧 E メールセキュリティ)は、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。Cisco Secure Email の無料トライアルはこちらからお申し込みください。
Threat Defense Virtual、適応型セキュリティアプライアンス、Cisco Meraki MX など、Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。
Cisco Secure Malware Analytics(Threat Grid)は、悪意のあるバイナリを特定し、シスコのすべてのセキュリティ製品に保護機能を組み込みます。
Cisco Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。Cisco Umbrella の無料トライアルはこちらからお申し込みください。
Cisco Secure Web Appliance(旧 Web セキュリティアプライアンス)は、危険性のあるサイトを自動的にブロックし、ユーザーがアクセスする前に疑わしいサイトを検査します。
特定の環境および脅威データに対する追加の保護機能は、Firewall Management Center から入手できます。
Cisco Duo は、ユーザーに多要素認証を提供し、承認されたユーザーのみがネットワークにアクセスできるようにします。
オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.org で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。
IOC
この調査の IOC は、こちらの GitHub リポジトリでも提供しています。
MoonPeak v1
0b8897103135d92b89a83093f00d1da845a1eae63da7b57f638bab48a779808e
2b35ef3080dcc13e2d907f681443f3fc3eda832ae66b0458ca5c97050f849306
4108c5096a62c0a6664eed781c39bb042eb0adf166fcc5d64d7c89139d525d4f
44e492d5b9c48c1df7ef5e0fe9a732f271234219d8377cf909a431a386759555
4599a9421e83fb0e2c005e5d9ac171305192beabe965f3385accaf2647be3e8e
58fdc1b6ce4744d6331f8e2efc4652d754e803cae4cc16101fc78438184995e6
97ba8d30cf8393c39f61f7e63266914ecafd07bd49911370afb866399446f37d
a80a35649f638049244a06dd4fb6eca4de0757ef566bfbe1affe1c8bf1d96b04
b8233fe9e903ca08b9b1836fe6197e7d3e98e36b13815d8662de09832367a98a
f4aa4c6942a87087530494cba770a1dcbc263514d874f12ba93a64b1edbae21c
facf3b40a2b99cc15eee7b7aee3b36a57f0951cda45931fcde311c0cc21cdc71
0ed643a30a82daacecfec946031143b962f693104bcb7087ec6bda09ade0f3cb
41d4f7734fbf14ebcdf63f51093718fd5a22ec38a297c0dc3d7704a3fb48b3f9
6a3839788c0dafe591718a3fb6316d12ccd8e82dbcb41ce40e66b743f2dd344d
MoonPeak v2
148c69a7a1e06dc06e52db5c3f5895de6adc3d79498bc3ccc2cbd8fdf28b2070
1ad43ddfce147c1ec71b37011d522c11999a974811fead11fee6761ceb920b10
458641936e2b41c425161a9b892d2aa08d1de2bc0db446f214b5f87a6a506432
8a4fbcdec5c08e6324e3142f8b8c41da5b8e714b9398c425c47189f17a51d07b
293b1a7e923be0f554ec44c87c0981c9b5cf0f20c3ad89d767f366afb0c1f24a
PowerShell スクリプト
6bf8a19deb443bde013678f3ff83ab9db4ddc47838cd9d00935888e00b30cee6
72a25d959d12e3efe9604aee4b1e7e4db1ef590848d207007419838ddbad5e3f
15eee641978ac318dabc397d9c39fb4cb8e1a854883d8c2401f6f04845a79b4b
3e39fc595db9db1706828b0791161440dc1571eaa07b523df9b721ad65e2369b
f928a0887cf3319a74c90c0bdf63b5f79710e9f9e2f769038ec9969fcc8ee329
27202534cc03a398308475146f6710b790aa31361931d4fe1b495c31c3ed54f7
ネットワーク IOC
167[.]88[.]173[.]173
95[.]164[.]86[.]148
80[.]71[.]157[.]55
84[.]247[.]179[.]77
45[.]87[.]153[.]79
45[.]95[.]11[.]52
104[.]194[.]152[.]251
yoiroyse[.]store
pumaria[.]store
27[.]255[.]81[.]118
212[.]224[.]107[.]244
27[.]255[.]80[.]162
nmailhostserver[.]store
210[.]92[.]18[.]169
91[.]194[.]161[.]109
nsonlines[.]store
本稿は 2024 年 08 月 21 日にTalos Group のブログに投稿された「MoonPeak malware from North Korean actors unveils new details on attacker infrastructure」の抄訳です。