martes, abril 09, 2019

Autoencoders, GANs y otros chicos (buenos y malos) del montón: La IA al servicio de la Ciberseguridad [1 de 5]

El pasado sábado 30 de marzo mi compañero del equipo de Ideas Locas Enrique Blanco y yo tuvimos la suerte de estar en RootedCON 2019 dando una charla sobre el uso de la "Inteligencia artificial aplicada a la Ciberseguridad". Recientemente se ha hablado por aquí del más que recomendable libro de Machine Learning aplicado a Ciberseguridad en el que han participado otros compañeros, pero nuestro objetivo en la charla era justo el contrario.

Figura 1: Autoencoders, GANs y otros chicos (buenos y malos) del montón:
La IA al servicio de la Ciberseguridad [1 de 5]

La intención era mostrar el estado actual de ciertos aspectos como la generación de vídeos y noticias falsas mediante la aplicación de tecnologías de Inteligencia Artificial, pero también cómo esto se envuelve en ciberataques. El objetivo era desarrollar un poco más el trabajo que habíamos hecho para el Security Innovation Day 2018 de ElevenPaths en el que explicamos "Cómo hacer un Face Swapping con Chema Alonso para hacer una Fake News".


Figura 3: Vídeo de prueba con FaceSwapping usando en el SID 2018

Además, algo fundamental era explicar cómo la IA también se utiliza para el servicio del bien, la detección de este tipo de ataques gracias al uso de otros modelos y herramientas basadas en IA es algo ya del presente, pero que veremos aún más en el futuro próximo.

Así llegamos el sábado a la sala 25 de Kinépolis en Ciudad de la Imagen. Con las ganas de dar lo mejor de nosotros y poder mostrar lo que se había trabajado en el equipo de Ideas Locas durante los últimos meses. Siempre con el “nervio” en el estómago, aunque hayas pasado por varias RootedCON y RootedLabs. La RootedCON es estar en casa, pero siempre uno quiere dar lo mejor de sí.

¿De qué va esto?

Cuando Enrique Blanco y yo hablábamos de las slides definimos bien el alcance y lo ajustamos al tiempo de la presentación. Lo primero era que la gente que asistía a la charla entendiera cuál era el contexto de la charla. Por ello, empezaríamos hablando de las noticias falsas y vídeos falsos que son conocidos por todos: el vídeo de Barack Obama y su boca creada a través de una red neuronal profunda, el video de Steve Buscemi como Jennifer Lawrence o el de una famosa actriz en el cuerpo de una actriz porno del que ya hablamos.

Figura 3: Ejemplo de la cara de la actriz de Star Wars en el cuerpo de una actriz porno

Además, queríamos mostrar que una noticia apoyada en un audio o un video falso puede ser mucho más creíble, aunque, históricamente, hemos vivido que un simple texto de una fuente oficial o lo que parece una fuente oficial puede tener un gran impacto en nuestra libertad y nuestra economía. Todos estamos de acuerdo en que una Fakenews - como se vio con el escándalo de Cambridge Analytica - es importante y puede ser utilizada para tomar ventaja y engañar o estafar a cualquier partícipe de la sociedad.

Figura 4: Vídeos falsos creados con IA

Tras el breve repaso por las noticias nos tocaba hablar de si la IA aplicada a la ciberseguridad es un matrimonio condenado a entenderse. Es nuestra opinión, pero no vale para todo. Esto hay que explicarlo. Pusimos dos ejemplos de los que se pueden encontrar en el libro de Machine Learning aplicado a Ciberseguridad.
• Detección de anomalías de red: Mediante la aplicación de un algoritmo de aprendizaje supervisado basado en clasificación se puede entrenar a una máquina para diferenciar entre tráfico legítimo y tráfico anómalo. Mediante la etapa de ‘testeo’ o ‘puesta en producción’ la máquina debe ser capaz de diferenciar entre tráfico legítimo o normal de lo que es tráfico anómalo. Esta prueba se puede encontrar en el Talk de LUCA llevado a cabo por Carmen Torrano y Rafa Sánchez.

Figura 5: Redes más seguras con Machine Learning
• Detección de ataques de phishing: Como segundo ejemplo vemos el servicio llamado Phish.AI del que ya hemos hablado por este blog.. Este servicio recibe una URL e indica a través de una IA basada en aprendizaje supervisado por clasificación si un sitio es phishing o no.
Figura 6: Dashboard de Phis.AI con resultados de URLs analizadas
Pero el número de casos es alto cuando empezamos a revisar los estudios. Ya escribió Enrique Blanco un artículo sobre Generative Adversarial Networks y Ciberseguridad en el que veía su aplicación a casos muy diversos. Desde el mundo del malware y los antivirus, el cracking de contraseñas, o las técnicas de esteganografía y estegonálisis.

Figura 7: Una GAN para el Password Guessing

Pero aún así, no todo vale. Cuando digo que no vale para todo es que no es una palabra mágica, ni, por supuesto, la panacea. Hay una tendencia a abusar de palabras de moda, como ocurrió en su día con el BigData, Blockchain o APT. Todo el mundo quería que las soluciones a sus problemas se resolvieran con este tipo de técnicas o tecnologías. Hay que entender bien el problema y ver dónde se puede aplicar y dónde no.

Conceptos Base

Llegó el momento de los conceptos y la base de teoría. Una cosa que queríamos hacer Enrique Blanco y yo era que los asistentes pudieran entender la práctica que venía después a través de la teoría. Esta teoría se daría de forma lo más sintetizada y sencilla posible, para entender de forma ‘coloquial’ lo que es el Machine Learning, un Modelo, un Algoritmo, una Red Neuronal, un Autoencoder o una Generative Adversarial Network (GAN), entre otras cosas. Este era un objetivo complejo debido al tiempo del que se disponía.

Figura 8: ¿Qué son las redes neuronales?

En la parte teórica había dos partes bien diferenciadas: una breve introducción al Machine Learning y otra un poco más detallada donde se profundizaba sobre los Autoencoders y las GANS, ambas trabajando bajo el paradigma de aprendizaje no supervisado con el objetivo de construir vídeos falsos creados por AI para hacer Fakenews.

Autoencoders

En el primer caso, los Autoencoders, su espacio dimensional es reducido. En otras palabras, de los datos fuente o de la imagen, en este caso, se hace una reducción de dimensionalidad captando ciertas características que nos permiten generar un vector base. A través de ese vector base se puede reconstruir la imagen posteriormente.

Figura 9: Autoencoders

Lógicamente, cuanto mayor es el entrenamiento mejor será la capacidad de esta arquitectura de reconstruir la imagen a partir de su espacio latente o vector base. Por ello, en primeras instancias puede que tengamos imágenes reconstruidas con poca nitidez.

Generative Adversarial Networks

En el caso de las GANs tenemos el siguiente esquema que se puede ver en la imagen. Son dos redes neuronales enfrentadas. Uno es el generador y otro el discriminador. Lo que hacen es un juego de suma cero. Competirán el uno con el otro para ver si el generador engaña al discriminador o no.

Figura 10: Generative Adversarial Networks

En otras palabras, el Generador (G) generará imágenes falsas y el Discriminador (D) comparará imágenes de entrenamiento reales con la imagen generada por el generador. Cuando el Generador engañe al Discriminador y éste no sepa diferenciar cuál es la real, el Generador ha ganado y cuando el Discriminador sepa diferenciar cual es la falsa, el Discriminador gana. El entrenamiento de las GANs funciona así:
• G (generador) genera muestra y se las pasa a D (discriminador). Es decir, G intenta engañar a D. 
• D estima la probabilidad de que la muestra provenga de G (D intenta descubrir a G).
• Entregar D para desenmascarar a G maximizando la probabilidad de que D esté equivocado.
 
• Indicar a G cómo de cerca ha estado de engañar a D.
Hay una serie de riesgos en el entrenamiento de GANs, que también se comentaron y que son:
• El tiempo de entrenamiento es largo, siempre dependiendo de los recursos que se utilicen y se dispongan. 
• El modelo puede no converger. 
• G se queda estancado y no genera muestras válidas o variadas. 
• D se hace demasiado bueno y condena a G.
Autores: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica y Enrique Blanco (@eblanco_h) es Investigador en el departamento de Ideas Locas CDO de Telefónica

**************************************************************************************************
- La IA al servicio de la Ciberseguridad [1 de 5]
- La IA al servicio de la Ciberseguridad [2 de 5]
- La IA al servicio de la Ciberseguridad [3 de 5]
- La IA al servicio de la Ciberseguridad [4 de 5]
- La IA al servicio de la Ciberseguridad [5 de 5]
**************************************************************************************************

No hay comentarios:

Entrada destacada

Seis recomendaciones personales de libros de @0xWord para disfrutar y aprender

Este verano pude disfrutar de la lectura de un libro que me encantó. El libro de Factfulness que me había regalado mi compañera Beatriz Ce...

Entradas populares