Por si no lo sabías, las reglas YARA surgieron como una herramienta imprescindible en el ámbito de la ciberseguridad para la identificación y clasificación de malware. Resulta que estas reglas permiten a los analistas de seguridad describir patrones específicos en archivos y procesos sospechosos, facilitando la detección de amenazas. Surgieron de la necesidad de tener un mecanismo eficiente y flexible para detectar malware basado en características observables, más allá de las firmas tradicionales. Lo que haremos en este post será contarte qué son las reglas YARA y cuál es su estructura, para que así puedas obtener un aprendizaje completo sobre esta herramienta.
¿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. Así pues, las partes de la estructura de las reglas YARA son:
- Metadatos (‘meta’). Esta parte es opcional.
- Cadenas (‘strings’).
- Condiciones (‘condition’).
Te mostramos YARA de forma más clara en la siguiente imagen:
Estructura de las reglas YARA
Para entender las reglas YARA, es necesario que comprendas qué significa la estructura de YARA. Para ello, veremos detalladamente para qué sirve cada una de sus partes:
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.
¿Qué tan efectivas son las reglas YARA?
En un estudio de caso titulado “Detección de malware usando reglas YARA: Un estudio de caso” por Md. Tanveer Rahman se evalúa la efectividad de las reglas YARA para detectar malware en muestras reales. Los autores demuestran que YARA puede ser una herramienta valiosa para complementar los métodos tradicionales de detección de malware. Al leer este estudio te harás una idea más completa de la importancia de estas reglas y su implementación.
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. ¡Inscríbete ya!