
Default Detections for EDR
EDR向けデフォルト検知
以下に詳述する検知は、私が導入または関わるあらゆるEDR製品に確立しようとしているものです。重要度やデータセットについては、ご自身の考慮事項を踏まえてください。
検知の実現方法については、こちらの投稿を参照してください https://www.goblinloot.net/2023/02/writing-detections-when-stuck-with-edr.html?m=1
セキュリティプログラムの一環としてエンドポイントで使用しているすべてのシステムのリストを収集します。これには、資産管理、監査、アクセス制御などが含まれます。リストができたら、それらがエンドポイントとどのように連携するか、そしてWMI、GPOクライアント、インストール済みエージェントのいずれであれ、どのコンポーネントが必要かを理解します。サービスが無効化されたり、レジストリキーが変更されたりするなど、これらのコンポーネントの改ざんを監視する検知を作成します。
スクリプトが正当な目的で一時ディレクトリ内で実行されることもありますが、この発生を把握できるように検知を構築する必要があります。この検知は他の検知のコンテキストとして使用してください。監視するディレクトリは以下のとおりです:
%userprofile%\AppData\Local\Temp
%systemroot%\Temp
%systemroot%\Windows\Temp
%systemroot%\Documents and Settings%username%\Local Settings\Temp
%systemroot%\Documents and Settings\Default User\Local Settings\Temp
%systemroot%\Documents and Settings\All Users\Local Settings\Temp
(https://github.com/eclypsium/Screwed-Drivers/blob/master/DRIVERS.md) からリストを取得し、単純なハッシュ照合を行うだけです。簡単です!
ここでは、検知を回避するためにリネームされたオペレーティングシステム標準のファイルを探します。https://lolbas-project.github.io/ のファイルのハッシュを捕捉し、適切な名前と一致しないものを特定する検知を作成してください。
'Windows Defender Firewall Service' または 'Base Filtering Engine' サービスが無効化されることを特定する検知を構築します。さらに、非常に開放的なルールを設定しようとするコマンドラインを捕捉します。これを拡張して、ファイアウォールルールエントリが急速に追加されることを検知することもできます。
以下のディレクトリからデータがコピーまたは移動されることを特定する検知を構築します:
\Google\Chrome\User Data\Default\Login Data
\Opera Software\Opera Stable\Login Data
\Mozilla\Firefox\Profiles\
\Microsoft\Edge\User Data\
UACが無効化された可能性を示すため、以下のレジストリキーの変更を監視します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
WMIを使用してファイルを実行する方法は多数あり、私の経験では正当に実行されることはほとんどありません。wmic、Invoke-WmiMethod、Win32_Process の使用を特定します。特に、スクリプトにディレクトリが含まれる場合や 'create' が使用される場合です。
シャドウボリュームの削除は、現在ではほとんどのランサムウェア亜種の標準的な手法であるため、脅威を検知する優れた方法です。以下はコマンドの例です:
vssadmin delete shadows /all /quiet
Get-WmiObject -Namespace root\cimv2 -Class Win32_ShadowCopy | Where-Object { $.VolumeName -eq "C:" } | ForEach-Object { $.Delete() }
wbadmin delete systemstatebackup -keepversions:0
以下のコマンドが実行されたときに捕捉します。このコマンドは、悪意のある攻撃者にセキュリティツールを無効化し、自分たちのバイナリだけが実行されるようにする簡単な方法を提供します:
bcdedit /set safeboot {"Minimal", "AlternateShell", "Network"}
環境で承認されているRMMツールを列挙し、その他のバリエーションをフラグ付けする検知を構築します。いくつかのリストをここで管理しています: https://github.com/QueenSquishy/Zombie/blob/main/Lists/RMM%20Tools
ここでは、プロセスとその起動対象のリストを作成し、既存のデータセット内で powershell や wscript などのスクリプトインタプリタを使用しているものを除外します。新たにスクリプトインタプリタを起動するものはすべてフラグ付けされます。
デフォルトでは、ファイルをダウンロードする際の標準的なユーザーエクスペリエンスは次のとおりです:
ブラウザでは、実行中ユーザーのディレクトリ内の Downloads フォルダが表示されるか、自動的にダウンロードされます
SMB関連のサービスやアプリケーションを使用する場合、ユーザープロファイルのルートが表示されます
これらの一般的な要素から、ユーザーが Pictures、Videos、Public などのディレクトリにPEファイルをダウンロードすることはほぼないと言えます。しかし、攻撃者はこのような条件下では行動しないため、これらのディレクトリでPEファイルが確認されたときに捕捉する検知を作成できます。