Mostrando entradas con la etiqueta estegonanálisis. Mostrar todas las entradas
Mostrando entradas con la etiqueta estegonanálisis. Mostrar todas las entradas

lunes, julio 09, 2018

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.

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-CruzPassGAN: 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 generador

- 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.
Los 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.

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)

lunes, noviembre 13, 2017

Mensajes cifrados, Mensajes ofuscados: Skrypted, Esteganografía & Estegoanálisis

Los sistemas de comunicaciones seguras son unos de los más analizados por los equipos de seguridad de todas las compañías. Por supuesto, en ElevenPaths esta es una línea de trabajo desde el día en que comenzamos a andar, y por ello mantenemos líneas de investigación permanentes. Hoy os traigo un par de referencias a cosas que en las que hemos trabajado, unas referentes a sistemas de comunicación cifradas y/o ofuscadas usando esteganografía y estegonanálisis y otra referente a la protección y cifrado de mensajes cuando estos están en el equipo.

Figura 1: Mensajes cifrados, Mensajes ofuscados: Skrypted, Esteganografía & Estegonálisis

La primera de las referencias es una charla que hemos impartido dentro de nuestros ElevenPaths Talks en la que analizamos el funcionamiento y el estado del arte de las herramientas y técnicas utilizadas en covert channels, tan conocidas en el mundo de la Esteganografía y el Estegonanális, que nosotros tocamos ya en el libro de 0xWord.


Figura 2: ElevenPaths Talks 3: Esteganografía & Estegoanálisis

La segunda de las referencias es una solución que añade una capa de cifrado a los mensajes de las conversaciones de Skype que tenemos almacenadas en el equipo. Éstas, por defecto, se almacenan sin ningún tipo de cifrado, y dentro de uno de nuestros Equinox, el equipo del Laboratorio de ElevenPaths desarrolló Skrypted, una pequeña herramienta que permite cifrar los mensajes.

Figura 3: Skrypted para descargar

Su fucionamiento se ha explicado en el blog de ElevenPaths, pero puedes ver un claro ejemplo de cómo se utiliza en este vídeo que os he subido a Youtube, donde se ve paso a paso cómo se roba una base de datos de Skype con un simple fichero Excel malicioso y cómo ésta se encuentra protegida.

Figura 4: Funcionamiento de Skrypted

Tienes la explicación completa de todo el proceso de robo de la base de datos usando un Excel malicioso, cómo la base de datos se cifra y se protege, en la charla que el equipo del Laboratorio de ElevenPaths impartió durante nuestro Security Innovation Day 2017.


Figura 5: Innovation "A path to success"

Saludos Malignos!

domingo, julio 02, 2017

6 de Julio: Una chala sobre "PinPay & Seguridad en Micro-Pagos" y un "Curso Online de Análisis Forense"

Antes de que lleguen las vacaciones de verano en el hemisferio norte, tenemos aún cosas por delante. Hoy domingo aprovecho para dejaros un par de citas que tenemos la semana que viene. Las dos serán online  a través de Internet, y las dos tienen lugar su inicio el próximo 6 de Julio.

Figura 1: Actividades para el 6 de Julio

La primera de ella es una nueva sesión de ElevenPaths Talks, para esta ocasión tenemos a Jorge Rivera y Pablo San Emeterio, dos de nuestros CSA hablando de "PinPay y la Seguridad en Micro pagos".

“Acepte pagos on-line en cualquier lugar” “sea su propia oficina móvil de cobro” y muchas otras formas más de publicidad para dar a conocer la posibilidad de hacer pequeñas transacciones online con un teléfono para pagar servicios cotidianos que normalmente se abonan en efectivo. 
Debido a que muchas veces no se justifica económicamente realizar un pago de pequeñas cantidades con las tarjetas de crédito tradicionales, esta nuevas formas se están empezando a desplegar por todos los países y casi todas las empresas de la industria de las tarjetas de crédito están implementando o analizando soluciones similares que apuntan a bancarizar y trabajar con estas transferencias instantáneas. 
Algunas de las primeras soluciones se basaron en los viejos y queridos SMS, otras en las famosas billeteras virtuales, pero hay algunas empresas del sector de las tarjetas de crédito que han decidido apostar por las criptomonedas. 
Sin duda, es un sistema que nos da mayor rapidez para los pequeños pagos y nos permite evitar movernos con dinero en efectivo o tarjetas de crédito, ya que casi siempre la solución se basa en un teléfono móvil ¿y quién saldría de su casa sin su SmartPhone? Pero la pregunta que realmente nos importa a nosotros: ¿y la seguridad?
La segunda de las actividades es el comiendo en The Security Sentinel del Curso Online de Análisis Forense Informático. Con una duración de 180 horas, cubre durante once semanas un temario que permite recorrer desde la captura de las evidencias en los distintos entornos hasta la presentación del informe pericial.

Figura 3: Curso Online Análisis Forense

En este curso, se entrega además, el libro de 0xWord dedicado a la Esteganografía y el Estegoanálisis para entender mejor el uso y la investigación de los llamados Covert Channels en el mundo digital, y cómo se pueden estudiar en un proceso de Análisis Forense.
Y ahora, a disfrutar el domingo, que el tiempo por España ayuda a ello. Deporte, diversión, y algo de reposo para la lectura.

Saludos Malignos!

sábado, mayo 28, 2016

SNMPChat: Chatear en un canal encubierto sobre SNMP

En esta entrada quiero presentar una herramienta de mensajería instantánea llamada SNMPchat, la cual utiliza el protocolo SNMP (Simple NetWork Monitoring Protocolo) para intercambiar mensajes de texto entre dos personas. Recordemos que SNMP es un protocolo de monitorización  que se utiliza como parte de la estrategia en la administración de sistemas de todo tipo de elementos, que puede ir desde los routers de una organización, pasando por los servidores, firewalls, para llegar a administrar también los terminales móviles y una gran cantidad de dispositivo en entornos corporativos.

Figura 1: SNMPChat. Chatear en un canal encubierto sobre SNMP

Sobre el uso del protocolo SNMP en el mundo de la autidoría ya se publicaron por aquí muchos artículos que explican cómo sacarle partido al protocolo SNMP para obtener información de la red, los servidores, los dispositivos móviles e incluso los procesos que están corriendo y con qué parámetros fueron lanzados. Los tenéis aquí:
- Auditando Hosts Windows y *NIX* con SNMP (Parte I)
- Auditando Hosts Windows y *NIX* con SNMP (Parte II)
- Descubrir la red de una organización con consultas SNMP
- Shodan y agentes SNMP: Administrando el mundo
- Servidores Novell Netware con agentes SNMPv1 en Shodan
Pero aunque el uso de un protocolo de comunicación fue pensado para monitorear dispositivos y no para intercambiar mensajes de texto, el que esté tan extendido SNMP por los diferentes sistemas y dispositivos convierte a este protocolo en un medio perfecto para crear un canal encubierto (covert channel), ya que esta comunicación podría pasar desapercibida, y oculta en cualquier red. Al igual que cuando se usan técnicas de esteganografía en TCP o las de exfiltración de datos en ICMP, no sería raro ver tramas SNMP en una red, por lo que si no hay mecanismos de seguridad extra no se generaría ninguna alerta por el tráfico SNMP.

Chatear sobre SNMP con SNMPChat

SNMPchat está escrita en Python y fue diseñado sobre una arquitectura cliente-cliente poco convencional en redes de datos que dificulta aún más su detección. Es cliente-cliente ya que no utiliza sockets, es decir, no tiene servicios escuchando en la capa de transporte. Muchos se preguntaran en este momento, ¿bueno, entonces cómo funciona? … bien tanto para el envió como recepción de mensajes utiliza la librería Scapy de Python, la recepción y decodificación de los mensajes la hace a través de sniff, una función de scapy que permite que la tarjeta de red trabaje en modo promiscuo para escuchar el tráfico que esta recibe y gracias a la versatilidad de la función se puede filtrar solamente el tráfico que nos interesa, es decir el trafico SNMP.

Esta arquitectura no utiliza servidores intermedios como hacen los servicios de mensajería instantánea o IRC y se aprovecha de los paquetes SNMP para ocultar la información enviada. Pero se requiere que, si se quiere usar a través de Internet, en los dos extremos se configure en el firewall o router un NAT y una regla para permitir que el tráfico del puerto SNMP vaya hacia cada cliente. Para ello utiliza los mensajes tipo Get-Request de SNMP los cuales son utilizados normalmente para solicitar a través de los OID (Object ID) algún recurso de la MIB (Managment Information Base) en el dispositivo a monitorear. En este caso utilizaremos los OID para ocultar los mensajes de texto.

Figura 2: Mensaje en texto plano camuflado como OID

Los OID se utilizan para definir las ontologías en una comunicación entre dos servicios SNMP, de tal manera que conociendo el OID del objeto que se envía, cada extremo de la comunicación conoce automáticamente la estructura de los atributos. Para ello, tienen un formato del estilo: 1.3.6.1.2.1.1.1, que sirve para identificar de qué objetos extiende su estructura. Como en este caso no vamos a comunicar dos servidores SNMP, lo que hace SNMP  es convertir cada letra del mensaje de texto en su valor ASCII decimal correspondiente y acomodarlos en el OID, conservando el formato del valor y enviando el paquete.

Como ya se explicó, en el otro extremo el receptor realizara el sniffing del tráfico y decodificaraá el mensaje que llego en la OID. Esta es una prueba de concepto que muestra cómo meter datos en los paquetes SNMP sin llamar mucho la atención, los datos van en texto claro y su valor ASCII, así que para garantizar mayor confidencialidad los mensajes deberían ir cifrados extremo a extremo. Aquí tenéis un vídeo que muestra cómo sería la experiencia del sistema.


Figura 3: Configuración y uso de SNMPChat

Al ser un canal encubierto, el riego es generar un tráfico grande entre dos servidores y llamar la atención de los sistemas de monitorización por la cantidad de paquetes enviados, así que, para evitar cifrados de gran peso - que cada uno decide qué quiere utilizar - tal vez sería interesante volver a poner en práctica los sistemas de cifrado clásicos, menos robustos frente a ataques de criptoanálisis, pero menos ruidos en cuanto al número de paquetes que sería necesario enviar.

Configuración y uso de SNMPChat

SNMPchat utiliza la comunidad SNMP para autenticar los mensajes, por lo tanto, esta debe ser configurada igual en los dos extremos, de igual forma que el puerto UDP. La herramienta funciona en Kali Linux perfectamente y no es necesario instalar ninguna dependencia o librería adicional. En las siguiente imagen siguiente se ve la ayudar de la herramienta.

Figura 4: Ayuda de SNMPChat

Es obligatorio para que funcione especificar la dirección IP local (-l) y la dirección IP destino (-d), mientras que la comunidad SNMP (-c) como el puerto (-p) vienen con valores por defecto, Sin embargo se pueden especificar unos diferentes, y si quieres cifrar los mensajes con AES - incorporado por defecto en la herramienta - lo puedes hacer con la opción (-e) para pasarle la key que debe usarse para el cifrado. Luego de especificar los argumentos, la herramienta solicitara ingresar tu nombre para la comunicación y a chatear sobre SNMP se dijo:

Figura 5: Ingreso de nombre para comenzar la conversación

Si quieres abandonar basta con que teclees "q" y de esta forma el otro extremo quedara notificado de que cerraste la sesión. En la siguiente imagen se ve el interfaz de comunicación usando SNMPChat.

Figura 6: Conversación con SNMPChat

El script lo pueden descargar de mi repositorio en Github,y espero que les sirva para poder avanzar en las técnicas de canales encubiertos, esteganografía, estegonanálisis o, simplemente, para chatear un rato.

Saludos desde Colombia.

Autor: Juan Esteban Valencia Pantoja

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares