Explotando DSA-1571: Cómo romper PFS en SSL con EDH - xombra.com



A esta altura, todos deben conocer y saber como funcionan los juguetes de H D Moore. Estos juguetes sirven para atacar la autenticación de SSH basada en llave pública, utilizando llaves clonadas y fuerza bruta online.

Más aún, muchos de ustedes deben saber que un PRNG sesgado produce otros efectos, además del mencionado.

Extrañamente, no encontré más de este tipo de juguetes que exploten estos otros aspectos. Por lo que me gustaría mostrarles un parche de Wireshark que ataca el Secreto Perfecto hacia Adelante (Perfect Forward Secrecy, PFS) provisto por Diffie-Hellman Efímero (Ephemeral Diffie Hellman, EDH).
Introcción a EDH

Pongamos esto en palabras simples (si sabes de lo que estamos hablando, saltéate esta parte hasta el próximo título):
En un canal inseguro dos partes acuerdan una clave común para cifrar su diálogo. Esto es lo que ocurren en SSL (en la mayoría de los casos, ya que depende del cipher suite que se utilise):

El servidor elige un primo p al azar y un generador g del campo Z*p (no entremos en detalle de las propiedades matemáticas de estos valores). Entonces, los componentes p y g son públicos.

El servidor selecciona un número secreto al azar Xs y calcula Ys=gXs mod p. Ys es público y se envía al cliente (tal como fue con p y g).
El cliente realiza una operación similar, selecccionando un número secreto Xc al azar y también calcula Yc=gXc mod p. El cliente hace público Yc enviandolo al servidor.

El secreto compartido s es la llave pública de la otra parte elevado a la propia llave privada, todo módulo p. Esto es, para el cliente s=YsXcmod p y para el servidor s=YcXsmod p.

Con este secreto compartido las partes cifran todos los mensajes subsiguiente de una forma seguro.

En Diffie Hellman Efímero (EDH), los números privados se descartan, por lo que s es matemáticamente seguro y nadie puede obtenerlo, incluso teniendo acceso a alguna de las partes después de que el antedicho acuerdo se haya realizado.

El "exploit"

Si un atacante observador puede explorar completamente el espacio de llaves privadas (es decir, todos los posibles valores para Xc o Xs), entonces podrá calcular el secreto compartido y decifrar toda la comunicación. Es esto lo que el parche hace.

Un Wireshark con este parche y una lista de todas las posibles llaves privadas intentará atacar por fuerza bruta al secreto compartido. Si una de las partes está usando un paquete de OpenSSL/Debian vulnerable, entonces la comunicaciónes totalmente inseguro y podrá ser decifrada.

WIREHARK

El parche para Wireshark 1.0.2 puede ser descargado desde aquí.

Los paquetes Debian con el parche aplicado pueden encontrarse aquí.

Aquí estan las listas con todas las 215 llaves posibles para DH de 64 y 128 bits en sistemas cuyo PRNG sea vulnerable a DSA-1571.

Un archivo pcap de ejemplo puede encontrarse aquí (fue el producto de haber utilizado un cliente vulnerable y una de las herramientas de Moore, el getpid hackeado y el comando $ MAGICPID=101 LD_PRELOAD='getpid.so' ./vulnerable-openssl/apps/openssl s_client -connect db.debian.org:443 )

El parche ha sido enviado a Wireshark con el objetivo que en el futuro forme parte del mismo. Allí puede encontrarse el parche contra la versión en desarrollo, en particular con la revisión 25765 del SVN.

Cosas que pueden mejorarse
Nosotros (los otros desarrolladores y yo) detectamos durante el proceso muchas cosas que pueden ser mejoradas,pero por las que no haremos nada. Por lo que si te interesa contribuir, te recomendamos que empieces por estos items y que envíes los parches al Bugzilla de Wireshark:

Cuando los paquetes están desordenados, el decifrado se detiene.
El ataque de fuerza bruta debería correr en un proceso aparte (y con una barra de progreso).
Se debería chequear el largo de las llaves antes de probarlas.
El parche implementa también los campos de los parámetros públicos de DH en el display del paquete. Este feature está incompleto.


Autores
Paolo Abeni
Luciano Bello
Maximiliano Bertacchini

Este trabajo fue parcialmente apoyado por Si6 Labs en CITEFA, Argentina.

Enlaces:
http://metasploit.com/users/hdm/tools/debian-openssl/

Fuente:
http://www.lucianobello.com.ar


Guardar publicación en PDF

Otras noticias de interes:

 Problema de seguridad en Android
Se ha descubierto un error de validación a la hora de manejar los permisos encargados de verificar el acceso a la cámara y al audio (Manifest.permission.CAMERA y Manifest.permission.AUDIO_RECORD respectivamente) en Andorid. Esto podría ser aprovechado por un atacante para obtener grabaciones de audio y video sin el consentimiento del usuario.
 ¿Formato JPEG patentado ?
La empresa Forgent Networks Inc. reclama tener una patente sobre la tecnología de compresión de datos en la que se base el estándar (hasta ahora libre) de gráficos JPEG.
 FLISoL 2010 [Valencia] ya tiene su sistema de registro
El Festival Latinoamericano de Instalación de Software Libre (FLISoL) es el evento de difusión de Software Libre más grande en Latinoamérica.
 YA HA APARECIDO EL LIBRO HACKERS 4 DE MCGRAW-HILL
El mundo digital avanza rápidamente. Cada día aparecen nuevas herramientas, técnicas y metodologías que utilizan los hackers para introducirse en todo tipo de sistemas y redes. El bestsellers Hackers se actualiza una vez más para tratar las últimas tecnologías y técnicas en el apasionante mundo de la seguridad. Y es que ya ha salido al mercado Hackers 4, el libro de hacking más vendido de la historia. Los autores siguen siendo los componentes de Foundstone, y McGraw-Hill, la editorial que lo publica al español. 800 páginas con CD, al precio de 45 euros.
 Edward Snowde, El hombre que reveló la red de vigilancia de EE.UU.
Edward Snowden, de 29 años, es descrito por el periódico como un ex-asistente técnico de la CIA que actualmente trabaja para el contratista de defensa Booz Allen Hamilton.

Indique que busca!!!


Redes sociales

Agregame a tus círculos

Sigueme en Twitter

Agregame a tu lector de RSS



Categorías




blog roll


Nube de tags

  • explotando

  • dsa

  • cómo

  • romper

  • pfs

  • ssl

  • edh

  • xombra

  • ubuntu

  • linux

  • fedora

  • blog

  • web

  • internet

  • gentoo

  • debian

  • mint

  • gnu

  • sabayon

  • libre

  • fice

  • thunderbird

  • firefox

  • mozilla

  • vaslibre

  • tware

  • opensource

  • sl

  • centos

  • chrome

  • bug

  • noticia

  • tecnologia

  • computer

  • system

  • php

  • mysql