Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

YARA desde las cadenas de una muestra

5 tareas · 40 min · Principiante

Lunes 7 de diciembre, por la tarde. De las observaciones de la mañana quedaron tres rasgos de texto buenos y dos que habían quedado en duda. Ingeniería de detección de Valle Claro dejó tres reglas borrador de YARA y una prueba contra cuatrocientos archivos limpios del parque. YARA busca en el contenido de un archivo, no en lo que hace: una regla es un conjunto de cadenas y una condición. Aquí lees las cadenas de la muestra ficticia, ves que la codificación importa y descubres por qué una de las tres reglas dispara con casi todo. No se ejecuta nada: es lectura de la regla y de su medición.

0 de 5 · 0%

Objetivo de la sala

Lunes 7 de diciembre, por la tarde. De las observaciones de la mañana quedaron tres rasgos de texto buenos y dos que habían quedado en duda. Ingeniería de detección de Valle Claro dejó tres reglas borrador de YARA y una prueba contra cuatrocientos archivos limpios del parque. YARA busca en el contenido de un archivo, no en lo que hace: una regla es un conjunto de cadenas y una condición. Aquí lees las cadenas de la muestra ficticia, ves que la codificación importa y descubres por qué una de las tres reglas dispara con casi todo. No se ejecuta nada: es lectura de la regla y de su medición.

Una regla YARA tiene dos bloques. En strings se declaran los trozos de contenido que se buscan, cada uno con un nombre que empieza por $. En condition se dice cuántos de ellos, y en qué circunstancias, hacen que el archivo sea una coincidencia. Un ejemplo con textos inventados, que no son los del laboratorio:

rule ejemplo_didactico
{
    strings:
        $a = "texto-de-ejemplo" ascii
        $b = "otro-texto" wide
    condition:
        any of them and filesize < 200KB
}

La regla no ejecuta el archivo ni lo interpreta: lee sus bytes. Por eso se aplica igual a un archivo en disco, a una copia apartada o a una región de memoria que alguien volcó para analizar. Y por eso mismo es ciega a lo que el archivo hace y solo ve lo que el archivo contiene.

Responde para continuar

¿Qué hace la parte condition de una regla YARA?

Una cadena puede estar en un archivo de dos maneras comunes. En ascii cada letra ocupa un byte. En wide (UTF-16) ocupa dos, con un byte vacío intercalado; es habitual en programas de Windows y no se ve como texto corriente en un volcado. Una regla que busca "abc" como texto simple no encuentra el mismo abc escrito en formato ancho: hay que decir wide en la línea de la cadena, o ascii wide si puede estar de las dos formas.

Es de los fallos más frecuentes de una primera regla: el texto está ahí, la regla lo busca, y no coincide.

Responde para continuar

Escribe el id de la única cadena de la muestra que una regla escrita solo como texto simple no encontraría.

Ver pista de ayuda

Ejecuta `SELECT * FROM cadenas_de_la_muestra WHERE codificacion = 'wide (UTF-16)'` y lee la columna id.

Una regla no está terminada cuando coincide con la muestra: eso lo hace cualquier regla. Está terminada cuando, además, no coincide con lo que no debe. Por eso se prueba contra un corpus de archivos conocidos y limpios, y cada coincidencia ahí es un falso positivo.

Mira las tres reglas borrador y cómo les fue con el corpus de cuatrocientos archivos del parque. Relaciona los números con las cadenas que usa cada una: la columna final de la tabla de cadenas dice cuántos archivos limpios contienen cada una.

Responde para continuar

Escribe el nombre de la regla borrador que más archivos limpios marcó.

Ver pista de ayuda

Ejecuta `SELECT * FROM prueba_en_corpus_limpio ORDER BY coincidencias DESC`.

El número bruto cuenta. Una regla que marca más de las tres cuartas partes de los archivos legítimos no es una regla con un problema que afinar, es una regla construida sobre las cadenas equivocadas. Con ese volumen, nadie la revisa y la que se pierde es la coincidencia real.

Lee la cifra exacta de esa regla en la prueba que acabas de abrir; es el dato que se anota en su ficha antes de decidir nada.

Responde para continuar

Escribe cuántos de los 400 archivos limpios marcó esa regla.

Ver pista de ayuda

Es la misma consulta de la tarea anterior; mira la última columna de su primera fila.

Hay tres reacciones posibles ante una regla que dispara con casi todo. Se puede apagar y olvidar, se puede intentar «afinarla» con una lista de excepciones para cada programa que molesta, o se puede volver a su origen y preguntarse por qué sus cadenas son comunes. Las dos primeras tratan el síntoma.

La causa está en la tabla de cadenas: las dos cadenas de esa regla las tienen decenas o cientos de archivos limpios. No describen la familia; describen casi cualquier programa.

Responde para continuar

¿Qué se hace con la regla que marcó casi todo el corpus limpio?

Ver pista de ayuda

Mira cuántos archivos limpios contienen cada cadena de esa regla.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad