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

概要

2月初旬にAPT (Advanced Persistent Threat: 持続的標的型攻撃)攻撃グループ、Trident Ursa (別名: Gamaredon、UAC-0010、Primitive Bear、Shuckworm)を取り上げた前稿以来、ウクライナとそのサイバードメインに対するロシアからの脅威は高まりつづけています。ウクライナ保安局は、Trident Ursa攻撃グループをロシア連邦保安局に帰属させています。

地上でもサイバー空間でも紛争が続くなか、Trident Ursaはもっぱらアクセスの確保やインテリジェンスの収集面で活動しています。Trident Ursaは執拗にウクライナを狙うAPTの1つで、その活動は深く浸透し、侵襲的かつ継続的です。

現在進行中の地政学的状況と同APT攻撃グループの特定標的への執心を踏まえ、Unit 42のリサーチャーは、彼らの活動指標を積極的に監視し続けています。そのなかで私たちは、過去10ヶ月間に使われた500個以上の新しいドメイン、200個のサンプル、その他のIoC(Indicators of Compromise: 侵害指標)をマッピングしました。Trident Ursaはフィッシングやマルウェアなどのさまざまな目的にこれらを活用していました。

本稿はTrident Ursaのオペレーションに関して現時点で私たちが把握している全体像を中心として既知のIoCに加えた最新情報をお届けします。

当該サイバードメインやオープンソース情報を監視するなかで私たちは注目すべき事項を複数発見しました。

  • 8月30日にNATO加盟国内のある石油精製大手企業への侵害を試みるも失敗
  • Trident Ursaの関係者と思われる人物が最初の侵略直後にあるウクライナのサイバーセキュリティリサーチャーに対して危害を加えると脅迫
  • 戦術、技術、手順(TTP)のかずかずの変遷

パロアルトネットワークスのお客様は、以下の製品により本稿で取り上げた種類の脅威から保護されています: Cortex XDRWildFire高度なURLフィルタリング高度な脅威防御DNSセキュリティサブスクリプションサービス (次世代ファイアウォール NGFW用)。

関連するUnit 42のトピック Russia, Ukraine, Gamaredon 
Trident UrsaAPT攻撃グループの別名 Gamaredon, UAC-0010, Primitive Bear, Shuckworm

ウクライナ以外の地域も標的に

従来のTrident Ursaはウクライナの団体を標的としてウクライナ語のおとり(ルアー)を使っていました。同攻撃グループについてはこのパターンがいまでも一番多いですが、英語のルアーを使った例も何度か確認されています。「これらのサンプルはウクライナとNATOの同盟国に対してTrident Ursaが情報収集とネットワークアクセスを強化しようとしていることを示すもの」と私たちは見ています。

同盟国政府を標的とするこれらの取り組みに沿って、8月30日には、あるNATO加盟国の大手石油精製会社を侵害しようとして失敗したようすが、同攻撃グループのIoCレビューのさいに確認されました。

SHA256 ファイル名
b1bc659006938eb5912832eb8412c609d2d875c001ab411d1b69d343515291b7 MilitaryassistanceofUkraine.htm
0b63f6e7621421de9968d46de243ef769a343b61597816615222387c45df80ae Necessary_military_assistance.rar
303abc6d8ab41cb00e3e7a2165ecc1e7fb4377ba46a9f4213a05f764567182e5 List of necessary things for the provision of military humanitarian assistance to Ukraine.lnk (注: 上記.rarに同梱されているファイル)

表1 Trident Ursaが使っていた英語のサンプル

ハッキングにとどまらぬサイバーセキュリティコミュニティへの公然の脅威

私たちが観測したなかでももっとも驚いたことのひとつは、Trident Ursaと関係すると見られるAnton (キリル文字でАнтон)という人物がTwitter上である少人数のサイバーセキュリティリサーチャーグループをロシアのウクライナ侵攻と同日(2022年2月24日)に脅迫したことです。Antonは、侵攻前の何日間かにTrident UrsaのIoCを取り上げたツイートからこのリサーチャーを選んだようです。

最初のツイート(図1)は、侵攻が進むなかでAnton(@Anton15001398)がウクライナ在住の脅威リサーチャーMikhail Kasimov(@500mk500)に対して行ったものです。いくつかのツイートで彼は「run, I'm coming for you. (逃げろよ、迎えに行くから)」と発言していますが、Kasimov氏への最初のツイートがあまりに気づいてもらえていないと考えたのか、最後のツイートにはハッシュタグ#Gamaredonを付けて他のリサーチャーに発見されやすいようにしています。

画像1は、TwitterユーザーAnton15001398がウクライナ在住の脅威リサーチャーMikhail Kasimov (Twitterアカウント名: 500mk500)を標的として行った一連のツイート。これらのツイートでアクターはGamaredonというハッシュタグを使ってMikhail氏に対し「run, I'm coming for you」というメッセージを送っている
図1. Mikhail Kasimov氏への脅迫

その後このAntonは別のアカウント(@YumHSh2UdIkz64w)を使ってShadow Chaser Group(@ShadowChasing1)とTI Research(@tiresearch1)に「let's be friends. (仲良くやろう) We do not want to fight, but we do it well! (争いたくはないがやるときはやるぜ)」」という不吉なメッセージを送っています(図2)。

画像2は、TwitterユーザーYumHSh2UdIkz64wが、Shadow Chaser GroupのTwitterアカウントShadowChasing1とTI ResearchのTwitterアカウントtiresearch1をタグ付けして行ったツイートのスクリーンショットです。
図2. Shadow Chaser GroupとTI Researchに警告している

その2日後の2月26日、Antonは最後の、そしてこれまででもっとも脅迫的なツイートを送りました(図3)。そのツイートにはMikhail Kasimovのフルネーム、生年月日、住所とともに、「We are already in the city, there is nowhere to run. You had a chance(もう市内にいる。逃げ場はない。逃げられるうちに逃げておくんだったな)」というメッセージが記されています。

 画像3は、TwitterユーザーYumHSh2UdIkz64wが、ウクライナ在住の脅威リサーチャーMikhail Kasimov氏を標的として行ったツイートのスクリーンショット。「We are already in the city, there is nowhere to run. You had a chance(もう市内にいる。逃げ場はない。逃げられるうちに逃げておくんだったな)」というメッセージとともに個人情報を晒している(個人情報部分は削除処理済み)。
図3. Mikhail Kasimov氏を晒して(doxxing)脅迫するツイート(元のツイートからフルネーム、生年月日、住所を加工済み)

このTrident Ursaの関係者と称する人物からの直截な脅迫メッセージは受信者(とくに戦地で活動するリサーチャーのKasimov氏)を不安にさせたことでしょう。しかし、標的とされたリサーチャーたちは臆することなく、これら脅迫の後の数週間、さらにTrident Ursaに関するIoCをツイートしていました。Kasimov氏は世界中の多くのリサーチャーと共に、このAPT攻撃グループの新たなIoCを日常的に発信し続けています。

DNS関連の不正行為

Trident Ursaは高速フラックスDNS (サイバーセキュリティアナリストによるインフラの分析を困難にする手法)を使い、自らのオペレーションの回復力を高めようとしてきました。高速フラックスDNSを使うインフラは、日次で多数のIPをローテーションし、それぞれのIPは短時間しか使いません。これによりIPベースのブロックリストやテイクダウン処理、フォレンジック分析が難しくなります。

Unit 42のリサーチャーがIPではなくTrident Ursaのドメインに注目するのは、この技術の使用が主な理由です。2022年6月以降、Trident Ursaは高速フラックス以外にもいくつかの手法を駆使してオペレーション効率を高めていることが確認されています。

この脅威アクターは多数の正規ツールやサービスをオペレーションに使ってきました。脅威アクターが悪意をもって正規製品を悪用・転用するのは珍しいことではなく、悪用された正規製品の側に必ずしもなにか問題や悪意があるということは意味しません。

正規のWebサービスを介したDNSの迂回

私たちが観測した新たなTTPの1つめは、悪意のあるドメインのIP割り当てクエリに正規サービスを使うというものです。正規サービスを利用することで悪意のあるドメインのDNSとDNSロギングをうまく回避しているのです。たとえばSHA256が499b56f3809508fc3f06f0d342a330bcced94c040e843784998f1112c78422のサンプルは、正規サービスであるip-api[.]を呼び出して、hxxp://ip-api[.]com/csv/josephine71.alabarda.ruを経由してjosephine71.alabarda[.]ruに割り当てられたIPを取得しています。

本稿執筆時点ではこの処理により次の応答が得られます。

画像4は2行のコードのスクリーンショット。DNSとDNSログ取得を迂回するようすを表している

このマルウェアはこの通信で得たIPを使って悪意のあるドメインとの通信を続けます。ログに残る唯一のDNSクエリはip-api[.]comに対する最初のリクエストのみとなります。

メッセージングサービスを介したDNSの迂回

2つめのサンプルの場合、Trident UrsaはTelegram Messengerのコンテンツを利用してコマンド&コントロール(C2)に使う最新IPを調べています。アクターはこの方法により、標的が悪意のあるドメインのブロックに成功した場合にそなえ、DNSを補完しようとしています。

たとえばSHA256が3e72981a45dc4bdaa178a3013710873ad90634729ffdd4b2c79c9a3a00f76f43のサンプルはhxxps://t[.]me/s/dracarcを呼び出しますが、11月18日現在このアカウント(@dracarc)はTelegramの投稿==104@248@36@191==を返してきます。これがIP 104.248.36[.]191に変換されてその後の通信に使われます。

ルートドメインとサブドメインに別のIPを割り当てる真のIP割り当ての隠ぺい

11月15日、私たちはTrident Ursaのドメインniobiumo[.]ruが米国国防総省ネットワーク情報センターのIP147.159.180[.]73に割り当てられていることに気づきました。その後すぐ私たちはTrident UrsaにはそのIPを運用管理することも使うこともできないことを突き止めました。

Trident Ursaはリサーチャーを混乱させ、真のオペレーション用インフラを保護するため、ルートドメイン用の高速フラックスDNSテーブルにゴミ(junk) IPを撒いていました。ルートドメインを使うかわりにサブドメインをオペレーションに使っていたのです。

本当にオペレーションに使っているIPはサブドメインについてDNSにクエリを出して初めてわかるというしくみです。この事例では(図4)、サブドメインaaa.niobiumo[.]ruにクエリを送るとオペレーション用のIP 64.227.67[.]175が返されました。

画像4はname、class、type、data、time to live (TTL)を列挙した表。nameの下に対象のドメインが記載されている。
図4. reg[.]ruのネームサーバーはドメインについては偽アドレスを送り、サブドメインについては実際のアドレスを送ってくる(注: 11月15日現在のaaa.niobium[.]ruのDNS名前解決)。
ここでは、Trident UrsaのDNS活動を分析して得られた次の2つの観測結果に着目したいと思います。

  • ロシア国外でのオペレーション用インフラとしてTrident UrsaはAS14061 (DigitalOcean, LLC)とAS20473 (The Constant Company, LLC)という2つの自律システム(AS)内のVPSプロバイダに主に依存していました。過去6週間にわたりロシア以外で確認された122個のIPアドレスの63%がAS14061内、29%がAS20473内でした。残りはUAB Cherry Serversが所有する複数のASに分散していました。
  • Trident Ursaのドメインの96%以上が、あるロシア企業reg[.]ruのDNSに継続して登録されています。この企業は今日にいたるまでこの悪性インフラをブロックないし拒否する行動を取っていません。

使われていたさまざまなマルウェアの種類

過去数ヶ月にわたってTrident Ursaはさまざまな戦術で被害者のデバイスに最初の侵入口を開いてきました。そのさいはランダムに生成された変数名を持つVBScriptや文字列の連結による難読化が行われていました。これらの戦術はいずれも最終的にはスピアフィッシングによる悪性コンテンツ配信に依存していました。

本稿では1つめの配信方法(.htmlファイルを使う方法)と、2つめの配信方法(Word文書を使う方法)を見ていきます。

HTMLファイルを使ったフィッシング

Trident Ursaはフィッシングメールに直接添付するか、リンクを介して.htmlファイルを配信し、メールの脅威スキャンを回避しようとします。このさいはhxxp://state-cip[.]org/arhivといった一見無害なURLが使われます(図5)。本稿執筆時点でこのサイトはまだアクティブなようです。

画像6はフィッシングメールのスクリーンショット。ダウンロードボタンがある。ダウンロードボタンはTrident Ursaの悪意のあるドメインにリンクしている
図5. Trident Ursaが使ったリンク付きフィッシングメールのサンプル

これらの.htmlファイルにはBase64エンコードされた.rarアーカイブが含まれていて、さらにそのなかに悪意のある.lnkファイルが含まれています。ユーザーがこれらの.lnkファイルをクリックすると、Microsoft HTML Application(mshta.exe)を使ってそのURL経由で追加ファイルをダウンロードします(図6)。

画像7は悪意のある.lnkファイルを使うフィッシング攻撃フロー図。この攻撃フローはフィッシングに始まりVBScriptsに終わる
図6. 悪意のある.lnkファイルを使うフィッシング攻撃フロー

最近の.lnkファイル( SHA256: 0d51b90457c85a0baa6304e1ffef2c3ea5dab3b9d27099551eef60389a34a89b)を詳しく見てみると、このファイルは99.8KBで平均的な.lnkファイルより約98KB 大きいことがわかります。

Trident Ursaの使う想定外に大きいこれら.lnkファイルを確認すると、ファイルにはランダムな10文字の文字列が含まれていて、作成過程で付加されたものと評価できます。これらの文字列は解析妨害を意図したもので、Trident Ursaのオペレーションに関連した目的は確認されていません。

この.lnkショートカットを開いた場合、mshta.exeを使ってコマンドライン引数経由でhxxps://admou[.]org/29.11_mou/presented.rtfにアクセスします。

Trident Ursaは、このURLにアクセスできる人を制限するためにさまざまな技術を使っているようです。他のリサーチャーも指摘しているとおり、Trident Ursaはジオブロッキング(利用者の地理的位置情報にもとづいて提供するコンテンツをブロックする)を使ってこのファイルのダウンロードを特定の地域に限定しているようです。

今回の例では、このURLを経由してpresented.rtfをダウンロードできるのはウクライナに限定されるものと考えられます。ただしこれには例外もあります。

これらの脅威アクターは現在、ウクライナ内のExpressVPNとNordVPNのノードをブロックすることで、脅威リサーチャーを妨害しようとしているようです。さらに同アクターは追加のフィルタリングによりペイロードへのアクセス制限を強化しているようです。たとえばVirusTotalが上記URLをリクエストすると成功を示すHTTPステータスコードの200を受け取りますが、応答されるコンテンツ全体の長さは0バイトです。

フィルタリング条件を満たす場合、標的が.lnkを開くとpresented.rtf (SHA2563990c6e9522e11b30354090cd919258aabef599de26fc4177397b59abaf395c3) がダウンロードされます。presented.rtfファイルは実際にはVBScriptコードを含むHTAファイルです。

このHTAファイルは中に埋め込まれた2つのBase64エンコード済みVBScriptをデコードします。このうち1つは%USERPROFILE%\josephineに保存し、もう1つはExecuteを使って実行します。presented.rtfファイルがデコード・実行するVBScriptは、ユーザーのログインのたびにjosephineファイルに保存されているVBScriptを実行して永続性を確保する役割を担っています。josephineに保存されたVBScriptファイルはこのインストールプロセス最後のペイロードです。

1つめのVBScriptの役割はシステムへの永続的アクセスの有効化です。そのためにWindowsのスケジュールタスクとレジストリキーを作成しますが、いずれもTrident Ursaのよく使う技術です。このスクリプトは、図7のスケジュールタスク情報が示すように、josephineスクリプトを5分ごとに実行するFilmora.Completeという名前の新規スケジュールタスクを作成します。

画像8はVBscriptがスケジュールタスクを作成し、josephineスクリプトを実行するようすを示したコマンドプロンプトのスクリーンショット
図7 Filmora.Completeというスケジュールタスクが5分おきのペイロード実行に使われる

またこのスクリプトは、ユーザーログイン時にVBScript josephineを自動実行するようAutorunレジストリキーを作成します。図8はシステムに追加されたtelemetryという名前のAutorunレジストリキーで、これでユーザーログイン時にVBScriptを実行します。

画像9はコマンドプロンプトのインターフェイスのスクリーンショット。telemetryという名前でシステムに追加されたAutorunレジストリキーと、ユーザーログイン時にVBScriptを実行するレジストリキーが追加された箇所がハイライト表示されている
図8. ユーザーログイン時にVBScriptを実行するAutorunレジストリキー

josephineスクリプトはバックドア機能を提供するコードで、これを使って脅威アクターはC2サーバーの提供する追加VBScriptコードを実行します。このスクリプトには2種類のメソッドが含まれていて、スクリプトが直接通信するC2サーバーのIPアドレスを決めています。

1つめのメソッドは、以下のWindows Management Instrumentation (WMI)クエリを使ってドメインTHEN<random number>.ua-cip[.]org</random>にpingを送り、ProtocolAddressの値をチェックしてC2のIPアドレスを決めるものです。


対象ドメインに到達できなければ、このスクリプトはTelegramのURL hxxps://t[.]me/s/vzlomsにアクセスしてC2のIPアドレスを得ようとします。それには==([0-9\@]+)==という正規表現を使って応答内容をチェックします。

C2のIPアドレスが得られたら独自に作成したHTTP GETリクエストを発行してC2と通信します(図9)。HTTPリクエスト内で変更されているカスタムフィールドはuser-agentフィールドとAccept-Languageフィールドです。user-agentフィールドにはコンピュータ名、ボリュームシリアル番号、文字列::/.josephine/.がアペンドされていて、Accept-Languageフィールドにはハードコードされた文字列が含まれています。

画像11は、C2サーバーに送信されたカスタムHTTP GETリクエストを示す複数行のコードのスクリーンショット。カスタムフィールドは変更されている
図9 C2サーバーに送信されるHTTPリクエスト

josephineスクリプトは、このHTTPリクエストに対するレスポンスを読み込み、レスポンス内のBase64データをデコードしてVBScriptとして実行します。私たちはこれまでのところjosephineスクリプトのHTTPリクエストに応答してVBScriptsを返すアクティブなC2サーバーは観測していません。

Word文書を使ったフィッシング

Trident Ursaの使う最近のフィッシング文書はVirusTotalでの検出率が低いですが、その原因は文書の単純さにあると思われます。たとえばSHA256がc22b20cee83b0802792a683ea7af86230288837bb3857c02e242fb6769fa8b0cのサンプルは2022年12月8日時点で61社のベンダのいずれも検出していません。

画像11は同SHA256の検出結果を示したVirusTotalの画面。このスクリーンショットではVirusTotalが同サンプルに悪性というフラグを立てていない
図10 VirusTotalによるSHA256がc22b20cee83b0802792a683ea7af86230288837bb3857c02e242fb6769fa8b0cのサンプルの検出ベンダ数

これはウクライナのNational Academy of Security Serviceのコンピュータ機器購入の入札と称するものに関連したファイルです。このファイル自体には悪意のあるコードは含まれていません。ファイルを開くとhxxp://relax.salary48.minhizo[.]ru/MAIL/gloomily/along.rcsからリモートテンプレートにアクセスしてダウンロードしようとします。

このテンプレートalong.rcs (SHA256:007483ad49d90ac2cabe907eb5b3d7eef6a5473217c83b0fe99d087ee7b3f6b3) はOLEファイルで、ここに悪意のあるコードを実行するマクロが含まれています。このマクロ自体は前述のHTAファイル内のVBScriptコードに似たもので、追加スクリプトのロードに使われます。

インストール用VBScriptは、ペイロードのVBScriptを%USERPROFILE%\Downloads\frontier\decisiveに保存し、GetSynchronization-USAというスケジュールタスクを作成して5分ごとにこのペイロードを自動実行します。

ペイロードのVBScriptは前述のペイロードと同じものです。同スクリプトは<random number>decisive.hungzo[.]ruへのpingと、特定のTelegram URL (hxxps://t[.]me/s/templ36)からの応答に対する正規表現を使ってC2のIPアドレス取得を試みます。

IPアドレスを取得したスクリプトはhxxp://<IP address of C2>/snhale<random number>/index.html=?<random number>へのHTTP GETリクエストを作成してカスタムHTTPフィールドに次の活動内容を挿入します。

  • 改変されたuser-agentフィールド(windows nt 6.1; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/90.0.4430.85 safari/537.36)にコンピュータ名、ボリュームシリアル番号をアペンドする。このほか、静的文字列の;;/.insufficient/もアペンドされる
  • クッキーの値にはframeS5Vを使う
  • Referrerをhxxps://developer.mozilla[.]org/en-US/docs/Web/JavaScriptに設定する
  • Accept-Languageをru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4に設定する
  • Content-Lengthを4649に設定する

最後にこのスクリプトはこのURLに対するレスポンスをBase64でエンコードして実行しようとします。

最近観測されたドロッパー

この3ヶ月間、Trident Ursaは2つの異なる(ただし非常によく似た)ドロッパーを使うようすが確認されています。1つめのドロッパーは通常7ZSfxMod_x86.exeという名前です。この技術は同アクターが長年贔屓にしてきた7-Zip自己解凍(SFX)アーカイブを使います。

これらのSFXファイルでは、Windows Script Host(wscript.exe)を使い、インストール構成スクリプトが埋め込まれたVBScriptを実行します。2つめのドロッパーは通常myfile.exeという名前です(実行ファイルのRT_VERSIONリソースより)。こちらのドロッパーは事実上はローダーで、最終的には2つのファイルをドロップし、wscriptを使ってそれらをVBScriptとして実行します。

7ZSfxMod_x86.exe

最近のサンプル(SHA256: ac1f3a43447591c67159528d9c4245ce0b93b129845bed9597d1f39f68dbd72f)は、開くと以下のインストールスクリプトを実行します。

画像11はインストールスクリプト。多くのコード行が含まれている。

このアーカイブには、インストールスクリプトのほか、インストールスクリプト内から参照される19698.mov (SHA256: f488bd406f1293f7881dd0ade8d08f2b1358ddaf7c4af4d27d95f6f047339b3a)という名前のVBScriptも含まれています。上記のサンプル同様、このVBScriptはC2のIPを取得するために2種類のメソッドを試します。

まず、同スクリプトはWMIクエリを実行し、C2ドメイン<random number>delirium.sohrabt[.]ruにpingを送信します。これが失敗した場合にそなえて2つめのC2ロケーションルーチンも含まれていて、これはhxxps://t[.]me/s/vbs_run14のTelegramページにアクセスします。アクセス後は==([0-9@]+)==という正規表現を使ってレスポンス内のIPアドレスを探します。

このスクリプトは、正規表現にマッチした部分の"@"文字を"."に置き換えてドット表記のIPV4アドレスに変換し、そのIPアドレスをファイル%TEMP%\prDK6に書き込みます。

IPアドレスを取得したスクリプトはhxxp://<IP address of C2>/snhale<random number>/index.html=?<random number>へのHTTP GETリクエストを作成してカスタムHTTPフィールドに次の活動内容を挿入します。

  • 改変されたuser-agentフィールドmozilla/5.0 (windows nt 6.1; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/86.0.4240.193 safari/537.36にコンピュータ名、ボリュームシリアル番号をアペンドする。このほか、静的文字列の;;/.snventor/.もアペンドされる
  • Cookieの値にはdefectiveを使う
  • Referrerをhxxps://www.unn.com[.]ua/ru/に設定する
  • Accept-Languageをru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4にする
  • Content-Lengthを2031に設定する

前述のスクリプト同様、このスクリプトもこのビーコンに対するレスポンスを読み込み、レスポンス内のBase64データをデコードしてその結果をExecuteメソッドを使ってVBScriptとして実行します。このスクリプトにもバックアップ用URLがあり、HTTPレスポンスのステータスが200か404以外の場合はこのURLを使います。このURLはhxxp://<IP address of C2>/snquiries<random number>/index.html=?<random number>です。

Myfile.exe

最近のサンプル(SHA256: a79704074516589c8a6a20abd6a8bcbbcc5a39a5ddbca714fbbf5346d7035f42)は実質的にはローダーで、これはファイルを2つドロップします。また、最終的にはwscriptアプリケーションを使ってVBScriptを実行します。

まずこの実行ファイルは自身のファイルデータを読み、Portable Executable(PE)ファイルの末尾までジャンプして、実行ファイルにアペンドされているオーバーレイデータにアクセスします。その後、この実行ファイルは、各バイトとその前のバイトとのXORをとることでこのオーバーレイデータを逆順で復号します。このデータを使い、実行ファイルは以下の場所に平文を書き込みます。

  • C:\Users\<username>\nutfgqsjs.fjyc
  • C:\Users\<username>\16403.dll

このバイナリはこのファイルをディスクに書き込む前にnutfgqsjs.fjycに書き込まれる内容にいくつか文字列を連結します。この文字列には最初の実行ファイルと2つのVBScriptファイルを削除するVBScriptコード行が含まれています。実行ファイルは以下のコマンドラインでCreateProcessAを呼び出し、nutfgqsjs.fjycスクリプトを実行することによって終了します。

コマンドラインでVBScriptのコードが実行されているのようすを表すスクリーンショット。

nutfgqsjs.fjycはVBScriptファイルで、コメントをたくさん書き込むことで実際のコードを隠そうとしています。このスクリプトには、16403.dllというVBScriptを実行する以下の機能コードが含まれています。

16403.dllというVBScriptを表す複数行のコードのスクリーンショット

16403.dllというファイルは別のVBScriptをデコード・実行する機能コードを持つVBScriptです。何重ものデコードとテキスト置換を経てようやく最後のVBScriptが実行されます。この最後のVBScriptは前述の.lnk 7ZSfxMod_x86.exeの説明と同じ技術を使います。

まず、同スクリプトはWMIクエリを実行し、C2ドメインmorbuso[.]ruにpingを送信します。これが失敗した場合にそなえて2つめのC2ロケーションルーチンも含まれていて、これはhxxps://t[.]me/s/dracarcのTelegramページにアクセスします。11月18日現在このアカウント(@dracarc)は==104@248@36@191==を返してきます。これを正規表現==([0-9\@]+)==を使ってIP 104.248.36[.]191に変換して以降の通信に使います。

その後このスクリプトはhxxp://<IPV4>/justly/CRONOS.icn?=Chrに対するHTTP GETリクエストを作成し、カスタムHTTPフィールドに次の活動内容を挿入します。

  • 改変されたuser-agentフィールドmozilla/5.0 (macintosh; intel mac os x 10_15_3) applewebkit/605.1.15 (khtml, like gecko) version/13.0.5 safari/605.1.15;;にコンピュータ名、ボリュームシリアル番号をアペンドする。このほか、静的文字列の;;/.justice/もアペンドされる
  • クッキーの値にはjealousを使う
  • こちらのサンプルではReferrerは設定されない
  • Accept-Languageをru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4にする
  • Content-Lengthを5537に設定する

最後にこのスクリプトはこのURLに対するレスポンスをBase64でエンコードして実行しようとします。

結論

Trident Ursaは、俊敏で適応力の高いAPT攻撃グループです。そのオペレーションには過度に高度な技術や複雑な技術は使われません。ほとんどの場合、一般に公開されているツールやスクリプトを使いますが、それらはかなり高度に難読化されています。彼らは日常的にフィッシングを試み、オペレーションを成功させようとします。

リサーチャーや政府機関は同攻撃グループのオペレーションを定期的に検出していますが、彼らは気にもとめていないようで、難読化、新たなドメイン、新たな技術を追加してやりなおしてきます。そのさい過去に使ったサンプルを再利用することすら少なくありません。

彼らはこうして少なくとも2014年からオペレーションを続けており、この紛争期間中も手を緩めることなく成功を収め続けています。以上の理由にからTrident Ursaはウクライナにとっての重大脅威であり続けていますし、ウクライナとその同盟国は積極的に防御していく必要があります。

保護と緩和策

Trident Ursaに対する最善の防御は予防第一のセキュリティ態勢です。各組織には以下のような対策の実施を推奨します。

  • ネットワークログ、エンドポイントログを検索し、同脅威グループと関連するIoC(侵害指標)の有無を確認する。
  • 自社のサイバーセキュリティソリューションが上記で特定されたアクティブなインフラの一連のIoCを効果的にブロックできていることを確認する。
  • DNSセキュリティソリューションを導入し、既知のC2インフラに対するDNSリクエストを検出・緩和する。Telegramやドメイン検索ツールなどのサービスを自社環境で使う特段の理由がなければこれらのドメインを組織のブロックリストに追加する。ゼロトラストネットワークの場合は、これらのサービスを許可リストに追加しない。
  • AS 197695(Reg[.]ru)と通信するすべてのネットワークトラフィックをさらに精査する。

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

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

パロアルトネットワークス製品をご利用のお客様は、弊社の製品・サービスにより本攻撃キャンペーンに関連する以下の対策が提供されています。

  • Cortex XDRをお使いのお客様は本稿で取り上げたマルウェアの技術からエンドポイント上で保護を受けています。
  • クラウドベースの脅威分析サービスであるWildFireは、本稿で取り上げたマルウェアを「悪意のあるもの(malicious)」として正確に識別します。
  • 高度なURLフィルタリングDNS セキュリティは同攻撃グループに関連するすべてのフィッシングドメインとマルウェアドメインを「悪意のあるもの(malicious)」と識別します。
  • 次世代ファイアウォール高度な脅威防御サブスクリプションを利用し、ベストプラクティスに従って運用されているお客様はこれらの攻撃をブロックできます。対応する脅威防御シグネチャは86694です。

パロアルトネットワークスはファイルサンプルや侵害の兆候などをふくむこれらの調査結果をウクライナCERT (Computer Emergency Response Team of Ukraine)およびCyber Threat Alliance (CTA サイバー脅威アライアンス) のメンバーと共有しました。これらの組織のメンバーはこのインテリジェンスを使い、お客様に保護を迅速に提供し、悪意のあるサイバー攻撃者を体系的に阻害できます。

IoC

ドメイン、IPアドレス、マルウェアのハッシュのリストは、Unit 42のGitHubで公開されています。

追加リソース

[2022-06-22更新] ウクライナを標的に活動を強めるロシアGamaredon (別名Primitive Bear) APTグループ
Ukraine in maps: Tracking the war with Russia
Russia’s New Cyberwarfare in Ukraine Is Fast, Dirty, and Relentless

Enlarged Image