SynkLoaderは複数の回避および配信技術を組み合わせる
Detection stack
- AIDR
- Alert
- ETL
- Query
SynkLoaderの内部: 回避技術を駆使したローダー
概要
SynkLoaderは、検出を複雑にするためにマルチランゲージアーキテクチャを使用する新たに確認されたモジュラーマルウェアファミリーです。このマルウェアは、Pythonベースのローダーを頼りにしてメモリ内で動作するモジュールを展開し、システムのプロファイリング、永続化、偽のWindowsロックスクリーンを通じた資格情報の窃取を行います。さらに、メモリ内DLLの読み込みやC2通信のためのカスタムChaCha20暗号化を含む高度な回避技術を使用します。
調査
研究者は、事件調査中にSynkLoaderを発見し、その後、脅威行為者を制御された環境に誘い込むためのC2エミュレーターを構築しました。偽のシステム情報を提供することにより、永続性やフィッシングコンポーネントを含む複数のモジュールの展開を観察しました。このアクティブな欺瞞アプローチにより、分析者は攻撃者のツールキットの多くを捕捉し、その通信プロトコルをより理解することができました。
緩和策
組織は、パブリッククラウドストレージから配信される無許可のMSIインストーラーをブロックし、エンコードされたコマンドを含む不審なPowerShell活動を監視すべきです。Microsoft Teamsファイルのダウンロードに関する厳格な管理とCOMインターフェースを通じて作成された無許可のスケジュールタスクの監視が推奨されます。また、EDRソリューションはメモリ内DLLの読み込みと異常なPythonプロセスの振る舞いを検出するべきです。
対応
SynkLoaderの活動が検出された場合、TrafficRedirectorモジュールによって可能となる横方向の移動を制限するために、影響を受けたホストを直ちに隔離するべきです。レスポンダーはメモリーフォレンジックスを実施して常駐コンポーネントを特定し、永続性のためにスケジュールされたタスクやCOMオブジェクト操作を検査するべきです。また、PhishLockerモジュールの展開後の可能性がある不審なサインインのために認証ログをレビューすることも必要です。
攻撃フロー
この部分はまだ更新中です。
検出
不審なPowershell文字列(via powershell)
Powershellから不審な.NETメソッド呼び出し(via powershell)
不審なフォルダからのPython実行(via cmdline)
システムの列挙の可能性(via cmdline)
アカウントまたはグループの列挙/操作の可能性(via cmdline)
Powershellの難読化インジケーターの可能性(via powershell)
不審なスケジュールタスク(via audit)
SynkLoaderの特定のためのIOCs (HashSha256): すべてを投入したときの例
Pythonローダーを使用したSynkLoader実行の検出 [Windowsプロセス作成]
16進数エンコード値を使用したメモリ内PowerShell実行の検出 [Windows PowerShell]
PhishLockerの偽ロックスクリーンとスケジュールタスク永続性の検出 [Microsoft Windowsセキュリティイベントログ]
シミュレーション実行
前提条件: テレメトリとベースラインの事前チェックをパスしていること。
理由: このセクションでは、検出ルールをトリガーするために設計された敵の技術(TTP)の正確な実行を詳細に説明します。コマンドと説明は、特定されたTTPを直接反映し、検出ロジックで期待される正確なテレメトリを生成することを目的としています。抽象的または関連性のない例は、誤診につながります。
-
攻撃の説明とコマンド: 攻撃者は初期アクセスを取得し、ディスクに痕跡を残さずにメモリ内で完全にセカンダリステージペイロードを実行するつもりです。簡単なファイルベースのAVを回避するために、PowerShellの
Invoke-Expression(エイリアスとしてiex)を使用して16進エンコード文字列を実行します。また、[System.Management.Automation.ScriptBlock]::Createメソッドを使用しようとも試みます。これは、高度なローダーによってメモリから直接コードブロックを実行するためによく使用される高度な手法です。これらのアクションは、セキュリティルールで監視されている特定のコマンドラインパターンをトリガーすることを目的としています。 -
回帰テストスクリプト:
# シミュレーションスクリプト: メモリ内実行検出のトリガー Write-Host "[*] 検出検証シミュレーションを開始しています..." -ForegroundColor Cyan # 1. 'iex'(Invoke-Expression)によるトリガー Write-Host "[*] 'iex'パターンによるペイロードの実行中..." -ForegroundColor Yellow $hexPayload = "Write-Host 'アラーム: IEXによるメモリ内実行が検出されました!'" $hexEncoded = [System.BitConverter]::ToString([System.Text.Encoding]::UTF8.GetBytes($hexPayload)).Replace("-", " ") # ログに表示されるであろうコマンドライン実行のシミュレーション powershell.exe -Command "iex ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromHexString('$($hexEncoded.Replace(' ', ''))')))" Start-Sleep -Seconds 2 # 2. 'ScriptBlock::Create'パターンによるトリガー Write-Host "[*] 'ScriptBlock::Create'パターンによるペイロードの実行中..." -ForegroundColor Yellow $cmd = "Write-Host 'アラーム: ScriptBlockによるメモリ内実行が検出されました!'" powershell.exe -Command "& ([System.Management.Automation.ScriptBlock]::Create('$cmd'))" Write-Host "[*] シミュレーション完了。" -ForegroundColor Green -
クリーンアップコマンド:
# このシミュレーションでは、純粋にメモリ内のため、永続的なアーティファクトは作成されません。 # ただし、完了を示すためにコンソールをクリアします。 Clear-Host Write-Host "[*] クリーンアップ完了。ディスクにファイルは書き込まれていません。" -ForegroundColor Cyan