0Pricing
Cyber Security Academy · Lección

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: high

El 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, aws
  • category — por ejemplo, process_creation, network_connection, file_event
  • service — 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: selection

Modificadores 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 subcadena
  • startswith / endswith — coincidencia anclada
  • all — todos los valores de una lista deben estar presentes
  • re — expresión regular
  • base64offset|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: selection

Listas 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: selection

La 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 > 10

Filtrado 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_legit

Metadatos 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ítico
  • tags — técnicas de ATT&CK, por ejemplo, attack.t1059.001
  • falsepositives — desencadenantes benignos conocidos
  • references — informes de amenazas o documentación
  • author y date

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: 10m

Conversió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:

  • logsource selecciona 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
  • condition combina 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 convert compila 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

  1. Principios de Detection-as-Code
  2. Escritura de reglas Sigma
  3. Mapeo con MITRE ATT&CK
  4. Pruebas y ajuste de detecciones
← Volver a Cyber Security Academy