¿Qué es una firma de archivo de malware (y cómo funciona)?

Muchos productos de seguridad se basan en firmas de archivos para detectar malware y otros archivos maliciosos. La técnica consiste en leer o escanear un archivo y probarlo para ver si el archivo coincide con un conjunto de valores predeterminados. Estos atributos se conocen como la ‘firma’ del malware. Las firmas de malware, que pueden aparecer en muchos formatos diferentes, son creadas por proveedores e investigadores de seguridad. Los conjuntos de firmas se recopilan en bases de datos, algunas de las cuales pueden ser públicas y compartidas, mientras que otras están contenidas en bases de datos propietarias exclusivas de un proveedor en particular.

Algunas soluciones de seguridad se basan completamente en este tipo de tecnología para fines de detección, aunque existen varios inconvenientes al hacerlo. En esta publicación, exploraremos cómo se crean las firmas de archivos de malware, explicaremos cómo funcionan y analizaremos sus ventajas y desventajas.

¿Cómo se crean las firmas de malware?

Para crear una firma para un archivo de malware en particular o una familia de archivos, un analista de seguridad necesita una o más (cuanto más, mejor) muestras del archivo para trabajar. Dichas muestras pueden recopilarse ‘en la naturaleza’ de ordenadores infectados, procedentes de la red oscura y otros lugares donde los autores de malware intercambian su trabajo, o de repositorios de malware compartidos donde los investigadores de seguridad (y en algunos casos el público) pueden compartir archivos de malware conocidos. Algunos repositorios de malware populares disponibles para los profesionales de la seguridad incluyen VirusTotal, Malpedia y MalShare.

Una vez que un proveedor tiene un conjunto o «corpus» de archivos con los que trabajan, comienza a examinar los archivos en busca de características comunes. Estas características pueden involucrar factores como el tamaño del archivo, las funciones importadas o exportadas, los bytes de datos en ciertas posiciones («desplazamientos»), los hash seccionales o de todo el archivo, las cadenas imprimibles y más.

El proceso de generación de firmas se puede automatizar, pero a menudo lo hacen manualmente analistas de malware e ingenieros inversos, especialmente cuando se encuentra una familia de malware completamente nueva.

Si bien existen muchos formatos diferentes para crear firmas, uno de los formatos más populares y ampliamente utilizados en la actualidad es YARA, que permite a los analistas de malware crear firmas basadas en patrones textuales y binarios.

Ten en cuenta la condición de la firma, que establece que el archivo debe ser del tipo ‘Mach-O’ y tener un tamaño de archivo inferior a 200 KB, además de contener todas las cadenas definidas en la regla.

En el formato YARA, las cadenas pueden aparecer como caracteres regulares legibles por humanos entre comillas o, como en el ejemplo anterior, como bytes codificados hexadecimalmente entre corchetes. Algunos escritores de firmas utilizan exclusivamente este último, incluso cuando la cadena que se va a comparar es una cadena de caracteres legibles por humanos. Por lo tanto, ‘hello, world’podría codificarse en la firma como { 68 65 6c 6c 6f 2c 20 77 6f 72 6c 64 }.

Hay varios programas disponibles que te permiten traducir fácilmente entre cadenas legibles por humanos y hexadecimales. En Mac y la mayoría de las máquinas Linux, la utilidad de línea de comandos xxd es uno de esos programas.

¿Cuáles son las ventajas de la detección basada en firmas?

La detección basada en firmas ofrece una serie de ventajas sobre la simple coincidencia de hash de archivos. En primer lugar, mediante una firma que coincida con los puntos en común entre las muestras, los analistas de malware pueden apuntar a familias completas de malware en lugar de solo una muestra.

En segundo lugar, las firmas son muy versátiles y se pueden usar para detectar muchos tipos de malware basado en archivos. Las firmas pueden incluir o excluir fácilmente diferentes tipos de archivos, ya sean scripts de shell, archivos python, archivos Windows PE, archivos ELF de Linux o archivos macOS Mach-O. La misma base de datos de malware, e incluso la misma regla si fuera adecuada, podría potencialmente escanear y hacer coincidir una firma en casi cualquier tipo de archivo.

En tercer lugar, los formatos de firma como YARA son muy potentes y ofrecen a los analistas de malware tanto una amplia variedad de lógica para definir el comportamiento malicioso como un formato relativamente simple que es fácil de escribir y probar. Además, como las firmas se basan en texto, una sola base de datos puede contener muchos miles, incluso millones, de firmas sin que sea excesivamente grande.

Un formato de firma común como YARA también es fácil de compartir entre investigadores y fuentes de datos de inteligencia de amenazas, lo que garantiza que el malware conocido se detecte ampliamente y que la mayor cantidad posible de usuarios de computadoras estén protegidos contra amenazas conocidas.

Los investigadores de malware publican regularmente informes de inteligencia de amenazas que contienen reglas YARA que pueden ser consumidas por otros proveedores, empresas e incluso individuos para ayudarlos a mejorar sus propios esfuerzos de detección.

Incluso cuando los proveedores utilizan formatos de firma patentados, normalmente no es problemático traducir una firma de un formato público como YARA a un formato específico del proveedor, ya que la mayoría de los formatos basados ​​en firmas tienen capacidades similares.

Desventajas

La detección basada en firmas ha sido el estándar para la mayoría de los productos de seguridad durante muchos años y continúa desempeñando un papel importante en la lucha contra el malware basado en archivos conocido, pero hoy en día una solución avanzada no puede basarse únicamente o principalmente en las firmas de archivos para la detección. Algunas de las razones de esto se deben a la manera que los actores de amenazas se han adaptado para evadir la detección de firmas y algunas están relacionadas con los inconvenientes inherentes al método de escanear un archivo en busca de atributos específicos.

El primer gran inconveniente de usar firmas para detectar malware es que las firmas solo se pueden escribir después de que ya se haya visto una muestra de malware. Esto significa que cualquier solución que se base únicamente en firmas siempre estará un paso por detrás de los últimos ataques.

El segundo gran problema reside en el hecho de que hoy en día se crean muestras únicas de malware a un ritmo tan rápido que escribir suficientes firmas efectivas no es un objetivo realista. Esta es parte de la razón por la que tantas soluciones basadas en firmas no detectan el malware conocido.

Incluso sin esos dos problemas principales con los que lidiar, existen otros problemas para la detección basada en firmas. No menos importante entre estos es que muchos ataques hoy en día no tienen archivos, lo que significa que el código malicioso se ejecuta en la memoria en lugar de lanzar un ejecutable malicioso.

Además, la eficacia de una firma es proporcional a la cantidad de muestras diferentes de malware que comparten los mismos atributos utilizados en la firma. Si los analistas solo tienen un pequeño conjunto de muestras, o a veces solo una sola muestra, para trabajar, la eficacia de la firma es limitada y propensa a falsos positivos: detectar código no malicioso que puede tener los mismos atributos.

Como señalamos anteriormente, las firmas pueden contener condiciones como solo hacer coincidir un archivo que está por debajo de cierto tamaño de archivo. Los proveedores a menudo hacen uso de la condición de «tamaño de archivo» en las firmas estáticas por razones de rendimiento: cuanto más grande es el archivo, más recursos se necesitan para escanear. Si bien limitar los archivos que se escanearán por tamaño es bueno para el rendimiento, es un inconveniente que puede ayudar fácilmente a los autores de malware, que se sabe que inflan los archivos con código basura para evitar ser detectados.

Otro inconveniente grave de la detección basada en firmas es el uso de la compresión y el empaquetado por parte de los autores de malware. Estas tecnologías significan que los atributos del archivo se ocultan de un escáner estático y solo se hacen evidentes una vez que se ejecuta el archivo empaquetado o comprimido. Si bien algunos motores de proveedores tienen esto en cuenta e incluyen sus propios desempaquetadores para tecnologías comunes como UPX, los creadores de malware siempre tienen más métodos de compresión y empaquetadores personalizados a su disposición que los que pueden incorporar los motores de detección.

Incluso cuando las detecciones basadas en firmas funcionan según lo previsto, la solidez de la firma depende del tiempo que requiere la firma para que los autores de malware refactoricen su código para evitar la firma. Las firmas son más débiles en la medida en que buscan características que los autores puedan cambiar fácilmente.

Además, las firmas públicas tienen una vida útil limitada dado que los actores de amenazas también pueden ver la lógica de detección y adaptar su malware en consecuencia. Esta es la razón por la que parte de la inteligencia solo se comparte de forma privada entre las fuerzas del orden y los proveedores de confianza. También es una de las razones por las que la mayoría de las soluciones de seguridad intentan ocultar sus firmas estáticas de miradas indiscretas mediante el cifrado.

Aun así, los otros inconvenientes mencionados anteriormente significan que la detección basada en firmas simplemente no es suficiente para hacer frente a las amenazas de malware actuales.

Más allá de la detección basada en firmas

Los proveedores se dieron cuenta desde el principio de que la detección basada en firmas era insuficiente para proteger los puntos finales no solo del malware básico sino también de los ataques dirigidos. En lugar de confiar en las características de los archivos para detectar malware, se desarrollaron algoritmos de aprendizaje automático e IA conductual. que examinan lo que hace o hará un archivo al ejecutarse.

Tal enfoque resuelve los inconvenientes más serios asociados con la detección de firmas. Para empezar, aprovechar la potencia de los procesadores informáticos y los algoritmos de aprendizaje automático elimina la carga de los analistas de tener que escribir firmas individuales para las nuevas familias de malware.

Aún más importante, la IA conductual es capaz de reconocer malware conocido y novedoso que nunca antes se había visto. Independientemente de la implementación, todos los malware y sus creadores tienen un conjunto finito de objetivos: lograr persistencia, filtrar datos, comunicarse con un servidor de comando y control, etc. Al entrenar nuestros modelos sobre los objetivos del atacante en lugar de la implementación de malware, podemos detectar amenazas independientemente de cómo estén construidas.

Conclusión

La detección de malware mediante la firma de un archivo ha sido un elemento básico de los proveedores de seguridad durante décadas. Tanto los proveedores como los analistas seguirán utilizando firmas de archivos para caracterizar y buscar malware conocido basado en archivos. La técnica proporciona simplicidad y un marco común para describir el malware y compartir inteligencia.

Sin embargo, para los proveedores de seguridad de punto final, la detección basada en firmas debe complementarse con capas de detección más avanzadas que no estén restringidas por los medios de ejecución (basados ​​en archivos o sin archivos) o la implementación.