Grupo Linuxero del Bajío

Contenido

Gusano Apache/mod_ssl

Víctor Manuel Jáquez Leal

El CERT/UNAM-CERT, a través de sus equipos de respuesta a incidentes de Seguridad en Cómputo, han emitido éste boletín en el cual informan que han recibido reportes de código malicioso de autopropagación que explota una vulnerabilidad ( VU#102795) en OpenSSL. Este código malicioso ha sido referenciado como gusano Apache/mod_ssl, linux.slapper.worm y gusano bugtraq.c . Reportes recibidos por el CERT/UNAM-CERT indican que el gusano Apache/mod_ssl ya ha infectado a miles de sistemas.

Fecha de Liberación: 17 de Septiembre de 2002

Ultima Revisión: 17 de Septiembre de 2002

CERT/CC y diversos Fuente: reportes de Equipos de Respuesta a Incidentes.

Sistemas afectados

Descripción

El gusano Apache/mod_ssl es un código malicioso autopropagable que explota la vulnerabilidad en OpenSSL descrita en VU#102795. Esta vulnerabilidad estaba entre los temas discutidos en el Boletín de Seguridad UNAM-CERT 2002-023 Múltiples Vulnerabilidades en OpenSSL. Mientras que esta vulnerabilidad en el servidor OpenSSL existe en una amplia variedad de plataformas, el gusano Apache/mod_ssl aparentemente trabaja solo en sistemas Linux ejecutando Apache con el módulo OpenSSL (mod_ssl) en arquitecturas Intel.

El gusano Apache/mod_ssl escanea el puerto 80/tcp de sistemas potencialmente vulnerables utilizando un requerimiento HTTP GET inválido. Cuando un sistema Apache potencialmente vulnerable es detectado, el gusano intenta conectarse al servicio SSL por medio del puerto 443/tcp para entregar el código de exploit. Si es satisfactorio, una copia del código fuente malicioso es colocada en el servidor víctima, donde el sistema del intruso intentará compilarla y ejecutarla. Una vez infectado, el servidor víctima comienza a escanear otros servidores para continuar la propagación del gusano.

Adicionalmente, el gusano Apache/mod_ssl puede actuar como una plataforma de lanzamiento de ataques DDoS (Distributed Denial of Service) contra otros sitios, mediante la construcción de una red de servidores infectados. Durante el proceso de infección, el servidor del intruso da instrucciones a la nueva víctima infectada para inicializar el tráfico de regreso al sistema del intruso en el puerto 2002/udp. Una vez que este canal de comunicación ha sidoestablecido, el sistema infectado forma parte de la red DDoS del gusano Apache/mod_ssl. Los servidores infectados pueden de esta forma compartir información con otros sistemas infectados de acuerdo a las instrucciones del intruso. De esta forma, el tráfico en el puerto 2002/udp puede ser utilizado por un intruso remoto como una canal de comunicación entre los sistemas infectados para coordinar ataques contra otros sitios.

Reportes realizados al CERT/UNAM-CERT indican que el alto volumen de tráfico en el puerto 2002/udp generado entre los servidores infectados con el gusano Apache/mod_ssl puede crear problemas de rendimiento en redes con servidores infectados. Además, reparando un servidor infectado no remueve su dirección IP de la red Punto a Punto del gusano Apache/mod_ssl, los sitios que han tenido servidores infectados con el gusano Apache/mod_ssl y han sido parchados subsecuentemente, pueden continuar presentando niveles de tráfico significantes en el puerto 2002/udp direccionados a los sistemas infectados.

Identificar Servidores Infectados

Los reportes indican que el código fuente del gusano Apache/mod_ssl es colocado en /tmp/.bugtraq.c en los sistemas infectados. Este es compilado con gcc , dando como resultado un binario ejecutable almacenado en /tmp/.bugtraq; De esta forma, la presencia de cualquiera de los siguientes archivos en los sistemas Linux ejecutando Apache con OpenSSL es indicio de compromiso del sistema.

             /tmp/.bugtraq.c             /tmp/.bugtraq

La fase de prueba del ataque puede observarse en el registro del servidor Web como se muestra en el ejemplo siguiente. Es importante hacer notar que pueden existir otras causas para tales entradas de registro, de esta forma, la aparición de las entradas marcadas (o similares) en el registro de un servidor Web no deberían ser interpretadas como evidencia de compromiso. Sin embargo, su presencia es un indicio para la realización de una investigación a fondo.

Ejemplo: La prueba inicial para identificar la versión del software del servidor.

             GET / HTTP/1.1

Nota: En base a los reportes recibidos inicialmente por el CERT/UNAM-CERT, las versiones anteriores de éste Boletín mencionaron otros mensajes de error de SSL que podrían ser registrados en los servidores potencialmente vulnerables. En un análisis más completo, hemos concluido que éstos mensajes de registros no tienen relación con el gusano Apache/mod_ssl. Una explicación de una posible causa de éstos otros mensajes de error en mod_ssl fue proporcionada por Inktomi y aparece en el Apéndice A.

Los servidores que se encuentren escuchando en el puerto 2002/udp para la transmisión de datos son también indicativos de compromiso por el gusano Apache/mod_ssl.

Detectar Actividad del Gusano Apache/mod_ssl en la Red

Los sistemas infectados son fácilmente identificables en una red por las siguientes características de tráfico:

Adicionalmente, los servidores infectados que están activamente participando en ataques DDoS contra otros sistemas pueden generar altos volúmenes inusuales de tráfico de ataques utilizando varios protocolos (TCP, UDP, ICMP por ejemplo).

Impacto

El compromiso por el gusano Apache/mod_ssl indica que un intruso remoto puede ejecutar código arbitrario como el usuario apache en el sistema víctima. Puede ser posible para un intruso subsecuentemente ejecutar un exploit de elevación de privilegios locales con el objetivo de obtener acceso de Administrador Local en el sistema víctima. El alto volumen de tráfico generado en el puerto 2002/udp entre los servidores infectados con el gusano Apache/mod_ssl puede conducir a problemas de rendimiento en redes con servidores infectados. Además, las capacidades de los ataques DDoS incluidas en el gusano Apache/mod_ssl permiten a un sistema víctima utilizar a otros sistemas como plataformas de lanzamiento de ataques.

Soluciones

Aplicar un Parche

Se recomienda a todos los Administradores de los sistemas ejecutando OpenSSL revisar CA-2002-23 y VU#102795 para obtener recomendaciones detalladas de los parches proporcionados por los distribuidores. Información adicional de distribuidores está disponible en el Apéndice A.

Se debe hacer notar que mientras la vulnerabilidad explotada por el gusano Apache/mod_ssl fue solucionada desde la versión 0.9.6e de OpenSSL, a la última versión de OpenSSL, la 0.9.6g. Los administradores podrían actualizar su versión de OpenSSL a alguna de las anteriormente mencionadas.

El siguiente texto es tomado del CA-2002-23.

Actualizar a la Versión 0.9.6e de OpenSSL

Actualizar a la versión 0.9.6e de OpenSSL para resolver los problemas mencionados en este boletín. Como se hizo notar en el Boletín de OpenSSL, también se encuentran disponibles los parches por separado:

Parches combinados para OpenSSL 0.9.6d: http://www.openssl.org/news/patch_20020730_0_9_6d.txt

Después de aplicar los parches anteriores o actualizar a la versión 0.9.6e , se deben recompilar todas las aplicaciones utilizando OpenSSL para soportar servicios SSL o TLS, y se deben reiniciar dichos servicios o sistemas. Esto eliminará todo el código vulnerable conocido.

Los sitios ejecutando la preliberación de la versión 0.9.7-beta2 de OpenSSL pueden actualizar a la versión 0.9.7-beta3, la cual corrige estas vulnerabilidades. Los parches están disponibles también por separado.

Parches combinados para OpenSSL 0.9.7 beta 2: http://www.openssl.org/news/patch_20020730_0_9_7.txt

Deshabilitar SSLv2

Deshabilitando el handshaking en SSLv2 prevendrá el exploit de VU#102795. El CERT/UNAM-CERT recomiendan consultar la documentación de mod_ssl para obtener una completa descripción de las opciones, pero uno de los métodos para deshabilitar SSLv2 es remover SSLv2 como cifra soportada en la directiva SSLCipherSuite en el archivo de configuración. Por ejemplo:

SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+SSLv2

Lo cual permite que SSLv2 pueda ser cambiado a

SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:!SSLv2

deshabilitando SSLv2. Se debe cambiar +SSLv2 a !SSLv2.

Sin embargo, los sistemas pueden permanecer susceptibles a otras vulnerabilidades descritas en CA-2002-23.

Filtrar el Tráfico de Entrada y Salida

Los siguientes pasos son solamente efectivos para limitar el daño que sistemas ya infectados con el gusano Apache/mod_ssl puedan hacer. No proporcionan protección en absoluto contra la infección inicial del sistema. Como resultado, estos pasos son solamente recomendados como un agregado a los pasos anteriores y no como otra solución que reemplace a alguna de las anteriores.

Filtrar los datos de ingreso permite tener un mejor control del flujo del tráfico cuando se introduce a la red. Los servidores son las únicas máquinas que necesitan aceptar tráfico de entrada desde el Internet público. En las políticas de red que se utilizan en muchos sitios, los servidores externos se les permite solamente inicializar tráfico de entrada a las máquinas que proporcionan servicios públicos en puertos específicos. De esta forma, el filtrado de los datos de ingreso debería ser realizado en el límite para prohibir que sea inicializado externamente tráfico de entrada para servicios no autorizados.

Filtrar los datos de salida permite tener un mejor control del flujo de tráfico cuando sale de la red. Existe la necesidad de limitar típicamente las máquinas que proporcionan servicios públicos que inicializan conexiones salientes hacia el Internet.

En el caso del gusano Apache/mod_ssl, empleando el filtrado el tráfico de entrada y salida puede ayudar a prevenir que los sistemas en la red participen en la red DDoS del gusano y ataquen otros sistemas. Bloqueando los datagramas UDP que tienen como fuente y destino el puerto 2002 para permitir la entrada y salida de datos en la red, reduce el riesgo de que sistemas externos infectados se comuniquen con servidores infectados dentro de la red.

Recuperación de un Sistema Comprometido

Si se cree que el sistema ha sido comprometido, se deben seguir los pasos mencionados en:

Pasos de Recuperación de un Sistema UNIX ó NT

Apéndice A. Información de Distribuidores

Este Apéndice contiene información proporcionada por los distribuidores de éste boletín. Tan pronto como los distribuidores reporten nueva información al CERT/UNAM-CERT, se actualizará esta sección. Si un distribuidor en particular no se encuentra listado a continuación, significa que no se han recibido comentarios de su parte.

Apple Computer, Inc.

La vulnerabilidad descrita en éste reporte ha sido referenciada como:

Covalent Technologies

Covalent Technologies ha sido informado por RSA Security de que las bibliotecas BSAFE utilizadas por implementaciones SSL de Covalent son potencialmente vulnerables al problema de negociación SSL V2 detallado en VU 102795 y los boletines relacionados: Boletín de Seguridad UNAM-CERT 2002-023 y Boletín de Seguridad UNAM-CERT 2002-027. Todos los productos Covalent utilizando SSL son afectados. Covalent tiene actualizaciones de sus productos e información disponible en: http://www.covalent.net/products/rotate.php?page=110.

Inktomi

Como se hizo notar en el boletín, los mensajes de registro en el servidor, como por ejemplo:

  GET /mod_ssl:error:HTTP-request HTTP/1.0

no indican necesariamente que el sistema este comprometido. Cualquier requerimiento HTTP a un puerto que espera prestar servicios a requerimientos HTTPS generará este mensaje en el registro. El Inktomi Web crawler hace un seguimiento de enlaces URL publicados en páginas Web públicas y algunas veces es direccionado de forma incorrecta hacia servidores https. El crawler no utiliza mod_ssl de Apache (ni ningún tipo de SSL), de esta forma no está sujeto al compromiso descrito en este boletín. Pero los requerimientos crawler presentan dos de los síntomas del gusano Apache/mod_ssl:

El crawler no utiliza el puerto 2002/udp. Los accesos al puerto 80 ó los errores de handshake HTTPS de un Inktomi Web crawler no representan un ataque al servidor Web.

Los sistemas Inktomi crawler tienen hostnames de la forma

j[1-9][0-9][0-9][0-9].inktomisearch.com             si[1-9][0-9][0-9][0-9].inktomisearch.com

Las direcciones IP de los servidores Inktomi crawler se resolverán de forma DNS inversa para nombres de esta forma.

Información

Éste documento se encuentra disponible en su formato original en la siguiente dirección: http://www.cert.org/advisories/CA-2002-027.html

Para mayor información acerca de éste boletín de seguridad contactar a:

UNAM CERT

Equipo de Respuesta a Incidentes UNAM

Departamento de Seguridad en Computo

DGSCA - UNAM

E-Mail : seguridad@seguridad.unam.mx

http://www.unam-cert.unam.mx

http://www.seguridad.unam.mx

ftp://ftp.seguridad.unam.mx

Tel : 56 22 81 69Fax : 56 22 80 43