2022年の参議院選挙を目前に控えた日本の政治団体が、APTグループ「MirrorFace」によるスピアフィッシングの標的とされていたことをESET社の研究者が明らかにしました。この攻撃の調査の過程で発見した、認証情報を窃取するための新たなツールと、フィッシング攻撃の内容を解説します。
本記事はESET Japanが提供する「ESETブログ」に掲載された「APTグループ「MirrorFace」が日本の政治団体を標的に実行したLiberalFace作戦の詳細」を再編集したものです。
ESET社が追跡しているAPTグループ「MirrorFace」が、2022年7月の日本の参議院選挙までの数週間にわたってスピアフィッシングキャンペーンを実行していたことが明らかになりました。ESET社は、このキャンペーンを「LiberalFace作戦」と命名しました。このキャンペーンは、日本の政治団体を標的にしており、ESET社の調査から、特定の政党の党会員がこのキャンペーンの重要な標的になっていたことがわかりました。ESET Researchは、12月上旬に開催された AVAR 2022 Conferenceで、このキャンペーンとその背後にいるAPTグループに関する詳細を公開しました。
本ブログの要点:
- 2022年6月末、MirrorFaceは日本の政治団体を標的としたキャンペーンを開始しました。ESET社ではこのキャンペーンを「LiberalFace作戦」と命名しました。
- MirrorFaceが最も多く利用しているバックドアである「LODEINFO」が含まれるスピアフィッシングメールが標的に送信されました。
- LODEINFOは、別のマルウェアを配信し、標的となったユーザーの認証情報を窃取し、そのユーザーの文書やメールを盗み出すために使用されていました。
- これまで検出されたことのない認証情報を窃取するツールがLiberalFace作戦で使用されました。ESET社はこのツールをMirrorStealerと命名しました。
- ESET社は、セキュリティが侵害された後の操作を分析し、同グループが手動または半手動の方法でさまざまな操作を実行している可能性があることを特定しました。
- ESET社は、AVAR 2022 Conferenceで本キャンペーンの詳細を公開しました。
MirrorFaceは中国語を使用するサイバー攻撃者で、日本に拠点を置く企業や組織を標的にしています。この攻撃グループは、APT10との関連性が疑われていますが、ESET社は既知のAPTグループとの関係を特定できていません。そのため、このグループをMirrorFaceと命名し、個別のグループとして追跡しています。特に、MirrorFaceのみが使用している「LODEINFO」マルウェアは、日本国内の標的に限定して使用されており、メディア、防衛関連企業、シンクタンク、外交機関、学術機関などを標的としていることが報告されています。MirrorFaceは、諜報活動や同グループが関心を持っているファイルを窃取することを目的にしています。
以下の指標から、LiberalFace作戦がMirrorFaceによって実施されているとESET社は判断しています。
- ESET社のこれまでの調査では、LODEINFOマルウェアはMirrorFaceのみが使用しています。
- LiberalFace作戦の標的は、MirrorFaceの過去の標的と一致しています。
- 第2段階で使用されるLODEINFOマルウェアの検体は、MirrorFaceのインフラの一部としてESET社が追跡しているC&Cサーバーにアクセスしていました。
LiberalFace作戦で送信されたスピアフィッシングメールの中には、日本の特定政党の広報部門からの公式な通知を装っており、参議院選挙に関する依頼が記載され、著名な政治家の代理で送信されたように偽装されたものがありました。すべてのスピアフィッシングメールに悪意のある添付ファイルが含まれており、マシンが侵害されLODEINFOが展開されます。
さらに、MirrorFaceは、これまで検出されたことのない新しいマルウェアを使用して、標的の認証情報を盗んでいました。ESET社はこのマルウェアをMirrorStealerと命名しました。このマルウェアが検出され公開されたのは、今回が初めてだとESET社は考えています。
このブログでは、LODEINFOに送信されたC&Cコマンドなど、セキュリティが侵害された後に確認された行動について解説します。攻撃の対象となったマシンで実行された特定の動作から、MirrorFaceのオペレーターは手動または半手動でLODEINFOマルウェアのコマンドを実行していたと考えられます。
初期アクセス
MirrorFaceは2022年6月29日に攻撃を開始し、悪意のあるファイルを添付したスピアフィッシングメールを標的に配信しました。このメールの件名は 「<一部編集済み>SNS用動画 拡散のお願い」でした。図1と図2にメールの内容を示します。
MirrorFaceは、日本のある政党の広報部門を装い、政党のPRをさらに強化し、参議院での勝利を勝ち取るために、添付の動画を各自のソーシャルメディア(SNS:Social Network Service)から配信するようにメールの受信者に要請しています。さらに、このメールでは、ビデオを公開するための戦略についても明確に指示しています。
2022年7月10日に参議院選挙が実施されていることから、このメールはMirrorFaceが政治団体を攻撃しようとしていたことをが明確になっています。また、メールの具体的な内容から、特定の政党の党員が標的にされたことがわかります。
MirrorFaceは、このキャンペーンで別のスピアフィッシングメールも使用しており、添付ファイルのタイトルは 【参考】220628<編集済>発・<編集済>選挙管理委員会宛文書(添書分).exeになっていました。添付されていたおとり文書(図3に表示)では、参議院選挙についても言及しています。
いずれの場合も、メールには、 <編集済>SNS用動画 拡散のお願い.exeおよび【参考】220628<編集済>発・<編集済>選挙管理委員会宛文書(添書分).exeというファイル名が付けられた自己展開型のWinRARアーカイブファイルが添付されていました。
これらのEXEは、アーカイブされているコンテンツを%TEMP% フォルダーに展開します。具体的には、次の4つのファイルが展開されます。
- K7SysMon.exe。これは、K7 Computing Pvt Ltd が開発した正規のアプリケーションであり、DLLの検索順序をハイジャックする脆弱性が存在します。
- K7SysMn1.dll。悪意のあるローダー。
- K7SysMon.Exe.db。暗号化されたLODEINFOマルウェア
- おとり文書
そして、標的を欺くために、おとりの文書を開き、正規のファイルのように見せかけています。最後のステップとして、K7SysMon.exeが実行され、一緒にドロップされた悪意のあるローダーK7SysMn1.dllがロードされます。最後にローダーは K7SysMon.Exe.dbのコンテンツを読み取り、復号化してから実行します。カスペルスキーもこの手法を確認しており、同社のレポートにも記載されています。
ツールセット
このセクションでは、「LiberalFace作戦」でMirrorFaceが使用したマルウェアについて説明します。
LODEINFO
LODEINFOは、MirrorFaceが継続的に開発しているバックドアです。JPCERTは、2019年12月頃に出現したLODEINFOの最初のバージョン(v0.1.2)について報告しており、スクリーンショットのキャプチャ、キーロギング、プロセスの強制終了、ファイルの外部への送信、追加のファイルおよびコマンドの実行などの機能をLODEINFOが搭載していることを報告しています。その後、バージョンアップを重ね、現在に至っています。例えば、ESETが2020年6月に初めて検出したバージョン0.3.8では、定義されたファイルやフォルダーを暗号化するコマンドransomが追加され、ESETが2021年7月に検出したバージョン0.5.6では、オペレーターがレジストリに保存された設定を変更できるコマンドconfigが追加されています。上記のJPCERTの報告以外にも、今年初めにはカスペルスキーがLODEINFOバックドアを詳細に解析した結果を公表しています。
LiberalFace作戦では、MirrorFaceのオペレーターが、通常のLODEINFOと、ESET社がセカンドステージと呼んでいるLODEINFOマルウェアの両方を利用していることが確認されています。セカンドステージのLODEINFOは、全体的な機能から、通常のLODEINFOと区別できます。特に、セカンドステージのLODEINFOでは、実装されているコマンド以外のPEバイナリやシェルコードも受け入れて実行できます。さらに、セカンドステージのLODEINFOはC&Cコマンドのconfigを処理できますが、ransomコマンドに対応する機能が欠落しています。
最後に、C&Cサーバーから受け取るデータも、通常のLODEINFOとセカンドステージのLODEINFOでは異なります。セカンドステージのLODEINFOでは、C&Cサーバーは実際のデータの前にランダムなWebページのコンテンツを配置します。受信するデータの差異については、 図4、図5、図6を参照してください。セカンドステージのC&Cから受信した各データストリームでは、追加されるコードスニペットが異なっています。
MirrorStealer
MirrorStealerは、MirrorFaceが内部的には31558_n.dll と命名しているマルウェアであり、認証情報を窃取します。ESET社の知る限り、これはこれまで公開されていないマルウェアです。MirrorStealerは通常、ブラウザーやメールクライアントなどのさまざまなアプリケーションから認証情報を盗み取ります。注意が必要なのは、対象となるアプリケーションの1つが、現在日本でしか利用できないメールクライアントBecky!であることです。窃取されたすべての認証情報は、%TEMP%\31558.txt に保存されます。MirrorStealerは窃取したデータを外部に送信する機能を実装していないため、外部にデータを送信するためには他のマルウェアを利用します。
セキュリティが侵害された後の活動
今回の調査では、セキュリティが侵害されたコンピューターで実行されたコマンドの一部を確認することができました。
最初の環境の偵察
セキュリティが侵害されたマシンでLODEINFOを起動し、C&Cサーバーへの接続に成功すると、MirrorFaceのオペレーターがコマンドの実行を開始しました(図7を参照)。
まず、オペレーターはLODEINFOコマンドの1つであるprintを実行し、侵害したマシンの画面をキャプチャしました。このコマンドが実行された後には、LODEINFOが存在している現在のフォルダー(つまり%TEMP%)のコンテンツを見るために、別のコマンドであるlsが実行されています。このオペレーターは、その直後にLODEINFOを使用してnet viewとnet view /domainを実行し、ネットワーク情報を取得しています。最初のコマンドは、ネットワークに接続されているコンピューターのリストを返し、2番目のコマンドは、利用可能なドメインのリストを返します。
認証情報とブラウザーCookieの窃取
これらの基本的な情報を収集した後に、このオペレーターは次の段階に移ります(図8を参照)。
このオペレーターは、-memoryサブコマンドを付けて LODEINFOコマンドのsendを実行し、侵害したマシンにMirrorStealerマルウェアを配信しています。サブコマンドの-memoryは、MirrorStealerをメモリ内に保持するようにLODEINFOに指示するために使用され、MirrorStealerバイナリがディスクにドロップされないようにしています。続いて、コマンドmemoryが実行されています。このコマンドは、MirrorStealerを取得し、大量に生成されたcmd.exeプロセスにこのマルウェアを注入して実行するようにLODEINFOに指示しています。
MirrorStealerが認証情報を収集し、 %temp%\31558.txtに保存すると、このオペレーターはLODEINFOを使用して認証情報を外部に送信しました。
このオペレーターは、標的となったユーザーのブラウザーCookieにも関心を持っています。しかし、MirrorStealerはこれらのCookieを収集する機能を実装していません。そのため、オペレーターはLODEINFOから手動でCookieを外部に送信していました。このオペレーターはまず、LODEINFOコマンドのdirを使用して、%LocalAppData%\Google\Chrome\User Data\と %LocalAppData%\Microsoft\Edge\User Data\フォルダーのコンテンツを表示しました。次に、特定されたすべてのCookieファイルを%TEMP%フォルダーにコピーしました。次に、LODEINFOコマンドのrecvを使用して、収集したすべてのCookieファイルを外部に送信しました。最後に、オペレーターはコピーしたCookieファイルを%TEMP%フォルダーから削除し、攻撃の痕跡を消し去ろうとしました。
文書やメールの窃取
このオペレーターは、次の段階で、さまざまな種類の文書や保存されたメールを外部に送信しました(図9を参照)。
そのため、オペレーターは最初にLODEINFOを使用して、WinRARアーカイバー(rar.exe)を配信しました。rar.exeを使用して、%USERPROFILE%\と C:\$Recycle.Bin\から2022年1月1日以降に変更された重要なファイルを収集してアーカイブしました。このオペレーターは、拡張子が.doc*、.ppt*、.xls*、.jtd、.eml、.*xps、.pdfのファイルすべてを収集の対象としていました。
MirrorFaceは、これらの一般的な文書タイプの他にも、.jtdの拡張子のファイルも収集していたことに注意が必要です。この拡張子のファイルは、JustSystemsが開発した日本語ワードプロセッサー一太郎の文章です。
アーカイブが作成されると、オペレーターはPuTTYスイートからSCP(Secure Copy Protocol)クライアント(pscp.exe)を配信し、このクライアントを使用して作成したRARアーカイブを45.32.13[.]180にあるサーバーに送信しました。このIPアドレスは、過去のMirrorFaceの活動では確認されておらず、ESETが確認したLODEINFOマルウェアのC&Cサーバーとしても使用されていません。アーカイブを送信した直後に、オペレーターは活動の痕跡を消すために rar.exe、pscp.exe、およびRARアーカイブを削除しています。
セカンドステージのLODEINFOの展開
最後にESETが観察したのは、セカンドステージのLODEINFOの配信です( 図10を参照)。
オペレーターはJSESPR.dll、 JsSchHlp.exe、 vcruntime140.dllのバイナリを侵害したマシンに配信しています。オリジナルのJsSchHlp.exeは、先に述べた日本語ワードプロセッサーの製造元であるジャストシステム社が署名している正規のアプリケーションです。しかし、MirrorFaceのオペレーターは、マイクロソフト社のデジタル署名検証における既知の問題を悪用し、JsSchHlp.exeのデジタル署名にRC4で暗号化されたデータを追加しています。この問題により、Windowsは改変されたJsSchHlp.exeに 有効な署名が追加されていると見なしてしまいます。
JsSchHlp.exeは、DLLサイドローディングの影響を受けている可能性もあります。このファイルを実行するときに、攻撃者が仕組んだJSESPR.dllがロードされます(図11を参照)。
JSESPR.dllは、JsSchHlp.exeから追加されたペイロードを読み込み、復号化して実行する悪意のあるローダーです。このペイロードはセカンドステージのLODEINFOです。オペレーターは通常のLODEINFOを使用してセカンドステージのLODEINFOを常駐化させます。特に、オペレーターはreg.exeユーティリティを実行して、JsSchHlp.exeのパスが保存されているRunレジストリキーにJsSchHlpという値を追加しています。
しかし、セカンドステージのLODEINFOをC&Cサーバーと正しく通信させることができなかったと考えられます。そのため、セカンドステージのLODEINFOをこのオペレーターがこの後でどのように操作したのかは不明なままです。
注意すべき観察結果
この調査では、注意すべきいくつかのことが明らかになりました。1つは、このオペレーターがLODEINFOでコマンドを実行するときに、いくつかのエラーを発生させたり、タイプミスをしたりしていることです。たとえば、オペレーターはLODEINFOにcmd /c dir "c:\use\"という文字列を送信していますが、正しい文字列はcmd /c dir "c:\users\"であった可能性が高いです。
これは、オペレーターが手動または半手動でLODEINFOでコマンドを実行していることを示しています。
また、オペレーターは攻撃の痕跡を消去するためにいくつかのクリーンアップ処理を実行したにもかかわらず、窃取した認証情報が含まれるログである%temp%\31558.txtを削除するのを忘れています。このように、少なくともこの攻撃の痕跡は侵害されたマシンに残っており、オペレーターによるクリーンアップ処理が徹底されていなかったことを示しています。
結論
MirrorFaceは、日本国内の組織を標的として攻撃を行っています。LiberalFace作戦では、参議院選挙を目前に控えた政治団体を主要な標的としていました。さらに興味深いことに、MirrorFaceは特定の政党の党員を攻撃の対象としていることがわかりました。
LiberalFace作戦の調査では、標的となったユーザーから重要なデータを収集して送信するために、追加のマルウェアやツールを展開して利用するなど、MirrorFaceの詳細なTTP(戦術、技術、手順)を明らかにすることができました。また、MirrorFaceのオペレーターには不注意な点があり、攻撃の痕跡を残したり、さまざまなミスを犯していることが判明しています。
IOC(セキュリティ侵害の痕跡)
ファイル
SHA-1 | ファイル名 | 検出 | 説明 |
---|---|---|---|
F4691FF3B3ACD15653684F372285CAC36C8D0AEF | K7SysMn1.dll | Win32/Agent.ACLP | LODEINFOローダー。 |
DB81C8719DDAAE40C8D9B9CA103BBE77BE4FCE6C | K7SysMon.Exe.db | N/A | 暗号化されたLODEINFO。 |
A8D2BE15085061B753FDEBBDB08D301A034CE1D5 | JsSchHlp.exe | Win32/Agent.ACLP | セキュリティディレクトリに暗号化されたセカンドステージのLODEINFOが追加されたJsSchHlp.exeがあります。 |
0AB7BB3FF583E50FBF28B288E71D3BB57F9D1395 | JSESPR.dll | Win32/Agent.ACLP | セカンドステージのLODEINFOローダー。 |
E888A552B00D810B5521002304D4F11BC249D8ED | 31558_n.dll | Win32/Agent.ACLP | MirrorStealer認証情報窃取ツール。 |
ネットワーク
IP | プロバイダー | First Seen | 詳細 |
---|---|---|---|
5.8.95[.]174 | G-Core Labs S.A. | 2022-06-13 | LODEINFOのC&Cサーバー。 |
45.32.13[.]180 | AS-CHOOPA | 2022-06-29 | データを外部に送信するために使用されるサーバー。 |
103.175.16[.]39 | Gigabit Hosting Sdn Bhd | 2022-06-13 | LODEINFOのC&Cサーバー。 |
167.179.116[.]56 | AS-CHOOPA | 2021-10-20 | www.ninesmn[.]com、セカンドステージのLODEINFO のC&Cサーバー。 |
172.105.217[.]233 | Linode, LLC | 2021-11-14 | www.aesorunwe[.]com、セカンドステージのLODEINFOのC&Cサーバー。 |
MITRE ATT&CKの技術
この表は、MITRE ATT&CKフレームワークのバージョン12を使用して作成されています。
なお、このブログでは、LODEINFOの機能について詳しく説明していませんが、これらの機能の情報はすでに他のレポートで公開されているため、次のMITRE ATT&CKの表には、これらの機能に関連するすべての手法が記載されています。
手法 | ID | 名前 | 説明 |
---|---|---|---|
初期アクセス | T1566.001 | フィッシング:スピアフィッシングの添付ファイル | スピアフィッシングメールに悪意のあるWinRAR SFXアーカイブが添付されています。 |
実行 | T1106 | ネイティブAPI | LODEINFOは、CreateProcessA APIを使用してファイルを実行できます。 |
T1204.002 | ユーザーによる実行:悪意のあるファイル | MirrorFaceのオペレーターは、標的のユーザーがメールで送られた悪意のある添付ファイルを開くことを攻撃の前提にしています。 | |
T1559.001 | プロセス間通信:コンポーネントオブジェクトモデル(COM) | LODEINFOは、コンポーネントオブジェクトモデル(COM)を介してコマンドを実行できます。 | |
常駐化 | T1547.001 | ブートまたはログオン自動起動:Runレジストリキーやスタートアップフォルダーの悪用 | LODEINFOは、HKCU Runキーにエントリを追加し、常駐します。 ESETは、MirrorFaceのオペレーターが、セカンドステージのLODEINFOを常駐させるために、HKCU Runキーに手動でエントリを追加していることを確認しています。 |
防衛機能の回避 | T1112 | レジストリの変更 | LODEINFOは、設定をレジストリに保存できます。 |
T1055 | プロセスインジェクション | LODEINFOは、cmd.exeにシェルコードを注入できます。 | |
T1140 | ファイルや情報の難読化解除と復号化 | LODEINFOローダーは、シングルバイトのXORまたはRC4を使用してペイロードを復号化します。 | |
T1574.002 | ハイジャックの実行フロー:DLLサイドローディング | MirrorFaceは、悪意のあるライブラリと正規の実行ファイル(例、K7SysMon.exe)をドロップして、LODEINFOをサイドローディングします。 | |
検出 | T1082 | システム情報の検出 | LODEINFOは侵害したマシンの情報を収集します。 |
T1083 | ファイルおよびディレクトリの検出 | LODEINFOは、ファイルやディレクトリの一覧を取得できます。 | |
T1057 | プロセスの検出 | LODEINFOは、実行中のプロセスを一覧表示できます。 | |
T1033 | システムオーナー/ユーザーの検出 | LODEINFOは、標的となったユーザーの名前を取得できます。 | |
T1614.001 | システムの場所の検出:システム言語の検出 | LODEINFOは、システムの言語をチェックし、英語を使用するように設定されたマシンで実行されていないことを確認します。 | |
収集 | T1560.001 | 収集したデータのアーカイブ:ユーティリティを利用したアーカイブ | ESETは、MirrorFaceのオペレーターが、収集したデータをRARアーカイブツールを使用してアーカイブしていることを確認しています。 |
T1114.001 | メールの収集:ローカルメールの収集 | ESETは、MirrorFaceのオペレーターが、保存されているメールを収集していることを確認しています。 | |
T1056.001 | 入力情報の取得:キーロギング | LODEINFOは、キーロギングを行います。 | |
T1113 | 画面キャプチャ | LODEINFOはスクリーンショットを取得できます。 | |
T1005 | ローカルシステムのデータ | ESETは、MirrorFaceのオペレーターが、重要なデータを収集し、外部に送信していることを確認しています。 | |
C&C(コマンド&コントロール) | T1071.001 | アプリケーションレイヤープロトコル:Webプロトコル | LODEINFOは、C&Cサーバーとの通信にHTTPプロトコルを使用します。 |
T1132.001 | データのエンコーディング:標準エンコーディング | LODEINFOは、URLセーフのbase64を使用して、C&Cトラフィックをエンコードします。 | |
T1573.001 | 暗号化されたチャンネル:対称暗号方式 | LODEINFOは、C&Cトラフィックの暗号化にAES-256-CBCを使用します。 | |
T1001.001 | データの難読化:ジャンクデータ | セカンドステージのLODEINFOのC&Cは、送信するデータの前にジャンクデータを配置します。 | |
情報の外部への送信 | T1041 | C&Cチャネルからの送信 | LODEINFOは、C&Cサーバーにファイルを送信できます。 |
T1071.002 | アプリケーションレイヤープロトコル:ファイル転送プロトコル | ESETは、MirrorFaceがSecure Copy Protocol(SCP)を使用して収集したデータを送信しているのを確認しています。 | |
影響 | T1486 | データの暗号化により影響を与える | LODEINFOは、標的ユーザーのマシンにあるファイルを暗号化できます。 |