Las reglas de YARA son una forma de identificar malware (u otros archivos) mediante la creación de reglas que buscan ciertas características. YARA fue desarrollado originalmente por Víctor Álvarez de Virustotal y se utiliza principalmente en la investigación y detección de malware. Fue desarrollado con la idea de describir patrones que identifican cepas particulares o familias enteras de malware.
Sintaxis
Cada regla debe comenzar con la regla de palabras, seguida del nombre o identificador. El identificador puede contener cualquier carácter alfanumérico y el carácter de subrayado, pero el primer carácter no puede ser un dígito. Hay una lista de palabras clave de YARA que no se pueden usar como identificador porque tienen un significado predefinido.
Condición
Las reglas se componen de varias secciones. La sección condición es la única que se requiere. Esta sección especifica cuándo el resultado de la regla es verdadero para el objeto (archivo) que se está investigando. Contiene una expresión Booleana que determina el resultado. Las condiciones son por diseño expresiones booleanas y pueden contener todos los operadores lógicos y relacionales habituales. También puede incluir otra regla como parte de sus afecciones.
Cadenas
Para dar un significado a la sección de condición, también necesitará una sección de cadenas. Las secciones de cadenas es donde puede definir las cadenas que se buscarán en el archivo. Veamos un ejemplo sencillo.
rule vendor
{
strings:
$text_string1 = "Vendor name" wide
$text_string2 = "Alias name" wide
condition:
$text_string1 or $text_string2
}
La regla que se muestra arriba es nombrado proveedor y busca las cadenas «nombre del Proveedor» y «Alias». Si se encuentra cualquiera de esas cadenas, entonces el resultado de la regla es verdadero.
Hay varios tipos de cadenas que puedes buscar:
- Hexadecimal, en combinación con comodines, saltos y alternativas.
- Cadenas de texto, con modificadores: nocase, palabra completa, ancho y ascii.
- Expresiones regulares, con los mismos modificadores que las cadenas de texto.
Hay muchas condiciones más avanzadas que puedes usar, pero están fuera del alcance de esta publicación. Si desea saber más, puede encontrarlo en la documentación de YARA.
Metadatos
Se pueden agregar metadatos para ayudar a identificar los archivos que recogió una regla determinada. Los identificadores de metadatos siempre van seguidos de un signo igual y el valor establecido. Los valores asignados pueden ser cadenas, enteros o un valor booleano. Tenga en cuenta que los pares identificador/valor definidos en la sección metadatos no se pueden usar en la sección condición, su único propósito es almacenar información adicional sobre la regla.
Resumen
YARA es una herramienta que se puede utilizar para identificar archivos que cumplen ciertas condiciones. Es utilizado principalmente por investigadores de seguridad para clasificar malware.
Enlaces
Detección Basada en Firmas Con YARA
La última documentación de YARA
YARA: Una forma sencilla y eficaz de Diseccionar Malware
Se hicieron capturas de pantalla utilizando el editor Yara de Adlice Software
Pieter Arntz