30 mar. 2021

Backdoor RCE plantado en el servidor GIT de PHP

En un nuevo ataque a la cadena de suministro de software, se hackeo el repositorio oficial de PHP Git y se manipuló su código fuente. Dos modificaciones maliciosas fueron enviadas el domingo al repositorio propio git.php.net mantenido por el equipo PHP. Hasta ahora el código se encontraba en Github sólo como respaldo.

El incidente es alarmante considerando que PHP sigue siendo el lenguaje de programación del lado del servidor que alimenta más del 79% de los sitios web en Internet. Los atacantes habían firmado estos compromisos como si fueran realizados por desarrolladores y mantenedores de PHP conocidos, Rasmus Lerdorf y Nikita Popov.

En los dos commits maliciosos realizado [1, 2], los atacantes publicaron un cambio para "corregir error tipográfico" con el pretexto de que se trataba de una pequeña corrección tipográfica. Sin embargo, echando un vistazo a la línea 370 agregada donde se llama a la función zend_eval_string, el código en realidad planta una puerta trasera para obtener una ejecución remota de código (RCE) fácil en un sitio web que ejecuta esta versión secuestrada de PHP.

"Esta línea ejecuta código PHP desde dentro del encabezado HTTP useragent, si la cadena comienza con 'zerodium'", respondió el desarrollador de PHP Jake Birchall a Michael Voříšek, quien había señalado la anomalía. En una entrevista por correo electrónico, el responsable de PHP Nikita Popov dijo: "La primera confirmación se encontró un par de horas después de que se realizó, como parte de la revisión rutinaria del código posterior a la confirmación. Los cambios fueron obviamente maliciosos y se revertieron de inmediato".

Además, la confirmación maliciosa se realizó en nombre del creador de PHP, Rasmus Lerdorf. Pero, eso no es sorprendente, ya que con los sistemas de control de versiones de código fuente como GIT, es posible firmar una confirmación como proveniente de cualquier otra persona localmente y luego cargar la confirmación falsificada en el servidor GIT remoto, donde da la impresión de que si de hecho había sido firmado por la persona nombrada en él.

Aunque se está llevando a cabo una investigación completa del incidente, según los mantenedores de PHP, esta actividad maliciosa se originó en el servidor git.php.net comprometido, en lugar de comprometer la cuenta Git de un individuo.

Base de código oficial PHP migrada a GitHub

Como precaución después de este incidente, los mantenedores de PHP han decidido migrar el repositorio oficial de código fuente PHP a GitHub.

"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 antes eran solo espejos, se volverán canónicos", anunció Popov.

Con este cambio en el futuro, Popov insiste en que cualquier cambio de código se envíe directamente a GitHub en lugar de al servidor git.php.net a partir de este momento. Aquellos interesados ​​en contribuir al proyecto PHP ahora deberán ser agregados como parte de la organización PHP en GitHub.

Mientras tanto, es bueno saber que los cambios no se convirtieron en etiquetas ni se liberaron artefactos, Los cambios estaban en la rama de desarrollo de PHP 8.1, que se lanzará a finales de año.

El equipo de PHP ha confirmado que planean eventualmente desmantelar su servidor GIT en los próximos días y mudarse a GitHub de forma permanente.

Fuente: BC

Suscríbete a nuestro Boletín

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!