Desde finales del año pasado está habiendo instancias de servidores web Apache que han sido comprometidos con un malware altamente sofisticado, sin que en estos momentos todavía se entienda exactamente cómo. El riesgo de infección parece estarse acelerando (o quizás sea el ritmo al que se están descubriendo las infecciones…), habiendo infectado unos 20,000 sitios web sólo en las últimas semanas.
El malware se dedica a insertar iframes invisibles dentro de nuestras páginas web, iframes que a su vez apuntan a páginas web con malware destinado a infectar las máquinas de los usuarios que visiten nuestra web. El código HTML típico en una página web servida por un servidor comprometido tiene una pinta más o menos así:
Mientras que en el JavaScrip tiene esta pinta:
document.write(document.write('');
El ataque sólo afecta a servidores Apache 2.2.2 y posterior. En estos momentos no se sabe exactamente cómo se realiza la infección, es posible que incluso no sea debido a una vulnerabilidad en Apache (aunque lo que sí que está claro es que de algún modo decenas de miles de servidores web Apache están siendo infectados). Podría ser una vulnerabilidad en el sistema operativo, o en algún otro software. Entre los módulos de Apache infectados se encuentran mod_spm_headers.so y mod_spm_mem.so.
El malware es altamente sofisticado. Por ejemplo, tiene conocimiento de cuáles son las IPs que emplean compañías de seguridad e investigadores de seguridad famosos, y no sirve los iframes a esas IPs. Tampoco los sirve a los robots de los buscadores web (algunos de ellos, como Google, analizan las páginas web que indexan buscando contenido malicioso en ellas). Es más, tan siquiera sirve los iframes si uno teclea directamente la URL de la página web que contiene el iframe en su navegador (algo que es probable que haga alguien que está investigando el problema, y no un usuario final que suele llegar a una página haciendo clic en un enlace); sólo lo sirve si el usuario ha llegado a esa página web haciendo clic en algún otro enlace.
Todo esto ha ayudado a este malware a pasar bastante desapercibido. En la actualidad no se sabe cómo prevenir el problema, porque no se sabe qué es lo que lo causa. Y esto a pesar de que expertos de seguridad han hecho análisis forense de múltiples máquinas infectadas. Pero ninguna pista hasta ahora. Al menos, sí se sabe cómo identificar la infección. Teneis detalles técnicos para saber si vuestro servidor está o no infectado, y cómo corregirlo, aquí.