lunes, 24 de octubre de 2011

Un gusano se aprovecha de Servidores JBoss Application Server vulnerables o mal configurados

Un gusano aprovecha para infectar servidores que ejecutan JBoss Application Server (JBoss AS) con una incorrecta configuración de seguridad o en los que no se han aplicado los parches de seguridad publicados.

JBoss Application Server es un servidor de aplicaciones J2EE que actualmente va por su versión 7. Se distribuye bajo licencia GPL por lo que es muy utilizado tanto por parte de los desarrolladores como por las empresas.

Se ha detectado un gusano que afecta a los servidores que ejecutan JBoss AS y aplicaciones basadas en él. Se aprovecha de consolas JMX incorrectamente aseguradas o sin ninguna protección para ejecutar código arbitrario. Se propaga inyectándose en la consola a través del método HEAD con una llamada a la función 'store' del servicio 'jboss.admin' de la forma siguiente:


También se aprovecha de sistemas más antiguos que no están parcheados para corregir la vulnerabilidad CVE-2010-0738 subsanada en abril de 2010. El gusano está escrito en Perl, y se puede encontrar un interesante análisis en el apartado de más información.

Para evitar la infección se deben aplicar los parches de seguridad disponibles así como las siguientes configuraciones para asegurar la consola JMX:


http://community.jboss.org/wiki/SecureTheJmxConsole

Además resulta conveniente configurar las siguientes protecciones lógicas:

* Quitar los privilegios de 'root' a los procesos de JBoss AS.

* Cambiar la configuración de seguridad por defecto de la consola JMX para bloquear todas las peticiones a través de los métodos GET y POST que no estén debidamente autenticadas. Para ello se debe editar el archivo 'deploy/jmx-console.war/WEB-INF/web.xml' y eliminar las líneas indicadas:




* Habilitar 'RewriteValve' para bloquear peticiones externas que intenten acceder a URLs de administración como, por ejemplo, jmx-console, editando el archivo 'deploy/jbossweb.sar/server.xml' de la siguiente forma:


Además es conveniente crear el directorio 'conf/jboss.web', y en su interior el fichero 'rewrite.properties' con el siguiente contenido:


Esto bloqueará todas las peticiones que no provengan de la propia máquina (127.0.0.1) o de la red LAN (en este ejemplo 192.168.x.x).

Nótese en la antepenúltima línea del ejemplo del fichero de configuración, que la IP de la red es del tipo 192.168.x.x, esto debe modificarse según la configuración concreta de la red de cada caso.



Juan José Ruiz
jruiz@hispasec.com


Más información:

Statement Regarding Security Threat to JBoss Application Server
http://community.jboss.org/blogs/mjc/2011/10/20/statement-regarding-security-threat-to-jboss-application-server

Securing the JMX Console and Web Console (HTTP)
http://community.jboss.org/wiki/SecureTheJmxConsole

JBoss Worm
http://pastebin.com/U7fPMxet

3 comentarios:

  1. Buenas,
    Gracias por la info, pero no consigo ver las imágenes con los pasos a seguir.

    Agradecería que las subieses de nuevo.

    Saludos,

    ResponderEliminar
  2. Yo acabo de entrar y no veo las imagenes :S

    ResponderEliminar