Si el incidente hubiera pasado desapercibido, los atacantes podrían haberse apoderado de sitios web utilizando el código hackeado.
Atacantes desconocidos pusieron en peligro el servidor PHP Git oficial y colocaron un backdoor o puerta trasera en el código fuente del lenguaje de programación, lo que podría poner a los sitios web que usan el código hackeado en riesgo de una intrusión completa.
El hacker envió dos commits maliciosos al repositorio php-src: una a nombre del propio creador de PHP Rasmus Lerdorf y la otra disfrazada y firmada por Nikita Popov, un conocido desarrollador y mantenedor de PHP. El primer commit supuestamente estaba arreglando un error tipográfico menor en el código, mientras que el segundo commit afirmaba revertir la corrección.
«Todavía no sabemos exactamente cómo sucedió esto, pero todo apunta hacia un hackeo del servidor git.php.net (en lugar del hackeo de una cuenta individual de git)», dijo Popov en un anuncio sobre el hackeo, que fue visto el domingo.
En declaraciones a BleepingComputer, Popov dijo que notaron el primer commit durante una revisión de código posterior al commit de rutina, y que los cambios en el código se revertieron de inmediato, a tiempo antes de que pudieran haberse introducido en entornos de producción. El lenguaje PHP de código abierto se usa comúnmente en el desarrollo web.
El cambio de código fue notado por primera vez por los colaboradores Markus Staab, Michael Voříšek y Jake Birchall. Voříšek sospechó del cambio de código y preguntó acerca de su función, a lo que Birchall respondió que la «línea ejecuta el código PHP desde dentro del encabezado HTTP useragent, si la cadena comienza con ‘zerodium'».
De hecho, parece que los atacantes querían implicar a Zerodium, una empresa que se anuncia a sí misma como “la plataforma líder de adquisición de exploits para los días cero premium”. Sin embargo, según su CEO, el corredor de día cero no tuvo nada que ver con el incidente.
Tras la infracción, el equipo de PHP decidió realizar la transición desde su propia infraestructura Git para mitigar los riesgos. “Si bien la investigación aún está en curso, hemos decidido que mantener nuestra propia infraestructura git es un riesgo de seguridad innecesario y que descontinuaremos el servidor git.php.net. En cambio, los repositorios en GitHub, que anteriormente eran solo espejos, se volverán canónicos. Esto significa que los cambios deben enviarse directamente a GitHub en lugar de a git.php.net ”, dijo Popov.
El equipo de PHP ahora está presionando para una mayor seguridad. Mientras que anteriormente los desarrolladores que querían contribuir necesitaban usar el sistema de karma «de cosecha propia» de la organización, ahora deberán convertirse en miembros del repositorio GitHub de PHP y tener habilitada la autenticación de dos factores.
Mientras tanto, PHP está realizando una auditoría de seguridad de sus repositorios para verificar si hay más signos de compromiso o código malicioso más allá de las dos confirmaciones.