Skip to Content
logologo
AI Incident Database
Open TwitterOpen RSS FeedOpen FacebookOpen LinkedInOpen GitHub
Open Menu
Descubrir
Enviar
  • Bienvenido a la AIID
  • Descubrir Incidentes
  • Vista espacial
  • Vista Tabular
  • Vista de lista
  • Entidades
  • Taxonomías
  • Enviar Informes de Incidentes
  • Ranking de Reportadores
  • Blog
  • Resumen de noticias de IA
  • Control de Riesgos
  • Incidente aleatorio
  • Registrarse
Colapsar
Descubrir
Enviar
  • Bienvenido a la AIID
  • Descubrir Incidentes
  • Vista espacial
  • Vista Tabular
  • Vista de lista
  • Entidades
  • Taxonomías
  • Enviar Informes de Incidentes
  • Ranking de Reportadores
  • Blog
  • Resumen de noticias de IA
  • Control de Riesgos
  • Incidente aleatorio
  • Registrarse
Colapsar

Problema 2348

Loading...
¡Cylance, te mato!
skylightcyber.com · 2019

Actualización: 07/sep/2019 Tuvimos el honor de presentar nuestros hallazgos en BSides Sydney (Diapositivas de hoy. /18/cylance-i-kill-you/Cylance%20-%20Adversarial%20Machine%20Learning%20Case%20Study.pdf)). Aprovechamos esta oportunidad para hacer públicos algunos de los materiales aún inéditos. Ahora podemos revelar que el juego no revelado que hemos usado es "Rocket League", pero muchos otros funcionan igual de bien (probamos Fortnite, por ejemplo). Algunas cosas más incluyen la "salsa especial", la lista de cadenas que aparece en el ejecutable de Rocket League y son parte del modelo de Cylance. Simplemente agregue estos en cualquier ejecutable malicioso para hacer que Cylance crea que es benigno. A día de hoy, el bypass todavía se puede explotar en la edición doméstica (Cylance SmartAV). El proveedor nos dijo que la edición empresarial (CylancePROTECT) se ha solucionado, pero no pudimos verificarlo. Si tiene acceso a la edición empresarial y puede confirmar la solución, háganoslo saber en el cuadro de comentarios en la parte inferior de la página. TL;DR ----- Las aplicaciones de IA en seguridad son claras y potencialmente útiles, sin embargo, los productos basados en IA ofrecen una superficie de ataque nueva y única. Es decir, si realmente pudiera comprender cómo funciona un determinado modelo y el tipo de funciones que utiliza para tomar una decisión, tendría el potencial de engañarlo constantemente, creando un bypass universal. Al analizar cuidadosamente el motor y el modelo del producto antivirus basado en IA de Cylance, identificamos un sesgo peculiar hacia un juego específico. Combinando un análisis del proceso de extracción de funciones, su fuerte dependencia de las cadenas y su fuerte sesgo para este juego específico, somos capaces de crear un bypass simple y bastante divertido. Es decir, al agregar una lista seleccionada de cadenas a un archivo malicioso, somos capaces de cambiar su puntaje de manera significativa, evitando la detección. Este método resultó exitoso para el 100 % de los 10 programas maliciosos principales de mayo de 2019 y cerca del 90 % para una muestra más grande de 384 programas maliciosos. Lea la publicación completa para comprender el proceso de investigación en sí, el funcionamiento interno de un EPP avanzado basado en IA y cómo encontramos el bypass universal. Demostración de nuestro bypass universal en acción Otro mundo feliz -------------- Una vez cada pocos años, el mundo de la seguridad cibernética es bendecido con el nacimiento de un bebé bala de plata. Comienza poco a poco, con algunas empresas matrices entusiastas que aclaman al príncipe recién nacido como nuestro salvador, contando las historias de su poder invencible. Unos años y millones de dólares de marketing más tarde, crece y se convierte en una potencia absoluta. El mero susurro de su nombre agrega confianza a su producto, le permite aparecer en las conferencias más influyentes y ayuda a sellar esa tan necesaria ronda de financiación. Con el tiempo, la capa plateada parece ser solo una capa que pronto comienza a desaparecer y algunas almas valientes comienzan a verla como lo que es: otra herramienta, con suerte, efectiva, en el proceso interminable que es la seguridad cibernética. Esa es la historia de muchas "balas de plata" que hemos visto a lo largo de los años, e inevitablemente esa será la historia de la IA y el aprendizaje automático. La IA ha sido promocionada como la bala de plata para acabar con todos ellos con una fuerza de marketing significativa; después de todo, si podemos enseñarle a una máquina a pensar como un analista humano, solo con la adición de big data y un poder de procesamiento casi infinito, entonces seguramente, será capaz de crear un mecanismo invencible. Un cerebro tan poderoso que no podía ser engañado por ningún otro mecanismo. Correcto... En esta publicación, mostraremos cómo podemos revertir el modelo de un producto EPP basado en IA y encontrar un sesgo que permita un bypass universal. Elegimos Cylance por razones prácticas, es decir, está disponible públicamente y es ampliamente considerado como un proveedor líder en el campo. Sin embargo, creemos que el proceso presentado en esta publicación también se puede traducir a otros productos de IA pura. IA para Millennials ------------------ La IA es un campo tecnológico extremadamente importante y fascinante con profundas implicaciones para la sociedad humana. Sin embargo, no somos expertos en IA, diablos, ni siquiera somos usuarios avanzados. Con ese descargo de responsabilidad en mente, tratemos de entender cómo funciona la IA conceptualmente, para que podamos formular hipótesis más adelante sobre cómo podemos engañarla. En el contexto de la protección de endpoints, nos enfrentamos a un problema de clasificación. Dado un archivo, debemos clasificarlo como malicioso o benigno. Hay muchos enfoques para esto, pero en términos generales, está tratando de entrenar un cerebro artificial para identificar ciertas propiedades del sujeto y luego aplicar algún tipo de modelo matemático para calcular si lo que está mirando es un objeto determinado. Supongamos, por ejemplo, que estamos interesados en que una máquina clasifique objetos como pájaros o seres humanos. Un modelo de IA específico puede observar ciertos atributos del objeto como el peso, la altura, si tiene pico, alas, etc. para tomar una decisión. Al exponer un modelo a numerosas muestras de aves y seres humanos, las diferencias comenzarán a mostrarse. Por ejemplo, la mayoría de los seres humanos de los que somos conscientes no tienen pico ni alas. Por lo tanto, si algo posee cualquiera de esos atributos, existe una alta probabilidad de que sea un pájaro. Por supuesto, esto es una simplificación excesiva de un campo de conocimiento verdaderamente hermoso, pero será suficiente por ahora. Al aplicar el mismo enfoque a la clasificación de archivos como maliciosos o benignos, obtenemos beneficios claros y sustanciales: - Predicción por diseño: un modelo bien entrenado debe tener la capacidad de identificar un archivo malicioso que nunca ha visto y del que no tiene conocimiento previo. . - Actualizaciones poco frecuentes: un modelo se entrena una vez y puede durar años sin actualizaciones. - Menor consumo de recursos: los proveedores de IA afirman que la naturaleza de su tecnología conduce a un menor consumo de CPU, memoria y disco. En general, la IA debería ayudarlo a detectar más amenazas, antes, mientras incurre en una menor sobrecarga de recursos informáticos y de administración para su organización. ¿Puedo tener dos, por favor? Data Nerd vs. Hacker Mindset ---------------------------- Los hackers siempre intentarán encontrar la forma más económica de salirse con la suya. Volviendo al problema de clasificación de aves y seres humanos discutido anteriormente, si entendemos que el modelo de IA se basa en gran medida en la existencia de un pico y alas para tomar una decisión, podemos comprarnos un disfraz de pájaro tonto. Si, por otro lado, el modelo observa la relación entre el peso del cerebro y el peso corporal, necesitaremos un truco completamente diferente. No es un verdadero pollo Cualesquiera que sean los atributos importantes, si los identificamos, tenemos una buena posibilidad de derrotar consistentemente al cerebro artificial, es decir, hacer que los archivos maliciosos parezcan benignos a través de algún tipo de tratamiento. A Chatty Log ------------ Muy bien, es hora de arremangarse y comenzar nuestra investigación, ¡emocionante! Como primera etapa, nos gustaría crear un proceso para determinar la clasificación de un archivo determinado, según lo determinado por el motor Cylance. Esto nos permitiría comprender en una etapa posterior si éramos capaces de engañarlo. Al activar [registro detallado] (https://home-support.cylance.com/hc/en-us/articles/115013840527-How-to-Cylance-Agent-Advanced-UI-Mode) podemos capturar información de alta resolución. que Cylance tiene la amabilidad de proporcionar. Siempre decimos que un software detallado es como un extraño borracho en un bar, te contará todos sus problemas. Aquí hay un extracto del archivo de registro, que indica la detección de un archivo malicioso (Mimikatz con un solo byte modificado): Podemos ver que el motor tiene un mecanismo de puntuación y nuestro Mimikatz modificado obtuvo una puntuación de -852. Al probar empíricamente varios archivos buenos y malos, más tarde determinamos que la puntuación puede oscilar entre -1000 para los archivos más maliciosos y +1000 para los archivos más benignos. Buen trabajo, Cylance, identificó un Mimikatz mutado, lo que ya lo coloca mucho más allá del 50% de los productos de protección de puntos finales (¿no nos cree? Compare [Mimikatz original] (https://www.virustotal.com/gui/file /965b0968850b32d5f6a86052cb5460957cc7997f34ad0a42db44b7f9ed098a35/detection) with one-byte modified Mimikatz). Sin embargo, agárrate fuerte, apenas estamos comenzando. Sumergiéndonos --------- Ahora teníamos un objetivo claro: comprender el mecanismo de puntuación de Cylance, para que luego podamos pasarlo por alto. Para hacerlo, comenzamos con la ingeniería inversa del código, que por supuesto estaba ofuscado, pero construido de manera clara, lo que hacía posible seguirlo. También encontramos información disponible públicamente sobre el funcionamiento interno del producto a partir de presentaciones de patentes y charlas públicas. Uno de estos recursos describe el motor como un 'Conjunto' (que es un grupo de modelos) y encontramos una clase llamada 'EnsembleReader'. Se utiliza para cargar el conjunto desde un recurso incrustado en uno de los archivos DLL. El modelo extraído está encriptado, sin embargo, el algoritmo y la clave bastante original son bastante claros: siguiendo el rastro de cómo se usa la información del modelo, llegamos al ensamblado 'SampleScore2PE'. Su nombre sugiere que puntúa archivos PE, lo que naturalmente despertó nuestro interés. Observamos las interfaces expuestas de ese ensamblaje y encontramos la siguiente joya: antes de descubrir esta interfaz, ya planeábamos usar la forma de la vieja escuela de revelar los secretos del archivo del modelo: use la clave para descifrar el modelo y analizarlo minuciosamente para días o semanas. En cambio, nos dimos cuenta de que podemos construir nuestro propio tiny . NET ejecutable y enlace contra estos ensamblajes como lo hace Cylance.Engine.Core. Luego llamamos a la función Create() con una ruta al archivo modelo que extrajimos anteriormente (aún encriptado, por cierto), y obtuvimos un objeto que expone una función ComputeScore(). ¿Puede esto mejorar (en realidad lo hace)? Al ejecutar el código anterior, recibimos una puntuación de -0.852764 como salida para nuestro archivo Mimikatz modificado, que se parece mucho al -852 que notamos en los archivos de registro anteriores. Mimikatz obtuvo una puntuación de -0.85276 Esto puede no parecer mucho, pero en realidad es una base muy sólida para nuestra investigación. Ahora tenemos un proceso sencillo para probar archivos PE con el motor de puntuación de Cylance y, lo que es más importante, tenemos un punto de partida para depurar dinámicamente el proceso de puntuación. Funciones en abundancia --------------- Utilizamos una combinación de técnicas de análisis estático y dinámico para estudiar el proceso de puntuación. El comienzo del viaje de clasificación comienza con el examen y la medición de diferentes características del objeto de destino. Volviendo a nuestro ejemplo de aves contra humanos, esta es la parte en la que tomaría medidas, verificaría la existencia de alas y pico, y cuantificaría otros aspectos del sujeto que se clasifica. Cylance utiliza una combinación de código y datos del propio modelo para producir el vector de características. Primero, el archivo PE se analiza exhaustivamente para producir una gran cantidad de propiedades diferentes del archivo. Algunas son simples, como el número y los nombres de las secciones, mientras que otras son observaciones más complejas que requieren un poco de procesamiento para producirlas. Por ejemplo, probar si el PE tiene un campo de suma de verificación correcto, contando la cantidad de instrucciones en el punto de entrada y la cantidad de importaciones relacionadas con la inyección del proceso. El siguiente paso importante en el proceso de clasificación es convertir estas propiedades extraídas en un vector de características (también conocido como extracción de características). Como hay miles de funciones (7000 para ser precisos), no nos molestamos en enumerarlas todas. En su lugar, nos centramos en el proceso general que utiliza Cylance para transformar las propiedades de un archivo sin formato en un vector de características. Miles de líneas de código que transforman las propiedades del archivo en características Hay miles de líneas de código que manejan esta transformación, pero la lógica general es la misma: el motor toma una propiedad de entrada y la compara con un valor conocido o una lista de valores. Una comparación de ejemplos compara el campo TimeDateStamp del encabezado del archivo PE con una lista de 3523 rangos diferentes de marcas de tiempo. Según el rango en el que se encuentre la marca de tiempo, el motor ejecuta una determinada acción. Esa acción es realmente solo una secuencia de instrucciones para incrementar o disminuir los valores del vector de características. Cada acción puede afectar uno o más valores, y la lista de instrucciones se almacena en los datos del modelo. Analicemos un ejemplo: en este fragmento, primero llamamos a method_28 que intentará buscar la propiedad TimeDateStamp extraída en 3523 rangos de fecha y hora diferentes. Cada rango tiene una acción correspondiente adjunta. Si la propiedad no se encuentra en ninguno de los rangos de fecha y hora, se llamará a method_14, lo que activará una acción, designada para instancias en las que no se encuentra que esta propiedad esté en ninguno de los rangos "conocidos". Al final de este largo proceso, después de ejecutar innumerables acciones, terminamos con un vector que contiene 7000 valores de características. Este vector de características es el extracto del archivo PE y solo determinará la puntuación y la clasificación del archivo. La siguiente fase es aplicar el modelo al vector de características extraído. El proceso comienza con la normalización y el posprocesamiento adicional del vector de características, transformándolo en un formato que se puede usar matemáticamente (no entraremos en detalles completos aquí). Luego, el motor utiliza 3 matrices diferentes que forman parte de los datos del modelo para transformar el vector de características en un solo valor, que es la puntuación final del archivo. Como se discutió, no somos expertos en aprendizaje automático, pero hemos visto artículos académicos que sugieren que es posible aproximar una red neuronal mediante la multiplicación de matrices, y todo parece cuadrar: para mejorar el rendimiento, Cylance probablemente creó una aproximación de su modelo en forma de varias multiplicaciones de matrices. Después de cada multiplicación, el motor aplica una función de activación (tanh / sigmoid). Esta parece ser una técnica muy común utilizada en redes neuronales para introducir no linealidad en el modelo a fin de permitir el cálculo de problemas no triviales. Las etapas de aproximación de la red de aprendizaje profundo: A, B y C son las matrices que forman el modelo. Sin embargo, ¿cómo se calcularon estas matrices en primer lugar? No podemos estar seguros, pero al combinar lo que hemos aprendido del análisis del producto, la información de código abierto y lo poco que sabemos sobre cómo se usa la IA en otras industrias, podemos obtener una explicación plausible del proceso que se usó. para crear estas matrices. Cylance probablemente comenzó recopilando un enorme repositorio de archivos maliciosos y benignos. Luego generaron un vector de características muy grande para cada uno, mucho más grande que las 7000 características finales. Usando modelos estadísticos, redujeron la lista de funciones a las 7000 más significativas (AKA: selección de funciones). Luego, crearon conjuntos de redes neuronales profundas con diferentes configuraciones, como la cantidad de nodos, capas, funciones de activación, etc., y entrenaron los modelos en el repositorio de archivos. Usando un proceso darwinista iterativo, continuaron eliminando y explorando configuraciones, hasta que permanecieron aquellas que exhibían las mejores propiedades (por ejemplo, alta precisión, baja tasa de falsos positivos). El siguiente paso habría sido aproximar el modelo utilizando la multiplicación de matrices, cuya esencia son las matrices que vemos en los datos del modelo. Volviendo al código, podemos ver que la primera multiplicación de matrices usa el vector de características 7000 como entrada y genera 256 características de segundo orden. Luego, estos se alimentan a otra capa de red neuronal, representada como otra matriz, lo que produce un conjunto adicional de 256 características de tercer orden. La capa final de la red neuronal se aproxima utilizando la última multiplicación de matriz que da como resultado un solo número, que representa la puntuación final del archivo. Estas matrices y los procesos de extracción de características asociados se almacenan en el archivo del modelo y se envían con el producto con el que probamos. Estos son los "datos del modelo" a los que nos referíamos anteriormente, y representan la esencia del propio motor Cylance. Paranoid Centroid ----------------- El producto final del largo proceso de calificación de archivos es un número en el rango de -1 a 1, que indica qué tan malicioso es el archivo. Como siempre, los desafíos de la vida real complican las cosas: una vez que se completa la puntuación utilizando el método descrito, entra en juego otro mecanismo con un poder de anulación sobre el modelo anterior. Solo podemos especular sobre por qué se introdujo este mecanismo, pero creemos que el equipo de Cylance encontró algunos falsos positivos y falsos negativos en el modelo principal. Probablemente podrían haber adaptado o mejorado su modelo, pero tal vez tenían presión de tiempo, por lo que el equipo de I + D tuvo que encontrar algo rápido que solucionara el problema. Cualquiera que haya sido el drama detrás de escena, introdujeron un mecanismo adicional que está diseñado para apuntar a familias específicas de ejecutables con el poder de anular la decisión tomada por el modelo anterior. Ese mecanismo se llama "centroides" y se usa comúnmente para agrupar objetos. Su uso en el caso de Cylance es similar a una lista de excepciones: cuando el modelo clasifica un archivo, usamos los centroides para verificar si está en la lista blanca o negra. Para lograr eso, el motor usa un vector de características diferente, que usa un conjunto modificado de valores de características. Normaliza los valores de esas características centrándolas alrededor de cero, con valores que oscilan entre -3 y +3, y luego calcula la distancia euclidiana entre el vector resultante y algunos precalculados conocidos. Efectivamente, trata de encontrar si el ejecutable es muy similar a los que se agregaron a la lista blanca/negra del modelo. Si el ejecutable es exactamente el mismo, los vectores de características son iguales y la distancia es 0. Sin embargo, si algunas características son diferentes, la distancia podría crecer, y si crece más allá de un umbral determinado, no se considera en el mismo grupo que el blanco. o centroide en lista negra. Encrucijada ---------- Con un poco de conocimiento de cómo funciona el modelo en la mano, planteamos la hipótesis de cómo podemos eludir y confundir el motor. Nuestra primera hipótesis fue intentar que un PE malicioso pareciera uno de los archivos de la lista blanca. Es decir, fuerce las características relevantes a la distancia correcta desde un centroide de la lista blanca. Rápidamente nos dimos cuenta de que esta técnica tiene pocas posibilidades de funcionar, ya que este mecanismo se basa en miles de características, algunas de las cuales son extremadamente difíciles de modificar. Nuestra segunda hipótesis fue que tal vez podríamos encontrar algún sesgo en el modelo mismo: un pequeño conjunto de características que tienen un efecto significativo en el resultado. Si pudiéramos cambiar el binario malicioso para que estas características se parezcan a archivos buenos, tal vez el modelo sea engañado. Echamos otro vistazo a la lista de características e intentamos estimar el trabajo requerido para tomar un archivo malicioso y modificarlo. Se sintió abrumadoramente difícil, ya que había miles y miles de características. Es decir, hasta que nos encontramos con las siguientes líneas de código: estas líneas recorren la lista completa de cadenas que se encuentran en el archivo, calculan su hash (usando Murmur64) y luego las buscan en una base de datos grande que contiene cadenas hash (todas parte de los datos del modelo). Para cada cadena que se encuentra, se activa una acción que afecta el vector de características. Despegue -------- El último descubrimiento nos llevó a creer que podría haber algún sesgo inherente en el propio modelo: muchas funciones que se incluyeron en el conjunto de funciones (y recuerde: ese es el único valor que importa) son un resultado directo de qué cadenas existen dentro del ejecutable. Ahora podemos diferenciar entre dos tipos de funciones: las que se basan en cadenas y las que se basan en alguna otra propiedad del ejecutable. Las funciones de cadena son más fáciles de manipular y agregarlas a un ejecutable no debería ser demasiado difícil. Otras propiedades pueden ser mucho más difíciles de manipular. Por ejemplo, reducir la cantidad de secciones es bastante difícil y requiere un trabajo muy específico para el propio ejecutable. Así que las cuerdas son una buena dirección, pero ¿cuáles son nuestro pico y nuestras alas? Qué cadenas normalmente harían que alguien mirara un archivo y dijera "sí, me parece benigno". Pudimos descifrar y analizar los datos del modelo y recuperar la lista de hash de cadenas y acciones asociadas. Sin embargo, no teníamos las cuerdas reales. Fue entonces cuando tuvimos uno de esos momentos eureka, sin la bañera. Al volver a examinar el mecanismo de los centroides, pudimos observar las familias de ejecutables que el equipo de Cylance incluyó en la lista blanca. ¿Quizás se creó una entrada en la lista blanca en algún momento, después de lo cual se realizó un nuevo entrenamiento completo del modelo para clasificar correctamente esa familia? Si es así, quizás el modelo esté más sesgado hacia cadenas tomadas de este tipo de ejecutables. Miramos la lista que incluía solo unas pocas docenas de centroides. Cada definición de centroide llevaba un nombre para su identificación y una de ellas destacaba por ser el nombre de un juego online. Una conversación rápida con uno de los niños verificó que es muy conocido. Como mínimo, fue lo suficientemente popular como para causar dolores de cabeza y provocar un tratamiento especial por parte de Cylance. Compramos el juego y extrajimos todas las cadenas contenidas en el ejecutable principal usando un comando simple de "cadenas", lo que resultó en aproximadamente 5 MB de cadenas. Luego tratamos de averiguar exactamente cómo se analizan las cadenas para comprender mejor cómo podemos hacer que el analizador las detecte. Fue entonces cuando tuvimos nuestro segundo momento eureka/perezoso: probemos la solución más ingenua y coloquemos las cuerdas al final del archivo. Eso posiblemente nunca funcionaría, ¿verdad? Usamos la versión de Mimikatz que recibió una puntuación de -852 y ejecutamos el siguiente comando: luego la volvimos a introducir en el mecanismo de puntuación y tuvimos nuestro momento OMG²: la puntuación ahora es 0,9998944... (= 999). Esto es casi una puntuación perfecta. Ahora, nuestro Mimikatz modificado obtiene una puntuación perfecta. ¿Acabamos de encontrar un atajo potencial para matar al modelo? ¿Es este el disfraz de pájaro barato que buscábamos? Seguimos adelante y probamos nuestra solución con archivos maliciosos conocidos y herramientas de piratería adicionales y obtuvimos resultados consistentes: la puntuación cambió de un fuerte negativo a un fuerte positivo. También confirmamos que ningún otro mecanismo estaba probando el comportamiento de los archivos dinámicamente y bloqueándolos, al ejecutar estas versiones modificadas con éxito en máquinas virtuales que ejecutan Cylance. Nuestra conclusión fue que logramos encontrar un bypass universal. Es decir, un método simple y pasivo que podemos aplicar a casi cualquier ejecutable malicioso para convertirlo en un FUD (totalmente desapercibido). Tenemos mucha experiencia en eludir los productos de protección de punto final, y siempre pudimos tomar un ejecutable y un producto antivirus específico y modificarlo de una manera que pasaría desapercibido, pero siempre fue muy específico para el ejecutable y tiempo y experiencia requeridos. Hay empaquetadores que pueden convertir un ejecutable en un FUD, pero el proceso siempre implica una puesta en escena que complica las cosas y adolece de problemas de compatibilidad. Con este enfoque, pudimos aplicar la misma solución simple a cualquier ejecutable para convertirlo en un FUD. Todo lo que teníamos que hacer era agregar un conjunto específico de cadenas conocidas. Ajuste fino ----------- Después de nuestro éxito inicial, estábamos interesados en reducir la lista de cadenas que usamos, filtrando las cadenas que no formaban parte del modelo de Cylance. Por un lado, analizamos las tablas relevantes del modelo de Cylance para tener la lista completa de valores hash de cadena considerados por el modelo. Por otro lado, calculamos el hash para todas las cadenas del juego. Al combinar estas dos listas, logramos reducir el tamaño de las cadenas agregadas ("salsa especial") a solo 60 KB. Hemos confirmado que la reducción del tamaño de la lista no afectó a nuestro bypass universal. Al agregar esos 60 KB a cualquier ejecutable, podemos cambiar su puntaje drásticamente, aunque, como pronto descubrimos, algunos aún se detectaron como maliciosos, aunque con puntajes significativamente mejores. Exam Time --------- Nuestras primeras pruebas fueron contra lo que consideraríamos los sospechosos habituales: Mimikatz, ProcessHacker, Meterpreter, etc., y resultaron exitosas. Era hora de mejorar el juego y mirar a un grupo de prueba más amplio. Comenzamos con una lista de los diez principales programas maliciosos a partir de mayo de 2019, publicada por el Centro para la Seguridad de Internet. Los resultados fueron asombrosos: como se puede ver claramente, casi todas estas muestras han cambiado del archivo más malvado del planeta al archivo de tu vecindario amigable. Nuevamente, el único tratamiento aplicado a estos archivos es la adición de la "salsa especial" como una simple concatenación. Ampliando aún más nuestro grupo de prueba, descargamos una lista de 384 archivos maliciosos de repositorios en línea y ejecutamos la prueba, recibiendo los siguientes resultados: También nos dimos cuenta de que si agregamos la salsa secreta varias veces, podemos mejorar aún más la puntuación. Con esta técnica logramos un puntaje promedio de 750, y un enorme 88.54% de nuestros archivos maliciosos ahora se marcaron como benignos. Impacto y pensamientos finales ------------------------- Siempre nos divierte ver la sorpresa en los rostros de las personas cuando les dices que el nuevo juguete de seguridad que Se pueden pasar por alto los millones de dólares gastados en la compra y la integración. Lo mismo ocurre con las nuevas balas de plata, como la seguridad basada en IA. Estamos todo menos sorprendidos con los resultados, y estamos seguros de que el mismo tipo de proceso se puede aplicar a otros proveedores de IA pura para lograr resultados similares. ¿Por qué? Con demasiada frecuencia, los proveedores abordan el problema de la seguridad con una solución de un solo golpe. Los piratas informáticos no son muñecos de madera, se defienden y usted debe estar preparado para el contragolpe, innovando constantemente y aumentando el costo del ataque. El concepto de un modelo estático que dura años sin actualización puede sostenerse teóricamente, pero falla en la arena. De acuerdo, es más difícil encontrar un sesgo en un modelo de IA que eludir una simple firma AV, pero el costo de arreglar un modelo roto es igualmente alto. Creemos que la solución está en un enfoque híbrido. Usando AI/ML principalmente para lo desconocido, pero verificando con técnicas probadas y probadas utilizadas en el mundo heredado. Esta es realmente solo otra implementación del concepto de defensa en profundidad, aplicado al mundo de la protección de endpoints. Esto significa que la promesa de un producto de IA pura puede no cumplirse para los EPP, y los proveedores tendrán que mantener y actualizar múltiples sistemas de detección. La promesa de bajo consumo de recursos, con raros ciclos de actualización no se cumple para un producto híbrido de este tipo, pero proporciona una capacidad de protección superior. Hasta la próxima bala de plata...

Leer la Fuente

Investigación

  • Definición de un “Incidente de IA”
  • Definición de una “Respuesta a incidentes de IA”
  • Hoja de ruta de la base de datos
  • Trabajo relacionado
  • Descargar Base de Datos Completa

Proyecto y Comunidad

  • Acerca de
  • Contactar y Seguir
  • Aplicaciones y resúmenes
  • Guía del editor

Incidencias

  • Todos los incidentes en forma de lista
  • Incidentes marcados
  • Cola de envío
  • Vista de clasificaciones
  • Taxonomías

2024 - AI Incident Database

  • Condiciones de uso
  • Política de privacidad
  • Open twitterOpen githubOpen rssOpen facebookOpen linkedin
  • e1b50cd