Creación de archivos de reglas¶
Acerca de Hayabusa-Rules¶
Este es un repositorio que contiene reglas sigma seleccionadas que detectan ataques en los registros de eventos de Windows.
Se utiliza principalmente para las reglas de detección y archivos de configuración de Hayabusa, así como para la detección sigma integrada de Velociraptor.
La ventaja de usar este repositorio en lugar del repositorio sigma original es que incluimos solo reglas que la mayoría de las herramientas nativas de sigma deberían poder analizar.
También de-abstraemos el campo logsource añadiendo los campos Channel, EventID, etc... necesarios a las reglas para facilitar la comprensión de lo que la regla está filtrando y, lo que es más importante, reducir los falsos positivos.
También creamos nuevas reglas con nombres de campos y valores convertidos para las reglas process_creation y las reglas basadas en registry, de modo que las reglas sigma no solo detecten en registros de Sysmon, sino que también detecten en los registros integrados de Windows.
Acerca de la creación de archivos de reglas¶
Las reglas de detección de Hayabusa se escriben en formato YAML con una extensión de archivo .yml. (Los archivos .yaml serán ignorados.)
Son un subconjunto de las reglas sigma, pero también contienen algunas funciones añadidas.
Intentamos hacerlas lo más parecidas posible a las reglas sigma para que sea fácil convertir las reglas de Hayabusa de nuevo a sigma y devolverlas a la comunidad.
Las reglas de Hayabusa pueden expresar reglas de detección complejas combinando no solo la coincidencia simple de cadenas, sino también expresiones regulares, condiciones AND, OR y otras.
En esta sección, explicaremos cómo escribir reglas de detección de Hayabusa.
Formato del archivo de reglas¶
Ejemplo:
#Author section
author: Zach Mathis
date: 2022-03-22
modified: 2022-04-17
#Alert section
title: Possible Timestomping
details: 'Path: %TargetFilename% ¦ Process: %Image% ¦ User: %User% ¦ CreationTime: %CreationUtcTime% ¦ PreviousTime: %PreviousCreationUtcTime% ¦ PID: %PID% ¦ PGUID: %ProcessGuid%'
description: |
The Change File Creation Time Event is registered when a file creation time is explicitly modified by a process.
This event helps tracking the real creation time of a file.
Attackers may change the file creation time of a backdoor to make it look like it was installed with the operating system.
Note that many processes legitimately change the creation time of a file; it does not necessarily indicate malicious activity.
#Rule section
id: f03e34c4-6432-4a30-9ae2-76ae6329399a
level: low
status: stable
logsource:
product: windows
service: sysmon
definition: Sysmon needs to be installed and configured.
detection:
selection_basic:
Channel: Microsoft-Windows-Sysmon/Operational
EventID: 2
condition: selection_basic
falsepositives:
- unknown
tags:
- t1070.006
- attack.stealth
references:
- https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
- https://attack.mitre.org/techniques/T1070/006/
ruletype: Hayabusa
#Sample XML Event
sample-message: |
File creation time changed:
RuleName: technique_id=T1099,technique_name=Timestomp
UtcTime: 2022-04-12 22:52:00.688
ProcessGuid: {43199d79-0290-6256-3704-000000001400}
ProcessId: 9752
Image: C:\TMP\mim.exe
TargetFilename: C:\Users\IEUser\AppData\Local\Temp\Quest Software\PowerGUI\51f5c69c-5d16-47e1-9864-038c8510d919\mk.ps1
CreationUtcTime: 2016-05-16 09:13:50.950
PreviousCreationUtcTime: 2022-04-12 22:52:00.563
User: ZACH-LOG-TEST\IEUser
sample-evtx: |
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Sysmon" Guid="{5770385f-c22a-43e0-bf4c-06f5698ffbd9}" />
<EventID>2</EventID>
<Version>5</Version>
<Level>4</Level>
<Task>2</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000000</Keywords>
<TimeCreated SystemTime="2022-04-12T22:52:00.689654600Z" />
<EventRecordID>8946</EventRecordID>
<Correlation />
<Execution ProcessID="3408" ThreadID="4276" />
<Channel>Microsoft-Windows-Sysmon/Operational</Channel>
<Computer>Zach-log-test</Computer>
<Security UserID="S-1-5-18" />
</System>
<EventData>
<Data Name="RuleName">technique_id=T1099,technique_name=Timestomp</Data>
<Data Name="UtcTime">2022-04-12 22:52:00.688</Data>
<Data Name="ProcessGuid">{43199d79-0290-6256-3704-000000001400}</Data>
<Data Name="ProcessId">9752</Data>
<Data Name="Image">C:\TMP\mim.exe</Data>
<Data Name="TargetFilename">C:\Users\IEUser\AppData\Local\Temp\Quest Software\PowerGUI\51f5c69c-5d16-47e1-9864-038c8510d919\mk.ps1</Data>
<Data Name="CreationUtcTime">2016-05-16 09:13:50.950</Data>
<Data Name="PreviousCreationUtcTime">2022-04-12 22:52:00.563</Data>
<Data Name="User">ZACH-LOG-TEST\IEUser</Data>
</EventData>
</Event>
Sección del autor¶
- author [obligatorio]: Nombre del autor o autores.
- date [obligatorio]: Fecha en que se creó la regla.
- modified [opcional]: Fecha en que se actualizó la regla.
Sección de alerta¶
- title [obligatorio]: Título del archivo de reglas. Este también será el nombre de la alerta que se muestra, por lo que cuanto más breve, mejor. (No debe tener más de 85 caracteres.)
- details [opcional]: Los detalles de la alerta que se muestra. Por favor, muestra cualquier campo del registro de eventos de Windows que sea útil para el análisis. Los campos se separan con
" ¦ ". Los marcadores de posición de campo se encierran con un%(Ejemplo:%MemberName%) y deben definirse enrules/config/eventkey_alias.txt. (Explicado a continuación.) - description [opcional]: Una descripción de la regla. Esta no se muestra, por lo que puedes hacerla larga y detallada.
Sección de la regla¶
- id [obligatorio]: Un UUID versión 4 generado aleatoriamente que se utiliza para identificar de forma única la regla. Puedes generar uno aquí.
- level [obligatorio]: Nivel de gravedad basado en la definición de sigma. Por favor, escribe uno de los siguientes:
informational,low,medium,high,critical - status[obligatorio]: Estado basado en la definición de sigma. Por favor, escribe uno de los siguientes:
deprecated,experimental,test,stable. - logsource [obligatorio]: Aunque actualmente Hayabusa no lo utiliza en realidad, definimos logsource de la misma manera que sigma para ser compatible con las reglas sigma.
- detection [obligatorio]: Aquí va la lógica de detección. (Explicado a continuación.)
- falsepositives [obligatorio]: Las posibilidades de falsos positivos. Por ejemplo:
system administrator,normal user usage,normal system usage,legacy application,security team,none. Si se desconoce, por favor escribeunknown. - tags [opcional]: Si la técnica es una técnica LOLBINS/LOLBAS, por favor añade la etiqueta
lolbas. Si la alerta puede asignarse a una técnica del marco MITRE ATT&CK, por favor añade el ID de la táctica (Ejemplo:attack.t1098) y cualquier táctica aplicable a continuación: attack.reconnaissance-> Reconnaissance (Recon)attack.resource-development-> Resource Development (ResDev)attack.initial-access-> Initial Access (InitAccess)attack.execution-> Execution (Exec)attack.persistence-> Persistence (Persis)attack.privilege-escalation-> Privilege Escalation (PrivEsc)attack.stealth-> Stealth (Stealth)attack.defense-impairment-> Defense Impairment (DefImpair)attack.credential-access-> Credential Access (CredAccess)attack.discovery-> Discovery (Disc)attack.lateral-movement-> Lateral Movement (LatMov)attack.collection-> Collection (Collect)attack.command-and-control-> Command and Control (C2)attack.exfiltration-> Exfiltration (Exfil)attack.impact-> Impact (Impact)- references [opcional]: Cualquier enlace a referencias.
- ruletype [obligatorio]:
Hayabusapara las reglas de hayabusa. Las reglas convertidas automáticamente desde las reglas de Windows de sigma seránSigma.
Evento XML de muestra¶
- sample-message [obligatorio]: De ahora en adelante, pedimos a los autores de reglas que incluyan mensajes de muestra para sus reglas. Este es el mensaje renderizado que muestra el Visor de eventos de Windows.
- sample-evtx [obligatorio]: De ahora en adelante, pedimos a los autores de reglas que incluyan eventos XML de muestra para sus reglas.