オペレーションポワソン:サイバー犯罪組織全体の解剖
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
低スキルの脅威アクター「Poisson」として知られる者が、フランスの個人および小企業を標的とした多段階の認証情報窃盗キャンペーンを実施しました。攻撃者はHavoc C2、カスタムPythonキー・ロガーを使用し、OpenSSHとTailscale VPNメッシュを通じて耐障害性のあるアクセスを構築しました。この設計により、主要なコマンド&コントロール基盤が途絶された後でもオペレーターはアクセスを維持することができました。
調査
Cato CTRLは、攻撃者の活動を33日間にわたる詳細な事後レビューを実施し、339のコマンドが記録されました。この調査で、Backblaze B2、DuckDNS、IONOSなどのフリーサービスの使用や、C2の撲滅に耐えるための永続性設計が明らかになりました。研究者たちはまた、オペレーターのSSHプレイブックと被害者のSSHキーを公に公開されたストレージバケットで誤って露出されたものとして回収しました。
緩和策
防衛担当者は、ワークステーションでのOpenSSHサーバーの展開に対するアラートを生成し、想定されていないシステムでのTailscale VPNの活動を監視する必要があります。また、組織はSSH逆トンネルを検知し、昇格された特権で実行されている疑わしいスケジュールタスクを追跡する必要があります。効果的な緩和には、C2アクセスの削除を超えて、メッシュVPNに基づく永続性メカニズムの除去を含める必要があります。
対応
この活動が特定された場合、セキュリティチームは直ちにすべてのアクティブなTailscaleまたはSSHメッシュ接続を特定し、解体すべきです。捜査官は不正な永続性を持つすべてのスケジュールタスクとスタートアップショートカットを確認する必要があります。ただし、キー・ロガーの使用によって認証情報の漏えいが高確率で発生するため、すべてのユーザーに対して完全な認証情報のリセットを強く推奨します。
攻撃の流れ
検出
動的DNSサービスが通信された可能性があります(DNS経由)
表示
Backblaze B2バケットを介した認証情報窃盗とペイロードホスティングの検出 [Windows Sysmon]
表示
Tailscale VPNとSSH逆トンネルを介した永続的なネットワークアクセス [Windowsネットワーク接続]
表示
Havoc C2フレームワークのPowerShellを介した実行とSSHトンネルの確立 [Windows Powershell]
表示
Poissonによる権限昇格とリモートツールの実行 [Windowsプロセス作成]
表示
シミュレーション実行
前提条件:テレメトリ&ベースラインの事前飛行チェックが合格している必要があります。
理由:このセクションでは、検出ルールをトリガーするために設計された敵の技術(TTP)の正確な実行について詳述しています。コマンドと物語は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診につながります。
-
攻撃の流れ&コマンド: 「Poisson」グループをシミュレートする敵は、リモートアクセスの足場を確立することを目的としています。最初に、一時ディレクトリに
thales.zipというファイルを作成してペイロードをステージします。次に、RunAs動詞を用いてPowerShellコマンドを実行し、特権を昇格させます。これはUACプロンプトを引き起こす一般的な方法です。最後にrustdesk.exeを実行して、二次リモートデスクトップ通信チャネルを提供します。このシーケンスは、検出ルールで定義された特定の行動パターン(UAC昇格 + RustDesk + 特定zipファイル)を模倣します。 -
回帰テストスクリプト:
# シミュレーションスクリプト:Poisson TTP エミュレーション # 1. 'thales.zip'ファイルをステージします(検出ロジックに必要) $targetZip = "$env:TEMPthales.zip" New-Item -Path $targetZip -ItemType File -Force Write-Host "[+] Staged $targetZip" # 2. PowerShellを使用してUAC昇格試行をシミュレートします(検出ロジックに必要) # 注意:実際の環境ではUACプロンプトをトリガーします。 Write-Host "[+] Start-Process -Verb RunAsを利用したUAC昇格を試行しています..." Start-Process powershell.exe -ArgumentList "-Command Write-Host 'Elevation Attempted'" -Verb RunAs # 3. RustDeskの実行をシミュレートします(検出ロジックに必要) # 実際のインストールを避けるため、テンポラリフォルダにダミーのrustdesk.exeを作成して検出を触発します $rustdeskPath = "$env:TEMPrustdesk.exe" New-Item -Path $rustdeskPath -ItemType File -Force Write-Host "[+] Simulated RustDeskを$rustdeskPathで実行しています" Start-Process $rustdeskPath -
クリーンアップコマンド:
# シミュレーションアーティファクトのクリーンアップ Remove-Item -Path "$env:TEMPthales.zip" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPrustdesk.exe" -Force -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。"