Tema 17

17. Detección con YARA, Sigma, reglas de red y enriquecimiento de IOCs

La detección convierte hallazgos de análisis en capacidad defensiva. YARA ayuda a reconocer archivos y memoria, Sigma expresa patrones de eventos, las reglas de red observan comunicaciones y el enriquecimiento da contexto para priorizar.

Objetivo Transformar análisis en detecciones defendibles
Enfoque YARA, Sigma, red, IOCs, contexto y falsos positivos
Resultado Crear reglas útiles, mantenibles y orientadas a respuesta

17.1 Introducción

Analizar malware produce conocimiento. La detección transforma ese conocimiento en mecanismos que permiten encontrar muestras, comportamientos, conexiones o eventos similares en otros sistemas.

Una detección puede ser exacta y puntual, como un hash, o más general, como una regla que busca una combinación de cadenas, eventos o comportamiento de red. Cuanto más general es una regla, más cuidado requiere para evitar falsos positivos.

Este tema aborda detección desde una perspectiva educativa y defensiva: cómo elegir indicadores, escribir reglas, validar resultados, enriquecer contexto y mantener calidad.

17.2 De hallazgo a detección

No todo hallazgo debe convertirse en regla. Primero hay que evaluar si es estable, específico, observable y útil.

  • Un hash exacto detecta una muestra concreta.
  • Una string estable puede detectar una familia o variante.
  • Una clave de persistencia puede detectar instalación.
  • Una secuencia de eventos puede detectar comportamiento.
  • Un patrón de red puede detectar comunicación maliciosa.
  • Una combinación de señales suele ser más robusta que una señal aislada.
Una buena detección debe explicar qué busca, por qué importa, dónde funciona y qué falsos positivos espera.

17.3 Tipos de detección

Las detecciones pueden agruparse por fuente de telemetría y tipo de señal.

Tipo Fuente Uso típico
Archivo Hash, YARA, metadatos Encontrar muestras o familias en disco
Memoria YARA, dumps, EDR Detectar código desempaquetado o config en ejecución
Endpoint Procesos, registro, archivos, eventos Detectar persistencia y comportamiento
Red DNS, proxy, IDS, firewall, NDR Detectar C2, beaconing, descarga o exfiltración
Correlación SIEM o plataforma centralizada Relacionar señales débiles en una alerta más fuerte

17.4 YARA

YARA es una herramienta y lenguaje de reglas para identificar archivos o memoria por patrones. Es muy usada en análisis de malware porque permite combinar cadenas, bytes, metadatos y condiciones lógicas.

Una regla YARA puede buscar:

  • Strings específicas de una familia.
  • Secuencias de bytes relevantes.
  • Metadatos de formato PE o ELF.
  • Combinaciones de strings y condiciones.
  • Características de packers o configuraciones.

17.5 Anatomía de una regla YARA

Una regla YARA suele contener metadatos, strings y una condición. Los metadatos documentan; las strings definen patrones; la condición decide cuándo hay coincidencia.

rule ejemplo_familia_sospechosa
{
  meta:
    description = "Detecta rasgos de una familia analizada en laboratorio"
    author = "Equipo defensivo"
    confidence = "media"

  strings:
    $s1 = "ruta_configuracion" ascii
    $s2 = "User-Agent" ascii
    $h1 = { 4D 5A }

  condition:
    uint16(0) == 0x5A4D and 2 of ($s*)
}

Esta regla es ilustrativa. En un entorno real se debe ajustar a evidencias específicas, probar contra corpus benigno y documentar limitaciones.

17.6 Buenas prácticas con YARA

  • Usar strings suficientemente específicas.
  • Evitar cadenas genéricas presentes en software legítimo.
  • Combinar varias condiciones en lugar de depender de una sola string.
  • Agregar metadatos claros: autor, fecha, fuente y descripción.
  • Probar contra muestras maliciosas y benignas.
  • Distinguir reglas de hunting de reglas de bloqueo.
  • Versionar reglas y revisar falsos positivos.
Una regla muy amplia puede encontrar más, pero también puede generar ruido. La calidad está en el equilibrio entre cobertura y precisión.

17.7 YARA en memoria

YARA también puede aplicarse sobre memoria. Esto es útil cuando el malware está empaquetado, descifra strings durante ejecución o carga payloads que no existen completos en disco.

Casos de uso:

  • Buscar configuración descifrada.
  • Detectar payload desempaquetado.
  • Encontrar shellcode o regiones sospechosas.
  • Identificar familias que ocultan strings en archivo.
  • Correlacionar detecciones con procesos activos.

17.8 Sigma

Sigma es un formato genérico para expresar reglas de detección basadas en logs. Permite describir patrones de eventos de forma portable y luego convertirlos a consultas para distintas plataformas SIEM o EDR.

Sigma se usa para detectar comportamiento, por ejemplo:

  • Creación sospechosa de procesos.
  • Persistencia por tareas o servicios.
  • Uso anómalo de herramientas administrativas.
  • Comandos codificados u ofuscados.
  • Accesos a rutas sensibles.
  • Eventos de autenticación o movimiento lateral.

17.9 Anatomía de una regla Sigma

Una regla Sigma define título, estado, descripción, fuentes de log, condiciones de detección, falsos positivos y nivel.

title: Ejecucion Sospechosa Desde Directorio Temporal
status: experimental
description: Detecta procesos ejecutados desde rutas temporales por contexto sospechoso
logsource:
  category: process_creation
detection:
  selection:
    Image|contains:
      - '\Temp\'
      - '\AppData\Local\Temp\'
  condition: selection
falsepositives:
  - Instaladores legítimos
level: medium

La regla es educativa y simplificada. En producción se debe ajustar por entorno, procesos permitidos, firmas, hashes y contexto.

17.10 Buenas prácticas con Sigma

  • Definir con precisión la fuente de logs requerida.
  • Documentar falsos positivos esperados.
  • Usar condiciones compuestas cuando una señal es débil.
  • Incluir nivel de severidad acorde al impacto.
  • Probar en datos históricos antes de activar alertas ruidosas.
  • Agregar contexto de investigación recomendado.
  • Mantener reglas actualizadas según cambios del entorno.

17.11 Reglas de red

Las reglas de red buscan actividad en DNS, HTTP, TLS, IDS, proxy, firewall o NDR. Pueden detectar destinos, patrones de protocolo, cabeceras, certificados, tamaños o periodicidad.

Fuente Patrón detectable Cuidado
DNS Dominio, subdominio largo, NXDOMAIN repetido Evitar bloquear dominios legítimos comprometidos sin contexto
HTTP URL, método, User-Agent, cabeceras Muchos valores pueden ser imitados o genéricos
TLS SNI, certificado, huella de cliente Puede haber CDNs y servicios compartidos
IDS Firma de protocolo o contenido Requiere tuning y revisión de falsos positivos
Proxy Destino, categoría, volumen, usuario Necesita correlación con endpoint

17.12 Detección de beaconing

Beaconing requiere mirar patrones temporales. Una regla simple por dominio puede ser útil, pero una detección más resistente observa frecuencia, tamaño, proceso y destino.

Señales combinables:

  • Conexiones repetidas a intervalos similares.
  • Solicitudes pequeñas con respuestas pequeñas.
  • Actividad desde procesos no asociados a navegación.
  • Destino nuevo para la organización.
  • Persistencia local creada antes del tráfico.
  • Horario o patrón inconsistente con uso humano.

17.13 Detección de exfiltración

Detectar exfiltración exige correlacionar host, datos y red. El volumen por sí solo no siempre basta; una transferencia pequeña puede contener secretos y una grande puede ser legítima.

  • Compresión o empaquetado seguido de conexión externa.
  • Lectura de muchos archivos antes de envío.
  • Subidas a destinos no habituales.
  • DNS con subdominios largos y frecuentes.
  • Uso de servicios cloud no aprobados.
  • Tráfico saliente fuera de horario o patrón normal.

17.14 Enriquecimiento de IOCs

Enriquecer IOCs consiste en agregar contexto para priorizar y decidir acciones. El enriquecimiento puede venir de fuentes internas o externas.

IOC Enriquecimiento útil Decisión posible
Hash Prevalencia interna, primera vez visto, firma Buscar, aislar o permitir según contexto
Dominio Edad, reputación, resolución, presencia en logs Bloquear, monitorear o investigar
IP ASN, servicio, historial, relación con CDN Evitar bloqueos amplios si es compartida
Ruta Frecuencia en endpoints, firmante, proceso creador Crear alerta contextual
Comportamiento Usuarios afectados, frecuencia, secuencia de eventos Elevar severidad si hay correlación

17.15 Fuentes internas de contexto

Las fuentes internas suelen ser más relevantes que la reputación externa porque muestran qué ocurre en el propio entorno.

  • Historial de DNS, proxy y firewall.
  • Telemetría EDR de procesos y archivos.
  • Inventario de software y firmas digitales.
  • Registros de autenticación y directorio.
  • Prevalencia de hashes y rutas.
  • Alertas previas y casos relacionados.
  • Lista de servicios aprobados y excepciones conocidas.

17.16 Fuentes externas de contexto

Las fuentes externas pueden aportar reputación, relaciones conocidas, reportes de campañas o datos históricos. Deben usarse con cuidado y no reemplazan evidencia propia.

  • Reportes de fabricantes y equipos de investigación.
  • Bases de reputación de dominios, IPs y hashes.
  • Feeds de inteligencia de amenazas.
  • Repositorios públicos de reglas.
  • Comunidad técnica y reportes de incidentes.

Siempre conviene registrar fuente, fecha y nivel de confianza del enriquecimiento externo.

17.17 Gestión de falsos positivos

Una detección que alerta demasiado pierde valor operativo. El ajuste de falsos positivos es parte del ciclo de vida de una regla.

  • Probar reglas contra datos benignos representativos.
  • Agregar exclusiones justificadas y documentadas.
  • Evitar exclusiones demasiado amplias.
  • Revisar alertas iniciales en modo monitoreo.
  • Separar reglas de hunting de reglas de alta severidad.
  • Actualizar reglas cuando cambia el entorno.

17.18 Severidad y respuesta

Una regla debe indicar qué tan grave es una coincidencia y qué acción se espera. No todas las detecciones implican bloqueo o aislamiento inmediato.

Severidad Ejemplo Respuesta inicial
Baja IOC débil o indicador genérico Enriquecer y observar
Media Comportamiento sospechoso con contexto parcial Investigar host y usuario
Alta Persistencia maliciosa o payload conocido Contener y buscar alcance
Crítica Exfiltración confirmada o ransomware activo Respuesta inmediata coordinada

17.19 Pruebas de reglas

Antes de desplegar una regla, hay que probarla. Las pruebas deben incluir casos positivos y negativos.

  1. Definir qué debe detectar la regla.
  2. Probar contra muestras o eventos maliciosos conocidos.
  3. Probar contra software o actividad legítima similar.
  4. Medir volumen esperado de alertas.
  5. Revisar si los campos usados existen en la telemetría real.
  6. Documentar limitaciones, falsos positivos y versiones.

17.20 Mantenimiento de reglas

Las reglas envejecen. Cambian las familias de malware, la infraestructura, los formatos de logs y el entorno de la organización.

  • Versionar reglas y cambios.
  • Registrar fecha de creación y última revisión.
  • Retirar IOCs caducos o ruidosos.
  • Actualizar reglas por cambios de telemetría.
  • Revisar desempeño después de incidentes.
  • Unificar estilo, nombres y metadatos.

17.21 Métricas útiles

Medir detecciones ayuda a mejorar cobertura y reducir ruido.

  • Cantidad de alertas por regla.
  • Tasa de falsos positivos confirmados.
  • Tiempo medio de investigación.
  • Reglas sin disparos durante períodos largos.
  • Reglas con demasiadas excepciones.
  • Cobertura por táctica o técnica defensiva.
  • Detecciones que ayudaron en incidentes reales.

17.22 Checklist para crear una detección

  1. Definir el comportamiento o artefacto a detectar.
  2. Elegir fuente de telemetría adecuada.
  3. Seleccionar indicadores estables y específicos.
  4. Escribir regla con metadatos claros.
  5. Probar contra casos positivos y negativos.
  6. Documentar falsos positivos esperados.
  7. Asignar severidad y acción recomendada.
  8. Desplegar primero en monitoreo si hay incertidumbre.
  9. Revisar resultados y ajustar.

17.23 Errores frecuentes

  • Crear reglas por una string genérica sin validación.
  • Bloquear IPs compartidas por una única observación.
  • No documentar falsos positivos conocidos.
  • Usar campos que no existen en la telemetría real.
  • Confundir reglas de hunting con reglas de respuesta automática.
  • No actualizar IOCs caducos.
  • Medir solo cantidad de alertas y no calidad de detección.

17.24 Qué debes recordar de este tema

  • YARA detecta patrones en archivos y memoria; Sigma expresa detecciones basadas en logs.
  • Las reglas de red deben considerar DNS, HTTP, TLS, timing y contexto de endpoint.
  • El enriquecimiento ayuda a priorizar, pero no reemplaza evidencia propia.
  • Una regla útil documenta alcance, fuente, confianza, falsos positivos y respuesta esperada.
  • Las detecciones necesitan pruebas y mantenimiento continuo.

17.25 Conclusión

La detección es el puente entre análisis técnico y defensa operativa. Al convertir configuraciones, artefactos y comportamientos en reglas bien documentadas, un equipo puede buscar actividad relacionada, alertar con contexto y responder con menos incertidumbre.

En el próximo tema iniciaremos el bloque de vulnerabilidades: fundamentos de memoria, validación de entrada y lógica insegura, para entender cómo las fallas se convierten en condiciones explotables.