STOCKSTAY アナザーデイ: Turlaのインテリジェンス収集装置への最新の追加
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Google 脅威インテリジェンスグループは、ロシア関連の脅威アクター Turla によって使用される多成分の .NET バックドア STOCKSTAY を特定しました。このマルウェアは、トンネラー、オーケストレーター、バックドアコンポーネントを含むモジュール設計で構築され、すべてがセキュアな WebSocket を介して通信します。政府および軍事対象に対する長期的なサイバースパイ活動をサポートすることを目的としています。
調査
GTIG は STOCKSTAY エコシステムの詳細な分析を行い、その開発を 2022 年 12 月まで遡りました。研究者はそのモジュールコンポーネントをマッピングし、設定データを復号するための環境キーニングの使用を調査し、株式市場ユーティリティとして偽装することから他の無害なアプリケーションを装うように変化したことを記録しました。調査ではまた、文字列難読化のための K1MORPHER の使用と、Turla の既知の KAZUAR ツールキットとの関連性も明らかにされました。
緩和策
組織は、疑わしい .NET アプリケーションの動作と、未知のドメインへの異常な WebSocket トラフィックの強力なモニタリングを展開するべきです。悪意のある RDP ファイルを介した初期アクセスの防御と、フィッシングに対するメール保護を強化することも重要です。さらに、WinRAR の CVE-2025-8088 のような脆弱性を修正すると、悪用に基づく展開を阻止するのに役立ちます。
対応
STOCKSTAY のアクティビティが検出された場合は、コマンド&コントロール通信とラテラルムーブメントを停止するために、すぐに影響を受けたホストを隔離してください。無許可のレジストリ変更や新しく作成されたスケジュールタスクに特に焦点を当てて、妥協の全範囲を決定するための詳細なフォレンジック調査を行います。ネットワークログも長期にわたる WebSocket セッションのためにレビューされるべきであり、STOCKSTAY コンポーネントファイルの存在を確認するためにシステムをチェックします。
"フローチャート TD step_initial_access["初期アクセス: T1566 – フィッシング (RDP ファイル、MSI、または RAR のようなスピアフィッシング添付; 改ざんされたサイトへのスピアフィッシングリンク)"] step_execution["実行: T1204.002 – ユーザー実行: 悪意のあるファイル(HTA ファイル、RDP コンフィグ); T1574.014 – 実行フローのハイジャック: AppDomainManager (.NET ペイロード); T1543 – システムプロセスの作成または変更"] rules_for_execution("<b>ルール名</b>: コマンド関連の検出による疑わしい LOLBAS MSHTA 防御回避行動 (プロセス作成経由)<br/><b>ルール ID</b>: feb459cf-289a-41ab-9241-d8edc232c487") step_persistence["永続性: T1543 – システムプロセスの作成または変更 (オートランエントリ); T1133 – 外部リモートサービス (長期接続)"] step_defense_evasion["防御回避: T1036 – 偽装 (無害なユーティリティへのリネーム); T1027.015 – 難読化されたファイルまたは情報: 圧縮; T1497.001/002 – WMI による仮想化/サンドボックス回避"] step_discovery["発見: T1012 – レジストリのクエリ; T1497.001 – 仮想化/サンドボックス回避 (WMI によるシステム/ハードウェア情報収集)"] step_command_and_control["コマンド&コントロール: T1102.002/003 – ウェブサービス: 双方向/一方向通信 (Render 経由の WebSocket); T1568 – ダイナミックリゾルーション"] rules_for_c2("<b>ルール名</b>: C2 チャネルとしての公共ノード Ethereum 悪用の試み (dns_query 経由)<br/><b>ルール ID</b>: 280e86bf-fad9-4b9c-8867-e2355e3f50ba") step_collection_exfiltration["収集と流出: T1560.002/003 – ライブラリまたはカスタムメソッドを介して収集したデータをアーカイブ (インメモリ ZIP アーカイブ)"] step_initial_access –>|続く| step_execution step_execution –>|促進| step_persistence step_execution -.->|検出| rules_for_execution step_persistence –>|続く| step_defense_evasion step_defense_evasion –>|促進| step_discovery step_discovery –>|続く| step_command_and_control step_command_and_control –>|促進| step_collection_exfiltration step_command_and_control -.->|検出| rules_for_c2 "
攻撃フロー
検出
C2 チャネルとしての公共ノード Ethereum 悪用の試み (dns_query 経由)
表示
コマンド関連の検出による疑わしい LOLBAS MSHTA 防御回避行動 (プロセス作成経由)
表示
Turla の STOCKSTAY マルウェアにおける CryptoContainer パーシングと K1MORPHER 難読化の検出 [Windows Sysmon]
表示
STOCKSTAY WebSocket C2 通信の検出 [Windows ネットワーク接続]
表示
STOCKSTAY の悪意のある活動の検出 [Windows プロセス作成]
表示
シミュレーション実行
前提条件: テレメトリ & ベースライン事前チェックが合格していること。
根拠: このセクションは、検出ルールをトリガーするために設計された敵対者の手法(TTP)の正確な実行を詳細に説明します。コマンドと記述は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的とします。抽象的または無関係な例は誤診に繋がります。
-
攻撃の背景とコマンド: 攻撃者は、正当な Microsoft 更新コンポーネントとして偽装したツールを使用して永続性を確立しようとしています。検出を回避するために、攻撃者は STOCKSTAY バックドアの名称を
MicrosoftUpdateOneDrive.exeと変更し、一時ディレクトリに配置しました。このプロセスを実行してリバースシェルまたはコマンド&コントロール(C2)通信を開始し、基本的なプロセスモニタリングを回避するために「正当な」名前を利用することが目的です。 -
レグレッションテストスクリプト:
# シミュレーションスクリプト: STOCKSTAY 偽装実行 $MaliciousName = "MicrosoftUpdateOneDrive.exe" $TargetDir = "$env:TEMPStockstaySim" # 1. シミュレートされた「悪意のある」ディレクトリとファイルを作成 if (!(Test-Path $TargetDir)) { New-Item -Path $TargetDir -ItemType Directory -Force } $FakeBinary = Join-Path $TargetDir $MaliciousName # 2. ダミーの実行可能ファイルを作成(シミュレーション目的でリネームされた cmd.exe を使用) Copy-Item "C:WindowsSystem32cmd.exe" -Destination $FakeBinary -Force Write-Host "[+] シミュレーション: $FakeBinary を作成しました" -ForegroundColor Cyan # 3. 「悪意のある」プロセスを実行 Write-Host "[+] シミュレーション: $MaliciousName を実行しています..." -ForegroundColor Yellow Start-Process -FilePath $FakeBinary -ArgumentList "/c echo STOCKSTAY_SIMULATION_ACTIVE" -WindowStyle Hidden Write-Host "[+] シミュレーション: プロセス実行がトリガーされました。" -ForegroundColor Green -
クリーンアップコマンド:
# クリーンアップスクリプト $TargetDir = "$env:TEMPStockstaySim" if (Test-Path $TargetDir) { Remove-Item -Path $TargetDir -Recurse -Force Write-Host "[+] クリーンアップ: シミュレーションディレクトリ $TargetDir を削除しました" -ForegroundColor Green } else { Write-Host "[-] クリーンアップ: シミュレーションディレクトリが見つかりませんでした。" -ForegroundColor Red }