Mostrando entradas con la etiqueta MD5. Mostrar todas las entradas
Mostrando entradas con la etiqueta MD5. Mostrar todas las entradas

viernes, 20 de abril de 2018

Fallo de seguridad CRÍTICO sin parchear en dispositivos de almacenamiento LG

Aviso importante: Si ha instalado un dispositivo de almacenamiento en red LG, debe desconectarlo inmediatamente.



Un investigador de seguridad de la empresa VPN Mentor ha descubierto una vulnerabilidad de ejecución de código remoto en varios modelos de dispositivos LG NAS. Este fallo podría permitir a un atacante comprometer los dispositivos vulnerables y robar datos almacenados en ellos.

Los dispositivos NAS son unidades de almacenamiento de archivos conectadas a una red que permite a los usuarios almacenar y compartir datos con varios equipos.

El fallo en cuestión, reside en la validación incorrecta del parámetro "contraseña" de la página de inicio de sesión para la administración remota del dispositivo. Explotando este campo, los atacantes pueden pasar comandos arbitrarios del sistema.

El modo de actuar más simple para la explotación del fallo es inyectando una shell simple con la que poder ejecutar los comandos con mayor comodidad.



Con el uso de la shell, los atacantes pueden incluso descargar la base de datos completa del dispositivo NAS, incluidos los correos electrónicos, los nombres de usuario y las contraseñas hasheadas en MD5.

Dado que el cifrado MD5 es muy débil y se puede romper con facilidad, un atacante remoto podría obtener acceso autorizado y robar datos sensibles almacenados en los dispositivos vulnerables.

Otra manera de actuar sería agregar un nuevo usuario al dispositivo mediante los comandos ejecutados en la shell, e iniciar sesión con esas credenciales.

Este último modo de actuar lo vemos en el siguiente vídeo:




Dado que LG aún no ha lanzado una actualización que solucione el problema, se recomienda a los usuarios que posean alguno de estos dispositivos, que lo desconecte hasta que el fallo sea parcheado. 
Para los usuarios que no quieran prescindir del uso de su dispositivo NAS, se recomienda asegurarse de que su dispositivo no es accesible desde Internet, que estén protegidos por un firewall que solo permita el acceso a ellos por un grupo confiable de IPs y que observen periódicamente cualquier actividad sospechosa en la verificación de usuarios y contraseñas.

Daniel Púa
@dpua_
dpua@hispasec.com

Más información:

Reporte de VPN Mentor:






jueves, 5 de octubre de 2017

Try Catch Stack Overflow

Interesante estudio de varios investigadores del Virginia Tech, en el que ponen en entredicho la calidad del código que podemos encontrar en sitios como StackOverflow y similares, desde el punto de vista de la seguridad.




Todo aquel que ha tenido que tirar alguna que otra línea de código (programar), se habrá encontrado en una situación en la que necesitaba la ayuda de alguien para soslayar un problema determinado. “¿Cómo implemento una conexión SSL?”, “¿Cómo hago para comprobar la validez de un certificado x.509?”, “¿Por qué no estudié gastronomía en vez de informática?”.

A menudo, un golpe de buscador nos arroja un listado de recursos sobre los que indagar en la implementación que “encaje” en nuestro código y lo haga funcionar. Sobre esta suerte de mecanismo de consultoría exprés se ha abusado tanto que incluso algunos gestores han llegado a creer que programar se reduce a buscar un trozo de código y pegarlo en un editor de texto (naturalmente, el Notepad).

Esa creencia, tanto por parte de la dilatada imaginación de algunos gestores como de la poca pericia de algunos junta-palabras-reservadas, hace que se construya una falsa concepción de lo que significa el sacro arte del diseño y programación de computadores digitales basados en la arquitectura Von Newmann (o en la Harvard). Es tan de chiste la cosa, que incluso existen librerías que atrapan una excepción y te buscan la traza en StackOverflow para que directamente copies la mejor respuesta. Verlo para creerlo.

Imagen de: https://github.com/gautamkrishnar/tcso



¿Cuál es el problema?

Basado en el estudio sobre las preguntas y respuestas dadas en torno al lenguaje y plataforma Java, los investigadores han encontrado multitud de errores en respuestas populares que contienen vulnerabilidades de seguridad. El problema, señalan, no se encuentra en las librerías usadas –que no deja de ser reutilización legítima de código-, sino en que estas no se usan de forma segura, dando lugar a la exposición de riesgo por falta de pericia en su uso.

Hay ejemplos de todo tipo, como sugerir deshabilitar la protección contra ataques CSRF del framework Spring para resolver un problema en la autenticación o auténticas chapuzas glorificadas acerca de la implementación correcta de criptografía en la aplicación, como la generación de claves sin la entropía adecuada o uso de algoritmos ya desfasados y retirados desde hace mucho, mucho tiempo.

No nos confundamos. StackOverflow es un recurso maravilloso para un programador; incluso debería tener su propia festividad en el calendario. En él puedes encontrar librerías, consejos, experiencias y algoritmos que jamás hubieses encontrado de no ser porque un colega ya lo ha hecho antes que tú. Lo que realmente sugieren en este estudio es que todo, absolutamente todo, ha de ser pasado por el filtro del sentido común y la capacidad crítica de cada uno. Herramientas que parecen inmunes ante el virus de la prisitis urgentia.

Cuando ves una respuesta que tiene más de 10 años en la que se hace uso del hash MD5 para almacenar hashes de contraseñas, es evidente que no es la respuesta adecuada. Hemos de ser precavidos, levantar el pie del acelerador y observar con detenimiento tareas que son críticas y podrían devenir en quebraderos de cabeza en un futuro. No en vano, existe código escrito que no ha pasado a revisión en décadas, con vulnerabilidades que estaban allí y de las que nadie se percató.


¿Os acordáis del infame ‘gotofail’?



David García
dgarcia@hispasec.com
@dgn1729

Más información:

Secure Coding Practices in Java: Challenges and Vulnerabilities:






domingo, 28 de mayo de 2017

Publicada la píldora formativa Thoth 44 "¿Cómo funciona el hash MD5?"

Se ha publicado en el canal YouTube de la UPM la píldora formativa 44 del proyecto Thoth que lleva por título "¿Cómo funciona el hash MD5?".

Las siglas MD5 corresponden a Message Digest número 5, un algoritmo de resumen desarrollado en 1991 por Ron Rivest. Aunque ha sido muy popular, entre otras razones por su alta velocidad, desde sus comienzos se detectaron algunos fallos en el diseño. Con el paso de los años y el aumento en la capacidad de cómputo, estos fallos se han convertido en graves, razón por la cual hoy en día no es recomendable su uso. El hash MD5 entrega un resumen de 128 bits, esto es 32 caracteres hexadecimales, independientemente del tamaño que tenga el archivo de entrada.

Enlace en YouTube a la píldora Thoth 44 "¿Cómo funciona el hash MD5?"

El proyecto Thoth publica de manera periódica píldoras formativas en seguridad de la información. Pueden ser tratados como complementos formativos basados en el concepto de vídeos cortos (con una duración en torno a los cinco minutos), muy didácticos y sobre temas muy específicos.

Todos los vídeos del proyecto Thoth cuentan con un archivo srt original de subtítulos incluido en YouTube, importante para personas con limitaciones auditivas, así como un archivo podcast mp3 que puede descargarse desde el sitio web, válido en este caso tanto para personas con limitaciones visuales como para quienes deseen realizar solamente la audición de estas lecciones.

Puedes acceder a la documentación en pdf, el podcast en mp3 y también al vídeo de esta nueva píldora y de las 40 píldoras anteriores, desde la página web del Proyecto Thoth, que te permite además una búsqueda mediante los siguientes cinco filtros:
1) Fundamentos de seguridad
2) Criptografía clásica
3) Historia de la criptografía
4) Matemáticas en criptografía
5) Criptografía moderna

Como siempre, quedamos a la espera de tus comentarios en YouTube, muy importantes y necesarios para la supervivencia de este proyecto de formación y difusión masiva y gratuita.

La próxima entrega del proyecto Thoth será la píldora número 45 de título "¿Cómo funciona el hash SHA-1?".


Jorge Ramió, Alfonso Muñoz
Directores Proyecto Thoth


domingo, 29 de enero de 2012

Microsoft, ¿No quedamos en dejar de utilizar MD5? (y II)

Describíamos en la entrega anterior un ataque de elevación de "serie" en Windows cuyo mayor obstáculo era perpetrar un ataque ataque "second-preimage" contra MD5. Veamos por qué eso no es tan complicado.

Esquema de una operación MD5.
Fuente: Wikipedia
La función de hash criptográfico MD5 (Message-Digest algorithm 5) lleva años mostrando signos de debilidad, inadecuado para los tiempos que corren. Si bien se ha llevado varios varapalos desde su creación, hace tiempo recibió lo que se pudo considerar su golpe de gracia: se podían crear arbitrariamente dos flujos de datos que resulten en el mismo hash o firma.

Desde su diseño en 1991 por Ron Rivest (uno de los implementadores de la criptografía pública), MD5 ha sido tomado prácticamente como estándar de facto para control de hash para firma de ficheros. Por diseño, convierte cualquier flujo de datos de cualquier tamaño en una serie de 128 bits diferente. Esto permite crear una "firma" corta que identifique a un archivo o flujo de datos. En la teoría, reduce un conjunto infinito a otro finito de 2 elevado a 128, con lo que las colisiones serían siempre posibles, pero en la práctica esta cantidad ha sido suficiente.

Desde 1996 ya se vienen recomendado otros algoritmos que han demostrado mejores capacidades (como el SHA en sus distintas variantes) pero su implantación es tan fuerte que, como muchos otros estándares en informática, descartarlo es un proceso lento y a veces incluso "doloroso".

El enemigo natural de estos algoritmos son las colisiones. Es decir, que varios ficheros tengan una misma firma identificadora. Esto sería como si dos personas tuvieran el mismo número de DNI o tarjeta de la seguridad social: podrían hacerse pasar uno por el otro. La firma MD5 también es usada en algunos casos para realizar hashes que a posteriori son firmados con claves privadas, por lo que su debilidad también salpicaría a la criptografía pública. En 2004 se consiguió crear dos certificados  X.509 distintos con igual hash MD5.

Además de las colisiones, MD5 tiene otros problemas. Para una firma o hash criptográfico, por definición, debe ser matemáticamente muy complicado realizar el proceso contrario: calcular los datos que produjeron el hash. Así, por esta razón, muchos programas almacenan el hash MD5 de las contraseñas de usuarios en las bases de datos. Hace algunos años se popularizaron las tablas rainbow con información preprocesada sobre hashes MD5. Esto, en teoría, permite a alguien que tenga acceso a esos hashes, realizar el proceso inverso en tiempo razonable, o sea: pasar del hash MD5 a la palabra que lo generó. Se ha popularizado como método eficaz de "crackeo" para contraseñas de este tipo, con lo que el almacenamiento de credenciales en este formato también se considera ya inseguro.

En verano de 2005 se dio un caso realmente curioso. Un australiano consiguió anular una multa de tráfico ante la imposibilidad de las autoridades de tráfico de demostrar fehacientemente que la imagen registrada por un radar no había sido alterada. El sujeto circulaba por una carretera que estaba siendo controlada con un radar. Cuando fue cazado y su coche "fotografiado", el abogado que representaba al amonestado recurrió la denuncia, argumentando que no se había probado que la imagen obtenida por la cámara asociada al radar no hubiese sido modificada de ninguna forma. Las autoridades australianas de tráfico respondieron que se utilizaba el algoritmo MD5 para obtener el hash de las imágenes obtenidas. No encontraron a ningún perito que demostrase ante el tribunal la validez de dicho algoritmo, y por tanto se libró de la multa.

Marc Stevens, Arjen Lenstra, y Benne de Weger le dieron el tiro de gracia en 2008. Diseñaron un método por el que, añadiendo un puñado de bytes a un archivo, pueden hacer que su firma, su hash MD5, sea idéntico a otro fichero arbitrario. La diferencia en este caso es que las colisiones pueden ser elegidas, provocadas sobre dos ficheros cualesquiera. Lo consiguieron con una sola máquina en menos de dos días. Un tiempo más que razonable. Ese mismo año, investigadores consiguen hacer que cualquier certificado SSL parezca válido, usando la firma MD5. Usaron la potencia de 200 consolas PlayStation3 para conseguir su objetivo.

Todas estas son pequeñas razones por las que nadie debería usar MD5 para asuntos medianamente serios. Y menos Microsoft.

Más información:

17/08/2005 Utilizar MD5 para recurrir las multas de tráfico

High-Speed Collisions

Investigadores consiguen hacer que cualquier certificado SSL parezca válido


Sergio de los Santos
Twitter: @ssantosv

viernes, 27 de enero de 2012

Microsoft, ¿No quedamos en dejar de utilizar MD5? (I)

Cesar Cerrudo ha presentado un método que podría ser usado para elevar privilegios en Windows de forma relativamente "sencilla". Solo es necesario realizar un ataque "second-preimage". O sea, a partir de un fichero de sistema, crear otro con un mismo hash MD5. Veamos exactamente cómo funciona.

Instalaciones en Windows

En los últimos sistemas operativos de Microsoft, el directorio C:\Windows\Installer\ contiene ficheros de instalación de Windows (.msi y .msp). Ahí encontrarás los instaladores de los programas que utilizas en tu sistema. Los nombres son aleatorios.


Ejecutando como usuario normal estos ficheros, comenzará la (re)instalación de los programas... Se puede comprobar como ciertos programas se comportan diferente cuando son lanzados desde esa ruta o cuando son lanzados desde cualquier otra. En algunos paquetes oficiales de Microsoft, el intento de elevación (UAC) aparecerá en diferentes momentos de la instalación y en otros, no aparecerá.

Comprobarlo es sencillo. Basta con ejecutar como usuario cualquier msi mientras se aloja en C:\Windows\Installer\. Luego, lo copiamos en otra localización (por ejemplo F: en la imagen) y lo intentamos lanzar.


Puesto que ocurre con pocos paquetes y el usuario no tiene permisos para escribir ni modificar C:\Windows\Installer\, esto queda como un comportamiento "curioso". Lo peor viene cuando se estudia qué ocurre entre bambalinas en el sistema al lanzar alguno de estos instaladores oficiales de Microsoft. En el ejemplo, he probado con Microsoft Office Publisher MUI (English) 2007.

Parece que este y otros paquetes de este tipo elevan privilegios automáticamente durante unos momentos. Como se aprecia en la imagen, se crea un fichero del tipo Hx#cuatro números aleatorios en hexadecimal#.tmp en el directorio %temp% (o sea, c:\users\sergio\appdata\local\temp en el ejemplo) y además es lanzado por SYSTEM.



Un posible ataque

Si conseguimos recuperar ese fichero temporal (sólo está accesible unos instantes) comprobamos que se trata de una instancia de la librería HXDS.dll. En la imagen se comprueba cómo lo he hecho.



Esta librería la carga msiexec.exe (el instalador de ficheros .msi) cada vez que se lanza un proceso de instalación. A veces la lanza como el usuario y a veces... como SYSTEM, y aquí está el problema. El directorio temporal de cada usuario puede ser modificado por él mismo (tiene permisos totales sobre él). Así que el usuario podría sustituir ese fichero temporal por otro código y se lanzaría como SYSTEM cuando se ejecutase un MSI alojado en C:\Windows\Installer. Ya tenemos la elevación.

La restricción al ataque

Pero en teoría Microsoft lo tiene en cuenta y pone una pequeña restricción: Msiexec.exe en realidad conoce el hash MD5 de HXDS.dll (lo almacena temporalmente en c:\windows\installer\) y lo compara con la copia de la instancia de la DLL creada en el temporal. Si no coincide, no lanzará el instalador y por tanto, la DLL.

El posible ataque

Si se sustituye la DLL oficial con un ejecutable cuyo hash coincida con el hash MD5 que espera msiexec.exe (en principio en mi sistema es 9e7370cc3d6a43942433f85d0e2bbdd8), entonces el ataque será posible y la elevación viable (se ejecutará como SYSTEM si lanzamos el MSI desde c:\windows\installer como usuario).

Por tanto el éxito queda supeditado la dificultad de encontrar un ataque llamado "second-preimage". Lo que comúnmente se entiende por una colisión MD5 deseada entre dos flujos de datos. Quizás para atacantes "de a pie" no sea posible, pero para otras organizaciones de mayor envergadura, es totalmente viable, puesto que MD5 está roto desde hace tiempo. Si, el mayor problema para el atacante es realizar un ataque second preimage al MD5, solo es necesaria cierta cantidad de tiempo y capacidad de cómputo.

Hay que tener en cuenta que no ocurre con todos los paquetes ejecutables (no en todos crea la copia de la DLL en el directorio temporal y la lanza como SYSTEM). Sólo lo he conseguido por ahora con paquetes de Microsoft Office, que ejecutan varios procesos de msiexec.exe como SYSTEM.

Microsoft, ¿No quedamos en dejar de utilizar MD5?

Ahora que se cumplen 10 años de la Trustworthy Computing, hay que recordar que MD5 está "prohibido" en Microsoft dentro de su Security Development Lifecycle desde 2005. No se deben usar funciones criptográficas consideradas débiles... y no se nos ocurre una función más débil que MD5 como control para restringir una ejecución de código. Veremos por qué en la siguiente entrega.

Más información:

A free Windows Vulnerability for the NSA


Sergio de los Santos
Twitter: @ssantosv