Abyssos:新しいモジュラ型RATの技術分析
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Abyssosは新たに発見されたC++で開発されたモジュラー型リモート管理ツール(RAT)です。認証情報の窃取、ファイルの抽出、リモートVNCアクセスなどの高度な機能を提供します。このマルウェアはまた、LLVMベースのIRパスを含む高度な難読化手法を利用して、セキュリティ分析と検出を困難にしています。
調査
Zscaler ThreatLabzはAbyssosバージョン2.4Fの技術分析を実施し、その分析回避メカニズム、ネットワークプロトコル、およびコマンドアーキテクチャを調査しました。この調査により、カスタムTCP通信、AES-GCM暗号化、C2サーバーから取得される複数のモジュラーコンポーネントが明らかになりました。研究者はまた、専用のアンチハイパーバイザーチェックと独特のミューテックス命名パターンを特定しました。
緩和策
組織は、LLVMベースの難読化と異常なプロセス行動を識別できるエンドポイントセキュリティコントロールを配備すべきです。セキュリティチームは、許可されていないVNCセッションやWindows一時ディレクトリ内の疑わしいファイル活動を監視すべきです。未知のC2 IPアドレスへの外部接続を制限し、次のような異常なコマンドライン引数を検知することも推奨されます。 --elevated も推奨されます。
対応
Abyssosの活動が検出された場合、インシデントレスポンダーは影響を受けたホストを直ちに孤立させて、C2通信を断ち、横移動を制限すべきです。メモリフォレンジックを実施して、復号化されたモジュールを回収し、どのコマンドが実行されたかを特定してください。ネットワークログも既知のC2 IPアドレスをレビューして侵害のスコープを評価し、潜在的なデータ抽出を特定してください。
攻撃フロー
検出
遅延実行のためのPING使用の可能性(cmdline経由)
検出用IOC(HashSha256):Abyssos:新たなモジュール型RATの技術分析
検出用IOC(SourceIP):Abyssos:新たなモジュール型RATの技術分析
検出用IOC(DestinationIP):Abyssos:新たなモジュール型RATの技術分析
Abyssos 解析回避検出 [Windows プロセス生成]
シミュレーション実行
前提条件: テレメトリ&ベースライン事前チェックが合格していること。
理由:このセクションは、検出ルールを発動させるために設計された敵対者の技術(TTP)の正確な実行詳細を説明します。コマンドと説明は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。抽象的または無関係な例は、誤診につながります。
-
攻撃の説明&コマンド: 敵対者はAbyssos RATを展開することを目指しています。マルウェアが一度だけ実行され、環境を特定するために、ペイロードはマルウェアの挙動を模倣するコマンドを実行します。最初に、攻撃者はVMサービスの存在を
vmtoolsd.exeによってシミュレートします。次に、攻撃者はユニークでUUID形式のグローバルミューテックスを作成しながら--elevatedフラグをコマンドライン引数として渡すことで、二次検出ロジックを引き起こそうとします。これは、解析回避フェーズで単一インスタンスのロックを確立しようとするマルウェアの試みをシミュレートします。 -
回帰テストスクリプト:
# Abyssos シミュレーションスクリプト # このスクリプトは2つの検出パスをシミュレートします: # 1. プロセス名マッチ(vmtoolsd.exe) # 2. ミューテックスパターン + '--elevated' コマンドライン Write-Host "[+] Abyssosシミュレーションを開始..." -ForegroundColor Cyan # パス1: VMプロセスの検出をシミュレート (注:プロセス生成イベントをトリガーできると仮定しています # 'vmtoolsd.exeで終わる'。実際のテストでは、無害なツールの名前をこれに改名するかもしれません。) # シミュレーションのために、ルールが許す場合に、'イメージ' ロジックをトリガーするためにダミーファイルを使用します。 # 管理者/インストールなしで実際のvmtoolsd.exeを簡単に'作成' することができないため、コマンドラインロジックをシミュレートします。 # パス2: ミューテックス + コマンドラインロジックをシミュレート $uuid = [guid]::NewGuid().ToString() $mutexName = "Global$uuid" $commandLine = "malware_payload.exe --elevated" Write-Host "[+] ミューテックスを作成中: $mutexName" -ForegroundColor Yellow # 特定のグローバルミューテックスを作成するためにPowerShellを介して小さなC#コードスニペットを使用します。 $code = @" using System; using System.Threading; public class CreateMutex { public static void Run(string name) { Mutex m = new Mutex(true, name); Console.WriteLine("Mutex created: " + name); // テレメトリのキャプチャのためにしばらく生かしておく Thread.Sleep(5000); m.ReleaseMutex(); } } "@ Add-Type -TypeDefinition $code # コマンドラインロジックをトリガーしています(この行を持つプロセスでシミュレートされる) # 実際の環境では、検出はプロセスの生成を確認します。 # ここでは、ターゲット文字列でプロセスを作成することをシミュレートします。 Write-Host "[+] '--elevated' フラグを持つプロセス実行のシミュレーション中..." -ForegroundColor Yellow Start-Process "cmd.exe" -ArgumentList "/c echo $commandLine" -WindowStyle Hidden # ミューテックスの作成を実行 Write-Host "[+] シミュレーション完了。" -ForegroundColor Green -
クリーンアップコマンド:
# クリーンアップ:永続的なファイルは作成されませんでしたが、孤立プロセスがある場合はそれを閉じます。 Stop-Process -Name "cmd" -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。" -ForegroundColor Cyan