Avisos 02 de November, 2011

Cuc que infecta servidors JBoss

S'ha detectat un nou cuc que es propaga infectant instal·lacions JBoss, servidor d'aplicacions Java de codi obert. El cuc es propaga aprofitant una vulnerabilitat a la configuració per defecte del servidor, associada a la consola d'administració JMX. La vulnerabilitat és pública des de l’any 2010 (CVE 2010-0738).

Recursos afectats:


Programari afectat:
 



Servidors d'aplicacions JBoss, versions 4.x i 5.x anteriors al pegat de seguretat del mes d’abril del 2010, amb la consola d'administració JMX accessible.
 
• JBoss Application Server (AS) 4.0.x
 
• JBoss Communications Platform 1.2
 
• JBoss Enterprise Application Platform (EAP) 4.2, 4.3, 5.0
 
• JBoss Enterprise Portal Platform (EPP) 4.3
 
• JBoss Enterprise Web Platform (EWP) 5.0
 
• JBoss SOA-Platform (SOA-P) 4.2, 4.3, 5.0
 

Impacte:

Execució de codi amb els privilegis de l'usuari que executa JBoss.


Solució:


Actualitzar JBoss a una versió no vulnerable.
 



També és possible protegir la consola JMX manualment, modificant les restriccions de seguretat establertes a l'arxiu de configuració "deploy/ JMX-console.war/WEB-INF/web.xml". La finalitat d’aquesta modificació és protegir l'accés remot mitjançant tots els mètodes HTTP, a més dels mètodes de tipus GET i POST que es bloquegen per defecte. Per a què la restricció s'apliqui a tots els mètodes HTTP, només cal eliminar els elements "" a l'arxiu esmentat anteriorment.
 

Detall:




Infecció:
 



La configuració per defecte de la consola JMX en les versions vulnerables del servidor d’aplicacions JBoss,  defineixen les restriccions de seguretat següents, al fitxer de configuració "deploy/jmx-console.war/WEB-INF/web.xml":
 




 




 



HtmlAdaptor
 




 



An example security config that only allows users with the role
 



JBossAdmin to access the HTML JMX console web application
 




 



/*
 



GET
 



POST
 




 




 



JBossAdmin
 




 




 



Aquestes restriccions bloquegen les peticions de tipus  GET i POST, però no s'apliquen a la resta de mètodes HTTP existents (HEAD, PUT, DELETE ...).
 
El cuc s'aprofita d'això per injectar-se mitjançant el mètode HTTP HEAD a la consola JMX,  mitjançant la crida al mètode store() del servei jboss.admin.
 



Exemple de la petició detectada:
 
HEAD /jmx-console/HtmlAdaptor?action=invokeOpByName&name=jboss.admin%3Aservice%3DDeploymentFileRepository&methodName=store&argType=java.lang.String&arg0=zecmd.war&argType=java.lang.String&arg1=zecmd&argType=java.lang.String&arg2=.jsp&argType=java.lang.String&arg3=%3c%[...]%3e&argType=boolean&arg4=True
 



Dins de la part codificada al paràmetre arg3, el qual no es mostra de forma complerta, hi ha l'adreça de l’arxiu de tipus JSP que activa el sistema d'execució de comandes mitjançant web, basat en el mètode Java Runtime.getRuntime().exec().
 



Accions del cuc:
 
La mostra del cuc analitzada utilitza scripts de llenguatge interpretat Perl , per connectar automàticament la màquina compromesa a un servidor IRC, amb la finalitat de formar part d'una botnet. A  més s’instal.la i executa una eina d'accés remot mitjançant el servei dyndns (Flu.pl). També executa dos fitxers de tipus Batch (extensió . Bat) de Windows, un per explorar serveis JBoss (wstools.bat) i un script per descobrir tots els membres d'un grup multicast ("JGroups Cluster Discovery Script for Win32") (probe.bat).
 






Referències
 
Diari de SANS Internet Storm Center
 
http://isc.sans.edu/diary.html?n&storyid=11860
 
Declaració del fabricant sobre amenaces a la seguretat de JBoss Application Server
 
http://community.jboss.org/wiki/SecureTheJmxConsole
 
Descripció i solucions per la vulnerabilitat CVE-2010-0738
 
https://access.redhat.com/kb/docs/DOC-30741
 
Securització de la consola JMX i la consola Web (HTTP)
 
http://community.jboss.org/wiki/SecureTheJmxConsole
 
Anàlisi d'una mostra del cuc
 
http://pastebin.com/U7fPMxet
 
CVE 2010-0738
 
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0738

Publicat a: Avisos