Archive for 30 junio 2010

Actualizaciones de seguridad para Adobe Reader y Acrobat

30/06/2010

Parece que el Reader esta mas bien para tirar a la basura y escribirlo de cero…. aca van otras 17

Adobe ha publicado una actualización para corregir 17 vulnerabilidades en Adobe Reader y Acrobat en diferentes plataformas, que podrían permitir a un atacante ejecutar código con los permisos con los que se lance la aplicación afectada.

Las versiones afectadas son Adobe Reader 9.3.2 (y anteriores) para Windows, Macintosh y UNIX, Adobe Acrobat 9.3.2 (y anteriores) para Windows y Macintosh; y Adobe Reader 8.2.2 (y anteriores) y Adobe Acrobat 8.2.2 (y anteriores) para Windows y Macintosh.

Las vulnerabilidades anunciadas residen en 17 problemas diferentes de corrupción de memoria, tratamiento de punteros o indexado de matrices que pueden dar lugar a ejecución de código arbitrario.

Adobe recomienda a los usuarios de Reader y Acrobat la actualizaciones a las versiones recientemente publicadas empleando la opción de actualización automática de los productos o bien descargándolas desde la propia web de Adobe: http://www.adobe.com/downloads/

=-=-=-=-=
Powered by Blogilo

Anuncios

Dos vulnerabilidades en libpng

30/06/2010

Se han descubierto dos vulnerabilidades en libpng que podrían ser aprovechadas por un atacante local para provocar una denegación de servicio o comprometer los sistemas que usen esta librería.

El formato de imagen Portable Network Graphics o PNG se usa como una alternativa a otros formatos de imagen, como el popular GIF (Graphics Interchange Format). El uso de este tipo de imágenes cada vez es más habitual y libpng es una librería disponible para desarrolladores de aplicaciones para soportar de forma sencilla el formato de imagen PNG. Cualquier aplicación o sistema que haga uso de esta librería puede estar afectada.

El primer problema reside en una corrupción de memoria cuando se procesa una imagen con una fila mayor que la altura indicada en la cabecera. Un atacante podría aprovechar este problema para ejecutar código arbitrario mediante una imagen maliciosa.

La segunda vulnerabilidad, de denegación de servicio, está provocada por una fuga de memoria al procesar imágenes con bloques (chunks) sCAL específicamente construidos.

Estos problemas afectan a las versiones de Libpng anteriores a la 1.4.3 y a la 1.2.44. Se recomienda actualizar a Libpng versión 1.4.3 o 1.2.44, disponible desde:

http://www.libpng.org/pub/png/libpng.html

=-=-=-=-=
Powered by Blogilo

Como forzar fsck (FileSystem ChecK) en el siguiente inicio

30/06/2010

Si quieres forzar fsck a que se ejecute en el proximo inicio, todo lo que hay que hacer es crear un archivo llamado forcefsck en / . Si este archivo esta presente durante el inicio, fsck se ejecuta en la particion.

# touch /forcefsck

Ahora reinicia y cuando inicie, fsck se ejecutara.

# reboot

=-=-=-=-=
Powered by Blogilo

Denegación de servicio en MySQL

30/06/2010

Se ha descubierto una vulnerabilidad en MySQL que podría ser utilizada por un atacante para provocar una denegación de servicio.

MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario que se desarrolla como software libre y cuenta con millones de implantaciones en todo el mundo.

El problema reside en el tratamiento de determinados comandos "ALTER DATABASE". Un atacante con permisos "ALTER" podría alterar el nombre del directorio usando caracteres especiales y provocar que el directorio de sistema se usase como directorio de la base de datos. Esto volvería todo el sistema inusable.

Se ven afectadas las versiones de MySQL anteriores a la 5.1.48, a la 5.5.5 y a la 6.0.14. Se recomienda actualizar a MySQL versiones 5.1.48, 5.5.5 o 6.0.14, disponible para descarga desde:

http://dev.mysql.com/downloads/

=-=-=-=-=
Powered by Blogilo

5 interesantes novedades de GCC 4.5

30/06/2010

El Proyecto GNU anunció la publicación de la nueva versión de su suite de compiladores: la GNU Compiler Collection (GCC) 4.5.0. Ésta, como es natural, trae consigo nuevas características y mejoras con respecto a la serie 4.4.x. Pues a continuación te listo cinco que hallé de lo más interesante:

1. Multiprecisión

Para ser compilado, ahora GCC solicita la biblioteca Multiprecision (MPC) para hacer aritmética de números complejos con un nivel de precisión arbitrariamente alto y ofrecer resultados con redondeo adecuado. Como efecto colateral, GCC será capaz de generar resultados correctos independientemente de la implementación de la biblioteca matemática o la precisión de punto flotante de la plataforma donde se realice la compilación.

2. Optimización

Hay un nuevo paso de optimización de código. GCC ahora intentará cambiar el prototipo de las funciones para evitar el paso de parámetros que presume no serán utilizados. De este modo, sólo pasarán las partes relevantes de las estructuras de datos y se convertirán los argumentos pasados por referencia a argumentos pasados por valor cuando sea posible. Esta opción de optimización estará habilitada a partir de la bandera -O2 del compilador, así como en la optimización para reducir el tamaño del código con -Os, aunque puede invocarse manualmente a través de la bandera -fipa-sra.

3. Detección de errores

Si GCC encuentra que la directiva #include no incluye el nombre de la biblioteca, entonces terminará inmediatamente. Así ya no verás más esa interminable cascada de errores causada por declaraciones (e.g., macros, funciones) que no se encuentren definidas en ninguna parte.

4. Estándar ISO C++0x

Mejoras en el soporte experimental del estándar ISO C++0x. Entre ellas, soporte para raw strings literals, es decir, aquellas que no reconocen secuencias de escape, de C++ en este caso. Al igual que en lenguajes de scripts como Perl y Python, el soporte para raw strings hará que su tratamiento no sea una tarea engorrosa para el programador.

5. Plugins

Ahora es posible extender con mayor facilidad las funcionalidad del compilador sin tener que modificar el código fuente. ¿Cómo? Mediante plugins, al igual que hace mucho del software de escritorio que utilizamos hoy en día. Con la opción -fplugin=mi_plugin.so le pedirás a GCC que cargue el objeto compartido mi_plugin.so y lo ejecute como parte del compilador.

Comentario final

GCC versión 1.0 fue liberada el 23 de mayo de 1987, hace casi 24 años. Hoy, en su versión 4.5.0 llega con un excelente estado de salud: las mejoras que incluye no pueden decirnos lo contrario. Y esta es una gran noticia para el software libre.

=-=-=-=-=
Powered by Blogilo

Salto de restricciones a través de HTTP en Cisco ASA

29/06/2010

Cisco ha confirmado la existencia de una vulnerabilidad en dispositivos Cisco ASA, que podría permitir a un atacante remoto ejecutar scripts arbitrarios mediante peticiones http:

El problema reside al procesar los parámetros de entrada del usuario en Cisco ASA. Un atacante remoto podría aprovechar este error para ejecutar scripts arbitrarios a través de una redirección provocada por una inyección del tipo http://x.x.x.x/Location%3a%20http%3a%2f%2fwww%2eurl%2ecom

Cisco ha publicado la versión 8.1(2) del software destinada a corregir este problema, disponible desde:

http://www.cisco.com/cisco/web/download/index.html

=-=-=-=-=
Powered by Blogilo

Ejecución arbitraria de código en Adobe Acrobat Reader 9.x

28/06/2010

Se ha anunciado una vulnerabilidad en Adobe Reader y Acrobat, que podría permitir a un atacante lograr comprometer los sistemas vulnerables.

El problema reside en un error de corrupción de memoria en "authplay.dll". Un atacante podría aprovechar esta vulnerabilidad para ejecutar código arbitrario a través de un PDF que contenga un fichero SWF.

Como contramedida se recomienda eliminar o renombrar el fichero "authplay.dll" alojado habitualmente en "C:\Program Files\Adobe\Acrobat 9.0\Acrobat\authplay.dll".

=-=-=-=-=
Powered by Blogilo

Dos vulnerabilidades en OpenOffice.org

28/06/2010

Se han anunciado dos vulnerabilidades en OpenOffice.org, que podrían permitir a un atacante evitar restricciones de seguridad o comprometer los sistemas afectados.

El primer problema reside en un error en el uso del scripting IDE incorporado para explorar código python. Un atacante podría emplear esta vulnerabilidad para lograr la ejecución de código arbitrario.

El segundo problema consiste en que OpenOffice 2 y 3 se puede ver afectado por el el problema de renegociación de sesiones del protocolo SSL y TLS, anunciado en octubre del año pasado.

Se recomienda actualizar a OpenOffice.org versión 3.2.1 :

http://download.openoffice.org/index.html

=-=-=-=-=
Powered by Blogilo

Ejecución de comandos arbitrarios en Microsoft Windows XP y Windows Server 2003

28/06/2010

Tavis Ormandy ha publicado, en la lista de Full Disclosure, los detalles y prueba de concepto de una vulnerabilidad sin parche que permite ejecutar comandos arbitrarios a través de una URL. El fallo descubierto se halla en Microsoft Windows Help Centre, la aplicación para acceder a la documentación de ayuda.

Dicha aplicación registra un manejador de protocolo con el esquema "hcp://" para acceder a la documentación a través de URLs. Cuando se accede a través de una URL a la documentación, el manejador del nombrado esquema "hcp", añade el parámetro de línea de comandos "/fromhcp" para indicarle a la aplicación del centro de ayuda que el recurso ha sido solicitado desde una URL; restringiendo el uso de parámetros y permitiendo sólo un conjunto de documentos que se encuentran en una lista blanca.

Ormandy ha encontrado un método para evadir esta lista blanca, basado en un error en la implementación de la función que comprueba las URL.

El fallo reside en la función "MPC::HTML::UrlUnescapeW", usada para la normalización y filtrado de la URL antes de ser validada. Dicha función usa a su vez la función "MPC::HexToNum" para convertir los caracteres escapados (p.ej %20 al valor de espacio en blanco) a su correspondiente valor numérico.

Sin entrar en detalles técnicos, básicamente, la función "MPC::HTML::UrlUnescapeW" omite el chequeo del valor de retorno de "MPC::HexToNum", permitiendo envenenar la cadena final y evadir la restricción de lista blanca.

Para proseguir con la explotación Ormandy necesitaba una página de la documentación que cumpliese con varias condiciones, poder ser invocado directamente desde una URL y con un fallo de cross-site scripting que le permitiese incluir una cadena manipulada.

Pudo localizar la página de documentación e identificar el XSS, pero curiosamente no pudo explotarlo (Ormandy no es especialista en Web). Así que tuvo que echar mano de su compañero en Google y experto en seguridad web y navegadores Michal Zalewski, muy nombrado últimamente por su escáner de seguridad web Skipfish.

Con la ayuda de Zalewski y de una propiedad exclusiva de Internet Explorer el XSS pudo ser explotado. En ese momento se disponía de un método para evadir la lista blanca, una página de documentación de ayuda instalada por defecto y con un XSS explotable. Al ejecutarse la página en una zona privilegiada tan solo bastaba incluir un comando en la cadena para provocar su ejecución.

¿Acabó aquí?

Hasta ahora está claro que con una URL con el manejador "hcp://" y apropiadamente manipulada se pueden inyectar comandos, pero cuando se invoca a través del navegador el usuario es advertido y aunque es conocida la incapacidad retentiva de la mayoría para hacer click en aceptar, a Ormandy no le pareció una forma elegante de finalizar con su investigación.

Consiguió un método para evitar la atención del usuario mediante el uso de archivos ASX (Advanced Stream Redirector). Windows Media Player 9 usa estos archivos, con estructura XML, para almacenar listas de reproducción. El navegador invoca el reproductor cuando abre un archivo con extensión ".asx". Entre los valores a incluir en dicho archivo uso el elemento "HTMLView" y le dio como valor una URL hacia una página HTML que contiene, ahora si, la URL maliciosa.

No deja de resultar curioso, en este caso en particular, el encadenamiento de explotaciones y descubrimientos que llevan al investigador desde un punto de intuición hasta la consecución de sus objetivos.

Son vulnerables los sistemas Windows XP y Windows Server 2003.

Mike Reavey, director del MSRC de Microsoft ha publicado una respuesta en el blog del MSRC, en la que ofrece una contramedida y explica el poco tiempo que el investigador les ha otorgado, para solucionar el fallo, antes de hacer públicos los detalles.

=-=-=-=-=
Powered by Blogilo

Popular servidor de IRC troyanizado desde hace unos 8 meses

28/06/2010

Se ha descubierto que UnrealIRCd, un popular servidor de IRC, estaba troyanizado y disponible desde la página oficial al menos desde noviembre. Los atacantes reemplazaron el código fuente de la versión para sistemas Unix/Linux, y la modificación ha pasado inadvertida durante unos 8 meses. A raíz del incidente, han comenzado a firmar su código. ¿Qué errores han cometido?

UnrealIRCd es un popular servidor IRC para Linux y Windows. Los responsables del programa (en una entrada en su web que comienza con la frase "Esto es embarazoso…") han hecho público que la versión disponible para descarga desde noviembre de 2009 contiene una puerta trasera, y permite a un atacante ejecutar código arbitrario (con los mismos privilegios con los que se ejecute el programa) en el servidor donde se instale. La única versión que ha sido reemplazada en los servidores oficiales ha sido el código fuente para Unix/Linux (Unreal3.2.8.1.tar.gz) y no las versiones ya compiladas para Windows.

El problema ahora lo tienen los administradores que se hayan visto afectados (que han compilado e instalado la versión con la puerta trasera). Realmente, los servidores que han ejecutado esta versión (aunque sea durante poco tiempo), no pueden ser ya confiables, puesto que el atacante ha podido obtener información de todo tipo. Es de esperar que pocos administradores ejecutasen el servidor IRC como root, lo que limitaría los poderes de los atacantes. Aun así, esto no evita que en este tiempo, no hayan conseguido robar información accesible por el usuario bajo el que corre el servidor IRC, o escalar privilegios aprovechando cualquier vulnerabilidad en el kernel.

Se trata de un hecho relevante que, efectivamente, resulta embarazoso para los desarrolladores del programa. Lo tomamos como excusa para repasar lo que pueden ser algunos malos hábitos adquiridos tanto por parte de los programadores como de los usuarios.

Hashes para comprobar la integridad

UnrealIRCd se había tomado la molestia de publicar los hashes de los archivos para que los usuarios pudieran comprobar que realmente se descargaban el fichero "oficial". Esta medida ha resultado poco efectiva por varias razones.

* Según podemos comprobar por la caché de Google, a fecha de 22 de mayo, al parecer los atacantes también habían modificado el hash MD5 de la página oficial de descarga. Esto quiere decir que los usuarios que descargaran la fuente y comprobasen el hash con la página oficial, no notarían nada raro. Este es uno de los puntos débiles de esta medida de seguridad: si un atacante consigue comprometer un servidor como para sustituir un archivo, si es cuidadoso, debería sustituir también el hash en la misma página. Esta medida es útil sin embargo, cuando existen numerosos servidores desde donde descargar el archivo (y los usuarios se toman la molestia de comprobarlo en diferentes servidores).

* En los foros oficiales de UnrealIRCd (forums.unrealircd.com), sin embargo, el hash publicado desde hace meses era el correcto. Por tanto, cualquier usuario que efectivamente hubiese comparado los hashes, lo debería haber notado.

* Como detalle menor, a fecha de 22 de mayo, UnrealIRCd solo publicaban el hash MD5. No es ningún secreto que MD5 está "roto" y que es mucho más seguro utilizar (como parece que ya hacen) SHA.

Auditorías

A pesar de ser un programa veterano (desde 1999), un cambio en los archivos fuente de ciertos servidores ha pasado desapercibido durante unos 8 meses. Es uno de los periodos más largos que podemos recordar en los que un programa troyanizado ha pasado inadvertido. Los desarrolladores deberían haber realizado una mínima auditoría del estado de sus servidores y archivos. No se tiene información de cómo han conseguido entrar en los servidores.

Creemos que es irrelevante que la puerta trasera fuese "visible" en el código fuente descargado. Esto no ha "acelerado" su detección. Aunque ha sido compilado por (probablemente miles de) administradores, nadie ha detectado el problema (o nadie ha avisado). Esto es lógico en proyectos de cierta envergadura: simplemente, es muy poco probable que un usuario ocasional detecte algo "raro" en un código ajeno de miles de líneas. Mantenerlo a punto es responsabilidad de los desarrolladores principales, no de las personas que lo descargan.

Criptografía

Como hemos dicho, usar un hash para comprobar la integridad es útil en algunas ocasiones, pero es una medida limitada. Los programadores de UnrealIRCd han necesitado pasar este mal trago para darse cuenta de que deben firmar criptográficamente los ficheros. Acaban de anunciar una clave pública GPG con la que, a partir de ahora, firmarán sus archivos. Solo queda que los usuarios que descarguen su programa, comprueben la firma.

Aprendiendo la lección

Varios desarrolladores importantes han "sufrido" recientemente el problema de hacer público software troyanizado (aunque ninguno durante tanto tiempo). A Mozilla le ocurrió en febrero de 2010 y a mediados de 2008. En marzo de 2007, la versión de WordPress fue troyanizada igualmente. Tampoco firmaban digitalmente sus archivos (y siguen sin hacerlo).

En 2002, las versiones 3.4 y 3.2 de OpenSSH fueron troyanizadas desde ftp.openssh.com y ftp.openbsd.org. Poco después, el servidor HTTP de Tcpdump, fue comprometido (el 11 de noviembre de 2002), y su descarga no fue deshabilitada hasta el día 13. El código troyanizado ignoraba el tráfico del puerto 1963, desde donde un atacante podría controlar la máquina en la que se ejecutase.

Aproximadamente el 28 de septiembre de 2002 comprometieron ftp.sendmail.org (el servidor de correo más usado del mundo). No fue hasta el 6 de octubre de ese año que se deshabilitó la descarga del programa envenenado.

Al menos, los responsables de UnrealIRCd parece que han aprendido la lección. Según el aviso oficial "Simplemente no lo notamos, deberíamos haberlo hecho; No comprobamos los ficheros en los servidores de forma regular. Deberíamos haberlo hecho; No firmamos los archivos con PGG/GPG, deberíamos haberlo hecho".

El archivo troyanizado es Unreal3.2.8.1.tar.gz, con hash md5 752e46f2d873c1679fa99de3f52a274d. La versión oficial, sin embargo, debería devolver el hash 7b741e94e867c0a7370553fd01506c66. Al parecer solo algunos servidores de descarga fueron comprometidos, y no los repositorios de código fuente.

Aparte del hash, para saber si se está corriendo una versión con esta puerta trasera, se puede hacer un:

grep DEBUG3_DOLOG_SYSTEM include/struct.h

en el directorio del programa. Si devuelve dos líneas, está troyanizado.

=-=-=-=-=
Powered by Blogilo