Іноді зловмисник може ввести шкідливий код у правомірний процес, що виконується. На жаль, такі методи вставлення коду також використовуються багатьма законними програмами (наприклад, програмами зчитування з екрана для людей з вадами зору).
Створення виявлених об’єктів для кожної події CodeInjection призведе до занадто великої кількості помилкових спрацьовувань. Щоб вирішити цю проблему, у ESET Inspect ми можемо використовувати прапорець Compromised.
Правило
Спочатку ми створюємо правило, яке містить дію MarkAsCompromised без дії TriggerDetection. Дія 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>
|