Mostrando entradas con la etiqueta vulnerabilidades. Mostrar todas las entradas
Mostrando entradas con la etiqueta vulnerabilidades. Mostrar todas las entradas
POODLE Attack (die SSLv3!)
Leyendo noticias de seguridad, me topé con este interesante ataque que afecta la versión SSLv3 y permite a un atacante desencriptar porciones de tráfico HTTPS, como por ejemplo cookies.

Últimamente al pobre protocolo no le ha ido muy bien, basta recordar el mortal Heartbleed descubierto hace unos meses, y otros ataques como BEAST y CRIME descubiertos hace un par de años, o Lucky-13, por citar algunos.

Una de las personas que participó en el descubrimiento de esta vulnerabilidad es Thai Duong, quien también participó (junto a Juliano Rizzo) en el descubrimiento de BEAST y CRIME. En este caso, Thai trabajó con otros empleados de Google (Bodo Möller y Krzysztof Kotowicz) para el descubrimiento.

Como mencioné al principio, el ataque afecta sólo a SSLv3, el cual está obsoleto desde hace unos años, pero que todavía es soportado por muchos servidores y browsers por compatibilidad. La versión más actual del protocolo es TLSv1.2, pero los clientes pueden negociar con el servidor una versión inferior del protocolo, en caso de no soportar esta última.

El ataque no es tan directo como Heartbleed, ya que es necesario realizar previamente un ataque Man-in-the-Middle (MiTM). Pero un ataque MiTM no es tan complejo si tenemos acceso a la red de la víctima, o si accedemos a una red WiFi pública (hoteles, bares, etc).

Los detalles del ataque los pueden leer en el paper original, pero básicamente explota la encripción CBC utilizada en SSLv3, debido a la forma en que este algoritmo utiliza los paddings para completar bloques.

Según comentan en el paper, la única forma de evitar este ataque es eliminando el uso de SSLv3. En el mismo, proponen utilizar el mecanismo TLS_FALLBACK_SCSV para la negociación, en clientes y servidores. Utilizando TLS_FALLBACK_SCSV, el servidor siempre utilizará la versión más actual del protocolo habilitada en el mismo, rechazando cualquier intento de conexión con una versión inferior. Obviamente, si el servidor no soporta una versión superior a SSLv3, entonces será vulnerable igual.

Existen varios mecanismos para averiguar qué versiones de SSL/TLS soporta un servidor. Les dejo un par para que verifiquen sus servidores.

Una forma simple, es utilizar la capacidad de ejecución de scripts de NMAP, el cual todo administrador de seguridad tiene instalado:
$ nmap --script ssl-enum-ciphers -p 443 <IP Servidor>
Algo más avanzado es utilizar una herramienta dedicada a chequear conexiones SSL, denominada SSLyze, la cual pueden descargar aquí. Esta herramienta está escrita en python y se puede ejecutar sin instalarse:
$ python sslyze.py --regular <IP Servidor>:443
Finalmente y también muy interesante, es la herramienta web provista por Qualys, la cual chequea múltiples vulnerabilidades SSL, así como lista los protocolos soportados y genera un reporte. La misma se accede aquí.
Nueva extensión para Firefox: Firesheep

La llegada de Firesheep (una extensión de Firefox que automatiza algo que se podía hacer manualmente utilizando Wireshark desde hace años) revolucionó el mundo. Firesheep permite capturar cookies de otras personas esnifeando redes inseguras para luego loguearse en sus cuentas Web. Por ejemplo, me conecto a una red insegura (como una red inalámbrica abierta), luego "pepito" (que se encuentra conectado a la misma red) se loguea en facebook, utilizando Firesheep obtengo la cookie de "pepito" en facebook y a continuación entro a la cuenta de "pepito" en facebook. Así de simple.

El éxito de esta herramienta radica en que basta hacer un par de clics para robar una cuenta Web, algo al alcance de cualquiera, a diferencia de: abrir Wireshark; capturar tráfico de la red insegura; filtrar la captura; copiar el contenido de una cookie; insertar la cookie en el navegador; y finalmente ingresar al sitio.

Debido a esto, creo, va a provocar un caos en las redes inalámbricas abiertas ya que ahora cualquier afiliado al PAMI te hace un session hijacking con 2 clics, que bien :). Aunque por el momento sólo está disponible para Windows y Mac OS, que mal :(

Cabe destacar que esto no es sólo una vulnerabilidad de las redes inalámbricas abiertas, sino que aplica también para las redes cableadas no switcheadas (y switcheadas también, haciendo un previo ataque ARP poisoning).

Pueden ver un video sobre esta herramienta en acción aquí.

Lo más interesante de esta clase de vulnerabilidad es que pone en tela de juicio la seguridad de la llamada """Web 2.0""" y el nivel de adopción de SSL. Un estudio realizado por Digital Society clasificó el nivel de seguridad de los sitios más importantes como Facebook, Google, Twitter, Hotmail, etc. Les recomiendo leer este excelente artículo: Online services security report card. Como siempre, Google a la vanguardia:



Espero que sirva para concientizar, y la próxima vez que se conecten a una red inalámbrica abierta no envíen credenciales sin utilizar HTTPS!

Saludos!
DLL Hijacking: otra forma de explotar aplicaciones en Windows
Desde hace unos días hay mucho revuelo concerniente a la publicación de HD Moore (creador de Metasploit) sobre la ejecución de código a través de DLL Hijacking. Prácticamente todos los blogs de seguridad han mencionado el tema y ya se subieron más de 20 exploits en Exploit Database para aplicaciones como Power Point, Firefox, Visio, Groove, Winamp, Google Earth, Photoshop y muchas más!

De qué trata DLL Hijacking y por qué afecta a tantas aplicaciones? Realmente es algo muy simple. DLL Hijacking se aprovecha de la forma en que se buscan las librerías dinámicas (DLL) en el filesystem cuando un programa intenta cargarlas utilizando la función LoadLibrary. Lo que hace un atacante es crear una librería dinámica propia, que se llame igual a alguna de las que carga un dado programa cuando intenta abrir un determinado tipo de archivo. Como al momento de abrir el archivo (por ejemplo un pps) el directorio de trabajo es el del archivo, si el atacante planta su librería ahí, el programa cargará esa en lugar de la original... gualá!!!

Este ataque tiene sentido cuando tenemos archivos compartidos. Supongamos que tenemos un servidor de archivos basado en CIFS (o SMB, los clásicos shares de Windows) donde distintas personas pueden leer y escribir. Ahora supongamos que Malicioso crea un pps en el servidor y le dice a Josesito "mira la presentación que puse en tal directorio". A su vez, Malicioso crea una librería dinámica que sabe que Power Point intentará cargar al abrir el pps. Si Josesito no es desconfiado y es lo suficientemente curioso, abrirá la presentación directamente desde el servidor de archivos (por experiencia, todos hacen eso, nadie copia las cosas a su disco). Al hacer esto, el Power Point de Josesito cargará la librería creada por Malicioso en lugar de la original, permitiendo a Malicioso ejecutar lo que quiera con los permisos de Josesito!

Para jugar un rato, descarguen alguno de los exploits que figuran en la sección Local Exploit de Exploit Database. Muchos traen la explicación de cómo compilar las librerías, pero les comento que pueden hacerlo con el gcc para Windows de la siguiente forma:
gcc -shared -o <nombre-libreria-hijack>.dll <codigo>.c
Entonces, es un problema de Windows? nop, esta vez Windows se salva. El problema es de las aplicaciones que no especifican correctamente el path a sus librerías. Como pueden ver en el manual de la función Load Library, ésta toma como parámetro el nombre de una librería y la carga en memoria. Si no se especifica path a la misma, la función realiza una búsqueda estándar, es decir, se busca la librería en directorios predeterminados. El orden de búsqueda depende de si "Safe DLL search mode" está activo o no. La clave de registro que activa/desactiva el modo safe se encuentra en HKLM\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode (en XP y 2000 SP 4 viene deshabilitado por default).
Si SafeDllSearchMode está habilitado, el orden de búsqueda es el siguiente:
1. El directorio desde donde se carga la aplicación.
2. El directorio de sistema.
3. El directorio de sistema de 16-bit.
4. El directorio de Windows
6. Los directorios que están listados en la variable de entorno PATH.
Si SafeDllSearchMode está deshabilitado, el orden es el siguiente:
1. El directorio desde donde se carga la aplicación.
2. El directorio actual.
3. El directorio de sistema.
4. El directorio de sistema de 16-bit.
5. El directorio de Windows
6. Los directorios que están listados en la variable de entorno PATH.
Este orden de búsqueda estándar se puede alterar utilizando la función LoadLibraryEx o bien con SetDllDirectory, con las cuales especificamos dónde buscar primero.

Como se darán cuenta, esta vulnerabilidad afecta a toda aplicación que no explicite el path a sus librerías, y por ello es que debe haber cientos o miles de aplicaciones perjudicadas.

Ahora, si es algo tan simple, cómo es que nadie lo descubrió antes? Bueno, si lo hicieron, en F-Secure dicen que se publicó sobre esta vulnerabilidad hace como 10 años, pero ahora surgió el revuelo porque HD Moore publicó un kit que permite encontrar rápidamente aplicaciones vulnerables. Pueden leer y descargar el kit en Exploiting DLL Hijacking Flaws y Better, Faster, Stronger: DLLHijaAuditKit v2.

Si bien mencioné que el exploit tiene sentido desde shares de Windows, otras formas de utilizarlo es desde archivos comprimidos, pen-drives, y WebDav (extensión de MS para HTTP en IIS).

MS publicó hace unos días un advisory para administradores donde explican algunas medidas a tomar para minimizar los riesgos. Entre las soluciones provisionales proponen:
- Deshabilitar la carga de librerías desde WebDAV y shares remotos.
- Deshabilitar el servicio WebClient.
- Bloquear los puertos 139 y 445 usando firewall. Claro que esto los dejará sin los shares...
Por supuesto que deberán estar atentos a los parches que publiquen los distintos proveedores para solucionar este problema.
También publicaron una guía para programadores sobre lo que pueden hacer para proteger sus aplicaciones contra el DLL Hijacking. Básicamente las recomendaciones son:
- Especificar el path completo a la librería siempre que sea posible.
- Usar DLL Redirection o un manifest para asegurarse de que están utilizando la DLL correcta.
- Asegurarse de que "safe DLL search mode" esté habilitado.
- Eliminar el directorio actual del path de búsqueda llamando la función SetDllDirectory con un string vacío ("").
- No usar la función SearchPath para obtener el path de una librería a menos que "safe process search mode" esté habilitado.
- No asumir versión de sistema operativo basados en lo retornado por LoadLibrary.

Espero haberlos iluminado un poco sobre el tema y sobre todo espero que los programadores tomen conciencia de este tipo de ataque a la hora de programar.
news: HTML 5 no hay acuerdo, agujero en ActiveX, iPhone hackeado
Y si bien la semana pasada nos alegrábamos por la incorporación de HTML 5 en Firefox 3.5, hace varios días vengo leyendo que los desarrolladores de los distintos browsers todavía no se han puesto de acuerdo sobre cuáles deben ser los codecs a utilizar para la reproducción multimedia. Si bien Mozilla y Opera han optado por Ogg Theora, Apple y Google favorecen a H.264/MPEG-4 AVC. Dado que Google soportará ambos codecs, sólo Apple sería el que no soporte Ogg Theora. Por su parte Microsoft no ha anunciado ninguna intención de soportar HTML 5...
Como siempre, la estandarización en cuanto a la web sigue siendo complicada y los fabricantes no se ponen de acuerdo. Espero que esto cambie porque los que terminan sufriendo el problema son los desarrolladores de aplicaciones web...

-----------------------------
Cambiando de tema, hoy encontré un advisory que publicó MS ayer sobre una vulnerabilidad en un control ActiveX de Microsoft Video que ya está siendo explotada, pero para la cual aún no existe parche. Si todavía sos tan kamikaze como para seguir utilizando Internet Explorer en lugar de un browser de verdad, te aconsejo que leas y apliques lo dicho en la página de MS. Como no hay parche disponible, lo único que se puede hacer es desactivar dicho control (el cual al parecer no sirve para nada más que ser atacable).

-----------------------------
La última de las noticias de este post se refiere a algo que leí hace unos días. Según distintas páginas, Apple está trabajando para arreglar una vulnerabilidad, reportada de forma privada, que podría permitir a un atacante instalar y ejecutar remótamente software no firmado con permisos de root.
El ataque en cuestión utiliza una debilidad en el manejo de mensajes de texto recibidos por SMS... siiii te hackean por SMS!!! re groso!!!
Si vivis en un país en el que el iPhone es comprable, o si tenes el suficiente dinero para mostrarles a los demás que tenes un teléfono mejor que la porquería del usuario promedio, seguro te interesará leer más en infoworld, f-secure, o slashdot.