攻撃者は、正当な実行中のプロセスに悪意のあるコードを挿入することがあります。残念ながら、同様のコードインジェクション技術は、視覚障害者用のスクリーンリーダーなど、多くの正規のソフトウェアでも使用されています。
CodeInjectionイベントごとに検出を作成すると、誤検知が多くなりすぎます。この問題を解決するには、ESET InspectでCompromisedフラグを使用できます。
ルール
まず、TriggerDetectionアクションを除く、MarkAsCompromisedアクションを含むルールを作成します。MarkAsCompromisedは、コードインジェクションの受信側にあるプロセスにフラグを追加します。
<?xml version='1.0' encoding='UTF-8'?>
<rule>
<description>
<name>Common Injection Targets</name>
<category>Special</category>
<os>Windows</os>
<severity>90</severity>
</description>
<definition>
<operations>
<operation type="CodeInjection">
<operator type="AND">
<condition component="CodeInjectionType" condition="is" property="CodeInjectionType" value="SetThreadContext"/>
<operator type="OR">
<condition component="FileItem" property="FileName" condition="is" value="msedge.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="ComSvcConfig.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="explorer.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="DevicePairingWizard.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="EhStorAuthn.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="Locator.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="WUAUCLT.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="WWAHost.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="WerFault.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="bootcfg.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="conhost.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="dllhost.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="getmac.exe"/>
<condition component="FileItem" property="FileName" condition="is" value="systray.exe"/>
</operator>
</operator>
</operation>
</operations>
</definition>
<maliciousTarget name="none"/>
<actions>
<action name="StoreEvent"/>
<action name="MarkAsCompromised"/>
</actions>
</rule>
|
これで、compromisedフラグが設定されたので、LSASSプロセスへのアクセスなど、追加の不審な操作が発生した場合に、別のルールで参照できます。
<?xml version='1.0' encoding='UTF-8'?>
<rule>
<description>
<name>Credential Dumping From Compromised Process</name>
<category>Suspicious process creation and process manipulation</category>
<os>Windows</os>
<severity>90</severity>
<mitreattackid>T1003.001</mitreattackid>
<explanation>A process has accessed the LSASS process in a way that is typical for Mimikatz. LSASS contains sensitive information such as credentials.</explanation>
<benignCauses>Legitimate applications that access other running processes in an improper way (e.g., certain installers).</benignCauses>
<maliciousCauses>Adversary may access LSASS process in order to retrieve credentials - passwords and hashes.</maliciousCauses>
<recommendedActions>1. Initiate Incident Response procedure.</recommendedActions>
</description>
<definition>
<process>
<condition component="ProcessInfo" condition="is" property="Compromised" value="1"/>
</process>
<operations>
<operation type="OpenProcess">
<operator type="AND">
<condition component="FileItem" property="FileName" condition="is" value="lsass.exe"/>
<condition component="FileItem" property="Path" condition="is" value="%SYSTEM%"/>
<condition component="OpenProcess" property="AccessRight" condition="is" value="4112"/>
</operator>
</operation>
</operations>
</definition>
<maliciousTarget name="current"/>
<actions>
<action name="TriggerDetection"/>
<action name="StoreEvent"/>
</actions>
</rule>
|