InterLock: ランサムウェアオペレーションの完全ツール分析
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
InterLockは、2024年10月以来活動しているダブルエクストーション型ランサムウェアのオペレーションで、データを盗み、Torベースの漏洩サイトを運営し、FreeBSD/ESXiおよびWindows環境でファイルを暗号化します。侵入チェーンは、初期アクセスのためのScreenConnect MSIインストーラー、多言語対応のNodeSnakeバックドアによる持続性、NTLM資格情報のハーベスター、およびランサムウェアのペイロードをパッケージ化するカスタム暗号化フレームワークを使用します。コマンド・アンド・コントロールトラフィックは、RC4で保護されたWebSocket通信に依存しており、フォールバック用の静的IPと追加のCloudflareトンネルエンドポイントでサポートされています。ランサムウェアは.interlock拡張子を追加し、.onion交渉URLを含む身代金要求メモをドロップし、弱いPRNG由来のキーを使用するため、復元が可能になるかもしれません。
調査
このレポートは、4つのScreenConnect MSIインストーラー、3つのNodeSnakeインプラント(JavaScript、Java、ネイティブC++)、1つのNTLMシーフDLL、4つのランサムウェア実行ファイルを含む15のサンプルを分析します。すべてのアーティファクトは3つのハードコードされたC2 IPアドレスと、バイトパターンでマークされた同じ暗号解読ループを共有しています。 488b041f483345f04889041eネイティブな形で、NodeSnakeはTCPトンネリング、スレッドハイジャック、アンチデバッグを追加します。Windowsランサムウェアバリアントは、毎日スケジュールされたタスクを作成し、wevtapi.dllを通じてWindowsイベントログをクリアします。インフラストラクチャには、2つのLet’s Encryptで保護されたドメインと複数の無料Cloudflareトンネルサブドメインも含まれています。
対策
防御者は、既知のC2 IPとCloudflareトンネルドメインを境界でブロックするべきです。ConnectWise ScreenConnectが不要な場合は、削除または無効にしてください。セキュリティコントロールは、暗号化のバイトパターンとRC4で暗号化されたWebSocketハンドシェイクプレフィックスを検出する必要があります。 92 01 88 fe監視は、TaskSystemという名前のスケジュール済みタスクと.interlock拡張子のファイルの作成もカバーするべきです。最小権限アクセスコントロールは、NTLM資格情報のハーベスティングの露出とrundll32の悪用をさらに減少できます。
対応
InterLockが検出された場合、影響を受けたホストを隔離し、完全なバイナリを法医学分析のために保存し、埋め込まれたRSA-4096公開鍵と暗号化されたファイルごとの鍵を抽出します。可能であれば、信頼できるタイムスタンプがある場合は、弱い rand() および clock() を使用して鍵の回復を試みます。TaskSystemの持続タスクを削除し、.interlockのアーティファクトを削除し、バックアップから影響を受けたデータを復元します。影響を受けたユーザーには通知し、ダブルエクストーションインシデントを法執行機関に報告するべきです。
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#cccccc classDef operator fill:#ff9900 %% Initial Access initial_access["<b>アクション</b> – <b>T1204.004 ユーザー実行</b>: 悪意のあるMSIインストーラー配信"] class initial_access action msiexec_tool["<b>ツール</b> – <b>名前</b>: Msiexec<br/><b>手法</b>: T1218.007 システムバイナリプロキシ実行"] class msiexec_tool tool screenconnect_client["<b>マルウェア</b> – <b>名前</b>: ScreenConnectクライアント<br/><b>目的</b>: リモートアクセスコンポーネント"] class screenconnect_client malware nodesnake_backdoor["<b>マルウェア</b> – <b>名前</b>: NodeSnakeバックドア<br/><b>機能</b>: インタラクティブなWindowsシェルとワンショットコマンド"] class nodesnake_backdoor malware %% 記憶 persistence_task["<b>アクション</b> – <b>T1546 イベントトリガー実行</b>: スケジュールタスク作成"] class persistence_task action scheduled_task["<b>プロセス</b> – <b>名前</b>: TaskSystem<br/><b>スケジュール</b>: 毎日 20:00"] class scheduled_task process self_delete["<b>アクション</b> – <b>T1070.009 インジケーター削除</b>: 実行後の自己削除"] class self_delete action %% 資格情報アクセス credential_access["<b>アクション</b> – <b>T1556.008 認証プロセスの変更</b>: NTLMハッシュのハーベスティング"] class credential_access action ntlmthief_dll["<b>ツール</b> – <b>名前</b>: NtlmThief DLL<br/><b>機能</b>: NTLMハッシュのハーベスティングとNTLMv1の強制"] class ntlmthief_dll tool %% 防御回避 defense_evasion["<b>アクション</b> – <b>T1027 ファイルや情報の難読化</b>: カスタム暗号化によるペイロードパッケージ化"] class defense_evasion action custom_crypter["<b>ツール</b> – <b>名前</b>: カスタム暗号化<br/><b>手法</b>: XOR, 無駄なコード, 配信後のコンパイル, 圧縮, ストリップされたバイナリ"] class custom_crypter tool %% コマンド・アンド・コントロール c2_communication["<b>アクション</b> – <b>T1071.001 アプリケーション層プロトコル</b>: WebSocketチャネル(RC4暗号化)"] class c2_communication action websocket_impl["<b>ツール</b> – <b>名前</b>: WebSocketクライアント<br/><b>特徴</b>: Cloudflareトンネル経由の動的URL"] class websocket_impl tool %% プロキシサービス proxy_service["<b>アクション</b> – <b>T1090 プロキシ</b>: 内部および多段プロキシング"] class proxy_service action cloudflare_tunnel["<b>ツール</b> – <b>名前</b>: Cloudflareトンネル<br/><b>目的</b>: C2 URLの動的解決"] class cloudflare_tunnel tool protocol_tunneling["<b>アクション</b> – <b>T1572 プロトコルトンネリング</b>: TCPトンネルリレー"] class protocol_tunneling action %% 権限昇格 / 防御回避 priv_esc["<b>アクション</b> – <b>T1055.003 プロセスインジェクション</b>: スレッド実行ハイジャック"] class priv_esc action process_injection_tool["<b>ツール</b> – <b>名前</b>: プロセスインジェクションルーチン"] class process_injection_tool tool %% 発見 discovery["<b>アクション</b> – <b>T1016 システムネットワーク構成発見</b>: システムとネットワーク情報の収集"] class discovery action %% 収集 collection["<b>アクション</b> – <b>T1560.001 ユーティリティ経由のアーカイブ</b>と<b>T1560.003 カスタム手法によるアーカイブ</b>: 流出データのパッケージ化"] class collection action %% 流出 exfiltration["<b>アクション</b> – <b>T1020 自動流出</b>および<b>T1048.002 非C2プロトコル上の非対称暗号化による流出</b>"] class exfiltration action %% 影響 impact["<b>アクション</b> – <b>T1486 影響を与えるためのデータ暗号化</b>: InterLockランサムウェアがファイルを暗号化"] class impact action ransomware["<b>マルウェア</b> – <b>名前</b>: InterLockランサムウェア<br/><b>暗号化方式</b>: AES-256-CBCおよびRSA-4096 OAEP<br/><b>拡張子</b>: .interlock"] class ransomware malware ransom_note["<b>アクション</b> – <b>T1490 システム回復の阻止</b>: イベントログのクリアと身代金要求メモのドロップ"] class ransom_note action artifact_cleanup["<b>アクション</b> – <b>T1070 インジケーター削除</b>: アーティファクトとファイルの削除"] class artifact_cleanup action %% 接続 initial_access –>|使用| msiexec_tool msiexec_tool –>|インストール| screenconnect_client screenconnect_client –>|ドロップ| nodesnake_backdoor nodesnake_backdoor –>|作成| persistence_task persistence_task –>|作成| scheduled_task scheduled_task –>|実行| self_delete nodesnake_backdoor –>|有効| credential_access credential_access –>|使用| ntlmthief_dll nodesnake_backdoor –>|難読化| defense_evasion defense_evasion –>|使用| custom_crypter nodesnake_backdoor –>|経由で通信| c2_communication c2_communication –>|使用| websocket_impl websocket_impl –>|ルート経由で| cloudflare_tunnel cloudflare_tunnel –>|サポート| proxy_service proxy_service –>|含む| protocol_tunneling nodesnake_backdoor –>|実行| priv_esc priv_esc –>|使用| process_injection_tool process_injection_tool –>|また実行| tls_injection nodesnake_backdoor –>|実行| discovery nodesnake_backdoor –>|データをパッケージ化| collection collection –>|経由で流出| exfiltration exfiltration –>|ペイロードを配信| impact impact –>|使用| ransomware ransomware –>|残す| ransom_note ransom_note –>|引き起こす| artifact_cleanup %% クラス割り当て class msiexec_tool tool class screenconnect_client malware class nodesnake_backdoor malware class ntlmthief_dll tool class custom_crypter tool class websocket_impl tool class cloudflare_tunnel tool class process_injection_tool tool class ransomware malware "
攻撃の流れ
検出
疑わしいTrycloudflareドメイン通信 (経由dns)
表示
公共ユーザープロファイルからの疑わしい実行 (経由プロセス作成)
表示
持続性の可能性が高いSchtasksまたはATの使用 (経由cmdline)
表示
遅延実行のためのPING使用の可能性 (経由cmdline)
表示
疑わしいコマンドアンドコントロールによる異常なトップレベルドメイン(TLD) DNSリクエスト (経由dns)
表示
システム列挙の可能性 (経由cmdline)
表示
アカウントまたはグループの列挙/操作の可能性 (経由cmdline)
表示
IoT (メール) を検出する: インターロック: ランサムウェア操作の完全なツーリングテアダウン
表示
IoT (ソースIP) を検出する: インターロック: ランサムウェア操作の完全なツーリングテアダウン
表示
IoT (ハッシュSha256) を検出する: インターロック: ランサムウェア操作の完全なツーリングテアダウン
表示
IoT (宛先IP) を検出する: インターロック: ランサムウェア操作の完全なツーリングテアダウン
表示
IoT (ハッシュMd5) を検出する: インターロック: ランサムウェア操作の完全なツーリングテアダウン
表示
NodeSnake WebSocket ハンドシェイクとURLパターン検出 [Windowsネットワーク接続]
表示
InterLock ELF variantをsysconfによってCPUカウントを使用して検出 [Linuxプロセス作成]
表示
NodeSnake JSインプラントとInterLock DLLの実行方法を検出 [Windowsプロセス作成]
表示
InterLock ランサムウェアと NodeSnake コマンド出力ステージングの検出 [Windowsファイルイベント]
表示
シミュレーション実行
前提条件: テレメトリー&ベースライン事前フライトチェックを通過している必要があります。
理由: このセクションでは、検出ルールを引き起こすために設計された敵の技術的手法(TTP)の正確な実行について詳述します。コマンドおよびナarrationは、明確に特定されたTTPを反映し、検出論理によって予測された正確なテレメトリーを生成することを目的としています。
-
攻撃の説明とコマンド:
敵は低特権のワークステーションを侵害し、2つのアクションを実行するNodeSnake Javascriptインプラントを実行しています:- 特権レベルの列挙 – それは次のコマンドを実行します
cmd.exe /c net1 session、これはプロセスがSYSTEMユーザーとして実行されるか通常のユーザーとして実行されるかを発見するためにネットワークセッションがアクティブであるかを確認する既知の方法です。 - DLLによるペイロード実行 – 悪質なDLL (
evilpayload.dll) を%TEMP%にドロップし、それを通じて次のコマンドで起動しますrundll32.exe %TEMP%evilpayload.dll,run %TEMP%evilpayload.dll。これは、インターロックが使用するrundll32を使ったセカンドステージペイロードのローダーとしての手法を模倣しています。
両方のコマンドは、Sigmaルールが一致する正確なコマンドライン文字列を生成するために直接実行されます。
- 特権レベルの列挙 – それは次のコマンドを実行します
-
回帰テストスクリプト:
# ------------------------------------------------- # NodeSnake/InterLockシミュレーション – Sigmaルールをトリガー # ------------------------------------------------- # 1. ダミーの悪意のあるDLLを作成する (検出にはバイナリは不要) $dllPath = "$env:TEMPevilpayload.dll" Set-Content -Path $dllPath -Value "MZ" -Encoding ASCII # 最小ペーヘッダーのプレースホルダー # 2. 特権列挙コマンドを実行する (正確な一致) Write-Host "[*] 特権列挙を実行中 (cmd.exe /c net1 session)" cmd.exe /c net1 session # 3. rundll32ペイロードローダーを実行する (正確な一致) Write-Host "[*] 悪意のあるDLLをrundll32.exe経由で起動中" rundll32.exe "$dllPath,run $dllPath" # 4. 警察統合を許可するためにポーズ Start-Sleep -Seconds 10 -
クリーンアップコマンド:
# ------------------------------------------------- # シミュレーションのクリーンアップ # ------------------------------------------------- $dllPath = "$env:TEMPevilpayload.dll" if (Test-Path $dllPath) { Remove-Item -Path $dllPath -Force Write-Host "[+] $dllPathを削除" } else { Write-Host "[-] 削除するDLLが見つかりません。" } # 必要に応じて、法医学的フットプリントを減少させるためにPowerShell履歴をクリア Clear-History