外交官は要警戒: Cloaked Ursa がフィッシングにひとひねり

A pictorial representation of threat group Cloaked Ursa as a bear head within a circle, overlaid by the Ursa constellation

This post is also available in: English (英語)

概要

Cloaked Ursa (別名 APT29、UAC-0004、Midnight Blizzard/Nobelium、Cozy Bear) と呼ばれるロシア対外情報庁のハッカーは、世界中の外交使節を標的にすることで知られます。過去 2 年間、初期アクセス試行では、主に次のような外交活動をテーマにしたフィッシング ルアーが使用されてきました。

  • Notes verbale (Notes verbale 準公式の政府間外構コミュニケーション)
  • Embassies’ operating status updates (各大使館の運営状況に関するお知らせ)
  • Schedules for diplomats (外交官のスケジュール)
  • Invitations to embassy events (大使館イベントへのご招待)

この種のルアーは通常、業務の一環で日常的にこの手の大使館通信を扱う個人に送られます。これらのルアーは、勤務先組織を代表する標的に、ファイルを開かせることを目的としています。

最近、Unit 42 のリサーチャーは、その外交官が代表する国よりもむしろその外交官自身に的を絞ってルアーを使う例を観測しています。私たちは、 着任したばかりの外交官なら誰もが必要とするもの、つまり車両を使い、Cloaked Ursa がウクライナ国内の外交使節を標的にしていたことを特定しました。

私たちはキーウ (Kyiv) にある 80 以上の外国公館のうち少なくとも 22 を標的とする Cloaked Ursa を観測しました。侵害成功率がどの程度だったのかはわかっていませんが、米国英国が公式にロシア対外情報庁 (SVR) によるものとした持続的標的型攻撃 (APT) による隠密作戦として、この数は異例のものです。

これらのルアーが Cloaked Ursa に帰属するという私たちの評価は以下に基づいています。

  • ほかの既知の Cloaked Ursa によるキャンペーンや標的選定との類似性
  • Cloaked Ursa の既知の TTP (戦術・技術・手順) の利用
  • ほかの既知の Cloaked Ursa によるマルウェアとのコード重複

これまでにないタイプのこれらのルアーは、受信者が日常業務の一環としてではなく、自分自身のニーズや要望に基づいて添付ファイルを開くよう設計されたものです。

これらのルアーそのものは広く外交コミュニティ全体に使えるもので、より多くの標的に送信・転送できます。さらに外交コミュニティ内だけでなく組織のほかの人たちにも転送される可能性が高くなります。

これらの要因により、標的となった組織内での侵害成功率が全体的に高まります。外交上のやりとりをテーマとするルアーに完全に取って代わる可能性は低いですが、個人にフォーカスするこうしたルアーは、Cloaked Ursa に新たな機会と、スパイ活動の対象となる潜在的な標的をより幅広く提供するものです。

パロアルトネットワークス製品をご利用のお客様は以下の製品により本稿で取り上げた種類の脅威からの保護を受けています。

侵害の懸念があり弊社にインシデントレスポンスに関するご相談をなさりたい場合は、こちらのフォームからお問い合わせください(ご相談は弊社製品のお客様には限定されません)。

関連するUnit 42のトピック Russia, Ukraine, phishing
Cloaked Ursa APT グループの別名 APT29, UAC-0004, Midnight Blizzard/Nobelium, Cozy Bear

目次

「BMW 売ります」
「トルコの外交官: 地震への人道支援」
結論
IoC
サンプル
URL
既知のメール送信者
BMW の事例のペイロード: Dropbox と MS Graph の API トークンとシークレット
追加リソース
付録
BMW のキャンペーンの技術分析
トルコのキャンペーンの技術分析

「BMW 売ります」

Unit 42 のリサーチャーが観測したこれらの新しいキャンペーンのうち最新のものの 1 つは、ウクライナのキーウにいる外交官を攻撃する出発点として、正規の BMW の販売を使っていたようです。

このキャンペーンは、ある無害かつ正当な出来事から始まりました。2023年4月の中旬、あるポーランド外務省の外交官が「キーウにある中古 BMW 5シリーズ セダンを販売します」という正当な宣伝用チラシをさまざまな大使館にメールで送信しました。このファイルのタイトルはBMW 5 for sale in Kyiv - 2023.docxでした。

外交官という職務の性質上、彼らは世界中の任地で短期から中期の任務をローテーションするライフスタイルになりがちです。ロシア=ウクライナの武力紛争地域にあるウクライナは、そこに新たに任命される外交官に特異な課題を突きつけてきます。

新たな国ですごす間、私物を発送し、安全な宿泊施設やサービスを調達し、信頼できる個人の交通手段を手配するにはどうすればよいのでしょうか。信頼できる外交官が信頼できる車を売ってくれるなら、これは着任したばかりの者には僥倖となりそうです。しかしながら Cloaked Ursa はそこにチャンスを見出しました。

私たちは、メール受信者のメール サーバーを侵害したか、そのほか何らかの諜報活動を行ったかして、Cloaked Ursa がこの正規の広告チラシを手に入れ、観察したものと見ています。そしてこれに汎用的で誰にでも希求するフィッシング ルアーとしての価値を見出し、再利用しました。

2 週間後の 2023 年 5 月 4 日、Cloaked Ursa は不正改造版のチラシをキーウ中の複数の外交使節にメールで送信しました。不正に改ざんされたこれらのチラシ (図 1) はポーランドの外交官が送信したものと同じ名前の無害な Microsoft Word ドキュメントを使用しています。

画像 1 は、販売中の車を宣伝するメールで送信されたチラシです。見出しのテキストには「キーウで車売ります、値下げしました!!! BMW 5 (F10) 2.0、TDI、7,500ユーロ!!状態は非常に良く燃費も良いです」と書かれています。車の写真は前と後ろの2枚です。「さらに高品質の写真はこちら」に埋め込みリンクと短縮リンクが含まれています。チラシの下部には、モデル、年式、走行距離、エンジン、トランスミッション、色、パッケージ、価格、カスタム、連絡先情報などの車の統計情報が記載された表があり、名前と電話番号が記載されています。連絡先情報とナンバープレートは伏せてあります。
図1. BMW のキャンペーンで使用されたルアーの例 (SHA256 311e9c8cf6d0b295074ffefaa9f277cb1f806343be262c59f88fbdf6fe242517)

改ざん版の主な違いは、被害者が「より高品質の写真」を提供するリンクをクリックしたとき URL 短縮サービス (t[.]lytinyurl[.]com) が正規サイトにリダイレクトするところです。Cloaked Ursa は勝手にこのサイトを使い悪意のあるペイロードをダウンロードさせた可能性があります。

被害者がダウンロード内の「高品質の写真」(図 2) のいずれかを表示しようとすると、選択した画像が被害者の画面に表示されている間、マルウェアがバックグラウンドで静かに実行されます。

画像 2 は画像ファイルを装った Windows ショートカット ファイルのスクリーンショットです。列名は、Name (名前)、Date modified (変更日)、Type (タイプ)、Size (サイズ) です。画像はすべて .PNG で終わっていますが、すべて実態はショートカット ファイルです。別のスクリーンショットは、PNG ファイルの 1 つのプロパティを示しており、詳細タブにもそれがショートカットであることが示されています。
図2. 画像ファイルを装った Windows ショートカット ファイル

図 3 は実行フロー全体を示しています。

画像 3 は実行フローチャートです。さらなる HTML のダウンロードにつながるハイパーリンクから始まり、API ベースのコマンド&コントロール (C2) である Microsoft Graph と DropBox への最終ペイロード ビーコンで終わります。
図3. 実行フロー

これらの画像は実際には PNG 画像ファイルを装った Windows ショートカット ファイルです。

私たちは、このチラシの改ざん版を 2 バージョン観測しています。これらのバージョンの唯一の違いはそれぞれで使っている短縮 URL です。これらの URL は最終的には、彼らが勝手に使っている同一サイト (hxxps://resetlocations[.]com/bmw.htm) に被害者をリダイレクトします。

VirusTotal によると、本稿執筆時点でこのチラシのバージョンの 1 つ (SHA256: 311e9c8cf6d0b295074ffefaa9f277cb1f806343be262c59f88fbdf6fe242517) が複数のベンダーに「悪意のあるもの」として検出されていますが、もう 1 つののバージョン (SHA256: 8902bd7d085397745e05883f05c08de87623cc15fe630b36ad3d208f01ef0596) は検出されていません。このマルウェアの全容は付録から参照してください。

全体ではこのキャンペーンで Cloaked Ursa がキーウにある 80 以上の外国公館のうち少なくとも 22 を標的にしていることが観測されました(表 1)。実際に標的となった数はおそらくこれより多いでしょう。APT の場合、スコープを絞った隠密作戦が多いことを思えばこれは驚異的な数字です。

BMW のキャンペーンで Cloaked Ursa の標的となった既知の在キーウ大使館

  • アルバニア
  • アルゼンチン
  • カナダ
  • キプロス
  • デンマーク
  • エストニア
  • ギリシャ
  • イラク
  • アイルランド
  • クウェート
  • キルギス
  • ラトビア
  • リビア
  • オランダ
  • ノルウェー
  • スロバキア
  • スペイン
  • スーダン
  • トルコ
  • トルクメニスタン
  • 米国
  • ウズベキスタン

表1. BMW のキャンペーンで標的となった既知の大使館

私たちが観測した活動では、Cloaked Ursa は標的とした被害者の約 80% について、大使館が公開しているメール アドレスを使っていました。残り 20% は表層 Web では見つからない未公開メール アドレスで構成されていました。

このことは、この攻撃者が目的とするネットワークへのアクセスを最大化するため、収集済みのほかの情報も使って標的とする被害者リストを生成した可能性を示唆しています。このキャンペーンの標的となった組織の大半は大使館でした。ただし私たちは Cloaked Ursa がこの BMW のキャンペーンで在ウクライナのトルコ貿易省の代表らと大使館の両方を標的にしていたことを観測しています ( ticaret[.]gov[.]tr という勤務先のメール アドレスが使われた)。

このキャンペーンでは個人の勤務先アドレスに直接送信されたメールも少数ありましたが、標的型メールの宛先の大半はcountry.embassy@mfa[.]gov[.]xxのような大使館の代表アドレス宛のものでした。またこのキャンペーンの標的選定には細やかな配慮が見られますが、少なくとも 2 つのメール アドレスにエラーがあり、意図した標的には到達していませんでした。ただ全体としては、こうした代表メール アドレスを使ったことで、メールを読んでもらい、移動手段を探している大使館内の個人に渡してもらえる確率は高まった可能性があります。

私たちが観測した標的の大使館のいくつかは、無料のオンライン Web メール サービスにホストされたグループ メール経由で狙われていました。これらのサービスはある程度の保護は提供しますが、対象となる組織とその従業員に提供されるセキュリティの一部は外部団体にアウトソーシングされています。無料オンライン Web メールを利用すると、自身を狙う脅威の全体像を外交組織が観測・把握しづらくなり、同時に攻撃対象領域も増大してしまうなど、意図せぬ影響を生じさせかねません。

「トルコの外交官: 地震への人道支援」

私たちが観測したもうひとつ新たな Cloaked Ursa のキャンペーンは、2023 年の初め、2 月から 3 月の間ごろに、おそらくはトルコ外務省 (MFA) を標的としたものだったと思われます。このキャンペーンに関連する悪意のあるルアー メールを入手することはできませんでしたが、2023 年 2 月 21 日にトルコで発生した地震への人道支援に関するトルコ外務省のガイダンスを装う文書に関連していたことはわかっています。この 2 月下旬の地震はその 2 週間前の大地震ですでに壊滅的被害を受けていた地域にさらなる被害を与え、最終的には5万人以上が死亡し590万人以上が避難を余儀なくされました。

トルコ外務省を標的とするこの 2 つめのキャンペーンは、あるPDFをもとに特定することができました(図 4)。この PDF は、ダウンロードされたペイロード (SHA256: 0dd55a234be8e3e07b0eb19f47abe594295889564ce6a9f6e8cc4d3997018839) に含まれていたものです。このマルウェアの全要は本稿末の付録を参照してください。

災害や災害によって高まった同情心をあたら無駄にする手はありません。Cloaked Ursa はこの悲劇に対する外務省の人道支援ガイダンスをルアーに使うことを「標的から確実に高い関心を得る方法」と捉えていた可能性が高いでしょう。このガイダンスの受信者は愛国的義務に駆られ、自国とその犠牲者を支援する外務省の期待に応えるだろう、というわけです。またこのルアーのもつタイムリーさや重要性を考えれば、これはほぼ確実に、関心を寄せる関係者から組織内でほかに興味をもつだろう人々に転送されることになるでしょう。

画像 4 はメモからの抜粋です。これはトルコ語で書かれています。
図4. トルコ外務省のガイダンス(抜粋)

結論

外交使節団はスパイ活動において常に価値の高い標的です。ロシアによるウクライナ侵攻から16か月が経過した今、ウクライナと同盟国の外交努力を巡る情報がロシア政府にとって最優先事項であることはほぼ確実でしょう。

上記キャンペーンが示したように、APT (持続的標的型攻撃) はスピア フィッシングを含む手口を継続的に変更して攻撃の有効性を高めていることを外交官は意識しておかねばなりません。彼らはあらゆる機会を捉えて被害者を誘惑して危殆化しようとします。ウクライナとその同盟国は情報の安全性・機密性の確保のため、サイバースパイの脅威に対してとくに警戒を続ける必要があります。

推奨される対策

  • 新たに外交使節団に任命された外交官と職員は着任前に同地のサイバーセキュリティ脅威に関する研修を受けてください。この研修にはその地域の APT が使う特定の戦術・技術・手順 (TTP) を含める必要があります。
  • URL 短縮サービスを使う場合はとくに用心して URL のリダイレクト先をよく確認してください。
  • ダウンロードには常に用心してください。一見無害ないし合法的に見えるサイトからであってもです。APT は日常的に正規サイトやサービスを悪意のある目的で使っています。
  • Web ブラウザーを開く必要がある添付ファイルについては、常に特別な注意を払ってください。たとえば.hta.htm.html.mht.mhtml.svg.xht.xhtmlといったファイル拡張子がそれに該当します。
  • 常にファイル拡張子の種類を確認し、開こうとしているファイルの種類を確認してください。ファイル拡張子が一致していない場合やファイルの種類をうやむやにしようとしている場合、それは悪意のあるファイルである可能性が非常に高くなります。
  • 添付ファイルのついたメールを受信した場合やメール内のリンクからファイルをダウンロードした場合、拡張子が.zip.rar.7z.tar.isoなどのアーカイブに隠しファイルやディレクトリーがないか常に探してください。隠しファイルやディレクトリーが存在する場合、そのアーカイブが悪意のあるものであることを示す可能性があります。
  • 原則として JavaScript を無効にすることを検討してください。

パロアルトネットワークス製品をご利用のお客様は以下の製品により本稿で取り上げた種類の脅威からの保護を受けています。

侵害の懸念があり弊社にインシデントレスポンスに関するご相談をなさりたい場合は、こちらのフォームからご連絡いただくか、infojapan@paloaltonetworks.comまでメールにてご連絡いただくか、下記の電話番号までお問い合わせください(ご相談は弊社製品のお客様には限定されません)。

  • 北米フリーダイヤル: 866.486.4842 (866.4.UNIT42)
  • 欧州: +31.20.299.3130
  • アジア太平洋: +65.6983.8730
  • 日本: +81.50.1790.0200

パロアルトネットワークスは、この活動を Microsoft と Dropbox に開示しました。

パロアルトネットワークスはファイル サンプルや侵害の兆候などをふくむこれらの調査結果をCyber Threat Alliance (CTA) のメンバーと共有しました。CTA のメンバーはこのインテリジェンスを使って、お客様に保護を迅速に提供し、悪意のあるサイバー攻撃者を体系的に阻害できます。詳細についてはCyber Threat Allianceにてご確認ください。

IoC (侵害指標)

サンプル

  • 311e9c8cf6d0b295074ffefaa9f277cb1f806343be262c59f88fbdf6fe242517
  • 8902bd7d085397745e05883f05c08de87623cc15fe630b36ad3d208f01ef0596
  • 47e8f705febc94c832307dbf3e6d9c65164099230f4d438f7fe4851d701b580b
  • 79a1402bc77aa2702dc5dca660ca0d1bf08a2923e0a1018da70e7d7c31d9417f
  • 38f8b8036ed2a0b5abb8fbf264ee6fd2b82dcd917f60d9f1d8f18d07c26b1534
  • 706112ab72c5d770d89736012d48a78e1f7c643977874396c30908fa36f2fed7
  • c62199ef9c2736d15255f5deaa663158a7bb3615ba9262eb67e3f4adada14111
  • cd4956e4c1a3f7c8c008c4658bb9eba7169aa874c55c12fc748b0ccfe0f4a59a
  • 0dd55a234be8e3e07b0eb19f47abe594295889564ce6a9f6e8cc4d3997018839
  • 60d96d8d3a09f822ded0a3c84194a5d88ed62a979cbb6378545b45b04353bb37
  • 03959c22265d0b85f6c94ee15ad878bb4f2956a2b0047733edbd8fdc86defc48

URL

  • hxxp://tinyurl[.]com/ysvxa66c
  • hxxp://t[.]ly/1IFg
  • hxxps://resetlocations[.]com/bmw.htm
  • hxxps://tinyurl[.]com/mrxcjsbs
  • hxxps://simplesalsamix[.]com/e-yazi.html
  • hxxps://www.willyminiatures[.]com/e-yazi.html

既知のメール送信者

  • dawid.tomaszewski@resetlocations[.]com
  • ops.rejon4@kazmierz[.]pl

BMW の事例のペイロード: Dropbox と MS Graph の API トークンとシークレット

  • Teams_test
  • 840aae0d-cd89-4869-bce1-94222c33035e
  • M.R3_BL2.-CYZcTMwdTTD5X9lMxE*wscQcrZ56RUoklIvNkUw5pW1kJ9tfqvv1vRT8VgOb8uXtJTPB3E2CKV!pmm4V6DF8TRvo60QFCxMnUAnuv3jJ78TqHMdxPHONUDeI!B4DbLyg6ZjPZzghLXtmTZqzxOfpCUInOnhFJGoiL6kob7hKVhxm2dJQ9whK9zORxKg0FAnmd0tAR9lKJJaIUkVLcQ939EG2EKG9xsVVWwL04kX0092j7r2jo0rQR9Nqe4DuG0cRAMoODktAbTiuIsehkO5bM0ZuHsDuRr6mMoJrpwbqP0nt5PqJ*E7TS2scdYYOxnQ0mQ$$
  • iofd62cx8jy9vyp
  • sx6qt5iw2t9y7r8
  • GCy8UdFrumsAAAAAAAAAASYLcT6_Rjx8PYFAvKH3Q3fT27eYzNsXJYCz7320YBIM

トルコの事例のペイロード: Dropbox と MS Graph の API トークンとシークレット

  • e0f94357-98c9-475d-94eb-27b6c74a6429
  • mytestworkapp1
  • M.R3_BL2.-CUanxFBYCxVzJ6hwSYPoLZ49NQ3X*y5rETt!aN*487MvafwQFn7kevSiXUwpGnHaquakM8vH6iESLDlXP38hmqQn98rRLvOzWwlKmD!8Xb5yEewCaa13S4Y1VyTIswo54Ez5ihRdUYCkYxkidMsZBn5!4icBZKpwC9hDW6G8OLcj8c2ZDtl8kUJ5PaX5TTDgXRzYdLPcqJFiNREjNg0*L569xMG1D14JpmjuO3HLBN2OclUv6c9FeuRwe5EuHA9aKhdqWkdjxWbnGGMgn9SnyDF7VSVCYT0*KBPNE!WYm*CXbE4jNTqJnkyPzvDJtj0OoA$$
  • 3a1n71ujslwse9v
  • 75vedbskd505jyk
  • Hd0j7avNBxsAAAAAAAAAARq2fs5Ei8Z0-ahPPeB1McEek6NMzkGRmYHuxjsCZTfE

追加リソース

付録

BMW のキャンペーンの技術分析

悪意のあるファイルBMW 5 for sale in Kyiv - 2023.docxのチラシ (SHA256: 311e9c8cf6d0b295074ffefaa9f277cb1f806343be262c59f88fbdf6fe242517、SHA256: 8902bd7d085397745e05883f05c08de87623cc15fe630b36ad3d208f01ef0596) 内から見つかったハイパーリンクは、あるサイト (hxxps://resetlocations[.]com/bmw.htm) へと繋がっていました。このサイトは、6 月中旬にはオフラインになっていましたが、当初は大きな HTA ファイルを取得していました。この HTA ファイル (SHA256: 47e8f705febc94c832307dbf3e6d9c65164099230f4d438f7fe4851d701b580b) には、約 10 MB の Base64 エンコード・ XOR 演算されたデータと、それに続く JavaScript コードが含まれています。

この JavaScript コードは、まず同じドメイン上の kll.phpという URI にリクエストを発行した後、前述の埋め込みデータをデコードし、msSaveOrOpenBlobを使ってそれをブラウザーにダウンロードさせようとします。なおmsSaveOrOpenBlobでうまくいかなければcreateElementcreateObjectURLを組み合わせて使ってダウンロードを試みます。ダウンロードしたファイルにはbmw.iso (SHA256: 79a1402bc77aa2702dc5dca660ca0d1bf08a2923e0a1018da70e7d7c31d9417f) という、テーマと一致する名前がつけられます。

ダウンロード後これが実行されるかどうかはダウンロードしたファイルを当該ユーザーがクリックするかどうかにかかっています。クリックした場合、ディスク イメージがシステムにマウントされ、Windows ファイル エクスプローラーが開きます。これにより画像を装ったファイルが合計で 9 枚表示されます。これらは実際には LNK ショートカット ファイルです (図 3 実行フロー図を参照)。

$Recycle.Bin という名前の隠しフォルダーが、LNK ファイルとともに作成されます。このフォルダーには本物の PNG 画像のほか、3 つの DLL、暗号化されたペイロード、Microsoft Word の正規コピーwindoc.exeが入っています。

いずれかの LNK ファイルをクリックすると次のコマンド ラインが実行されます。なお、クリックした LNK ファイルによってイメージ名が変更される点に注意してください。

LNK ファイルのコマンド ライン

このwindoc.exeは悪質なものではないですが、実行時に複数の DLL をロードしようとして DLL ハイジャックの被害に遭います。結果としてこれはカレント ディレクトリー内の 3 つの DLL のうち 2 つ、つまり APPVISVSUBSYSTEMS64.dll (SHA256: 38f8b8036ed2a0b5abb8fbf264ee6fd2b82dcd917f60d9f1d8f18d07c26b1534) と MSVCP140.dll (SHA256: 706112ab72c5d770d89736012d48a78e1f7c643977874396c30908fa36f2fed7) をロードします。3 つめの DLL (Mso20Win32Client.dll) はマルウェアの機能上必要なものではないようですが、以下で説明する DLL 同様、windoc.exe を正常に動作させる目的で追加されています。

MSVCP140 はデジタル署名されていませんが、悪意のある機能は含まれていません。これには、MSVCP140の正規コピーからの厳選した少数のエクスポートのみを含めてあるようです。おそらくこれは Microsoft Visual C++ 再頒布可能パッケージを持たないシステム上でも、少なくとも APPVISVSUBSYSTEMS64 をロードして、 windoc.exe を実行するために含めてあるようです。

一方 APPVISVSUBSYSTEMS64 はかなり難読化してある DLL です。この DLL には以下を含む不要なアセンブリ命令が濫用されており、逆コンパイル処理を妨害し分析を遅延させる可能性があります。

  • Psllq
  • Emms
  • Pcmpeqd
  • Punpckhbw

APPVISVSUBSYSTEMS64 には解析対策技術が多数含まれています。たとえば以下のようなものです。

  • プロセス名がwindoc.exeに設定されていることを確認する
  • システムに複数のプロセッサが 1 つ以上搭載されていることを確認する
  • NtQueryObject を活用し既存の Debug Objects を検索することでデバッガーの有無を確認する

これらのチェックすべてに合格するとこのサンプルは ISO ファイル (この事例では ojg2.px という名前) 内で見つかった暗号化されたペイロード ファイル (SHA256:c62199ef9c2736d15255f5deaa663158a7bb3615ba9262eb67e3f4adada14111) を開きます。メモリーに読み込まれると XOR 演算を使ってこのファイルを復号します。この結果、2 つめのシェルコード レイヤーが生成されます。

その後このシェルコードは、インジェクト可能な最初の 2 つのアクティブな Windows プロセスにインジェクトされます。対象になるのはたとえばtaskhost.exesihost.exeなどです。このインジェクトには、以前 Cloaked Ursa が使っていた技術といくぶん似た技術が使われます (最近ポーランドのMilitary Counterintelligence ServiceとCERT.PLが報じています)。

まず、NtMapViewOfSectionを使ってシェルコードがリモート プロセス内にマッピングされてコピーされます。その後、NtCreateThreadExを使ってサスペンド状態にした新たなリモート スレッドが作成されます。このインジェクション技術が興味深いのは、作成されたスレッドがシェルコードのエントリー ポイントや Windows API を指すかわりにAPPVISVSUBSYSTEMS64プロセス内の関数の開始アドレスを与えられている点です。こうすることにより、この作者は、悪意のあるシェルコードを指している新しく作成されたスレッドを、監視ツールに識別させまいとした可能性があります。

APPVISVSUBSYSTEMS64NtGetContextThreadNtSetContextThreadを使ってRCXレジスター (ここにこのスレッドのエントリーが含まれている) を変更してシェルコードのエントリー ポイントを指すようにした後、このスレッドはNtResumeThreadによって再開されます。

画像 5 は、多数のコード行のスクリーンショットです。この図は NTCreateThreadEx() から始まっています。スレッドの作成はローカル関数を指し、API を解決し、スレッド コンテキストを変更します。
図5. ローカル関数 (API を解決) を指すスレッドの作成とスレッド コンテキストの変更

この結果再開されたスレッドはRtlUserThreadStartを呼び出すことになりますが、RtlUserThreadStartの呼び出し前にRCXレジスターの値をR9に移動します。これによりシェルコードがトリガーされます。

このシェルコードの目的は、メモリー内に存在する最終的な実行可能ファイルのペイロードを抽出し、このペイロードに実行を移すことにあります。このペイロードは感染チェーン最後のサンプルで、コマンド&コントロール (C2) サーバーとの間の通信を処理します。

最終ペイロードには文字列暗号化やジャンク関数を含む多数の難読化技術が含まれているほか、例外処理の構造体を変更し、アセンブリ命令の途中に「try and else」句を配置するなどの技術も含まれています。多くの逆アセンブラーはバイナリー ファイルをパースするさいこれら構造体の値を考慮することから、この技術により実質上、逆アセンブル時に命令が破損します。この例外処理構造体の変更が原因で、制御フロー グラフが破綻して逆コンパイルが失敗します。

通信ついて言えば、このペイロードは Microsoft Graph API と Dropbox API の両方を使用します。Cloaked Ursa は以前、Dropbox を C2 サーバーとして利用していました。ただし、Cloaked Ursa による Microsoft Graph API の C2 通信での利用は、同グループのツールキットへの比較的新しい追加であるようです。

これらプラットフォームとの通信に要する文字列暗号化トークンと API キーに加え、Microsoft Graph API との通信に使われる「Teams_test」という文字列が目を引きます (図 6)。

画像 6 はいくつかの文字列のスクリーンショットです。これらは文字列復号関数であり、Dropbox API および Microsoft Graph API の主要情報の復号に使われます。
図6. Dropbox API および Microsoft Graph API の主要な情報の復号に使用される文字列復号関数

Graph API により Microsoft Teams を含むさまざまな Microsoft 365 サービスとの対話が可能であることを考えると、これは Teams または Graph API を介した通信の初期テストであった可能性があります。

Graph API 経由の通信に何度か失敗すると Dropbox 経由の通信が試行されます。バイナリー内から復号された文字列を見てみると、この通信における Dropbox 利用についての知見が得られます。

Dropbox API を使用したバイナリー内の復号された文字列。全部で 8 つの URL が表示されています。

以前に Cloaked Ursa にリンクされていたDropbox と通信するペイロードは、MP3 ファイルに似せたパケット内に通信をラッピングしていました。暗号化されたデータの先頭には MP3 のマジックナンバー (ID3\x04\x00\x00\x00\x00\x00#TSSE) が追加され、MP3 ファイルとして Dropbox にアップロードされていました。

このサンプルでは BMP ファイルを使うことにしたようです。攻撃者が所有する C2 は、BMP 形式にラッピングされたコマンドを Dropbox にアップロードします。ペイロードはこれらのコマンドを取得し、解析し、復号して実行します。ペイロードが Dropbox にアップロードするデータもすべて暗号化され、BMP 形式でラップされます。

処理されるコマンドに関して言えばこのペイロードは C2 サーバーからの 5 種類のリクエストを受け入れ可能です (以下の表に示す)。

コマンドの値 コマンドの説明
0 シェルコードを explorer.exe または smartscreen.exe にインジェクトする
1 CMD.exeで指定されたコマンドを実行する
2 ローカル ファイルから読み込む
3 ローカル ファイルにデータを書き込む
4 コードを生成してWerFault.exeにインジェクトする

表2 サンプルで処理されるコマンド

追加のコマンドがないところを見ると、これはさらに別のサンプルのための単なるローダーである可能性があります。6 月中旬の時点で、Dropbox と Graph API のクレデンシャルは無効になっており、どちらのプラットフォームにアップロードされた情報にもアクセスできなくなっていました。

トルコのキャンペーンの技術分析

私たちはほかの Cloaked Ursa キャンペーンと同様の特徴を持つ追加のサンプルを特定しました。それらはトルコの外務省を標的にしていると考えられるものでした。このキャンペーンに使用されたルアーは観測されていませんが、最初のルアーの後の攻撃チェーンは特定できました。私たちはこの最初のルアーが標的にhxxps://simplesalsamix[.]com/e-yazi.htmlをクリックさせるように仕向けたものと評価しています。この URL はすでにアクティブではありませんが、これは元々 e-yazi.html (SHA256:cd4956e4c1a3f7c8c008c4658bb9eba7169aa874c55c12fc748b0ccfe0f4a59a) という名前のファイルをひそかに HTTP で取得するものでした。

ダウンロードしたファイルには e-yazi.zip という名前が付けられます (SHA256:0dd55a234be8e3e07b0eb19f47abe594295889564ce6a9f6e8cc4d3997018839)。このサンプルには 5 つのファイルが含まれています。

ここでもまた正規の WinWord.exe バイナリーがこのアーカイブからは見つかりましたが、これには e-yazi.docx.exe という名前がつけられていました。ただし、.docx.exe の間には空白文字が追加されていたので、このファイルはドキュメント ファイルであるかのように表示されます。

WinWord.exeと並んで、APPVISVSUBSYSTEMS64.dll (SHA256:

60d96d8d3a09f822ded0a3c84194a5d88ed62a979cbb6378545b45b04353bb37

) という名前のファイルがまた存在していました。ほかにも、okxi4t.z (SHA256: 03959c22265d0b85f6c94ee15ad878bb4f2956a2b0047733edbd8fdc86defc48) という名前のついたファイルが存在していました。このファイルは前述のojg2.pxというファイルと似ていて、暗号化されたシェルコードが含まれています。

WinWord.exe を実行すると、APPVISVSUBSYSTEMS64.dll がサイドロードされます。標準的な解析対策チェックをパスしたと仮定した場合、 okxi4t.z を開いてそこからデータを読み込んで復号し、実行中のプロセスのなかで、インジェクトが可能な最初のプロセスにインジェクトします。

インジェクトされたシェルコードには、BMW の事例のサンプルで見られたコードと多くの共通点があります。

  • 全体的な実行フロー
  • さまざまな Windows API コールのアンフック機能
  • 使われている難読化技術

このほか、ポーランドの Military Counterintelligence Service と CERT.PL による Cloaked Ursa の QUARTERRIG マルウェアに関する報告書でも説明されているとおり、このシェルコードには、図 7 に示した第 4 ステージのシェルコード ドロッパー ローダーとの重複が含まれていることも確認できました。図 8 に示すとおり、インジェクトされたシェルコードには、magic_consthashed_str の値などにはささいな相違があるもの、同じアルゴリズムとペイロード構造が見られます。

画像 7 はシェル コードの構造を表すスクリーンショットです。hashed_str、magic_const、key_a、data_size、key_b、encrypted_data によってフィルタリングするオプションが表示されています。
図7. CERT.PL のシェルコードの構造のイメージ(出典: QUARTERRIG Malware Analysis Report. 図10. 2023)
画像 8 は抽出されたシェル コードの BLOB のスクリーンショットです。2 行目で 57 43 54 4E 46 37 52 58 を青色でハイライト表示してあります。同じ行で WCTNF7RX もハイライト表示されています。
図8. 抽出されたシェルコードの BLOB

この感染チェーン内の最終ペイロードは、C2 通信に Microsoft Graph API と Dropbox API の両方を利用する点が BMW にリンクされた最終ペイロードに似ています。こちらはTeams_testというプロジェクト名のかわりに、mytestworkapp1というプロジェクト名に設定されています。ハードコードされた API トークンも、最初に分析したサンプルのものとは異なっています。

このサンプルでも、例外処理の構造体を悪用する制御フローの難読化や文字列暗号化など、同様の難読化手法が採用されています。ただしサンプルにはジャンク関数が追加されておらずファイル サイズは 498 KB と大幅に小さくなっています。

文字列暗号化のアルゴリズムが、ポーランド Military Counterintelligence Service と CERT.PL による Cloaked Ursa の SNOWYAMBER および QUARTERRIG のマルウェア報告書で見られるものと一致しているように見えることは注目に値します。文字列復号関数の多くは、インラインのアセンブリー キーを利用します (図 9 参照)。残りの関数は .rdata ディレクトリーからキーを取得します。

画像 9 は、コードの 2 つのスクリーンショットです。左と右に表示されています。左枠内のコードは、1 つめの文字列復号関数型です。右枠内のコードは 2 つめの文字列復号関数型です。
図9. 最初 (左) と 2 番目 (右) の文字列復号関数型

これら 2 つのサンプル内での Microsoft Graph API の使用状況と、NotionGoogle Driveを経由した C2 通信を解説している既存の報告書からすると、Cloaked Ursa が C2 サーバーをホストする正規プラットフォームの選定に引き続きいそしんでいることは明らかでしょう。

2023-07-21 11:15 JST 英語版更新日 2023-07-20 12:43 PDT の内容を反映し、UAC-0029 を UAC-0004 に変更