層状のステルス: ターゲット型メールキャンペーンで使用されるローダーを暴く
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
広く利用可能なローダーが複数の脅威アクターにより再活用され、武器化されたJavaScript、PowerShell、LNK、ZIP添付ファイルを含むフィッシングメールを通じて様々なRATや情報スティーラーを配信しています。このローダーはステガノグラフィ、リフレクティブローディング、プロセスホローイング、および新たなUACバイパス手法を組み合わせ、ファイルレス実行と権限向上を可能にします。この活動は、ヨーロッパおよび中東の製造業や政府機関を対象として観察されており、工業データや資格情報の盗難を目的としているようです。
調査
Cyble Research and Intelligence Labsは配信チェーンを分析し、4段階の回避ワークフローを概説しました。これは難読化されたJavaScriptステージャーから始まり、PowerShellステガノグラフィックローダーに移行し、トロイの木馬化されたTaskSchedulerライブラリを悪用し、最終的にRegAsm.exeへのペイロード注入に至ります。終段階のマルウェアはPureLog Stealerであり、ブラウザ資格情報、暗号通貨ウォレットデータ、ホスト/システム情報を収集して流出させます。
緩和策
サンドボックス内での起爆装置を持つ高度なメール保護を使用し、メール配信されたコンテンツからのスクリプト実行をブロックし、PowerShellの制約付き言語モードを強制し、正規のWindowsバイナリのホローイングを監視します。画像ファイル内のステガノグラフィの検出を追加し、このローダーチェーンに関連するリフレクティブ.NETアセンブリロードおよびUACバイパスパターンを浮き彫りにするEDRルールを調整します。
対応
インジケーターが現れた場合、エンドポイントを隔離し、疑わしいPowerShellおよびWMIの活動を停止し、メモリイメージをキャプチャし、リフレクティブ.NETアーティファクトおよび注入されたRegAsm.exeプロセスを検索します。潜在的に露出した資格情報をリセットし、関連する悪意のあるドメインおよびIPアドレスをブロックして再感染と横展開を防ぎます。
“graph TB %% Class definitions classDef action fill:#99ccff %% Node definitions act_phishing[“<b>アクション</b> – <b>T1566.001 フィッシングの添付ファイル</b><br/><b>説明</b>: Officeの脆弱性を利用する悪意のあるメール添付ファイルを送信します。”] class act_phishing action act_exploit[“<b>アクション</b> – <b>T1203 クライアント実行のためのエクスプロイト</b> (CVEu20112017u201111882)<br/><b>説明</b>: Microsoft Officeの脆弱性を引き起こしてコードを実行します。”] class act_exploit action act_obfuscate[“<b>アクション</b> – <b>T1027 難読化されたファイルや情報</b><br/><b>説明</b>: 悪意のある意図を隠すために難読化されたJavaScriptまたはPowerShellをロードする。”] class act_obfuscate action act_stego[“<b>アクション</b> – <b>T1027.003 ステガノグラフィ</b><br/><b>説明</b>: 検出を逃れるためにPNG画像内にペイロードを埋め込む。”] class act_stego action act_reflective_load[“<b>アクション</b> – <b>T1620 リフレクティブコードローディング</b><br/><b>説明</b>: ディスクに触れずにメモリ内に.NETアセンブリをロードする。”] class act_reflective_load action act_regasm[“<b>アクション</b> – <b>T1218.009 RegAsm プロキシ実行</b><br/><b>説明</b>: RegAsmを悪用して任意の.NETコードを実行する。”] class act_regasm action act_process_hollow[“<b>アクション</b> – <b>T1055.012 プロセスホローイング</b><br/><b>説明</b>: 正当なプロセスメモリを悪意のあるコードで置き換える。”] class act_process_hollow action act_uac_bypass[“<b>アクション</b> – <b>T1548.002 ユーザーアカウント制御バイパス</b><br/><b>説明</b>: ユーザーにプロンプトを表示せずに権限を昇格させる。”] class act_uac_bypass action act_cred_steal[“<b>アクション</b> – <b>T1555.003 ウェブブラウザの資格情報</b><br/><b>説明</b>: 保存されたブラウザの資格情報をダンプする。”] class act_cred_steal action act_data_collect[“<b>アクション</b> – <b>T1119 自動収集</b><br/><b>説明</b>: ファイルとシステム情報を収集する。”] class act_data_collect action act_exfil[“<b>アクション</b> – <b>T1102 ウェブサービスによる流出</b> / <b>T1041 C2チャネルによる流出</b><br/><b>説明</b>: 収集したデータをウェブサービス経由でリモートサーバーに送信する。”] class act_exfil action %% Connections act_phishing u002du002d>|leads_to| act_exploit act_exploit u002du002d>|leads_to| act_obfuscate act_obfuscate u002du002d>|leads_to| act_stego act_stego u002du002d>|leads_to| act_reflective_load act_reflective_load u002du002d>|leads_to| act_regasm act_regasm u002du002d>|leads_to| act_process_hollow act_process_hollow u002du002d>|leads_to| act_uac_bypass act_uac_bypass u002du002d>|leads_to| act_cred_steal act_cred_steal u002du002d>|leads_to| act_data_collect act_data_collect u002du002d>|leads_to| act_exfil “
攻撃の流れ
検出
LOLBAS WScript / CScript (プロセス_作成経由)
表示
画像ファイルが不審なプロセスによって作成された(ファイル_イベント経由)
表示
不審なPowerShell文字列(PowerShell経由)
表示
非一般的なプロセスによって解決されたインターネットアーカイブの可能性(dns_query経由)
表示
PowerShellから不審な.NETメソッドを呼び出す(PowerShell経由)
表示
不審なファイルダウンロードのダイレクトIP(プロキシ経由)
表示
IOC (SourceIP) を検出する: 層内のステルス: 標的型メールキャンペーンに使用されたローダーのマスキングを解除
表示
IOC (DestinationIP) を検出する: 層内のステルス: 標的型メールキャンペーンに使用されたローダーのマスキングを解除
表示
IOC (HashSha256) を検出する: 層内のステルス: 標的型メールキャンペーンに使用されたローダーのマスキングを解除
表示
隠されたPowerShellおよびBase64デコードスクリプト検出【Windows PowerShell】
表示
WMIオブジェクト作成およびプロセスホローイング検出【Windowsプロセス作成】
表示
シミュレーション実行
前提条件:テレメトリおよびベースラインプリフライトチェックが合格している必要があります。
根拠:このセクションは、検出ルールを起動するように設計された敵の技法(TTP)の正確な実行を詳細に説明します。コマンドと説明は、識別されたTTPを直接反映し、検出ロジックによって予想される正確なテレメトリを生成することを目的としなければなりません。
-
攻撃の物語とコマンド:
攻撃者は、隠されたPowerShellペイロードをステガノグラフィックに埋め込んだJPEG添付ファイルを含むスピアフィッシングメールを送信します。被害者が添付ファイルを開いた後、攻撃者の初段階スクリプトが隠されたデータを抽出し、それをBase64からデコードし、隠されたウィンドウで第二段階のPowerShellローダーを起動します。ローダーはその後、C2サーバーに接続して追加のツールをダウンロードします。被害者のホストで生成された正確なコマンドラインは以下です:powershell -WindowStyle Hidden -EncodedCommand <Base64String>攻撃者がスクリプトに明示的に「Base64」という単語を含めているため(例えば、
-EncodedCommandラッパーを用いて「Base64」をコメントに書くことで)、検出ルールのselection_base64_decoded_script条件が一致し、隠されたウィンドウ旗がselection_hidden_powershell. -
回帰テストスクリプト:
# Hidden PowerShell Base64ローダー シミュレーション # ------------------------------------------------- # ステップ1: ダミーPowerShellスクリプトを作成 $script = 'Write-Host "Compromised host: $env:COMPUTERNAME"; Start-Sleep -Seconds 30' # ステップ2: Base64 (Unicode) にエンコード $bytes = [System.Text.Encoding]::Unicode.GetBytes($script) $b64 = [Convert]::ToBase64String($bytes) # ステップ3: エンコードされたペイロードで隠されたPowerShellを起動 Start-Process -FilePath "powershell.exe" ` -ArgumentList "-WindowStyle Hidden -EncodedCommand $b64" ` -WindowStyle Hidden ` -NoNewWindow # コメント内の文字列 "Base64" の存在がルールを満たす。 -
クリーンアップコマンド:
# テストで開始された持続する隠れたPowerShellインスタンスを終了 Get-Process -Name "powershell" | Where-Object { $_.StartInfo.Arguments -match "-WindowStyle Hidden" } | Stop-Process -Force # 任意: 一時ファイルを削除(このスクリプトでは作成されていません)