正規ソフトウェアに埋め込まれたSectopRATの亜種を発見
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
攻撃者は、合法的なソフトウェア内にSectopRATリモートアクセス型トロイの木馬を隠すためにマルチステージのローダーを使用しています。マルウェアは、DLLの改ざんと復号化されたASMコードのメモリ内実行に依存してセキュリティ検出を回避します。展開されると、システムを完全にリモート制御し、資格情報の窃取やデータ流出を可能にします。
調査
FortiGuardインシデント対応チームは、合法的なデジタルオーディオワークステーションディレクトリ内にSectopRATが隠されていることを発見しました C:ProgramData研究者は FrameworkBase.dll がIAT操作によって変更され、悪意のある sdkcra.dllをロードするようになっていることを発見しました。さらなる分析により、マルウェアの機能と実行を隠すためにAPIハッシュ化と複雑な難読化技術が使用されていることが明らかになりました。
緩和策
組織は、正当なアプリケーションが予想されるディレクトリパスにのみインストールされることを確認し、 C:ProgramDataのような異常な場所にはインストールされないようにする必要があります。強力なエンドポイント保護を導入して、DLLの改ざんや不正なスケジュールタスクの作成を特定します。セキュリティチームは、暗号通貨サービスを装った不明なIPアドレスやバックアップドメインへの疑わしいアウトバウンド接続を監視する必要があります。
対応策
SectopRATの活動を検出した場合、影響を受けたWindowsシステムはすぐに隔離され、さらにC2通信およびデータ流出を停止します。対応者は、復号化されたマルウェアのペイロードを回収するためにメモリダンプを収集し、 ReportDump.exeに関連する不正なスケジュールタスクを調査します。また、 98.142.252.140 および特定のBinanceをテーマにしたバックアップドメインへの接続についてネットワークログを確認してください。
キーワード: SectopRAT, リモートアクセス型トロイ, マルチステージローダー, DLL改ざん, ASMコード, メモリ内実行, FortiGuardインシデント対応, FrameworkBase.dll, IAT操作, sdkcra.dll, APIハッシュ化, 難読化, C:ProgramData, ReportDump.exe, Binance, 資格情報窃盗, データ流出, C2.
攻撃フロー
この部分はまだ更新中です。
検出
遅延実行のための選択使用の可能性 (コマンドライン経由)
Publicnode EthereumのC2チャネルとしての悪用の試みの可能性 (DNSクエリ経由)
検出するためのIOCs (HashSha256): 正当なソフトウェアに埋め込まれたSectopRATの変異体を見つける
検出するためのIOCs (HashMd5): 正当なソフトウェアに埋め込まれたSectopRATの変異体を見つける
検出するためのIOCs (SourceIP): 正当なソフトウェアに埋め込まれたSectopRATの変異体を見つける
検出するためのIOCs (DestinationIP): 正当なソフトウェアに埋め込まれたSectopRATの変異体を見つける
正当なソフトウェアコンポーネントを経由して実行されるSectopRATの変異体を検出する [Windowsプロセス作成]
シミュレーション実行
-
攻撃の物語とコマンド: 敵対者は、DLLサイドローディングを使用して持続性を確立し、検出を回避しようとします。彼らは正当なバージョンの
ReportDump.exeをC:ProgramDataにドロップし、これに関連するプロセスがアクセス可能なディレクトリである一方で、ユーザーによく見落とされるディレクトリです。その横に、悪意のあるDLLsdkcra.dllを配置します。ReportDump.exeが実行されると、そのローカルディレクトリで依存関係を検索し、悪意のあるsdkcra.dllをロードし、一見無害なプロセスのコンテキストで敵対者のペイロードを実行します。 -
リグレッションテストスクリプト:
# SectopRATサイドローディング検出のシミュレーションスクリプト # このスクリプトは、ルールをトリガーするために必要なディレクトリ構造とファイルを作成します。 $targetDir = "C:ProgramDataSectopSim" $exeName = "ReportDump.exe" $dllName = "sdkcra.dll" # 1. ProgramDataにディレクトリを作成 if (!(Test-Path $targetDir)) { New-Item -Path $targetDir -ItemType Directory | Out-Null } # 2. ダミーの「合法的な」実行可能ファイルを作成 # 実際の攻撃では、これは本物のReportDump.exeです $dummyExe = [System.Text.Encoding]::ASCII.GetBytes("MZ`x00`x01`x00`x00`x00`x00`x00`x00`x00`x00") Set-Content -Path "$targetDir$exeName" -Value $dummyExe -NoNewline # 3. 悪意のあるDLLファイルを作成 $dummyDll = [System.Text.Encoding]::ASCII.GetBytes("MZ`x00`x01`x00`x00`x00`x00`x00`x00`x00`x00") Set-Content -Path "$targetDir$dllName" -Value $dummyDll -NoNewline Write-Host "[+] シミュレーションファイルが$targetDirに作成されました" # 4. 検出をトリガー: EXEを実行し、DLLをロードしようとします # 注意: これらはダミーファイルであるため、実際のPEファイルとして「ロード」されることはありませんが、 # 検出ルールのロジックのために、ファイルのやり取りをシミュレートします。 # 実際のBASツールでは、実際のサイン済みバイナリを使用してイベントID 7をトリガーします。 Write-Host "[*] $exeNameの実行をシミュレート中..." # ダミーファイルがイベントID 7をトリガーしない場合の動作をシミュレートするために実際のプロセスを使用 # 検出ルール(ImageLoaded)をトリガーするためには、実際のDLLロードが望ましいです。 # このスクリプトでは、可能であればPowerShellを使用して「ImageLoaded」テレメトリーをシミュレートしますが、 # 理想的には、ユーザーは実際の脆弱なバイナリを使用するべきです。 Start-Process -FilePath "$targetDir$exeName" -ErrorAction SilentlyContinue Write-Host "[!] SIEMを確認してください: Image: .*ReportDump.exe AND ImageLoaded: .*sdkcra.dll" -
クリーンアップコマンド:
# クリーンアップスクリプト $targetDir = "C:ProgramDataSectopSim" if (Test-Path $targetDir) { Remove-Item -Path $targetDir -Recurse -Force Write-Host "[+] シミュレーションファイルがクリーンアップされました。" } else { Write-Host "[-] ターゲットディレクトリが見つかりません。クリーンアップするものがありません。" }