前文
Elasticセキュリティは、ベトナムの金融機関を標的としたPHOREAL/RIZZOバックドアの進行中のキャンペーンを特定しました。 このマルウェアは以前から使用されてきましたが、防御回避やキャンペーン保護の手法としてメモリにロードされるのを観察したのは今回が初めてです。 私たち自身の観察結果と以前に報告された情報を分析した結果、この活動グループ(マルウェア+技術+被害者学)をREF4322として追跡しています。
その脅威
PHOREAL/RIZZOは、最初の被害者の特徴付けとその後の悪用後の操作を可能にするバックドアであり、組織のデータの機密性を損ないます。 他の研究では、APT32(別名SeaLotus、OceanLotus、APT-C-00、Group G0050)のみが使用していると報告されています。
その影響は何か
APT32は、主に東南アジア、特にベトナムで政治的または経済的利益を持つ被害者を対象としています。
Elasticはそれに対して何をしていますか?
Elasticセキュリティは、これらの脅威アラートの1つをトリアージする方法を詳しく説明し、エンドポイントとネットワークのフィルタリングのためのオブザーバブルを抽出し、デプロイされたElastic Agentsのフリート全体で脅威を特定して軽減するための新しいマルウェアシグネチャを生成しました。
調査内容
Elasticセキュリティのリサーチャーは、脅威のディスカバリーと監視の運用中に、Elastic Agentエンドポイントセンサーから生成されるshellcode_thread Windowsメモリ保護アラートのクラスターを特定しました。 これらの特定のアラートは、すべて同じクラスター内で発生し、珍しくcontrol.exeプロセスを標的にしていたため、興味深いものでした。 Windows control.exe プロセスは、ユーザーがコンピューター設定を表示および調整できるユーティリティであるコントロール パネル項目の実行を処理します。
一般に、shellcode_thread保護の誤検知が観察されると、それは広範なユーザーベースで特定され、多くの場合、さまざまなゲームアンチチートまたはDRM(デジタル著作権管理)メカニズムに起因します。 このケースでは、1 つのクラスターと Microsoft が署名したターゲット プロセスは非典型的であり、さらに調査する価値があります。
Elasticセキュリティのメモリ保護の詳細についてはこちらを、インメモリ攻撃の詳細についてはこちらを参照してください。
アラートの外れ値特性から興味をそそられた私たちは、脅威を検証し、特徴付けるためにさらに調査を行いました。
対象プロセスは署名された Windows バイナリです
...
"process": {
"args": [
"control.exe",
"Firewall.cpl",
"{2D48D219-C306-4349-AE1F-09744DFFB5B9}"
],
"Ext": {
"code_signature": [
{
"trusted": true,
"subject_name": "Microsoft Windows",
"exists": true,
"status": "trusted"
}
],
"dll": [
...
署名されていないロードされた.dll
...
"Ext": {
"mapped_address": 1945501696,
"mapped_size": 21135360
},
"path": "C:\\Windows\\SysWOW64\\tscon32.dll",
"code_signature": [
{
"exists": false
}
],
"name": "tscon32.dll",
"hash": {
"sha1": "007970b7a42852b55379ef4cffa4475865c69d48",
"sha256": "ec5d5e18804e5d8118c459f5b6f3ca96047d629a50d1a0571dee0ac8d5a4ce33",
"md5": "2b6da20e4fc1af2c5dd5c6f6191936d1"
}
},
...
アラートスレッドからモジュールを開始する
...
"pe": {
"original_file_name": "CONTROL.EXE"
},
"name": "control.exe",
"pid": 5284,
"thread": {
"Ext": {
"start_address_module": "C:\\Windows\\SysWOW64\\tscon32.dll",
...
メモリ領域メタデータのアラート
...
"memory_region": {`
"region_size": 73728,
"region_protection": "RWX",
"allocation_base": 81395712,
"bytes_allocation_offset": 0,
"allocation_type": "PRIVATE",
"memory_pe_detected": true,
"region_state": "COMMIT",
"strings": [
"QSSSSSSh ",
...
"bad cast",
"Local\\{5FBC3F53-A76D-4248-969A-31740CBC8AD6}",
"Netapi32.dll",
"NetWkstaGetInfo",
"NetApiBufferFree",
"\\\\.\\pipe\\{A06F176F-79F1-473E-AF44-9763E3CB34E5}",
"list<T> too long",
"{FD5F8447-657A-45C1-894B-D533926C9B66}.dll",
"DllEntry",
...
".?AVbad_alloc@std@@",
"C:\\Windows\\syswow64\\control.exe",
":z:zzzzzz7",
...
"InternalName",
"mobsync.exe",
"LegalCopyright",
...
ピボット用のスレッドデータ
...
"thread": {
"Ext": {
"start_address_bytes": "8bff558bece8e6430000e8db43000050e8bb43000085c0751fff7508e8c94300",
...
"start_address_bytes_disasm": "mov edi, edi\npush ebp\nmov ebp, esp\ncall 0x000043f0\ncall 0x000043ea\npush eax\ncall 0x000043d0\ntest eax, eax\njnz 0x00000038\npush dword ptr [ebp+0x08]"
},
...
アラートの例から、最初にスレッドが開始されたdll/モジュールであるstart_address_moduleを特定します。 C:\Windows\SysWOW64\tscon32.dll は、アラートを出したスレッドのstart_address_moduleです。 また、ロードされた唯一の未署名のdllであるため、私たちの努力を集中するのに最適な場所です。 VirusTotalのハッシュ値を確認したところ、サンプルについて以前に開示された情報を特定するため、結果は見つかりませんでした。
さらに深く掘り下げると、アラートスレッドの最初の 32 バイトであるstart_address_bytesを調べました。 start_address_bytesの値 (8bff558bece8e6430000e8db43000050e8bb43000085c0751fff7508e8c94300) を使用して、{8bff558bec56e83f3e0000e8343e000050e8143e000085c0752a8b750856e821}という内容をクエリすることで、VirusTotal のピボットを検索できます。 比較的少ない結果しか確認できませんでしたが、2021年7月に初めて提出された 以下のエントリー が含まれていました。
VirusTotalの結果を調査したところ、脅威研究者のFelix Bilstein氏(@fxb_b)が、これを PHOREAL バックドアと特定するクラウドソーシングのYARAルールを作成していることがわかりました。 [コンテンツ] タブに移動すると、アラートの文字列の一部を、以前に VirusTotal に報告された文字列と比較できます。
上記で特定した一意の文字列とstart_address_bytesを使用して、以下に示すように、一意の文字列 ($a) とstart_address_bytes ($b) を 16 進数に変換することで YARA 署名を作成できます。
変換された YARA 文字列
strings:
\\ "\\.\pipe\{A06F176F-79F1-473E-AF44-9763E3CB34E5}" ascii wide
$a1 = { 5C 00 5C 00 2E 00 5C 00 70 00 69 00 70 00 65 00 5C 00 7B 00 41 00
30 00 36 00 46 00 31 00 37 00 36 00 46 00 2D 00 37 00 39 00 46 00
31 00 2D 00 34 00 37 00 33 00 45 00 2D 00 41 00 46 00 34 00 34 00
2D 00 39 00 37 00 36 00 33 00 45 00 33 00 43 00 42 00 33 00 34 00
45 00 35 00 7D 00 }
\\ "Local\{5FBC3F53-A76D-4248-969A-31740CBC8AD6}" ascii wide
$a2 = { 4C 00 6F 00 63 00 61 00 6C 00 5C 00 7B 00 35 00 46 00 42 00 43 00
33 00 46 00 35 00 33 00 2D 00 41 00 37 00 36 00 44 00 2D 00 34 00
32 00 34 00 38 00 2D 00 39 00 36 00 39 00 41 00 2D 00 33 00 31 00
37 00 34 00 30 00 43 00 42 00 43 00 38 00 41 00 44 00 36 00 7D 00 }
\\ "{FD5F8447-657A-45C1-894B-D533926C9B66}.dll" ascii
$a3 = { 7B 46 44 35 46 38 34 34 37 2D 36 35 37 41 2D 34 35 43 31 2D 38 39
34 42 2D 44 35 33 33 39 32 36 43 39 42 36 36 7D 2E 64 6C 6C }
\\ PHOREAL start_address_bytes sequence
\\ mov edi, edi; push ebp; mov ebp, esp; call 0x000043f0;
\\ call 0x000043ea; push eax; call 0x000043d0; test eax, eax;
\\ jnz 0x00000038; push dword ptr [ebp+0x08]
$str_addr = { 8B FF 55 8B EC 56 E8 3F 3E 00 00 E8 34 3E 00 00 50 E8 14 3E
00 00 85 C0 75 2A 8B 75 08 56 E8 21 }
condition:
2 of them
このルールをElastic Agentにデプロイすると、PHOREALがお客様に識別され、shellcode_threadメモリ保護(メモリ保護がオンになっているお客様の環境)によってすでに提供されているバックストップ防止が特定されます。 私たちの場合、このルールのデプロイにより、 Cobalt Strike Beaconsの収集 の記事で詳しく説明されているのと同じメカニズムを使用して、悪意のあるスレッドの収集も可能になりました。
新しい YARA アーティファクトがデプロイされた直後、メモリからキャプチャされた悪意のあるスレッドに関する新しい malware_signature アラートが手元にありました。 マルウェア分析およびリバースエンジニアリング(MARE)チームによる手動バイナリトリアージにより、サンプルと過去のレポートの構造と機能を比較することにより、サンプルがPHOREAL/RIZZOであることを迅速に確認しました。 さらに、 2018年のCYLANCE OceanLotusホワイトペーパー で説明されているように、 RCDATAリソース からRC4暗号化ドメインを抽出することができました。
MARE(thelivemusicgroup[.]com) は現在 103.75.117[.] に解決されます。250 Oneprovider[.]com、 カナダに拠点を置く専用サーバーホスティング会社で、データセンターは世界中に分散しています。
https://ipinfo.io/ 103.75.117[.] のクエリ結果250
{
"ip": "103.75.117[.]250",
"city": "Hong Kong",
"region": "Central and Western",
"country": "HK",
"loc": "22.2783,114.1747",
"org": "AS133752 Leaseweb Asia Pacific pte. ltd.",
"timezone": "Asia/Hong_Kong",
"asn": {
"asn": "AS133752",
"name": "Leaseweb Asia Pacific pte. ltd.",
"domain": "leaseweb.com",
"route": "103.75.117[.]0/24",
"type": "hosting"
},
"company": {
"name": "Oneprovider.com - Hong Kong Infrastructure",
"domain": "oneprovider[.]com",
"type": "hosting"
},
"privacy": {
"vpn": false,
"proxy": false,
"tor": false,
"relay": false,
"hosting": true,
"service": ""
},
"abuse": {
"address": "1500 Ste-Rose LAVAL H7R 1S4 Laval Quebec, Canada",
"country": "CA",
"email": "info@oneprovider.com",
"name": "ONE PROVIDER",
"network": "103.75.117[.]0/24",
"phone": "+1 514 286-0253"
},
"domains": {
"ip": "103.75.117[.]250",
"total": 2,
"domains": [
"thelivemusicgroup[.]com",
"cdn-api-cn-1[.]com"
]
}
ドメインに関する興味深い情報のほとんどはプライバシー保護されていますが、次の図の「更新」と「作成日」は、このドメインが悪意を持って使用されている期間を制限するのに役立つ場合があります。
Elastic Agentは侵害後にデプロイされたようで、初期アクセスのベクトルを決定する能力が制限されていました。 2017年のMandiantのレポートによると、PHOREALは、被害者のトリアージとその後の搾取後のツールを可能にする「足場を確立する」能力で展開される可能性があることが示されています。
分析
Elasticセキュリティは、 ダイヤモンドモデル を使用して、侵入の敵対者と被害者の間の高レベルの関係を記述します。
敵対者評価の正当化
私たちは、観測された活動と以前の報告に基づいて、REF4322 APT32/OceanLotus とこのインシデントの背後にいる攻撃者であると高い信頼性で評価しています。 APT32は 2014 年から活動しており、特に東南アジアの政府や企業、またはベトナムに関心を持つその他の国際的な企業を対象としています。APT32は、現在PHOREALバックドアを操作していると特定されている唯一のグループであり、被害者は、典型的な以前のAPT32被害者の地理的および業界別プロファイルと一致しています。
まとめ
YARAルール
このPHOREALアクティビティを識別するために、YARAルールを作成しました。
REF4322/APT32インメモリバックドアPHOREAL/Rizzoを検出するためのYaraルール
rule Windows_Trojan_PHOREAL {
meta:
Author = "Elastic Security"
creation_date = "2022-02-16"
last_modified = "2022-02-16"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "PHOREAL"
threat_name = "Windows.Trojan.PHOREAL"
description = "Detects REF4322/APT32 in-memory backdoor PHOREAL/Rizzo."
reference_sample = "88f073552b30462a00d1d612b1638b0508e4ef02c15cf46203998091f0aef4de"
strings:
\\ "\\.\pipe\{A06F176F-79F1-473E-AF44-9763E3CB34E5}" ascii wide
$a1 = { 5C 00 5C 00 2E 00 5C 00 70 00 69 00 70 00 65 00 5C 00 7B 00 41 00
30 00 36 00 46 00 31 00 37 00 36 00 46 00 2D 00 37 00 39 00 46 00
31 00 2D 00 34 00 37 00 33 00 45 00 2D 00 41 00 46 00 34 00 34 00
2D 00 39 00 37 00 36 00 33 00 45 00 33 00 43 00 42 00 33 00 34 00
45 00 35 00 7D 00 }
\\ "Local\{5FBC3F53-A76D-4248-969A-31740CBC8AD6}" ascii wide
$a2 = { 4C 00 6F 00 63 00 61 00 6C 00 5C 00 7B 00 35 00 46 00 42 00 43 00
33 00 46 00 35 00 33 00 2D 00 41 00 37 00 36 00 44 00 2D 00 34 00
32 00 34 00 38 00 2D 00 39 00 36 00 39 00 41 00 2D 00 33 00 31 00
37 00 34 00 30 00 43 00 42 00 43 00 38 00 41 00 44 00 36 00 7D 00 }
\\ "{FD5F8447-657A-45C1-894B-D533926C9B66}.dll" ascii
$a3 = { 7B 46 44 35 46 38 34 34 37 2D 36 35 37 41 2D 34 35 43 31 2D 38 39
34 42 2D 44 35 33 33 39 32 36 43 39 42 36 36 7D 2E 64 6C 6C }
\\ PHOREAL start_address_bytes sequence
$str_addr = { 8B FF 55 8B EC 56 E8 3F 3E 00 00 E8 34 3E 00 00 50 E8 14 3E
00 00 85 C0 75 2A 8B 75 08 56 E8 21 }
condition:
2 of them
}
防御のための推奨アクション
次の手順を活用すると、ネットワークの保護態勢を改善できます。
- WindowsエンドポイントでElastic Security Memory Protectionを有効にする
- 上記の付属のYARAシグネチャを活用して、組織内にPHOREALアクティビティが存在するかどうかを判断します
- 特定されたネットワーク IOC との間のネットワーク トラフィックを監視またはブロックし、それに応じて影響を受けたシステムを修復します。
参照資料
本記事の全体を通じて、参照した調査研究は次の通りです。
- https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections/blob/master/2018/2018.10.17.OceanLotus_SpyRATs/SpyRATsofOceanLotusMalwareWhitePaper.pdf
- https://www.mandiant.com/resources/cyber-espionage-apt32
- https://www.secureworks.com/research/threat-profiles/tin-woodlawn
- https://attack.mitre.org/software/S0158/
- https://attack.mitre.org/groups/G0050/
Observables
インジケータ | タイプ | 参考 | メモ |
---|---|---|---|
thelivemusicgroup[.]com | ドメイン名 | マルウェアで暗号化されたC2ドメイン | |
103.75.117[.]250 | IPv4-アドレス | thelivemusicgroupのIPを解決しました[.]コム | |
ec5d5e18804e5d8118c459f5b6f3ca96047d629a50d1a0571dee0ac8d5a4ce33 | SHA256 | tscon32.dll | PHOREALファイルファイル |
アーティファクト(Artifacts)
アーティファクトは、ECS形式とSTIX形式の両方で、結合されたzipバンドルで ダウンロード することもできます。