ACRStealer は、昨年から配布が始まったインフォスティーラー マルウェアである。今年の初めから本格的に配布が始まり、ASEC では DDR(DeadDropResolver) 手法で Google Docs と Steam を 経由地 C2 で活用する ACRStealer に関する情報を紹介したことがある。
近年には新しく変形したバージョンの ACRStealer が姿を見せ始め、活発に配布されている。情報窃取機能自体は以前と大きな違いはないが、検知回避および解析妨害手法を多数適用したことが特徴である。また、新しい機能を追加する変形が持続的に発生している。
変形された ACRStealer は、C2 接続などの主要な関数を実行する際、Heaven’s Gate 手法を使用して検知および分析を妨害する。Heaven’s Gate は、WoW64 プロセスで x64 コードを実行する手法であり、分析妨害および検知回避のために広く使用される方式である。x86 プロセッサーでは動作しないため、限定された目的で主に使用されていたが、近年にはサービス型マルウェアでも頻繁に発見されている。
C2 通信時、 WinHTTP、Winsock のようなライブラリを使用する一般的な方式ではなく、NtCreateFile、NtDeviceIoControlFile などの低レベルの NT 関数のみを使用して AFD ドライバーと直接通信する方式で Socket を実装し、HTTP 構造を直接組み立てて C2 サーバーと通信する。このような手法によって、ライブラリベースのモニタリングを回避することができる。関連して、「NTSockets」と呼ばれるオープンソースプロジェクトが公開されており、これを参考にして製作されたものと推定される。

図1. C2 通信(接続)コード
また、HTTP リクエストヘッダに入力されるホストドメインアドレスと、実際の C2 通信に使用する IP アドレスが別途ハードコーディングされている。一部のサンプルではホストドメインアドレスと IP アドレスが一致する様子が見られるが、ホストドメインアドレスで有名な正常ドメインを使用するサンプルも発見されている。この場合、一部のモニタリングツールでは実際に接続する IP アドレスではなく、正常なドメインで C2 接続アドレスが表示されることがある。

図2. 正常なホスト名と C2 IP アドレス

図3. VirusTotal の URL 接続振る舞い情報、実際には C2 IP 85.208.139.75 と通信
現在までに偽装用の正常ドメインで micosoft.com、avast.com、facebook.com、google.com、pentagon.com が使用されており、ドメイン形式ではなく「m」文字を使用したサンプルも確認された。偽装用ドメインは持続的に変更されるものと見られる。
- 設定データ暗号化
- アルゴリズム:Base64、RC4
- RC4 キー: “852149723\x00”
- C2 接続形式
- http(s)://{IP}/ujs/f1575b64-8492-4e8b-b102-4d26e8c70371 (設定ファイル受信)
- http(s)://{IP}/Up/x (窃取情報送信)
C2 通信時に使用するプロトコルは HTTP 方式と HTTPS 方式の二種類に分かれる。HTTPS 方式の C2 の場合、初めは CloudFlare ホスティングサービスを使用しており、クラウド特性上、ホストドメインアドレスの改ざんが不可能である。そのため、HTTP 方式のサンプルでのみホストアドレス改ざん手法を適用する様子が見られた。
その後、HTTPS 方式を使用すると同時にホスト改ざん手法を適用したサンプルが登場した。ホスト改ざん手法を使用する場合、クラウドサービスは活用できなくなるため、攻撃者は自己署名した証明書を使用して C2 サーバーを開設した。

図4. C2 サーバーの自己署名証明書
また、この変形からは HTTPS プロトコルの暗号化以外に送受信データを別途暗号化する機能が追加され、同時に C2 アドレス形式が変更された。“enc_”接頭語が追加され、これは既存の開設された C2 サーバーとの区分のためのものと推定される。
- C2 接続形式
送受信データの暗号化には AES-256(CBC) アルゴリズムが使用され、暗号化キーと初期化ベクター(IV) 値はマルウェア内部にコード形式で埋め込まれている。
- データ暗号化
- アルゴリズム: AES-256 (CBC)
- キー: 7640FED98A53856641763683163F4127B9FC00F9A788773C00EE1F2634CEC82F
- 初期化ベクター: 55555555555555555555555555555555

図5. AES キー設定コード
その後、C2 通信方式が大きく変更されたサンプルが登場した。従来は窃取情報送信の目的で使用していた /Up/x、/enc_Up/x パスの代わりにランダム文字列を使用する。ランダム文字列は最初の C2 接続時にサーバーから発行されて伝達され、接続するたびに異なる値を応答する。よって、このような機能を実装するために C2 通信過程が一段階追加された。また、C2 サーバーに設定データを要求する過程が従来の GET 方式から、JSON 構造の文字列をデータに送信する POST 方式に変更された。よって、「ujs」、「enc_ujs」識別文字列はもはや使用されない。C2 通信過程に関する例は以下の通りである。
- C2 接続方式
- https://{IP} (パス情報受信)
-
Request
{“Command”:”GetEndpoints”} Response
{ “a”: “/y_e_z6-_osR9tcQ0w8j_CzQ49~Yc–GqAiE4@iDBkRpd”,
“g”: “/t05_~ICW~~Dg8J-7”,
“b”: “/Z.Y@HgMvWN_6IuB-rI”,
“m”: “/Qufz-iR@3bnZG-ZV-K.Ja4Q_~vQJP7pw-1OHEKXwTUUbC”,
“o”: “/CIsMkC_~64P_GszI-jj_Tui_uSWB4u”,
“w”: “/6q6@bBWgRJJMNd-_.hc@2f~FYqhZ_qD1p7”,
“err”: “/l~1~HzgWe.0o2~_yO-k8”,
“t”: “/Z_J7ja95l~Xj_UyJr@cTZ-SR6gUPxW2”,
“p”: “/g~H_OM.6s10ID8jZTi2–KOlT-azK_s”,
“f”: “/6a2mgaQCayNn9s-i@4_ZoTH_”,
“c”: “/Y-g_hmMD~4.BmGm010Z”
}
-
- https://{IP}/Y-g_hmMD~4.BmGm010Z (設定ファイル受信)
-
Request
{“Id”:”f1575b64-8492-4e8b-b102-4d26e8c70371″} Response
QxdQEw5iTBBdIgIXUG1oWg8QHyJIFwgTaGV7XVBhVGludltWUF
5WXGR2WkNbVFJub1VLUEARcFhDUxEsGkEQCwUVFUJdIgIXUVlG
VlpXHWVAUBBMGEIVXBE6GldubVcBFR4RcBoPEG1odVhRUmxkaX
VeW15bV29ce11AXllcF2FLU2RpZ0JRSxd2UnRZFx4TQBsNAx8i
SFsQCxZaX0BcbV0bV0lRG0oeSCJWFwgTVmVrUQsiFBdCEw4ba2
5/b1tUXm1oflhdVGxdaW5yXEtYX1YgelBGUGhlYkFWchhxU0VV
GxsQRyICBB4TRFcVCBFjUEddXFEXUkpWIkUZSRNaGw0QUVxkVg
oTGBtHEAkiZGl+XldYW25vR1daVV1RZWtxW3JXWFcRcFxBbm9V
S1BAEXBYQ1MRLBpBEAsFFRVCXSICF1FZRlZaVx1lQFAQTBhCFV
wROhpXbm1XARUeEXAaDxBtaHVYUVJsZGl1XlteW1dvXHtdQF5Z
XBdnXXNMVFBdUWVrZ0BlShV2UEBYFR4RdBoPAx0WSVkQCSJbXU
BeWVwZV0tlGkgeShZXFQgRYmRpUQkWFRVCEToaaW59W1pWXm9c
f1pdVlhca25waEpaX1QUelZcUnJBaW5kR1xFEndhTFQQHRZNFQ
gCLBpFXBMOG1RaQW9VUBxUTFwVTx97GlsQCxZba25QMggXHhNE
Gw0Qb1x0WlFQWGVrd0NpWxViQ11PVlFKIHpHXUZHXEVub1VLUE
ARcFhDUxEsGkEQCwUVFUJdIgIXV0FdWhlXS2UaSB5KFlcVCBFi
ZGlRAAEbGxBDIgIXbm14VlRTX1xkY1tHVVVTW29cbUZXQxR9Vk
ZSIhQXRhMOCBsQQ24aDxBHXU9WXldpFlBKVBZEG0kRbhoPEFNo
ZVQABSIUF0ITDhtrbn9vW1RebWgKAQJxcldCQVRGZWtwQW9PRl
dDaGViQVZyGHFTRVUbGxBHIgIEHhNEVxUIEWJKWkVCUUsEBAMu
XU1XE0kVTBBdIgIXUG1oWgYLESwaRRALFmVrflxjWVlubXdWVH
FcY2RpcENbTkRXQVxkYEFURhlzU0dhGhkQRRYDBh4RcFYXCBNX
VlRdUC5dTVcTSRVMEF0iAhdQbWhaARAfIkgXCBNoZXtdUGFUaW…
{ “b”: [
{
“n”: “b\\c8”,
“p”: “\\Local\\Google\\Chrome\\User Data”,
“t”: 1,
“pn”: “chrome.exe”
},
{
“n”: “b\\c8”,
“p”: “\\Local\\Google\\Chrome SxS\\User Data”,
“t”: 1,
“pn”: “chrome.exe”
},
{
“n”: “b\\c8”,
“p”: “\\Local\\Google\\Chrome Beta\\User Data”,
“t”: 1,
“pn”: “chrome.exe”
},
{
“n”: “b\\c8”,
“p”: “\\Local\\Google\\Chrome Dev\\User Data”,
…
-
- https://{IP}/y_e_z6-_osR9tcQ0w8j_CzQ49~Yc–GqAiE4@iDBkRpd (窃取情報送信)
- https://{IP} (パス情報受信)
ACRStealer は C2 の応答に応じて情報窃取の振る舞いやさらなるマルウェアのインストールが可能であり、変形されたサンプルも同様である。解析当時、C2 では複数のブラウザに保存されている情報や拡張プログラム情報、仮想通貨のウォレット情報、メール/FTP/クラウドストレージ/スティッキーノート/アカウント管理/データベース/リモート接続などのセンシティブなクライアント情報、doc/txt/pdf ドキュメントファイルなどを窃取し、C2 に送信してさらなるマルウェアをインストールするように構成された設定データを応答した。
一方、セキュリティ企業 ProofPoint の分析によれば、ACRStealer は近年、AmateraStealer という名前でリブランディングされながら活動を続けているとのこと。このように、攻撃者はマルウェアに機能を追加し続けながら配布に利用している。現在、最も変形が活発なインフォスティーラー型マルウェアであるため、注意が必要である。
Categories: Uncategorized