¿Qué es YARA? Reglas para detectar malware
Qué es YARA, cómo una regla YARA reconoce bytes en archivos y memoria, para qué se usa en detección y respuesta a incidentes, y qué aporta YARA-X.
YARA es un motor de código abierto de búsqueda de patrones pensado para el análisis de malware. Describes cómo es una familia de archivos —algunas cadenas, unas secuencias de bytes, una comprobación de cabecera— y YARA te dice qué archivos, volcados de memoria o flujos de datos encajan. Lo creó Victor Alvarez en VirusTotal y su lenguaje de reglas se ha convertido en la forma estándar de compartir lógica de detección sobre archivos.
Esta guía explica cómo funciona una regla, dónde se usa YARA y cómo se relaciona con YARA-X, el motor de las herramientas de este sitio.
Cómo coincide una regla YARA
Una regla tiene dos partes esenciales: patrones (llamados strings, aunque sean bytes) y una condición. YARA busca primero todos los patrones en los datos y después evalúa la condición, que puede combinar esos resultados con propiedades del archivo como su tamaño o los bytes en una posición concreta.
rule SUSP_Example_Download_Cradle
{
meta:
= "Descarga con PowerShell dentro de un ejecutable de Windows"
= "yararules.org"
= "2026-09-29"
strings:
$ps = "powershell" ascii wide nocase
$dl = "DownloadString(" ascii wide
condition:
uint16(0) == 0x5A4D and filesize < 5MB and $ps and $dl
}
Léela de abajo arriba: el archivo debe empezar por la cabecera MZ de un ejecutable de Windows, pesar menos de 5 MB y contener las dos cadenas. La sección meta documenta la regla y nunca influye en la coincidencia. La guía de sintaxis detalla cada sección.
YARA no ejecuta ni desempaqueta nada: mira los bytes tal como están. Esa es su fuerza —rápido, predecible y seguro con archivos hostiles— y su principal límite: una muestra empaquetada o cifrada solo muestra los bytes de su empaquetador.
Para qué se usa YARA
- Clasificación de malware: etiquetar muestras por familia («Emotet», «beacon de Cobalt Strike») en sandboxes y repositorios.
- Threat hunting: recorrer recursos compartidos, equipos o copias de seguridad buscando una herramienta vista en otra intrusión.
- Triaje en respuesta a incidentes: escanear una imagen de disco, una recolección de triaje o un volcado de memoria (ver reglas para respuesta a incidentes).
- Análisis de memoria: muchos implantes solo existen descifrados en memoria; YARA puede escanear la memoria de los procesos.
- Inspección de contenido: pasarelas de correo, proxies web y cadenas de subida de archivos usan YARA para marcar documentos y archivos comprimidos.
- Plataformas de threat intelligence: servicios como VirusTotal ejecutan continuamente las reglas de sus usuarios (ver YARA en VirusTotal).
YARA frente a otros lenguajes de detección
| YARA | Sigma | Snort / Suricata | |
|---|---|---|---|
| Analiza | Archivos, memoria, flujos de bytes | Eventos de logs (SIEM) | Tráfico de red |
| Formato | Lenguaje YARA | YAML | Lenguaje Snort |
| Pregunta típica | «¿Este archivo pertenece a la familia X?» | «¿Ocurrió esta secuencia de eventos?» | «¿Es malicioso este paquete o flujo?» |
| Se ejecuta en | Escáneres, EDR, sandboxes, plataformas TI | SIEM tras conversión | Sensores IDS / IPS |
Son complementarios: una misma intrusión puede cubrirse con una regla Sigma para la línea de comandos sospechosa, una regla Suricata para el tráfico de mando y control y una regla YARA para la carga útil.
YARA y YARA-X
YARA 4.x, escrito en C, sigue mantenido. YARA-X es su sucesor, reescrito en Rust por VirusTotal y ya en producción allí. Conserva el mismo lenguaje, así que la mayoría de las reglas compilan sin cambios, pero es más estricto con algunas construcciones ambiguas y ofrece mensajes de error mucho más claros, con línea y columna.
Todas las herramientas de este sitio ejecutan YARA-X compilado a WebAssembly en tu navegador. Con el escáner online o el editor de reglas, tus archivos se leen en local y nunca se suben.
Límites a tener en cuenta
- Falsos positivos: una regla es tan específica como sus patrones. Las cadenas cortas o genéricas coinciden con software legítimo; prueba con un corpus de goodware.
- Empaquetado y ofuscación: una carga cifrada oculta sus cadenas; entonces se apunta al cargador, a la rutina de descifrado o a la memoria.
- Rendimiento: los patrones sin un buen átomo ralentizan cada escaneo. La guía de rendimiento y el linter ayudan a evitarlos.
- Mantenimiento: el malware cambia. Unos metadatos completos (autor, fecha, referencia) indican al siguiente analista qué debía detectar la regla.
Siguientes pasos
- Aprende la estructura de una regla en sintaxis YARA.
- Elige el tipo de patrón adecuado con la guía de cadenas.
- Explora ejemplos reales en la biblioteca de reglas, con autor y licencia en cada regla.
- Escribe tu primera regla en el editor online y pruébala con un archivo sin subir nada.
FAQ
- ¿Qué es una regla YARA?
- Un pequeño archivo de texto que describe patrones (texto, bytes hexadecimales o expresiones regulares) y una condición booleana. Cuando la condición es verdadera para un archivo o una zona de memoria, la regla coincide.
- ¿YARA es un antivirus?
- No. YARA es un motor de búsqueda de patrones. Antivirus, EDR, sandboxes y herramientas de threat hunting lo integran, pero YARA solo indica qué reglas coinciden con qué datos.
- ¿Qué diferencia hay entre YARA y YARA-X?
- YARA-X es la reescritura en Rust de YARA hecha por VirusTotal. Usa el mismo lenguaje de reglas, da mensajes de error más claros y es más rápido en muchos casos; la mayoría de las reglas existentes funcionan sin cambios.