El sitio web oficial del lenguaje de programación PHP ha sido comprometido y usado para infectar con malware a los visitantes.
Aunque en un primer momento, incluso el propio Rasmus Lerdorf (@rasmus), creador de PHP, pensó que se trataba de un falso positivo, el primer aviso lo dio el motor de bloqueo de Google Chrome, Safe Browsing. En el se podía leer que el motivo del bloqueo era la detección de malware alojado en el sitio web principal de PHP. Exactamente el script
Dicho script contenía código ofuscado que generaba un iframe oculto el cual cargaba otro script adicional, de un tercer dominio, para finalmente acabar siendo víctima del exploit kit Magnitude. Un esquema habitual usado por los atacantes para atraer gran cantidad de objetivos (un sitio popular) y alargar en lo posible la infección (código ofuscado, iframe oculto y múltiples dominios maliciosos). Existe un excelente análisis del proceso de infección realizado por Jaime Blasco de Alienvault.
Tras descartar el falso positivo y eliminar el malware del sitio oficial, los administradores de php.net han publicado una nota de prensa admitiendo la intrusión y el alojamiento de malware por parte de los atacantes.
Aunque todavía se encuentran trabajando en la investigación para llegar a conclusiones, los administradores han situado la ventana de exposición entre el día 22 y 24 de octubre. Durante esos días haber visitado los sitios web de php.netque incluyesen un enlace al script userpref.js significa que se ha estado expuesto a la infección.
En principio han sido comprometidos dos servidores. El principal alojaba los sitios www.php.net, static.php.nety git.php.net. Este último dominio es el que lleva al repositorio de código de todo el proyecto PHP, no solo la vista web del repositorio, sino el servidor GIT (puerto tcp/9418). Aunque según informan han comprobado que el repositorio de código no se ha «tocado» como precaución se ha bloqueado en modo lectura y migrado a otro servidor. El otro servidor se correspondería con el dominio bugs.php.net y aloja el sitio web de reporte de errores.
Como medida de precaución los certificados han sido revocados, ya que podrían haber sido extraídos por los atacantes. Es decir, llegaron a tener los privilegios necesarios para leer dichos archivos. De momento los servicios SSL no van a funcionar hasta que sean emitidos nuevos certificados. Un ejemplo perfecto para justificar el mecanismo de revocación de certificados.
Declaran que solo un pequeño porcentaje de usuarios del sitio ha sido expuesto a la infección. Esto es algo que cuesta entender sin una argumentación clara, sobre todo teniendo en cuenta que se ha usado un kit de explotación y no un solo exploit. Los kit de explotación son verdaderos cócteles de exploits con capacidad de detección de complementos del navegador vulnerables y soporte multiplataforma.
Adicionalmente las cuentas de los desarrolladores van a ser reiniciadas como medida de precaución.
Estaremos atentos para cuando publiquen, como han anunciado, un post-morten de la investigación que están llevando a cabo. Va a ser interesante ver hasta donde y como han llegado a colgar un script de infección en la web de uno de los lenguajes más usados para construir sitios y aplicaciones web. Según el ranking de Alexa, www.php.net es uno de los 250 sitios más visitados de Internet.
Más información:
PHP.net
Twitter. Rasmus Lerdorf
PHP.net potentially compromised and redirecting to an exploit kit
A further update on php.net
Alexa. Php.net
David García
Twitter: @dgn1729
Anónimo dice
Preocupante que esto pase en un sitio web tan importante. Definitivamente estamos en la calle.