En 1975, se publicó un libro que cambió la forma en que abordamos los problemas complejos. Inspirados en el funcionamiento de la naturaleza “Adaptación en Sistemas Naturales y Artificiales” sentó las bases de algoritmos genéticos. La fecha de publicación de este blog está fuertemente ligada a ese libro, es un tributo simbólico a su autor, John Henry Holanda, quien se desmayó hace exactamente dos años. Alentamos encarecidamente a todos a abrazar su legado.
Recientemente nuestro CTO, Yaniv Kartalanzó un entrada en el blog sobre la historia de z9nuestro motor de detección, y cómo se aplicó con éxito para proteger los dispositivos Android e iOS de conocidos y amenazas desconocidas utilizando el enfoque de Inspección de paquetes cero (ZPI). ZPI es una metodología de detección de intrusos de alta eficiencia que cumple totalmente con las necesidades de privacidad de los usuarios.
En esta publicación de blog, veremos cómo se entrena nuestro motor z9 para lograr tales resultados y cómo se transfirió la metodología ZPI a la plataforma Windows. Además, discutiremos cómo esto puede ayudar a proteger todos nuestros dispositivos en un mundo cada día más conectado y consciente de la privacidad.
Se trata de datos
z9 es un estado del arte aprendizaje automático motor con varias optimizaciones innovadoras. Pero el aprendizaje automático se trata de datos. En realidad. Eso es todo lo que es. Su modelo puede ser, como mucho, tan bueno como la información que utiliza para entrenarlo. Por esta razón, una comprensión profunda del comportamiento del sistema que está modelando es obligatoria para lograr los resultados estándar de la industria.
Nuestros investigadores en el equipo de zLabs desarrollaron una serie de casos de prueba representativos de diferentes estados normales de dispositivos Android e iOS. Estos estados deben caracterizarse y representarse con datos, datos ZPI. Entonces comienza la diversión. Se debe recopilar la misma información mientras el dispositivo está siendo atacado (Figura 1) para registrar el cambio en los atributos clave. Desde la perspectiva de detectar intrusiones en la red, los ataques que queremos detectar son escaneos de red. Detectar y prevenir escaneos de red es el clave para detener nuevos y más graves ataques tipos
Los escaneos que usamos para entrenar nuestro motor son TCP, IP, UDP y ARP. Además, los primeros 3 escaneos se pueden realizar sobre direcciones IPv4 o IPv6. Sumando el comportamiento normal del dispositivo, tenemos 8 clases diferentes para identificar. Solo para completar (y comprender los resultados futuros), las clases son (de 0 a 7): NORMAL, TCP (IPv4), ARP, IP (IPv4), UDP (IPv4), TCP (IPv6), IP (IPv6), UDP (IPv6).
Figura 1. Proceso de recogida y centralización de datos.
Proceso de entrenamiento
Una vez que se recopilan los datos, se sigue el proceso de capacitación que se muestra en la Figura 2. Cada paso consta de:
- Generación de conjuntos de datos: A partir de los datos recopilados, creamos dos conjuntos de datos, uno para entrenar z9 y otro para probar qué tan bien se desempeña el modelo generado sobre datos nuevos e invisibles.
- Optimización de características: Para extraer más información de los datos, se realiza un paso de preentrenamiento para extraer las características más relevantes para dirigir el entrenamiento.
- Eliminación de ruido: Para garantizar que no haya ruido presente en el conjunto de datos, un aprendizaje sin supervisión se realiza el paso para limpiar los datos.
- Capacitación: Con los atributos optimizados y el conjunto de datos sin ruido como entradas, se entrena un clasificador z9.
Figura 2. Tubería de entrenamiento utilizada para lograr el clasificador z9 optimizado.
¡Tiempo de la funcion!
¿Qué se puede obtener con el proceso descrito hasta ahora? La respuesta es sistemas de detección de intrusos en la red de última generación y alta precisión que cumplen completamente con las necesidades de privacidad de los usuarios. Entonces, veamos algunos detalles.
Para analizar qué tan bien se desempeña un modelo de aprendizaje automático, es común usar matrices de confusiónun gráfico muy simple que relaciona las clases pronosticadas (en columnas) para un conjunto de datos determinado con su valor real (en filas).
CM 1. Matrices de confusión para el clasificador de redes de Android.
En CM 1, dicha matriz se muestra para el clasificador de Android. Cada número de clase corresponde a las clases mostradas arriba. El error sobre el conjunto de prueba es del 0,02 %, lo que significa que necesitaremos recolectar casi 5000 muestras (4579 para ser precisos) para encontrar un solo error de clasificación. Para el conjunto de entrenamiento, no se encuentra ningún error en la matriz de confusión, lo que significa que nuestro modelo aprendió nuestros datos.
¿Qué pasa con iOS? En CM 2, se muestran los mismos resultados para el clasificador de iOS. Una vez más, no se encuentra ningún error en el conjunto de datos de entrenamiento. En el conjunto de prueba, se encuentra un error del 0,25 %, lo que significa que 1 de cada 400 muestras se clasificará incorrectamente. No está mal, ¿eh?
CM 2. Matrices de confusión para el clasificador de redes de iOS.
El hermano pequeño olvidado
La industria móvil está dominado por Android e iOS dispositivos, pero esto no significa que el enfoque ZPI no se pueda usar en otras plataformas. Como prueba de ello, ZPI fue portado a Windows. Se utilizó la misma metodología aplicada para Android e iOS, la única diferencia está en la forma en que se recopilan los datos.
Para Android, los datos se recopilan leyendo las estadísticas de red del /proc sistema de archivos mientras que en iOS el llamada al sistema sysctlbyname se usa En Windows, se puede acceder a las estadísticas globales de la red usando lo siguiente Funciones auxiliares de IP:
- GetIpStatisticsEx
- ObtenerEstadísticasIcmp
- GetIcmpStatisticsEx
- GetTcpStatisticsEx
- ObtenerSiTabla
- GetUdpStatisticsEx
- ObtenerInfoInterfaz
Usando estas funciones, se pueden obtener 649 atributos de red diferentes. El proceso de recopilación de datos se realizó de la misma manera que antes, utilizando los mismos estados y tipos de ataques.
Después del proceso de entrenamiento, terminamos con las matrices de confusión que se muestran en CM 3. En este caso, el error sobre el conjunto de entrenamiento es del 0,09 % y para el conjunto de prueba del 0,3 %. Esto significa que para nuevos datos no vistos, encontraremos una clasificación errónea en aproximadamente 320 puntos de muestra. Para detectar de manera efectiva un escaneo de red, una sola detección es suficiente, por lo que incluso cuando la precisión de este clasificador es menor que en los casos de Android e iOS, el rendimiento general puede considerarse muy alto.
CM 3. Matrices de confusión para el clasificador de redes de Windows.
¿Qué pasa con el mundo real?
Los resultados mostrados hasta ahora parecen prometedores, pero analicemos cómo funcionan los clasificadores en dispositivos reales fuera de un entorno de entrenamiento. Para probarlos, se utilizaron los siguientes dispositivos:
- Samsung Galaxy S6 con Android 6.
- iPhone 6 con iOS 8.
- HP envidia 13 con Windows 10.
Cada dispositivo fue escaneado usando nmap, y el tiempo hasta la primera detección se tiene en cuenta para diferentes parámetros de tiempo y tipos de exploración. En las Tablas 1 y 2 se muestra la duración de los escaneos y el tiempo de detección para cada dispositivo/plataforma. Es fácil ver que incluso cuando se usa el indicador -T2 (que aumenta el tiempo entre paquetes para disminuir la huella digital del escaneo), la mayoría de los escaneos son detectados por cada clasificador, superando a todos los IDS comerciales disponibles en la industria.
Tabla 1. Duración del escaneo y tiempo hasta la primera detección para cada clasificador. El indicador -T3 se usó para realizar los escaneos.
Tabla 2. Duración del escaneo y tiempo hasta la primera detección para cada clasificador. El indicador -T2 se usó para realizar los escaneos.
¿Que sigue?
Los resultados que se muestran aquí son solo una pequeña muestra de las capacidades completas de z9 combinadas con investigación y desarrollo con un fuerte énfasis en la seguridad y la privacidad.
Afortunadamente para nosotros, el enfoque de ZPI no se limita a los dispositivos móviles ni a las plataformas descritas aquí. Cualquier sistema operativo que exponga estadísticas de red se puede utilizar como base para desarrollar un IDS basado en ZPI.
Hay varias ventajas que no se describen aquí sobre ZPI, como la muy poca potencia de procesamiento necesaria. En un mundo de IoT en el que la conectividad aumenta cada día incluso para los dispositivos más pequeños, ZPI se puede ampliar para proteger nuestros dispositivos sin penalizar el uso de la batería o invadir los datos del usuario. ZPI junto con z9 también se puede usar para proteger nuestros enrutadores domésticos y empresariales de atacantes externos e internos. Los automóviles conectados y otros sistemas operativos RT (como QNX, VxWorks) también se pueden proteger con el enfoque propuesto. El futuro es brillante y z9 estará allí para protegerlo.
También anunciaremos nuestras capacidades de carga útil cero con respecto al ataque de firmware y la detección de ataques al kernel sin ninguna visibilidad. El enfoque mostrará que podemos detectar una gran variedad de ataques en múltiples superficies de ataque con un conjunto mínimo de atributos y alta precisión. Revelaremos más detalles sobre el enfoque de detección de carga útil cero en la próxima serie de publicaciones de blog.
Proceso de revisión por pares
El papel de inspección de paquete cero está disponible para revisión por pares. Si desea participar, por favor notifíquenos a [email protected].