El ¿milagroso? machine learning y el malware. Claves para ejercitar el escepticismo (I)ElevenPaths 12 febrero, 2018 En el principio de la detección del malware se usó la firma. Después vino la heurística, la nube, el big data y en los últimos tiempos, machine learning y la inteligencia artificial. Métodos y técnicas que, convenientemente rodeados de los «sospechosos habituales» (holístico, sinergias, disruptivo, etc.), podemos encontrar en casi todo discurso. Pero independientemente del negocio alrededor, la tecnología es neutra y no debería ser ni mejor ni peor de por sí, sino más o menos adecuada para resolver un problema. Lo que quizás erosiona la fama de una tecnología pueden ser los titulares forzados cuando se abusa de ellos con fines no puramente tecnológicos. El machine learning aplicado al malware es infinitamente valioso. Eso sí, a veces parece fallar la ejecución del experimento que pretende ensalzarlo. Veamos por qué y ejercitemos el escepticismo. «XYZ»: El nuevo sistema basado en machine learning, detecta el X% Probablemente nos hemos topado con este titular a menudo. En general, existen dos métodos de marchine learning: el supervisado, donde se sabe qué se debe buscar, (por ejemplo malware y goodware) y se trata de encontrar reglas generales o elementos (características) que definan estas clases. Por otro lado, el no supervisado, donde no se conoce qué se busca (no está «etiquetado»), sino que se intenta detectar qué características definen grupos más o menos homogéneos, y si solo son dos grupos, qué es anómalo o no por ejemplo. Trazar una línea entre lo normal y anormal debe hacerse de alguna forma. Si nos ceñimos al método no supervisado, resulta complejo saber qué es anómalo, y se necesitarán muchas iteraciones para una comprobación posterior. Iteraciones que habitualmente se traducen en participación humana o refuerzo puramente «tradicional» del análisis. Así lo hacía el MIT en su detección de anomalías en red que publicaron no hace tanto. En el mundo del malware, este enfoque es muy tendente a falsos positivos que deben ser validados por analistas. Reducir el coste humano en este proceso se busca desde siempre. Por eso las casas antivirus intentan minimizar el análisis manual y construir en lo posible un sistema de machine learning muy preciso que derive en el menor número de muestras que llegan a un analista humano. Cuando el analista saca nuevas conclusiones, el sistema se retroalimenta con mejores reglas para intentar que no se vuelvan a necesitar sus servicios. Aquí la apuesta de las empresas privadas es fuerte, y se juegan buena parte de su éxito en la eficiencia de este sistema, cuyos detalles suelen mantener «en secreto». En el caso de supervisado, para construir un clasificador las muestras ya vienen etiquetadas. Un conjunto suele ser malware y otro goodware que pasan por una caja de machine learning mezcladas. Si al salir de la caja, las muestras se encuentran lo más separadas posible… el sistema es bueno y se acude al titular. Esto no es extraño entre las publicaciones académicas sobre detección de malware. Pero la cuestión que deberíamos plantearnos es… ¿Qué muestras se toman? ¿Quién las etiquetó como malware y goodware? No existe la brujería: el engranaje matemático que al fin y al cabo se construye en un sistema de machine learning aprenderá lo que se le enseña. Si se le muestra malware muy «típico» que cualquier motor es capaz de detectar, no funcionará mucho mejor que los propios antivirus. Si se le enseña “goodware” de libro, titubeará demasiado ante programas que se salgan de lo común y será tendente al falso positivo. Por tanto, el éxito de un sistema basado en machine learning verdaderamente útil «ahí fuera» radica (entre otros muchos puntos de ejecución) en: ¿En qué te fijas para detectar malware? Peso del fichero, formato, librerías, opcodes, estático, dinámico, etc, etc, etc… esto es la labor del experto, definir convenientemente las «features». ¿Cómo y con qué alimentas tu sistema? ¿Con malware de hace años? ¿Qué familias? ¿Muy detectado por los motores? ¿Con cuántas muestras?… Esta segunda cuestión es fascinante. Y nadie dispone de la respuesta exacta. Las compañías antivirus en todo caso lo tienen claro: con lo más fresco posible, con la mayor cantidad de malware posible, confirmando por los analistas. El mundo académico, por el contrario, a veces sigue una estrategia diferente. Claves para detectar un titular con gancho: ¿Qué es malware? Pensemos un momento: si repasamos titulares y porcentajes, el problema del malware estaría ya resuelto. Entre todas las técnicas mostradas que anuncian (sobre el papel) detectar cerca del 100% del malware, ¿qué puede estar fallando como para que sigan existiendo las infecciones? No es una pregunta retórica. El malware es complejo, cambiante, difícil de tratar… una carrera hacia adelante y una lucha contra la tecnología y el intelecto del atacado, una quimera donde los límites están mucho más difuminados de lo que pensamos tanto por las circunstancias técnicas como por incluso circunstancias temporales o culturales. Sin embargo, para una máquina que debe convertirse en un detector/clasificador supervisado, la definición y las etiquetas deben ser diáfanas: un grupo de tu conjunto es goodware, el otro malware… dime en qué debo fijarme y eso aprenderé. Y, paradójicamente, la fórmula más común para esto es acudir a los… antivirus. Infinidad de estudios se basan en los propios antivirus para etiquetar el malware. Si lo detectan X motores, es malware. Si no, será goodware. Pero existen dos parámetros absolutamente fundamentales. ¿Cuántos motores deben detectarlos? ¿Qué motores exactamente? ¿Los más populares (o sea, lo más usados por cuestiones técnicas, marketinianas…?… ¿Cuándo deben detectarlas? ¿Muestras «frescas» o consolidadas? Son preguntas fundamentales que habitualmente no cubren el verdadero enigma del malware… la «zona gris». Este problema no es nuevo, ya lo sé. En las comparativas antivirus tradicionales, el conjunto de test se ha utilizado desde siempre como arma arrojadiza, solo que ahora, con el machine learning, vuelve a la palestra como parte fundamental. La zona gris está fuera de la «zona de confort» de los análisis y estudios El hecho de considerar como “malware” las muestras detectadas por unos tres motores o más, es aceptada la literatura sobre machine learning de malware en general. Sin embargo, la elección de un buen «umbral» de detección (¿por qué 3?) es un ejercicio complejo que aún no ha sido resuelto ni estandarizado, pero que puede hacer que los resultados de una investigación basada en la clasificación arroje resultados muy diferentes dependiendo de qué se considere malware o goodware, términos que no siempre distinguen correctamente los propios motores antivirus. Malware que, apenas dos días después, pasa de ser «goodware» a «malware típico». Un ejemplo representativo de cómo la variable tiempo influye en qué es necesario conocer para mejorar la detección Esa «zona gris» es en la que se mueve el malware fresco (apenas unos días ITW, o «ahí fuera»), funcional, poco detectado (pocos motores son capaces de detenerlo por firma) pero que más tarde acabará siendo moneda común y muy detectado. Esta franja temporal de acción es una ventana en movimiento, que es difícil perseguir y atajar. Y eso no suelen tenerlo en cuenta los estudios. Suelen reducir su «dataset» de estudio y análisis a un buen conjunto de muestras muy detectado, quizás desde hace años, y a otro de goodware muy común e «higiénico». El machine learning por tanto, aprenderá lo mismo que ya hace el propio antivirus y si bien el titular o conclusión de la investigación no será falso (…«se detectan el X% de muestras…») si que podríamos cuestionar qué problema real se está resolviendo: ¿Un problema de detección que ya tienen controlado los sistemas tradicionales de por sí? ¿Estamos investigando para detectar «lo de siempre» y «como siempre» pero con algo más de precisión? En algunos casos lo que se resuelve es un problema más bien académico: se mejora en el «problema de análisis previo». O sea, se demuestra que la técnica matemática X, es mejor que la Y usada sobre el mismo conjunto de muestras que usó el académico Z, en su estudio J. Esto no resulta ni bueno ni malo, es, efectivamente, una expansión de los límites del conocimiento y mejora de los procedimientos y técnicas, que no es mal que uno de los objetivos de la academia en sí mismos. En una pequeña indagación en estudios académicos, podemos encontrar algunos ejemplos de cómo varían los criterios a la hora de definir qué es malware, y cuántas muestras son necesarias para tomar en consideración un estudio: Ejemplo de un estudio en el que el malware se clasifica como tal si lo detecta un motor cualquiera Estudios que etiquetan muestras como malware, si son detectadas por un motor, cualquiera que sea, y esta será su «verdad». Teniendo en cuenta el mundo de los falsos positivos, la tasa de «equivocación temporal» que reina en este aspecto y que cualquiera de la industria puede corroborar… hace que el sistema se construya con una tara de base importante que es necesario matizar. Este otro estudio, por ejemplo, etiqueta como malware si una muestra es detectada por 4 motores o más. No importa cuáles. Quizás esto mitigue el efecto «falso positivo» pero… ¿Por qué cuatro? ¿En qué dato científico se basa esto? ¿Qué cuatro motores? Sabemos que hay motores que licencian la tecnología de otros y que por tanto, siempre detectan «en pareja» o el mismo malware… ¿Se han tenido en cuenta estos aspectos? Otros estudios intentan mejorar y apuntan a que al menos dos de 10 motores concretos, detecten algo como malware para establecerlo como su verdad.. ¿Por qué dos de diez? ¿En base a qué criterio se han elegido esos 10? Otros utilizan técnicas más «justas» para determinar si algo es malware y dárselo como material de aprendizaje a su máquina. En este ejemplo, se usa una especie de media en la que se tiene un umbral de 0.1 (empírico) en el que se relaciona el número de muestras y la cantidad de antivirus que la cazan. Sin duda curioso pero… ¿sabemos si es eficaz? ¿Y la variable tiempo? Ejemplo de fórmula con la que se intenta construir un dataset de malware más «preciso» En estudios donde se usa de forma similar el machine learning pero se pretende evaluar tráfico malicioso en vez de malware, el problema de tomar «un buen conjunto de muestras inicial» es incluso mayor. Buena parte de los experimentos que anuncia éxitos en detección de anomalías en red, basan su conjunto de muestras en el conocido KDD dataset. De él existen varias versiones: KDD Cup 99, DARPA 98 y NSL-KDD, todos de hace más de 15 años… ¿Son las mismas amenazas de hoy las que podemos encontrar en él? Con estos datos de base, cuando se arañan unas décimas al porcentaje de detección, en realidad, ¿se está compitiendo con el estudio anterior o de verdad se está ganando en detección real? Entendamos que las preguntas planteadas no tienen respuesta directa, no pretenden descalificar ningún estudio ni deben percibirse como retóricas. Muy al contrario, se formulan para plantear debates. Precisamente un reto interesante al que miramos de frente en ElevenPaths desde el área de innovación y laboratorio, es afrontar abiertamente esa zona gris y estrecharla al máximo. Continuaremos la reflexión en la siguiente entrada. También te puede interesar: » El ¿milagroso? machine learning y el malware. Claves para ejercitar el escepticismo (II) Sergio de los Santos ssantos@11paths.com @ssantosv Día Internacional de la Mujer y la Niña en la Ciencia, 11 de febrero (Parte 2)El ¿milagroso? machine learning y el malware. Claves para ejercitar el escepticismo (y II)
Carlos Rebato Criptografía, una herramienta para proteger los datos compartidos en la red Actualmente, la Ciberseguridad representa un aspecto primordial en las empresas. No obstante, cada día surgen nuevos modos de atentar contra ella. Muchos se han preguntado: ¿de qué manera las...
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
David Prieto Marqués La importancia del control de acceso: ¿está tu empresa protegida? Por David Prieto y Rodrigo Rojas En un mundo cada vez más digitalizado y complejo, la seguridad de la información es fundamental para las empresas. A medida que las empresas...
Telefónica Tech Boletín semanal de Ciberseguridad, 22 – 26 de mayo GitLab parchea una vulnerabilidad crítica GitLab ha abordado una vulnerabilidad crítica que afecta a GitLab Community Edition (CE) y Enterprise Edition (EE) en la versión 16.0.0. En concreto, dicho fallo...
David García ¿Salvará Rust el mundo? (II) Segunda entrega en la que descubrimos cómo Rust, el lenguaje de programación de código abierto centrado en la seguridad, mejora el panorama en cuanto a vulnerabilidades basadas en errores...
Sergio de los Santos Cuatro hitos en Ciberseguridad que marcaron el futuro del malware Un recorrido por los 15 años que ha dedicado Microsoft para consolidar una estrategia que ha repercutido en la Ciberseguridad a nivel global
Hola ! me estaba preguntando por que todavía el antivirus kaspersky sigue ahí ,si ya se ha considerado como malware . Responder