ステガノグラフィーの秘密:目に見えない形で忍び寄るマルウェア
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターは、無害に見えるPNGおよびJPEGファイルの中に隠された悪意のあるペイロードを配信するために、画像ホスティングおよびファイル共有サービスを悪用するケースが増えています。これらの画像は、JavaScript型ドロッパーによって抽出され、メモリに直接ロードされるBase64エンコードされたDLLを含んでおり、Remcos RATのようなリモートアクセスマルウェアを起動します。ディスク上の明らかなアーティファクトを避けつつ、ファイルレス実行に頼るこの手法により、多くの従来のエンドポイント防御をすり抜けることができます。これらのキャンペーンは、しばしば金融関連のテーマを用い、パーソナライズされたフィッシングメールを通じて被害者を標的にします。
調査
Cofenseは、JavaScriptベースのドロッパーを提供する偽の注文書類を中心に構築された一連のフィッシングメールを分析しました。このドロッパーは、悪用されたドメインからステガノグラフィック画像を取得し、Base64エンコードされた.NETローダーDLLをデコードし、Remcos RATを正規のプロセスに注入しました。キャンペーンの統計によると、観察された攻撃の27%がRemcos RATを配信し、21%がAgent Teslaを、18%がXWorm RATを配信していました。また、レポートは、以下を含む、深刻に悪用されたホスティングプラットフォームを特定しました: uploaddeimagens.com.br and archive.org.
緩和策
組織は、メール添付ファイルのスキャンを強化し、信頼できないJavaScriptファイルの実行をブロックするべきです。既知の画像ホスティングプラットフォームへのアウトバウンドトラフィックを監視することで、ペイロード配信段階を浮き彫りにすることができます。また、行動分析を使用して、プロセス注入や未署名DLLのメモリ内のみの読み込みを検出することも重要です。防御者は、レジストリアプライ場所およびスケジュールされたタスクをさらに監視し、ファイルレス永続化の試みを特定するべきです。
対応
ステガノグラフィックな悪意のある画像が疑われる場合、影響を受けたエンドポイントを直ちに隔離し、法医学分析のためにメモリを収集してください。調査者は、.NETローダーDLLおよび注入されたRemcosコンポーネントをホストしている可能性のある正規のプロセスを検索すべきです。ローダーによって作成された無許可のアプターンレジストリエントリーや予定されたタスクは削除されるべきです。侵入中に潜在的に露出したアカウントは、完全な資格情報のリセットを実施してください。
"graph TB %% Class Definitions classDef action fill:#99ccff classDef malware fill:#ff9999 classDef persistence fill:#ffcc99 classDef privilege fill:#ffb3b3 %% Node definitions action_phishing["<b>アクション</b> – <b>T1566.001 フィッシング</b><br/>スピアフィッシング添付ファイル:攻撃者は、不正なJavaScriptドロッパーの添付ファイルとともに、金融テーマのメールを送信します。"] class action_phishing action action_user_execution["<b>アクション</b> – <b>T1204.003 ユーザー実行</b><br/>悪意のある画像:被害者は、JavaScriptドロッパーを開き、パブリックホスティングサイトから悪意のある画像をダウンロードするよう促されます。"] class action_user_execution action action_steganography["<b>アクション</b> – <b>T1027.003 混淆化されたファイルや情報</b><br/>ステガノグラフィー:ダウンロードされた画像には、ステガノグラフィーを通じて隠されているBase64エンコードされた.NETローダーDLLが含まれています。"] class action_steganography action action_process_injection["<b>アクション</b> – <b>T1055 プロセス注入</b><br/>ローダーがRemcos RATをexplorer.exeのような正規のプロセスのメモリに注入します。"] class action_process_injection action action_privilege_escalation["<b>アクション</b> – <b>T1548 権限昇格制御メカニズムの悪用</b><br/>ローダーは、ペイロードを実行する前に管理者権限を取得するために権限を昇格させます。"] class action_privilege_escalation privilege persistence_appcert["<b>永続性</b> – <b>T1546.009 イベントトリガー実行</b><br/>AppCert DLLs:起動時に悪意あるDLLをロードするために書き込まれるレジストリエントリ(ファイルレス永続性)。"] class persistence_appcert persistence persistence_activesetup["<b>永続性</b> – <b>T1547.014 起動またはログオン時の自動起動実行</b><br/>アクティブセットアップ:永続性のために追加された自動起動レジストリキー。"] class persistence_activesetup persistence malware_remcos_rat["<b>マルウェア</b> – <b>T1219 リモートアクセスツール</b><br/>Remcos RATは、攻撃者に対してコマンド—アンド—コントロール能力を提供します。"] class malware_remcos_rat malware action_lateral_movement["<b>アクション</b> – <b>T1021 リモートサービス</b><br/>RATはリモートサービスを利用してネットワーク横断を行います。"] class action_lateral_movement action %% Connections action_phishing –>|配信| action_user_execution action_user_execution –>|実行| action_steganography action_steganography –>|含む| action_process_injection action_process_injection –>|注入| malware_remcos_rat malware_remcos_rat –>|有効化| action_privilege_escalation action_privilege_escalation –>|作成| persistence_appcert persistence_appcert –>|追加| persistence_activesetup malware_remcos_rat –>|支援| action_lateral_movement "
攻撃フロー
シミュレーション実行
前提条件: テレメトリー&ベースライン事前チェックが合格していること。
根拠:このセクションでは、検出ルールをトリガーするために設計された敵のテクニック(TTP)の正確な実行を詳細に説明します。コマンドとナラティブは、識別されたTTPを直接反映し、検出ロジックで期待される正確なテレメトリーを生成することを目的としています。
-
攻撃ナラティブ&コマンド:
-
準備 – ステガノグラフィックペイロード:
攻撃者はカスタムツール (StegoEmbed.exe) を使用して無害なJPEGの中にコンパイルされたRemcos RAT DLLを埋め込みます。この結果ファイル (malicious.jpg) は、そのピクセルデータに悪意のあるペイロードを持っています。 -
配信 – DotNETローダーの実行:
攻撃者は、ステガ画像を参照し、引数を含む.NETベースのローダー (dotnet.exe) を実行します。Loader。ローダーは画像を読み込み、埋め込まれたDLLを抽出して、ディスクに書き込まずにメモリに直接ロードすることで(メモリ内実行)、エクスプロイト (T1068) によって権限を昇格します。 -
結果 – RATビーコン:
メモリ内に入った後、Remcos RATはC2サーバーにネットワーク接続を確立します。
生成される重要なテレメトリーは、 プロセス作成イベント であり、
イメージ(プロセス名)は DotNET (dotnet.exe).コマンドラインは、文字列が含まれます Loader.
これにより、Sigmaルールの
selection_dotnet_loader. -
-
レグレッションテストスクリプト:
# --------------------------------------------------------- # シミュレーションスクリプト – ステガノグラフィー付きDotNETローダー (T1027.003) # --------------------------------------------------------- # 1. ダミーステガ画像を作成する(プレースホルダー – 実際の埋め込みは不要) $stegoPath = "$env:TEMPmalicious.jpg" Copy-Item "$env:SystemRootWebWallpaperWindowsimg0.jpg" $stegoPath -Force # 2. 必要なフラグで.NETローダーを実行 # 正当なdotnet.exeを使用して“DotNET”イメージ名を模倣する。 # 引数“Loader”がSigmaルールをトリガーする。 $loaderArgs = "`"$stegoPath`" Loader" Write-Host "[*] 引数: $loaderArgs によりdotnetローダーを起動しています" Start-Process -FilePath "dotnet.exe" -ArgumentList $loaderArgs -NoNewWindow # 3. プロセスがSysmonによってキャプチャされるのを保証するため少し待つ Start-Sleep -Seconds 5 # 4. オプション: RATビーコンのシミュレーション(ネットワークトラフィック)– ルールテストには不要 # --------------------------------------------------------- Write-Host "[*] シミュレーション完了。SIEMでアラートを確認してください。" -
クリーンアップコマンド:
# --------------------------------------------------------- # クリーンアップ – 一時的なステガ画像を削除し、残っているローダープロセスを停止します # --------------------------------------------------------- $stegoPath = "$env:TEMPmalicious.jpg" # 一時画像を削除 if (Test-Path $stegoPath) { Remove-Item $stegoPath -Force Write-Host "[*] 削除されました $stegoPath" } # このスクリプトによって開始された任意のdotnetプロセスを停止("Loader"引数で識別) Get-Process -Name dotnet -ErrorAction SilentlyContinue | Where-Object { $_.Path -like "*dotnet.exe*" -and $_.StartInfo.Arguments -match "Loader" } | ForEach-Object { $_.Kill() Write-Host "[*] プロセスID $($_.Id) を終了しました" } # ---------------------------------------------------------