Un grupo de atacantes desconocidos ha intentado realizar un ataque a la cadena de suministro a gran escala al introducir código malicioso en el repositorio oficial GIT de PHP. Si los desarrolladores no hubieran percibido la puerta trasera a tiempo, este código podría haber terminado en muchos servidores web y dado lugar al ataque a la cadena de suministro más grande de la historia.
Qué ha pasado con PHP
Los programadores que desarrollaron el lenguaje de programación PHP realizan los cambios en el código utilizando un repositorio común integrado en el sistema de control de la versión de GIT. Tras la implementación de los cambios, el código pasa por otra revisión. Durante una revisión de rutina, un desarrollador percibió un complemento sospechoso que estaba marcado en los comentarios como una corrección tipográfica y añadido a nombre de Nikita Popov, un desarrollador en activo de PHP. Un análisis más detallado reveló que se trataba de una puerta trasera. Sobra decir que Popov no fue el autor de dicho cambio.
Las siguientes comprobaciones mostraron que se había cargado en el repositorio otro complemento similar, en esta ocasión atribuido a Rasmus Lerdorf. En cuestión de horas, los atentos programadores la detectaron, de forma que la próxima actualización de PHP 8.1 (cuyo lanzamiento anticipado está planeado para finales del año) no incluirá la puerta trasera.
Por qué el código malicioso era peligroso
Una puerta trasera en el repositorio podría permitir a los atacantes ejecutar código malicioso en un servidor web utilizando la versión comprometida de PHP. A pesar de que ha perdido popularidad, PHP sigue siendo el lenguaje de script más usado para contenido web; de hecho, lo usan alrededor del 80 % de los servidores web. Y, aunque no todos los administradores actualizan sus herramientas de forma oportuna, muchos otros sí mantienen sus servidores al día para cumplir con las regulaciones de seguridad externa. Si la puerta trasera hubiera llegado a la nueva versión de PHP, lo más probable es que se hubiera esparcido a los servidores web de muchas empresas.
Cómo introdujeron los atacantes la puerta trasera
Los expertos tienen la certeza de que el ataque fue resultado de una vulnerabilidad en el servidor interno de GIT, y no del compromiso de las cuentas de los desarrolladores. De hecho, el riesgo de que alguien le atribuya un cambio a otro usuario ya es muy conocido y, después de este incidente, el equipo de soporte de PHP dejó de utilizar el servidor git.php.net y movió el repositorio de servicio GitHub (que antes solo era un espejo).
Cómo mantenerte a salvo
Los ambientes de desarrollo son objetivos atractivos para los ciberdelincuentes. Una vez que han comprometido el código de un producto de software en el que los clientes confían, pueden llegar a muchos objetivos a la vez mediante un ataque a la cadena de suministro. Millones de usuarios en todo el mundo utilizan los proyectos más populares, por lo que protegerlos de maquinaciones externas es particularmente importante.
- Comprueba minuciosamente y con regularidad cada cambio en el código, incluso aquellos que supuestamente hayan sido implementados por programadores ilustres y de confianza.
- Supervisa la seguridad de los servidores y servicios utilizados para el proceso de desarrollo.
- Utiliza plataformas online especializadas para formar a tus empleados en la detección de ciberamenazas actuales.