Escritura de reglas Sigma
Sintaxis portable para reglas de detección.
Escritura de reglas Sigma es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.
Qué es Sigma
Sigma es un formato genérico y neutral respecto del proveedor para firmas de detección basadas en registros. Escriba la lógica de detección una sola vez en YAML y, después, conviértala a SPL de Splunk, consultas de Elastic, KQL de Sentinel y muchos otros backends.
Sigma es para la detección basada en registros lo que YARA es para la detección basada en archivos: un lenguaje común portátil. Permite a los equipos compartir reglas públicamente y evitar reescribir la misma idea para cada SIEM.
Anatomía de una regla
Una regla de Sigma es un documento YAML con secciones obligatorias y opcionales. Los elementos esenciales son title, logsource y detection.
title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\\powershell.exe'
CommandLine|contains: '-enc'
condition: selection
level: highEl bloque logsource
El bloque logsource indica al convertidor qué registros se aplican a la regla. No consulta los datos directamente; selecciona la asignación de campos y el índice correctos durante la conversión.
Claves habituales:
product— por ejemplo, windows, linux, awscategory— por ejemplo, process_creation, network_connection, file_eventservice— por ejemplo, sysmon, security, sshd
Elija la combinación más específica que admitan sus datos para que el pipeline asigne los campos correctamente.
Selecciones e identificadores de búsqueda
Dentro de detection, defina uno o más identificadores de búsqueda con nombre (selecciones). Cada uno es un mapa de criterios que relacionan campos con valores. Varios campos dentro de una selección se combinan mediante un AND lógico.
Aquí, ambas condiciones deben cumplirse para que selection coincida.
detection:
selection:
EventID: 4688
NewProcessName|endswith: '\\whoami.exe'
condition: selectionModificadores de campos
Los modificadores precisan cómo se compara un valor. Se añaden al nombre del campo después de una barra vertical.
contains— coincidencia de subcadenastartswith/endswith— coincidencia ancladaall— todos los valores de una lista deben estar presentesre— expresión regularbase64offset|contains— coincidencia de subcadenas codificadas en base64
Los modificadores se encadenan de izquierda a derecha y se aplican en ese orden.
detection:
selection:
CommandLine|contains|all:
- 'Invoke-WebRequest'
- 'DownloadString'
condition: selectionListas y mapas como OR / AND
Dos reglas rigen la lógica dentro de una selección:
- Una lista de valores bajo un mismo campo representa OR: cualquier valor produce una coincidencia.
- Un mapa con varios campos representa AND: todos los campos deben coincidir.
A continuación, Image coincide con cualquiera de los dos binarios y User también debe ser igual a SYSTEM.
detection:
selection:
Image|endswith:
- '\\net.exe'
- '\\net1.exe'
User: 'SYSTEM'
condition: selectionLa expresión condition
condition combina las selecciones con nombre mediante lógica booleana. Aquí es donde se expresan los filtros y las exclusiones.
Entre los operadores se incluyen and, or, not, los paréntesis y agregaciones como count(). También puede usar 1 of selection* / all of selection* para hacer referencia a grupos de identificadores mediante un prefijo.
detection:
selection:
EventID: 4625
timeframe: 5m
condition: selection | count() by SourceIp > 10Filtrado del ruido
Para suprimir la actividad legítima conocida, defina un identificador independiente y réstelo en la condición mediante not. Así, la lógica maliciosa permanece legible y las exclusiones quedan explícitas.
Aquí, la regla se activa cuando rundll32 genera una conexión de red, excepto en el caso de un proceso de actualización legítimo conocido.
detection:
selection:
Image|endswith: '\\rundll32.exe'
filter_legit:
ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
condition: selection and not filter_legitMetadatos para el triaje
Además de la lógica, las buenas reglas incluyen metadatos que ayudan a los equipos de respuesta a actuar con rapidez y a los ingenieros a mantener la cobertura.
level— informativo, bajo, medio, alto, críticotags— técnicas de ATT&CK, por ejemplo, attack.t1059.001falsepositives— desencadenantes benignos conocidosreferences— informes de amenazas o documentaciónauthorydate
Estos campos requieren unos minutos de escritura y ahorran horas durante un incidente.
Reglas de correlación
Las reglas para un único evento no pueden expresar ataques de varios pasos. Las reglas de correlación de Sigma combinan varias reglas base a lo largo del tiempo para detectar secuencias y patrones.
Entre los tipos compatibles se incluyen event_count (N coincidencias en una ventana), value_count (valores distintos, por ejemplo, muchos usuarios que han fallado) y temporal (la regla A seguida de la regla B). Esto permite detectar, por ejemplo, un inicio de sesión correcto justo después de una ráfaga de fallos.
name: bruteforce_then_success
correlation:
type: temporal
rules: [failed_logins, successful_login]
group-by: [SourceIp, TargetUser]
timespan: 10mConversión a un backend
Con sigma-cli puede convertir una regla al lenguaje de consulta de destino. Un pipeline de procesamiento asigna los nombres de los campos de Sigma a su esquema real.
El resultado es una consulta lista para desplegar, que puede pegar o enviar mediante una API.
sigma convert -t splunk -p sysmon \
-f default rule.yml
# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"Comprobación rápida
Compruebe su dominio de la lógica de detección de Sigma.
Repaso
Ahora puede crear reglas portátiles de Sigma:
logsourceselecciona los registros y las asignaciones de campos aplicables- Las selecciones son criterios con nombre de campo y valor (los campos funcionan como AND y las listas de valores como OR)
- Los modificadores como contains, endswith, all y re precisan la coincidencia
conditioncombina las selecciones con and/or/not, filtros y agregaciones- Los identificadores filter independientes restan el ruido legítimo conocido
- Los metadatos (level, tags, falsepositives) agilizan el triaje
sigma convertcompila la regla para el backend de su SIEM
A continuación, asociará estas reglas con técnicas de adversarios mediante MITRE ATT&CK.
Preguntas frecuentes
¿La lección «Escritura de reglas Sigma» es gratis?
Sí — el texto completo de «Escritura de reglas Sigma» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Escritura de reglas Sigma»?
Sintaxis portable para reglas de detección. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cyber Security Academy?
No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Escritura de reglas Sigma»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?
Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Principios de Detection-as-Code
- Escritura de reglas Sigma
- Mapeo con MITRE ATT&CK
- Pruebas y ajuste de detecciones