La verdadera razón por la que la detección de malware es difícil y subestimada

Los investigadores desarrollan una IA con una tasa de detección de malware del 98% y una tasa de falsos positivos del 5%. Si cree que esta es una tecnología espléndida para el software antivirus, este artículo podría cambiar de opinión.

La detección de malware es indecidible pero no poco práctica

Fred Cohen ya dio pruebas en 1984 de que la detección de virus es un problema indecidible. Lo hizo asumiendo que existe un programa de detección de virus perfecto, luego construyó un virus potencial para el cual este programa de detección no puede proporcionar una respuesta correcta porque actúa solo infeccioso si el programa de detección perfecto cree que está limpio [cohen84]. Dado que todos los virus son malware, se puede construir una prueba analógica por contradicción para la detección de malware.

Pero «indecidible» en el sentido matemático no significa que no haya una solución práctica para ello. Un problema indecidible es un problema de decisión que no puede proporcionar una respuesta correcta en todos los casos. Entonces, si tiene un programa que responde correctamente al 99.9999% de todos los casos, pero al 0.0001% de ellos incorrectamente, el problema podría ser indecidible y aún prácticamente solucionable. Tenemos soluciones suficientes para problemas similares. Un ejemplo es el problema del vendedor ambulante que tiene aplicaciones en logística para sistemas de enrutamiento de paquetes o en procesos de fabricación de circuitos (una explicación de video de tres minutos está aquí). Aunque todavía no existe un algoritmo conocido que pueda resolver el problema del vendedor ambulante en un tiempo razonable (es NP-hard), existen suficientes soluciones aproximadas para calcular las rutas para la entrega de paquetes.

Lo mismo es cierto para los productos antivirus que protegen los sistemas contra el malware lo mejor posible. Pero a diferencia de los destinatarios de paquetes, los desarrolladores de malware están tratando activamente de crear malware de tal manera que los productos antivirus tomen decisiones equivocadas y no detecten estos programas. Eso sería similar a las personas que deliberada y consistentemente intentan encontrar entradas de enrutamiento de entrega de paquetes que no se resuelven de manera óptima en un tiempo razonable.

En consecuencia, la detección de malware es difícil por naturaleza y necesita trabajo constante y mejoras para seguir siendo útil. Sin embargo, los programas antivirus han adquirido una mala reputación por ser obsoletos, inflexibles y anticuados. ¿Hay algo de verdad en eso?

Prueba indirecta de la indecidibilidad de la detección de virus por Fred Cohen. El «tal vez virus» solo es infeccioso si el programa de detección perfecto decide que está limpio.

Otros dicen que pueden hacerlo mejor

A juzgar por las afirmaciones habituales de los medios y los anunciantes, uno tiene la impresión de que los productos antivirus están utilizando deliberadamente tecnología obsoleta y se niegan a construir sus sistemas con esos nuevos avances de IA y otras tecnologías que se han investigado. ¿Con qué frecuencia vemos artículos como «El antivirus tradicional está muerto» y «Esta IA es mejor que el antivirus»?

Eso plantea la pregunta: si los productos antivirus podrían ser mejores tan fácilmente, ¿por qué no adaptarían las nuevas tecnologías? La verdad es:

  1. Lo hacen.
  2. No pueden permitirse falsos positivos y están siendo comparados injustamente con aplicaciones que sí pueden.

Mito 1: Los productos antivirus utilizan tecnologías obsoletas

Según los medios, los productos antivirus solo buscan patrones en los archivos y comparan los hashes de los archivos con las listas de bloqueo. Estos mecanismos de detección todavía están allí, pero los productos antivirus han estado utilizando otras tecnologías de detección de malware durante al menos dos décadas.

El artículo de 2021 afirma que el antivirus solo detecta amenazas conocidas porque se basa en firmas [art1]. Ambos son erróneos: el software antivirus no se basa únicamente en firmas y las firmas no solo detectan malware conocido.

Artículo que indica que la próxima generación es mejor que el antivirus [art2]

Este artículo asume erróneamente que las firmas solo detectan malware conocido, probablemente porque equipara las firmas con la detección basada en patrones [art3]. Si esto parece confuso, lea la entrada del Glosario para la firma

Cuando me interesé en el análisis de malware, uno de los primeros libros que leí sobre ese tema fue The Art of Computer Virus Research and Defense de Péter Szőr de 2005 [szor05]. Este libro de 17 años describe métodos que van mucho más allá de las firmas de patrones y hashes. Szőr menciona, entre otros, emulación, escaneo de rayos X, escaneo en memoria, firmas basadas en algoritmos, bloqueadores de comportamiento, escaneo de red [szor05]. Estas tecnologías se han refinado y se han desarrollado otras nuevas a lo largo de los años.

Las tecnologías de inteligencia artificial (IA) no fueron mencionadas por Szőr, pero también han estado en uso durante algunos años. Sirven para muchos propósitos, incluida la agrupación de malware, la detección de malware en los sistemas cliente, así como la creación automática de firmas. El propio DeepRay de GDATA proviene de 2018 y ciertamente no somos el primer fabricante de AV en aumentar sus capacidades de detección mediante el uso de IA.

A pesar de todos estos avances, el mito persiste obstinadamente hasta el día de hoy. Se me ocurren dos razones por las que todavía se mantiene.

En primer lugar, el marketing de productos de seguridad lo refuerza activamente para dar la impresión de que el producto anunciado es nuevo y mejor. Los productos antivirus NextGen son un ejemplo. Afirman tener tecnologías de detección y protección nuevas y diferentes, pero usan las mismas que los productos antivirus que han existido durante más tiempo. La diferenciación artificial entre anti malware y antivirus está intentando lo mismo al dar la (falsa) impresión de que los productos antivirus no protegen contra el malware.

En segundo lugar, las personas experimentan con detecciones en VirusTotal pensando que los motores de escaneo utilizados allí reflejan los productos antivirus reales. Si realizan pequeños cambios en un archivo detectado y estos resultan en tasas de detección más bajas en VirusTotal, asumen que podrían evadir con éxito los productos antivirus. Esta estrategia de prueba es defectuosa porque los motores de escaneo en VirusTotal solo admiten una fracción de las capacidades que tienen los productos reales y, de hecho, se restringen principalmente al escaneo de patrones y la lista de bloqueo de archivos, lo que le da a las personas una falsa sensación de cómo funcionan realmente los productos completos. Esto también se indica en el sitio web de VirusTotal (ver imagen a continuación).

Mito 2: La falsa tasa de publicación del 5% es genial

Mientras escribía mi tesis de maestría en 2014, desarrollé una heurística de detección de malware basada en anomalías de archivos. Mi trabajo se basó en las contribuciones de Ange Albertini, a saber, encontrar y documentar anomalías en los archivos, que recopiló en su proyecto Corkami. Ange, que trabajaba como analista de malware para Avira en ese momento, se enteró de mi trabajo, por lo que me visitó en Leipzig para la defensa de mi tesis de maestría. Cuando le pregunté qué tasa de falsos positivos era aceptable para mi heurística, me sorprendió su respuesta. Cero, dijo.

Cero fue una respuesta terrible para trabajar porque la tasa de detección se desplomó tan pronto como intenté obtener la tasa de falsos positivos cerca de cero. La tasa nunca fue realmente cero. Utilicé 49,814 muestras limpias y 103,275 muestras maliciosas para mis pruebas. La siguiente imagen muestra el gráfico de tasas de falsos positivos (cruces) y verdaderos positivos (cuadrados negros) [p.107, hahn14]. Por ejemplo, con una tasa de falsos positivos del 8,81% hay una tasa de detección de verdaderos positivos del 98,47% [p.108, hahn14]. Eso significa que el 8,81% de los archivos limpios se asumieron erróneamente como malware, mientras que el 1,53% del malware no se pudo detectar. Mantener la tasa de falsos positivos lo más baja posible aún resultó en que el 0.17% de los archivos limpios recibieran un veredicto incorrecto. La desventaja de este enfoque fue una tasa de detección reducida de solo el 37,80% de los archivos de malware detectados [p.109, hahn14].

En ese momento no entendía por qué tenía que ser cero. Seguramente, ¿alguna tasa de errores debe ser aceptable? Los productos antivirus no son perfectos después de todo. Todo el mundo ha oído hablar y tal vez incluso se ha encontrado con falsos positivos de los productos antivirus. Ahora que soy analista de malware, sé la respuesta: Sí, los falsos positivos son algo con lo que viven los productos antivirus, pero la tasa aceptable de falsos positivos es mucho menor de lo que piensas.

Los trabajos de investigación de detección de malware actuales a menudo tienen el mismo concepto erróneo sobre las tasas aceptables de falsos positivos. Muchos de ellos asumen que el número de archivos limpios y archivos de malware es aproximadamente igual, también conocido como equilibrado. En realidad, los sistemas informáticos rara vez ven malware, pero se ocupan de archivos limpios la mayor parte del tiempo. Por ejemplo, para Windows 10, la carpeta C: / Windows contiene aproximadamente 500,000 archivos. Si asumimos solo un 5% de tasa de falsos positivos, la tecnología de detección determinará 10,000 de esos archivos como maliciosos. A menos que esté listo para apostar que su sistema todavía funciona bien después de eliminar 10,000 archivos arbitrarios de C: / Windows, este es un número inaceptable. ¿Por cuántos archivos estarías listo para apostar?

Este malentendido de los problemas desequilibrados tiene un nombre: Falacia de la tasa base. Es tan común que se realizaron varios estudios para crear conciencia. Jan Brabec y Lukas Machlica concluyeron: «Encontramos [una] cantidad no insignificante de artículos recientes, en los que se utilizan métodos de evaluación inadecuados» [p.1, bramac18] y «las malas prácticas pueden sesgar fuertemente los resultados a favor de algoritmos inapropiados» [p.1, bramac18]. El estudio Dos and Don’ts of Machine Learning in Computer Security [arp20] examinó las trampas comunes en 30 artículos publicados en el transcurso de diez años. Once de esos documentos sufrieron la Falacia de la Tasa Base [p.7, arp20].

Sin embargo, ¿cuál sería una tasa aceptable de falsos positivos? Stefan Axelsson analizó esta pregunta para la detección de intrusiones. Axelsson dice que «el factor que limita el rendimiento de un sistema de detección de intrusiones no es la capacidad de identificar el comportamiento correctamente como intrusivo, sino más bien su capacidad para suprimir falsas alarmas» [p.202, axelsson00] y concluye que «menos de 1 / 100,000 por ‘evento’ […] habrá que llegar al sistema de detección de intrusos» [p.202, axelsson00]. Esta es una tasa de falsos positivos del 0,001% para la detección de intrusiones. Las soluciones con una tasa de falsas alarmas positivas más alta no solo resultan en más trabajo para la persona encargada de mitigar las alertas, sino que se convierten en The Boy Who Cried Wolf, ya nadie las toma en serio.

Una tasa de falsos positivos viable debe ser aún menor para los productos antivirus que responden a las amenazas automáticamente. A diferencia de los sistemas de detección de intrusos, los falsos positivos en la prevención automática pueden destruir sistemas enteros o detener una tubería de producción. Para los estudios de investigación que utilizan tamaños de conjuntos de muestras limpias menores de 100,000 muestras, la tasa de falsos positivos debe ser efectivamente cero.

Tasas de falsos positivos (cruces) y verdaderos positivos (cuadrados negros) para una detección heurística basada en anomalías de archivos PE [p.107, hahn14]}

Cómo lo hacen los productos antivirus

Ahora que sabemos qué tan baja debe ser la tasa de falsos positivos de un programa antivirus para seguir siendo útil, queda claro por qué las heurísticas de detección ya no son tan simples.

A muchas personas se les pueden ocurrir ideas para la detección heurística, por ejemplo, para detectar ransomware, «solo» tiene que buscar programas que cambien el nombre de muchos archivos a la vez y aumenten su entropía debido al cifrado. Pero cuando tales heurísticas se ponen en práctica, te das cuenta de cuántos programas legítimos muestran un comportamiento similar. Centrándose en el ejemplo heurístico del ransomware, es, por ejemplo, programas de copia de seguridad que hacen lo mismo: cambiar el nombre de los archivos personales en masa y aumentar su entropía con la compresión.

Los productos antivirus resuelven esto mediante la superposición de mecanismos de defensa. Las tecnologías se apilan una encima de la otra para lograr la mejor cobertura. Es posible que algunos de ellos solo detecten el 20% de las muestras porque son específicas de ciertos tipos de ataques o entornos, por ejemplo, a formatos de archivo, comportamiento u otras propiedades que son un requisito previo. Pero si de lo contrario no se detecta un subconjunto de estas muestras, vale la pena implementar la capa.

Todo el mundo está probablemente familiarizado con el modelo de defensa del queso suizo, cuyas implicaciones son de interés aquí.

Con ese modelo en mente, tiene sentido por qué los falsos positivos son mucho peores que los falsos negativos. El malware no detectado puede ser capturado por otras capas eventualmente. Por lo tanto, una tasa de detección baja para una capa individual está perfectamente bien siempre que otras capas cubran los agujeros. Pero para los falsos positivos no existe tal red de capas. «¿Pero qué pasa con la lista de permitidos?», se preguntarán.

Si bien existe una lista de permitidos, debe verse como último recurso y usarse con precaución. Esto tiene varias razones:

En primer lugar, la lista de permitidos puede abrir puertas para que el malware evada la detección de antivirus. Si se utiliza un certificado, palabra clave, comportamiento u otra característica de un programa para incluirlo en la lista de permitidos, también puede ser abusado por malware. Por la misma razón, ciertos programas no pueden ser incluidos en la lista, por ejemplo, porque son parte de un entorno de ejecución que es utilizado tanto por archivos legítimos como por archivos de malware; o porque solo están limpias en un contexto determinado como, por ejemplo, las herramientas de acceso remoto, que están bien si se usan para asistencia real, pero mucho menos si un atacante las instala silenciosamente.

En segundo lugar, los programas legítimos evolucionan y aparecen diariamente nuevas versiones o programas similares. Por lo tanto, una única entrada en la lista de permitidos específica de la versión no es una solución duradera. Agregar una entrada de la lista de permitidos para ajustar una heurística de detección propensa a falsos positivos casi seguramente implica tener que agregar otras regularmente, lo que hace que esto sea un esfuerzo de mantenimiento pesado.

Por lo general, un falso positivo de una capa de prevención es un falso positivo para todo el producto. Por el contrario, la tasa de falsos negativos puede ser arbitrariamente alta para cualquier capa de este tipo, siempre que cualquier impacto en el rendimiento esté justificado por las muestras de malware recién cubiertas.

La clave para detectares efectivas es una superposición de diferentes tecnologías especializadas.

Comida para llevar

Las heurísticas de detección de malware parecen fáciles en la superficie, pero son complicadas en la práctica. Si bien muchos creen que las altas tasas de detección de malware son el objetivo principal, una baja tasa de falsos positivos es el indicador más importante para la calidad heurística de detección. El impacto de las tasas de falsos positivos se subestima con frecuencia debido a la falacia de la tasa base.

Cuando se trata de productos antivirus, los falsos positivos deben ser manejables y una tasa de tolerancia correspondiente definitivamente tiene que ser inferior al 0,001%. La tasa de falsos negativos de las tecnologías individuales no importa tanto mientras la heurística de detección cubra algunos agujeros de queso suizo.

Me gustaría que la investigación de la tecnología de detección se concentrara específicamente en muestras que son difíciles de detectar y encontrar soluciones prácticas para aquellos en lugar de tratar de crear lo que los alemanes llamamos una «cerda lanuda que pone huevos y lleva leche». Nunca habrá la única tecnología que pueda gobernarlos a todos.

También quiero que los periodistas y las personas influyentes en la seguridad comprendan el estado de las tecnologías antivirus y el valor real de la investigación de detección para que dejen de reforzar los mitos. Lo mismo es cierto para el marketing antivirus, donde el mito de las tecnologías de detección obsoletas puede funcionar muy bien para desacreditar a los competidores, pero tiene efectos adversos en la industria antivirus a largo plazo.


Glosario

Antimalware: Ver antivirus

Antivirus: Programa que protege contra malware, incluyendo, pero no limitado a virus. El término «anti malware» es más preciso, pero el antivirus es más ampliamente utilizado.

Falacia de la tasa base: Descuidar las diferencias en las tasas básicas de problemas desequilibrados al calcular las probabilidades. Por ejemplo, si 1 de cada 10000 personas están infectadas, y calculamos la probabilidad de que una persona con resultado positivo de la prueba esté infectada, sería una falacia de tasa base suponer que el número de personas infectadas y no infectadas es el mismo.

Entropía: Una medida de cuánta información o cuánta aleatoriedad hay en un conjunto de datos. Los datos comprimidos y los datos cifrados tienen una alta entropía. Los datos con patrones repetitivos tienen baja entropía.

Falso positivo: Un archivo limpio que un producto antivirus detecta erróneamente como malware

Falso negativo: Un malware que no es detectado por un producto antivirus.

Detección heurística: La heurística en general son soluciones aproximadas. La detección heurística describe todas las metodologías de detección de malware que tienen un riesgo de falsos positivos. Cómo se realiza la detección no importa. Se puede basar en firmas de patrones, machine learning, comportamiento, información de contexto…

Sistema de detección de intrusos: Supervisa la actividad en sistemas y redes y reenvía la actividad sospechosa, los posibles brotes de malware y los intentos de intrusión a un sistema de gestión de eventos o administrador. Estos sistemas pueden tolerar tasas de falsos positivos más altas que los productos antivirus con respuesta de prevención automática.

Firma: Una unidad independiente de lógica de detección combinada con un nombre de detección. La lógica de detección puede, por ejemplo, consistir en un conjunto de patrones, comportamientos, circunstancias y una condición que debe cumplirse para declarar un dato como malware. La lógica de detección también puede ser un algoritmo que decide cuándo se detecta un dato como malware. Las firmas de detección se implementan independientemente del código del producto antivirus, de modo que se pueden actualizar con más frecuencia. Lo que distingue una firma algorítmica de una detección sin firma es principalmente cómo se implementa: un algoritmo codificado para la detección de malware no es una firma. Los medios a menudo equiparan el término firma con la lógica de detección basada en patrones.

Problema del vendedor ambulante: Un problema en informática teórica que se puede describir de la siguiente manera: «Dada una lista de ciudades y sus distancias, encuentre la ruta óptima y más corta para visitar cada ciudad exactamente una vez». Este problema es NP-difícil. En términos simples, todavía no existe una solución óptima que siempre funcione dentro de un tiempo razonable.

Verdadero positivo: Un malware detectado por un programa antivirus

Verdadero negativo: Un archivo limpio que no es detectado por un programa antivirus

Problema indecidible: Un problema de decisión en matemáticas e informática teórica para el que es imposible construir un algoritmo que siempre proporcione una respuesta correcta (sí o no). En términos simples, un contestador automático perfecto no es posible para este tipo de problemas. Un ejemplo es la decisión de si un archivo es malware.

Virus: Tipo especial de malware que se autorreplica e infecta archivos.

Una solución a un problema de vendedor ambulante (imagen de Wikipedia


Bibliografía

[ange] Ange Albertini, Corkami, proyecto Google Code, https://code.google.com/archive/p/corkami/ ahora se mudó a https://github.com/corkami

[arp20] Daniel Arp et al, 2020, Qué hacer y qué no hacer en el aprendizaje automático en seguridad informática, https://www.researchgate.net/publication/344757244_Dos_and_Don’ts_of_Machine_Learning_in_Computer_Security

[art1] https://securityboulevard.com/2021/09/why-antivirus-is-not-enough-the-sandbox-is-dead-turning-the-corner-with-malware-prevention

[art2] https://venturebeat.com/2021/02/22/antivirus-is-dead-the-rising-enterprise-security-threats-for-2021-and-how-to-protect-against-them/

[art3] https://slate.com/technology/2017/02/why-you-cant-depend-on-antivirus-software-anymore.html

[axelsson00] Stefan Axelsson, 2000, La falacia de la tasa base y la dificultad de la detección de intrusioneshttps://dl.acm.org/doi/pdf/10.1145/357830.357849

[bramac18] Jan Brabec y Lukas Machlica, 2018, Malas prácticas en la metodología de evaluación relevante para problemas desequilibrados de clase, https://arxiv.org/abs/1812.01388

[cohen84] Fred Cohen, 1984, Prevención de virus informáticoshttps://web.eecs.umich.edu/~aprakash/eecs588/handouts/cohen-viruses.html

[hahn14] Karsten Philipp Boris Hahn (anteriormente Katja Hahn), 2014, Análisis estático robusto de malware ejecutable portátilhttps://www.researchgate.net/publication/350722779_Robust_Static_Analysis_of_Portable_Executable_Malware

[szor05] Péter Szőr, febrero de 2005, The Art of Computer Virus Research and Defense, Addison Wesley Professional

Enlace:La verdadera razón por la que la detección de malware es difícil de | G DATOS (gdatasoftware.com) Blog de GDATA Karsten Hahn