RUSTGate:ドローンスワームの誘因が防衛セクターの標的の可能性を示す
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
新たに特定されたRustベースのリモートアクセス型トロイの木馬(RAT)であるRUSTGateは、ドローン群研究を社会的工学の誘引として使用しています。このマルウェアは悪意のあるLNKファイル、バッチダウンローダー、スケジュールされたタスクを含む多段階の感染チェーンを通じて最終的なインプラントを展開します。アクティブになると、RUSTGateは幅広いファイルの窃盗と暗号化されたHTTP C2通信を介したデータ外部送信に重点を置きます。
調査
この調査は、感染チェーン全体を露出したHunt.ioを通じて発見されたステージングサーバーに焦点を当てました。研究者は、合成リクエストを使用してC2プロトコルと対話し、メッセージの難読化に使用されるAES-256-GCMと、Python Flaskベースのバックエンドを特定しました。分析ではRUSTGateのファイル重視の窃盗ロジックと自動データ収集ルーチンも明らかにされました。
緩和策
防御者は rundll32.exe を使用してコマンドシェルを起動する不審なLNKファイルの監視を優先すべきです。Tempディレクトリへのダウンロードに対する厳格な制御と、無許可のスケジュール済みタスク作成の監視も重要です。ネットワークの分離と、非標準ポートへの通常でないIPアドレスへのアウトバウンドHTTPトラフィックの検出はC2活動をさらに妨害します。
対応
RUSTGateの活動が検出された場合、対応者は直ちに影響を受けたホストを分離し、 upload_state.json ファイルを保存してどのデータが侵害されている可能性があるかを確認するべきです。特定されたC2 IPへのトラフィックのフルパケットキャプチャを収集して遡及的な復号に使用します。システムは NetworkDiagnostics というスケジュールされたタスクと C:WindowsTemp.
にある残余ファイルを確認すべきです。
この部分はまだ更新中です。
検出
二重拡張子付きの可能性のある悪意のあるLNKファイル(cmdline経由)
疑わしいCURL使用法(cmdline経由)
疑わしいファイルダウンロード 直接IP(プロキシ経由)
RUSTGateを検出するためのIOC(HashSha256):ドローン群のルアーが潜在的な防衛セクターを対象としていることを示唆
RUSTGateを検出するためのIOC(SourceIP):ドローン群のルアーが潜在的な防衛セクターを対象としていることを示唆
RUSTGateを検出するためのIOC(DestinationIP):ドローン群のルアーが潜在的な防衛セクターを対象としていることを示唆
RUSTGateコマンド&コントロール通信の検出 [Windowsネットワーク接続]
RUSTGateインプラント活動の検出 [Windowsファイルイベント]
RUSTGateコマンド実行の検出(Rundll32、Cmd、Curl、PowerShell経由)[Windowsプロセス作成]
シミュレーション実行
-
攻撃の流れとコマンド: 攻撃者はWindowsワークステーションへの足掛かりをうまく確立しました。制御を維持しさらなる指示を受けるために、RUSTGateマルウェアはそのコマンド&コントロール(C2)サーバーと「ハートビート」または「チェックイン」を行う必要があります。このマルウェアはハードコードされたIP
5.252.177.210のポート8090に到達するようにプログラムされています。標準のウェブブラウジングからそのトラフィックを区別するために、/registerのような特定のURIパスを要求に追加します。このシミュレーションでは、この特定のC2パターンに対してSOCの検出ロジックがトリガーされるかを検証するために、PowerShellを使用してこの正確なネットワークハンドシェイクを模倣します。/register, to the request. This simulation uses PowerShell to mimic this exact network handshake to validate if the SOC’s detection logic triggers on this specific C2 pattern. -
リグレッションテストスクリプト:
# RUSTGate C2 チェックイン シミュレーション スクリプト # このスクリプトはRUSTGateのネットワークシグネチャを模倣して検出を検証します。 $TargetIP = "5.252.177.210" $TargetPort = "8090" $TargetURI = "/register" $Url = "http://$($TargetIP):$($TargetPort)$($TargetURI)" Write-Host "[*] $Url に対するRUSTGate C2通信をシミュレートしています" -ForegroundColor Cyan try { # Invoke-WebRequestを使用して特定のURIとポートのテレメトリを生成 $Response = Invoke-WebRequest -Uri $Url -Method Get -ErrorAction SilentlyContinue Write-Host "[+] リクエストが正常に送信されました(IPが非アクティブの場合は接続エラーが予想されます)。" -ForegroundColor Green } catch { Write-Host "[!] リクエストが完了しました(存在しないC2エンドポイントに対して予測される通りです)。" -ForegroundColor Yellow } -
クリーンアップ コマンド:
# このシミュレーションによって持続的なアーティファクトは作成されません。 # 単にプロセスの終了を確認するだけです。 Write-Host "[*] シミュレーションが完了しました。クリーンアップは不要です。" -ForegroundColor White