PoisonX ドライバー ベースの攻撃キャンペーンが日本の組織を標的に
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
2026年4月に観測されたキャンペーンでは、Google Cloud Storageにホストされた悪意のあるLNKファイルや実行ファイルダウンロードを含むスピアフィッシングメールを使用しました。配信されたペイロードはPoisonXというカーネルドライバーと、攻撃者がカーネルレベルの権限を得て、セキュリティツールを無効にし、悪意のある活動を隠すことができるモジュラー型RAT「10FXRAT」をインストールしました。後のバリアントでは、正当な署名入りドライバーを使用したBYOVD戦術も採用されました。 EneIo64.sys and procexp.sys。この活動は、日本と中国の組織を標的として観測されています。
調査
このレポートでは、 curl.exeを呼び出すLNKベースのダウンローダーから始まる完全な実行チェーンを説明し、次にPoisonXドライバーと10FXRATモジュールを展開するPXDropperコンポーネントに移行します。また、セキュリティ関連のプロセスを終了し、ネットワークトラフィックを隠すために使用されるドライバーベースのIOCTLルーチンについても記述します。研究者たちは、アンチアナリシスチェック、レジストリの変更、サービスの作成、及び永続化手法を記録し、オペレーションに関連するハードコードされたコマンド&コントロールIPアドレスを列挙しました。
緩和策
防御者は、特に未署名または疑わしい署名のドライバーの想定外のインストール活動、ランダム化されたHIDスタイルのファイル名でのサービスの作成を監視するべきです。検出は、Microsoft Defenderの除外を追加したりDefenderサービスを無効にするレジストリ変更もカバーするべきです。識別されたコマンド&コントロールIP範囲へのアウトバウンドトラフィックはブロックされるべきで、ネットワーク監視はTCPペイロードで 0x58463031 マジックバリューを探すべきです。
対応策
この活動が発見された場合、影響を受けたエンドポイントを即座に隔離し、可能ならばPoisonXドライバーをアンロードし、すべての10FXRATプロセスを終了します。変更されたレジストリ設定を復元し、Microsoft Defenderの保護を再有効化し、信頼できるソースからのクリーンバージョンで修正されたファイルを置き換えます。その後、完全なフォレンジック調査を行い、持続性メカニズムを特定し、既知のコマンド&コントロールサーバーへのトラフィックをレビューします。
攻撃フロー
検出
疑わしいCURLの使用(cmdline経由)
閲覧
可能な持続性ポイント [ASEPs – Software/NTUSER Hive] (レジストリイベント経由)
閲覧
Windows Defender保護の無効化(レジストリイベント経由)
閲覧
疑わしい二重拡張子を持つLNKファイルの可能性(cmdline経由)
閲覧
隠れたPowerShellコマンドラインによる実行の可能性(cmdline経由)
閲覧
Powershellコマンドラインから疑わしい.NETクラス/メソッドを呼び出す(プロセス作成経由)
閲覧
非典型的なパスからのシステムプロセス実行(プロセス作成経由)
閲覧
Powershellから疑わしい.NETメソッドを呼び出す (powershell経由)
閲覧
Windows Defender設定の疑わしい変更(powershell経由)
閲覧
Google APIストレージドメインが異常なプロセスによって解決された(dnsクエリ経由)
閲覧
IOC (HashSha256) を検出:日本の組織を狙ったPoisonXドライバーベースの攻撃キャンペーンパート2
閲覧
IOC (HashSha256) を検出:日本の組織を狙ったPoisonXドライバーベースの攻撃キャンペーンパート1
閲覧
IOC (SourceIP) を検出:日本の組織を狙ったPoisonXドライバーベースの攻撃キャンペーン
閲覧
IOC (DestinationIP) を検出:日本の組織を狙ったPoisonXドライバーベースの攻撃キャンペーン
閲覧
10FXRAT C2通信の検出 [Windows ネットワーク接続]
閲覧
10FXRATおよびセキュリティサービス無効化コマンドの検出 [Windows プロセス作成]
閲覧
Windows Defenderと実行キーの変更によるマルウェアの持続性[Windows レジストリエベント]
閲覧
シミュレーション実行
前提条件:テレメトリー&ベースラインの準備チェックが合格している必要があります。
根拠:このセクションでは、検出ルールをトリガーするように設計された攻撃技術(TTP)の正確な実行について詳述しています。コマンドと説明は特定されたTTPsを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目指しています。
-
攻撃の説明とコマンド:
攻撃者はまず、信頼されたプロセスの足掛かりを得るためにカスタムシェルコードのペイロードをusoclient64.exeに注入します(T1574.009)。ハイジャックされたプロセスを使用して、Windows Defenderの除外リストに悪意のあるペイロードフォルダを追加するPowerShellワンライナーを実行します(T1564.012)。最後に、Windows Defender、Windows Security Center、及びサードパーティAVを停止するチェーンされたcmd.exeコールを使用してコアセキュリティサービスを無効にします(T1547.001 サービス停止による持続性)。- プロセスホローイング/注入 – PowerShellスクリプトを起動してシミュレート(注入されたコードを表すスリープ)。
usoclient64.exeによってシミュレートを起動する - Defenderの除外を追加 – 規則の文字列と正確に一致するPowerShellコマンド。
- セキュリティサービスの停止 –
cmd.exeサービスを停止するワンライナー。
- プロセスホローイング/注入 – PowerShellスクリプトを起動してシミュレート(注入されたコードを表すスリープ)。
-
回帰テストスクリプト:
# ------------------------------------------------------------------------- # シミュレーションスクリプト – 10FXRATのような振る舞いに対するSigmaルールをトリガーする # ------------------------------------------------------------------------- # 1. usoclient64.exeの注入をシミュレーション(プロセスホローイングプレースホルダー) $usoclient = "$env:SystemRootSystem32usoclient64.exe" Write-Host "[*] usoclient64.exe を起動(注入をシミュレート中)..." Start-Process -FilePath $usoclient -ArgumentList "/RunDll32" -WindowStyle Hidden # 2. Defenderの除外を追加するPowerShellコマンド(ルールに一致) Write-Host "[*] Windows Defender の除外パスを追加中..." powershell.exe -NoP -NonI -W Hidden -C "Add-MpPreference -ExclusionPath 'C:TempMalicious'" # 3. cmd経由でセキュリティサービスを停止する(ルールに一致) Write-Host "[*] セキュリティサービスを停止中..." cmd.exe /c "net stop WinDefend /y >nul 2>&1 & net stop wscsvc /y >nul 2>&1 & net stop Sense /y >nul 2>&1" Write-Host "[+] シミュレーション完了。SIEMでアラートを確認してください。" -
クリーンアップコマンド:
# ------------------------------------------------------------------------- # クリーンアップ – 通常のセキュリティ体制を復元 # ------------------------------------------------------------------------- # Defenderの除外を削除 powershell.exe -NoP -NonI -W Hidden -C "Remove-MpPreference -ExclusionPath 'C:TempMalicious'" # 停止したサービスを再起動 cmd.exe /c "net start WinDefend >nul 2>&1 & net start wscsvc >nul 2>&1 & net start Sense >nul 2>&1" # 必要に応じて注入されたusoclient64.exeインスタンスを強制終了 Get-Process -Name usoclient64 -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[+] クリーンアップ完了。"