ランサムウェアが正規の低レベルツールを悪用してアンチウイルス検出を回避する
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
この記事では、ランサムウェアの操作者がProcess Hacker、IOBit Unlocker、PowerRunなどの正規の低レベルユーティリティを悪用して、アンチウイルスとエンドポイント保護を弱体化する方法を説明します。これらの署名されたバイナリを悪用することで、攻撃者はSYSTEMまたはカーネルレベルの特権を取得し、資格情報を盗み、ランサムウェアの導入環境を準備します。この作品は、AV無効化が基本的なスクリプトから現代のRansomware-as-a-Serviceの提供の中で統合された機能セットにどのように進化したかを強調しています。また、これらの方法を採用した実際のランサムウェアグループにも言及しています。
調査
この調査は、敵対者が特権の昇格とウイルス対策回避のために低レベルツールを最初に使用し、次に資格情報の窃取、カーネルの改ざん、およびランサムウェアのペイロード実行に移行する2ステップの侵入パターンを説明しています。ツールの活動は、T1548.002、T1562.001、T1003.001を含むMITRE ATT&CKテクニックにマッピングされます。ケースの例は、これらのユーティリティをLockBit 3.0、Phobos、MedusaLockerなどのランサムウェアの操作と関連付けます。
緩和策
推奨される緩和策には、アプリケーションの許可リストの強制、大規模なプロセス終了の監視、アンチウイルス設定に影響を与えるレジストリ変更の監査、および承認されたアカウントのみに管理ユーティリティの実行を制限することが含まれます。エンドポイント保護プラットフォームはまた、セキュリティプロセスとサービスの強制終了に抵抗するための自己保護制御を強化するべきです。
対応
この動作が検出された場合、組織は疑わしいAVまたはEDRプロセス終了に警告し、影響を受けたホストを隔離し、レジストリおよびファイル変更のフォレンジック証拠を保持し、資格情報窃盗に関連するLSASSアクセスを調査する必要があります。ランサムウェアの暗号化が始まる前に迅速に侵入を封じ込めるのに十分な速さで観察されたキルチェーンに従ってインシデント対応を行います。
"graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#cccccc classDef operator fill:#ff9900 %% 動作ノード action_initial_access["<b>アクション</b> – <b>T1566.001 フィッシング: スピアフィッシングアタッチメント</b><br/><b>説明</b>: 攻撃者が、開くとブートストラップローダーをドロップする悪意のあるメール添付ファイルを送信します。<br/><b>テクニックID</b>: T1566.001"] class action_initial_access action action_priv_esc["<b>アクション</b> – <b>T1548.002 ユーザーアカウント制御のバイパス</b><br/><b>説明</b>: 正規のユーティリティを利用してUACをバイパスし、SYSTEMまたはカーネル特権を取得。<br/><b>テクニックID</b>: T1548.002"] class action_priv_esc action action_defense_evasion["<b>アクション</b> – <b>T1562 防御の妨害</b><br/><b>説明</b>: 検出を回避するためにアンチウイルスとEDRコンポーネントを終了またはアンロード。<br/><b>テクニックID</b>: T1562"] class action_defense_evasion action action_credential_access["<b>アクション</b> – <b>T1003 OS 資格情報のダンプ</b><br/><b>説明</b>: Mimikatzなどのツールを使用してメモリからキャッシュされた資格情報をダンプ。<br/><b>テクニックID</b>: T1003"] class action_credential_access action action_persistence["<b>アクション</b> – <b>T1112 レジストリの変更</b><br/><b>説明</b>: AVコンポーネントを起動するレジストリキーを削除または変更して永続性を排除。<br/><b>テクニックID</b>: T1112"] class action_persistence action action_indicator_removal["<b>アクション</b> – <b>T1070.004 ファイルの削除</b><br/><b>説明</b>: ディスクからAVログや他のフォレンジックアーティファクトを削除。<br/><b>テクニックID</b>: T1070.004"] class action_indicator_removal action action_impact["<b>アクション</b> – <b>T1486 影響を与えるためのデータの暗号化</b><br/><b>説明</b>: SYSTEM権限を取得した後、ランサムウェアペイロードでユーザーファイルを暗号化。<br/><b>テクニックID</b>: T1486"] class action_impact action %% ツールノード tool_powerrun["<b>ツール</b> – <b>名前</b>: PowerRun<br/><b>目的</b>: 昇格された権限でバイナリを実行"] class tool_powerrun tool tool_wke["<b>ツール</b> – <b>名前</b>: Windows Kernel Explorer (WKE)<br/><b>目的</b>: カーネルレベルの実行を取得"] class tool_wke tool tool_ydark["<b>ツール</b> – <b>名前</b>: YDArk<br/><b>目的</b>: SYSTEMに昇格"] class tool_ydark tool tool_process_hacker["<b>ツール</b> – <b>名前</b>: Process Hacker<br/><b>目的</b>: セキュリティプロセスを終了"] class tool_process_hacker tool tool_iobit["<b>ツール</b> – <b>名前</b>: IOBit Unlocker<br/><b>目的</b>: AVサービスを停止"] class tool_iobit tool tool_aukills["<b>ツール</b> – <b>名前</b>: AuKill / ProcessKO<br/><b>目的</b>: 特定のAVプロセスを終了"] class tool_aukills tool tool_mimikatz["<b>ツール</b> – <b>名前</b>: Mimikatz<br/><b>目的</b>: Windows資格情報をダンプ"] class tool_mimikatz tool tool_unlock_it["<b>ツール</b> – <b>名前</b>: Unlock_IT<br/><b>目的</b>: AVレジストリキーとログを削除"] class tool_unlock_it tool tool_atool["<b>ツール</b> – <b>名前</b>: Atool_ExperModel<br/><b>目的</b>: AVスタートアップキーを削除"] class tool_atool tool %% オペレーターノード(任意) op_and1(("AND")) class op_and1 operator %% フロー接続 action_initial_access –>|リード・トゥ| action_priv_esc action_priv_esc –>|リード・トゥ| action_defense_evasion action_defense_evasion –>|リード・トゥ| action_credential_access action_credential_access –>|リード・トゥ| action_persistence action_persistence –>|リード・トゥ| action_indicator_removal action_indicator_removal –>|リード・トゥ| action_impact %% ツール使用接続 action_priv_esc –>|使用| tool_powerrun action_priv_esc –>|使用| tool_wke action_priv_esc –>|使用| tool_ydark action_defense_evasion –>|使用| tool_process_hacker action_defense_evasion –>|使用| tool_iobit action_defense_evasion –>|使用| tool_aukills action_credential_access –>|使用| tool_mimikatz action_persistence –>|使用| tool_unlock_it action_persistence –>|使用| tool_atool action_indicator_removal –>|使用| tool_unlock_it "
攻撃の流れ
検知
IObitUnlockerユーティリティの可能性のある悪用(プロセス作成経由)
表示
疑わしいタスクキルの実行(cmdline経由)
表示
Mimikatzの引数が検出されました(cmdline経由)
表示
TDSSKillerユーティリティの実行試行の可能性(cmdline経由)
表示
HRSwordサービス操作によるアンチウイルス無効化 [Windowsシステム]
表示
低レベルツールを使用したランサムウェア回避戦術の検出 [Windowsプロセス作成]
表示
シミュレーション実行
前提条件: テレメトリー&ベースラインプレフライトチェックが通過している必要があります。
-
攻撃の説明とコマンド:
敵対者は被害者ホストで管理者権限を取得し、ランサムウェアペイロードを展開する前にエンドポイント保護を無効にしようとしています。正規のユーティリティ HRSword.exeを使用し、ウイルス対策サービス(
avservice)を停止し、自動再起動を無効にするコマンドを発行することで、攻撃中に防御者がサービスを回復できないようにします。このコマンドは、検知ルールに一致するSysmonプロセス作成イベントを生成するためにPowerShellコンソールで直接実行されます。 -
回帰テストスクリプト:
<# HRSword.exe使用によるAVサービスの停止と再起動の無効化のシミュレーション。 このスクリプトは昇格された(管理者)権限で実行する必要があります。 #> # 変数 $hrswordPath = "$env:ProgramFilesHRSwordHRSword.exe" $serviceName = "avservice" # HRSword.exeが存在することを確認(存在しない場合はモックを作成) if (-Not (Test-Path $hrswordPath)) { Write-Host "シミュレーション用にモックHRSword.exeを作成中..." # ログ用にダミーの実行ファイル(cmd.exeのコピー)を作成 Copy-Item "$env:windirSystem32cmd.exe" $hrswordPath -Force } # Sigmaルールが監視する正確なコマンドラインを実行 $command = "& `"$hrswordPath`" /service stop $serviceName /disable" Write-Host "実行中: $command" Invoke-Expression $command # 任意: 終了を確認するカスタムイベントをログ(エンドツーエンドの確認に役立ちます) Write-EventLog -LogName Application -Source "HRSwordSimulation" -EventId 3000 -EntryType Information -Message "HRSwordサービス停止シミュレーションが完了しました。" -
クリーンアップコマンド:
<# AVサービスを元の状態に戻し、モックの実行ファイルを削除します。 #> # AVサービスを再起動(存在する場合) $serviceName = "avservice" if (Get-Service -Name $serviceName -ErrorAction SilentlyContinue) { Write-Host "サービス$serviceNameの再起動中..." Start-Service -Name $serviceName -ErrorAction SilentlyContinue } # モックのHRSword.exeを削除(作成されていた場合) $hrswordPath = "$env:ProgramFilesHRSwordHRSword.exe" if (Test-Path $hrswordPath) { Write-Host "モックのHRSword.exeを削除中..." Remove-Item $hrswordPath -Force } # カスタムイベントログエントリをクリア Get-EventLog -LogName Application -Source "HRSwordSimulation" -After (Get-Date).AddMinutes(-10) | Remove-EventLog