新たな脅威から主要なランサムウェア・アズ・ア・サービスへの進化:INCランサムウェアの進化
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
INCランサムウェアは、2023年以来800以上の被害者を出し、主要なランサムウェア・アズ・ア・サービスオペレーションに成長しました。このグループは、WindowsおよびLinux/ESXiシステムの両方でRustベースの暗号化ツールを使用しており、マルウェア分析の難易度を増加させています。彼らのオペレーターは二重強要戦術に依存し、医療や法律サービスといった高価値のセクターに重点を置いています。
調査
アクロニス脅威研究部門は、INC襲撃チェーンを分析し、未パッチのエッジデバイスの悪用やVeeamバックアップサーバーの攻撃にシフトしていることを観察しました。技術分析により、WindowsペイロードはVMProtect 3.Xで保護されており、Linuxバージョンは vim-cmdなどのコマンドを通じてVMware環境を標的にしていることが示されました。また、リンックスやシノビといった関連するランサムウェアファミリーとコードの類似性があることも発見されました。
緩和策
組織は3-2-1バックアップ戦略を採用し、復旧をサポートするために不変またはオフラインコピーを含むバックアップの確保が必要です。アンチタンパープロテクションを備えたEDRまたはXDRの導入や、多要素認証の強化も不可欠です。インターネットに接続されたアプリケーションのパッチ適用を優先し、重要なネットワークのセグメンテーションを行うことで、被害の影響を軽減することができます。
対応策
INCランサムウェアの活動が検出された場合、対応者は影響を受けたシステムを直ちに隔離し、横方向の動きを停止し、暗号化を阻止するべきです。復元を開始する前にバックアップの整合性を確認し、インシデント対応手順は初期アクセスベクトルの特定に重点を置くべきです。チームは、 rclone.
のようなツールを使ったデータの搾取試行を監視することも必要です。
攻撃フロー
検出
Windowsハックツールの使用の可能性 [Part1] (コマンドライン経由)
表示
Sysinternalsツール使用の可能性 (コマンドライン経由)
表示
疑わしいPowershell文字列 (Powershell経由)
表示
隠されたおよびエンコードされたPowerShell実行の検出 [Windows PowerShell]
表示
VMwareインフラストラクチャコマンドの不審な使用 [Linuxプロセス作成]
表示
プロセス終了およびリモートスレッド作成の検出 [Windows Sysmon]
表示
VeeamクレデンシャルダンピングのためのBase64エンコードされたPowerShellスクリプトの検出 [Windowsプロセス作成]
表示
シミュレーション実行
前提条件:テレメトリー&ベースラインの事前フライトチェックが通過していること。
理由:このセクションは、検出ルールをトリガーするために設計された敵対者技術(TTP)の正確な実行を詳細に記述しています。コマンドとストーリーは、特定されたTTPを直接反映し、検出ロジックによって予期される正確なテレメトリーを生成することを目的としています。抽象的または関連のない例は誤診の原因となります。
-
攻撃の物語とコマンド: 敵対者は、ローカルセキュリティオーソリティサブシステムサービス(
lsass.exe)からクレデンシャルをダンプすることを意図しています。エンドポイントセキュリティによる検出を避けるため、最初に、監視を混乱させるためにtaskkill.exeを使用してセキュリティ関連のプロセスを終了しようとします。これに続いて、リモートスレッドインジェクション技術を使用して、lsass.exeメモリスペース内でコードを実行しようとします。この直接的なアプローチは、taskkill.exeandlsass.exeスレッド作成に関する特定のロジックをトリガーすることを意図しています。 -
回帰テストスクリプト:
# 検出検証用のシミュレーションスクリプト # ステップ1:selection_termination(EventID 4689)をトリガー Write-Host "[*] taskkillを介してプロセス完了をトリガーしています..." Start-Process calc.exe Start-Sleep -Seconds 1 taskkill /F /IM calc.exe # ステップ2:selection_remote_thread(Sysmon EventID 8)をトリガー # 注:これには管理者権限が必要です。 # PowerShellベースのインジェクションを使用して、lsass.exe内へのリモートスレッド作成をシミュレートします。 Write-Host "[*] lsass.exeへのリモートスレッドインジェクションを試みています..." $DllPath = "C:WindowsSystem32user32.dll" $DllFunction = "LoadLibraryA" $ProcessName = "lsass" $TargetProcess = Get-Process $ProcessName -ErrorAction SilentlyContinue if ($TargetProcess) { $Handle = [Runtime.InteropServices.Marshal]::GetComObject(New-Object -ComObject WScript.Shell).Exec("powershell -Command `"[DllImport('kernel32.dll')] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); ...`"") # 単一ブロック内での複雑なC#コンパイルなしでのクリーンで再現可能なスクリプトのために、 # 軽量のインジェクションパターンを介してSysmon Event 8をトリガーする既知の方法を使用します。 $Code = @" using System; using System.Runtime.InteropServices; public class Injector { [DllImport("kernel32.dll")] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); [DllImport("kernel32.dll")] public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect); [DllImport("kernel32.dll")] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out IntPtr lpNumberOfBytesWritten); [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId); public static void Run() { IntPtr hProcess = OpenProcess(0x001F0FFF, false, 644); // ここでのlsass PIDは通常644またはGet-Processで見つかる // これはSysmon Event 8をトリガーするための簡略化された表現です。 } } "@ # スクリプトが実行可能で、BASツールに対して非破壊であることを保証するために、 # Sysmonのドライバーがスレッド作成試行としてキャッチするコマンドを呼び出します。 # 実際の環境では、コンパイル済みのツールや反射DLLインジェクションを使用します。 Write-Host "[!] 手動ステップ:'Process Hacker'のようなツールやカスタムインジェクターを使用してlsass.exeをターゲットとし、Event ID 8を生成することを確認してください。" } else { Write-Error "[-] lsass.exeが見つかりませんでした" } -
クリーンアップコマンド:
# クリーンアップ:迷子のプロセスが実行され続けないようにします。 Stop-Process -Name "calc" -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。"