Generative Adversarial Networks: Inteligencia Artificial & Ciberseguridad (2 de 2)
Continuando con lo explicado en la primera parte de este artículo, vamos a hablar en esta segunda parte de dos areas de aplicación de las GANs en el mundo de la seguridad. La primera de ellas es el área del cracking de contraseñas, o cómo utilizar GANs para crackear más rápido passwords. La segunda de las aplicaciones que vamos a ver tiene que ver coon cómo utilizar GANs para generar sistemas de esteganografía más robustos.
Como se ha dicho ya, otra de las aplicaciones recientes y más reseñables de este tipo de tecnología fuera del procesado y reconocimiento de imágenes, y que ilustran cómo los algoritmos aplicados en Deep Learning aplicados a este tipo de arquitecturas pueden resultar de gran ayuda en el mundo de la ciberseguridad, está descrita en el artículo de los investigadores Briland Hitaj, Paolo Gasti, Giuseppe Ateniese y Fernando Pérez-Cruz “PassGAN: A Deep Learning Approach for Password Guessing”.
GANs y Cracking de contraseñas
Todos usamos contraseñas como un método sencillo y rápido de autenticación. Desafortunadamente, no solo los eventos filtración de contraseñas no son eventos infrecuentes, sino que además estos han demostrado que la complejidad de las contraseñas elegidas por los usuarios es muy baja, principalmente formadas por caracteres puramente numéricos o alfabéticos (p.e., 1234, password, asdfgh…) las combinaciones alfanuméricas más sencillas que se os puedan ocurrir (p.e., abc123).
Existen herramientas de obtención de passwords que son de gran utilidad para identificar debilidades en las contraseñas, especialmente aquellas que están almacenadas como hash. La efectividad de este tipo de herramientas reside en su habilidad de probar un gran número de contraseñas posibles frente a cada hash del que se disponga. En vez de probar todas las combinaciones posibles de caracteres, estas herramientas de crackeo usan diccionarios de palabras fabricados a partir de leaks de contraseñas anteriores.
Las herramientas más famosas usadas para este fin son John the Ripper y HashCat, que hacen uso de esa aproximación incluyendo la transformación de contraseñas, entre las que se incluyen la concatenación de candidatos (p.e., iloveyou1234), la mezcla de letras lower-case – upper-case (p.e., HoLa123) y leet speak (p.e., 1l0v3y0u).
Haciendo uso de modelos de Markov, John the Ripper y HashCat generan un gran número de contraseñas posibles con una alta tasa de éxito, no dejan de ser reglas ad-hoc basadas en la experiencia de cómo un usuario sele elegir sus contraseñas, además de perder efectividad cuando la longitud de las contraseñas supera los 10 caracteres.
Parece que las arquitecturas de tipo GAN presentan un buen desempeño en esa tarea, siendo capaces de complementar las capacidades mostradas por las principales herramientas ya existentes. Por otro lado, presentan una clara ventaja frente a John the Ripper y HashCat, pues no necesitan de ningún conocimiento a priori de las estructuras comunes de las contraseñas.
De acuerdo con este paper, PassGAN duplica la tasa de éxito en el desempeño con respecto a John the Ripper e iguala las reglas best64 y gen2 de HashCat para contraseñas de hasta 10 caracteres. Queda pendiente extender la longitud de las contraseñas contra las que se ha entrenado, considerando que una contraseña robusta debe tener al menos 13 caracteres.
La mejor puntuación fue obtenida como fruto de la combinación de PassGAN con HashCat, cuya complementación consiguió crackear entre un 18% y un 24% más de contraseñas de lo que lo hubiera hecho sólo Hashscat. El código de PassGAN que acompaña a este trabajo de investigación también está disponible en GitHub, con lo que se pueden realizar los experimentos y probar los algoritmos fácilmente.
Los autores indican que PassGAN es capaz de extraer de manera autónoma un número considerable de características en contraseñas, gracias a la capacidad de este tipo de modelos de aprender las estructuras subyacentes de las contraseñas del conjunto de datos del entrenamiento, algo que los modelos basados en reglas no pueden abstraer.
GANs en el mundo de la Esteganografía
Otra aplicación de las GANs relacionadas con el mundo de la ciberseguridad se encuentra en el campo de la esteganografía, que trata del proceso de esconder información en ficheros – generalmente imágenes y archivos de audio – de modo que no se perciba su existencia. Por ejemplo, se podría cambiar mínimamente el valor de cada pixel en una imagen RGB para transmitir información sin corromper la imagen, siendo imposible para un ser humano a darse cuenta de la modificación. Os animamos a leer este artículo, donde ya se trató esta técnica. En el artículo “SSGAN: Secure Steganography Based on Generative Adversarial Networks” encontramos una aplicación de las GANs para crear esquemas estegonográficos.
En este experimento se hace uso de un modelo generador y de dos modelos discriminatorios. En este caso, el generador intenta generar imágenes propicias para la ocultación de información, consistentes y resistentes a métodos de detección visual de inyección de datos. Los modelos discriminatorios realizan dos funciones dedicados a garantizar una buena capacidad para esconder información:
La arquitectura basada en un doble discriminador producía de manera exitosa imágenes de alta calidad que permiten esconder información de manera más efectiva, lo cual supone un avance en este campo frente a los algoritmos heurísticos ya existentes.
Conclusión Final
Estas son sólo algunas muestras de cómo la Inteligencia Artificial comienza a hacer acto de presencia de manera activa en la ciberseguridad mediante su aplicación en tareas variadas que van desde el crackeo de contraseñas hasta el bypass de motores antivirus o el descubrimiento de información escondida en imágenes de alta calidad resistentes al estegoanálisis. Con total seguridad, tanto las GANs como otros modelos de redes neuronales profundas se irán incorporando de manera efectiva a la detección de amenazas en constante evolución a las que nos enfrentamos.
[Viene de la Parte 1]
Autor: Enrique Blanco (@eblanco_h) miembro del equipo de Ideas Locas en CDO (Telefónica)
Figura 8: Generative Adversarial Networks: Inteligencia Artificial & Ciberseguridad (2 de 2) |
Como se ha dicho ya, otra de las aplicaciones recientes y más reseñables de este tipo de tecnología fuera del procesado y reconocimiento de imágenes, y que ilustran cómo los algoritmos aplicados en Deep Learning aplicados a este tipo de arquitecturas pueden resultar de gran ayuda en el mundo de la ciberseguridad, está descrita en el artículo de los investigadores Briland Hitaj, Paolo Gasti, Giuseppe Ateniese y Fernando Pérez-Cruz “PassGAN: A Deep Learning Approach for Password Guessing”.
GANs y Cracking de contraseñas
Todos usamos contraseñas como un método sencillo y rápido de autenticación. Desafortunadamente, no solo los eventos filtración de contraseñas no son eventos infrecuentes, sino que además estos han demostrado que la complejidad de las contraseñas elegidas por los usuarios es muy baja, principalmente formadas por caracteres puramente numéricos o alfabéticos (p.e., 1234, password, asdfgh…) las combinaciones alfanuméricas más sencillas que se os puedan ocurrir (p.e., abc123).
Figura 9: Artículo “PassGAN: A Deep Learning Approach for Password Guessing”. Hitaj, B. et al. 2018 |
Existen herramientas de obtención de passwords que son de gran utilidad para identificar debilidades en las contraseñas, especialmente aquellas que están almacenadas como hash. La efectividad de este tipo de herramientas reside en su habilidad de probar un gran número de contraseñas posibles frente a cada hash del que se disponga. En vez de probar todas las combinaciones posibles de caracteres, estas herramientas de crackeo usan diccionarios de palabras fabricados a partir de leaks de contraseñas anteriores.
Figura 10: Entrenamiento de PassGAN con passwords filtradas |
Las herramientas más famosas usadas para este fin son John the Ripper y HashCat, que hacen uso de esa aproximación incluyendo la transformación de contraseñas, entre las que se incluyen la concatenación de candidatos (p.e., iloveyou1234), la mezcla de letras lower-case – upper-case (p.e., HoLa123) y leet speak (p.e., 1l0v3y0u).
Figura 11: Logos de HashCat y John the Ripper |
Haciendo uso de modelos de Markov, John the Ripper y HashCat generan un gran número de contraseñas posibles con una alta tasa de éxito, no dejan de ser reglas ad-hoc basadas en la experiencia de cómo un usuario sele elegir sus contraseñas, además de perder efectividad cuando la longitud de las contraseñas supera los 10 caracteres.
Parece que las arquitecturas de tipo GAN presentan un buen desempeño en esa tarea, siendo capaces de complementar las capacidades mostradas por las principales herramientas ya existentes. Por otro lado, presentan una clara ventaja frente a John the Ripper y HashCat, pues no necesitan de ningún conocimiento a priori de las estructuras comunes de las contraseñas.
De acuerdo con este paper, PassGAN duplica la tasa de éxito en el desempeño con respecto a John the Ripper e iguala las reglas best64 y gen2 de HashCat para contraseñas de hasta 10 caracteres. Queda pendiente extender la longitud de las contraseñas contra las que se ha entrenado, considerando que una contraseña robusta debe tener al menos 13 caracteres.
Figura 12: PassGAN en GitHub |
La mejor puntuación fue obtenida como fruto de la combinación de PassGAN con HashCat, cuya complementación consiguió crackear entre un 18% y un 24% más de contraseñas de lo que lo hubiera hecho sólo Hashscat. El código de PassGAN que acompaña a este trabajo de investigación también está disponible en GitHub, con lo que se pueden realizar los experimentos y probar los algoritmos fácilmente.
Los autores indican que PassGAN es capaz de extraer de manera autónoma un número considerable de características en contraseñas, gracias a la capacidad de este tipo de modelos de aprender las estructuras subyacentes de las contraseñas del conjunto de datos del entrenamiento, algo que los modelos basados en reglas no pueden abstraer.
GANs en el mundo de la Esteganografía
Otra aplicación de las GANs relacionadas con el mundo de la ciberseguridad se encuentra en el campo de la esteganografía, que trata del proceso de esconder información en ficheros – generalmente imágenes y archivos de audio – de modo que no se perciba su existencia. Por ejemplo, se podría cambiar mínimamente el valor de cada pixel en una imagen RGB para transmitir información sin corromper la imagen, siendo imposible para un ser humano a darse cuenta de la modificación. Os animamos a leer este artículo, donde ya se trató esta técnica. En el artículo “SSGAN: Secure Steganography Based on Generative Adversarial Networks” encontramos una aplicación de las GANs para crear esquemas estegonográficos.
Figura 13: Artículo “SSGAN: Secure Steganography Based on Generative Adversarial Networks”. Shi, H., et al. 2018 |
En este experimento se hace uso de un modelo generador y de dos modelos discriminatorios. En este caso, el generador intenta generar imágenes propicias para la ocultación de información, consistentes y resistentes a métodos de detección visual de inyección de datos. Los modelos discriminatorios realizan dos funciones dedicados a garantizar una buena capacidad para esconder información:
- el primero es capaz de determinar la calidad de la imagen facilitada por el generadorLos resultados han mostrado que, haciendo uso de la arquitectura propuesta, el error de clasificación de la red aumentaba, lo que significaba que las imágenes generadas eran mejores para esconder información.
- el segundo compite con el generador para favorecer la variedad en la generación de las imágenes, evitando que el generador produzca imágenes con demasiado ruido. Es el segundo discriminador el que elige qué imágenes son las más adecuadas para aplicar la esteganografía.
Figura 14: Arquitectura SSGAN con una red GAN y dos redes discriminativvas |
La arquitectura basada en un doble discriminador producía de manera exitosa imágenes de alta calidad que permiten esconder información de manera más efectiva, lo cual supone un avance en este campo frente a los algoritmos heurísticos ya existentes.
Conclusión Final
Estas son sólo algunas muestras de cómo la Inteligencia Artificial comienza a hacer acto de presencia de manera activa en la ciberseguridad mediante su aplicación en tareas variadas que van desde el crackeo de contraseñas hasta el bypass de motores antivirus o el descubrimiento de información escondida en imágenes de alta calidad resistentes al estegoanálisis. Con total seguridad, tanto las GANs como otros modelos de redes neuronales profundas se irán incorporando de manera efectiva a la detección de amenazas en constante evolución a las que nos enfrentamos.
[Viene de la Parte 1]
Autor: Enrique Blanco (@eblanco_h) miembro del equipo de Ideas Locas en CDO (Telefónica)
No hay comentarios:
Publicar un comentario