¿Sabes qué son las reglas YARA y para qué se utilizan en ciberseguridad? Los malwares de la actualidad pueden ser programas altamente peligrosos, ya que están diseñados especialmente para evadir sistemas de seguridad y ejecutar tareas perjudiciales en los sistemas infectados.
A continuación, veremos uno de los métodos utilizados por los analistas de malware para identificar de manera automatizada elementos maliciosos en un fichero. En este post, te explicaremos qué son las reglas YARA, cómo funcionan y cuál es su estructura.
¿Qué son las reglas YARA?
Las reglas YARA son una herramienta de código abierto que fue desarrollada por la plataforma VirusTotal para identificar los elementos de un malware por medio de un análisis estático automatizado. De este modo, se puede detectar un programa malicioso sin necesidad de ejecutarlo en una sandbox o de realizar un análisis estático manual.
Las reglas YARA malware funcionan por medio de scripts que tienen una estructura de dos partes obligatorias y una opcional. Las partes de la estructura de las reglas YARA son:
- Metadatos (‘meta’). Esta parte es opcional.
- Cadenas (‘strings’).
- Condiciones (‘condition’).
Puedes ver qué es YARA de forma más clara en la siguiente imagen:

Estructura de las reglas YARA
Para entender qué son las reglas YARA, es necesario comprender qué significa la estructura de YARA. Para ello, veremos detalladamente para qué sirve cada una de sus partes para que profundices en qué es YARA.
Cadenas
En esta parte se definen las cadenas o strings que intervendrán en la condición. Se definen utilizando el símbolo $, seguido por caracteres alfanuméricos y guiones bajos. Existen dos tipos de cadenas: hexadecimales y de texto.
Cadenas hexadecimales
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaEstas cadenas son características de YARA malware.
Tipo wild-cards
Son marcadores de posición que se ponen en los strings para indicar que los bytes son desconocidos y deben coincidir con cualquier carácter. El marcador es ‘?‘ y corresponde a 4 bits. Ahora, observa este ejemplo:

En esta expresión, los marcadores ‘?‘ corresponden a un total de un byte (‘??‘) y cuatro bits (‘A?‘).
Tipo jumps
Los jumps son rangos de valores que indican la longitud de lo desconocido. Por ejemplo, la expresión [4-6] en la siguiente imagen:

Tipo alternatives de YARA malware
Se representan con el símbolo ‘|‘ y significa que puede ser un grupo de bytes u otro. Se puede ver en el término (62 B4 | 56) del siguiente ejemplo:

Cadenas de texto
Ya hemos visto qué son las reglas YARA y sus tipos de cadenas en lenguaje hexadecimal. Ahora, veremos las cadenas de texto o text strings, que siempre van escritas en código ASCII, entre comillas » » y son case sensitive (es decir, importa si las letras son mayúsculas o minúsculas). Por ejemplo, el término «foobar» en el ejemplo que te mostramos a continuación:

Para hacer strings de texto que no sean case sensitive, deberás introducir el término ‘nocase‘ al final de la cadena.

Tipo wide
Codificación en 2 bytes de los strings (típico en MSEXE). Por ejemplo: «B\x00o\x00r\x00l\x00a\x00n\x00d\x00».

Más cadenas texto
Otra de las cadenas de texto de las herramientas YARA son:
- Cadenas de texto XOR:

- Cadena de texto en Base64:

Condiciones
Las condiciones de las herramientas YARA son las secciones en las que reside la lógica de las reglas YARA. Contienen expresiones booleanas que determinan cuáles son las coincidencias necesarias en los datos para satisfacer una regla.
Por ejemplo, la expresión ‘($a or $b) and ($c or $d)‘ en el siguiente ejemplo:

Observa también este el ejemplo de las herramientas YARA, para que termines de entender qué es YARA:

La condición indica que $a debe estar entre 0 – 100 de memoria y $ entre 100 y el tamaño final del fichero.
¿Cómo aprender más?
Ahora sabes qué son las reglas YARA y cuál es su estructura, es el momento de ir un paso más allá en tu proceso de aprendizaje. ¡Aún queda mucho más por aprender sobre este y otros muchos temas relacionados con la ciberseguridad!
Si quieres continuar formándote sobre análisis de malware y especializarte en seguridad informática, en KeepCoding tenemos el curso ideal para ti. Completa nuestro Ciberseguridad Full Stack Bootcamp, una formación íntegra e intensiva de alta calidad con una metodología propia que combina la teoría y la práctica. Acompañado de grandes profesionales en el sector, podrás convertirte en un experto en tan solo 7 meses. ¿A qué esperas? ¡Inscríbete ya!