Detectado backdoor en el módulo Python SSH Decorate / Decorator

Ayer se hizo público en diversos foros de seguridad la presencia de una “backdoor” en el módulo Python, SSH Decorate, lo que ha provocado que finalmente el autor cierre sus repositorios al detectarse que su cuenta fue comprometida.

El módulo SSH Decorate era un decorador de Paramiko para Python, que ofrecía funcionalidades de cliente SSH, desarrollado por el programador israelí Uri Goren,colaborador del proyecto SciPy. Aunque no era muy popular (cerca de 4000 descargas lo corroboran), ejemplifica cómo puede darse este tipo de incidencias de la manera más sencilla, por lo que fue un objetivo fácil de utilizar para propagar este backdoor.
Según los avisos recibidos en su cuenta de GitHub, Uri fue alertado de la presencia de código modificado que capturaba los credenciales, como se puede observar en la imagen:

Fuente: beurcni
El desarrollador avisó que su cuenta había sido comprometida, cambiando su código para incluir esta backdoor. Tomó la decisión de cambiar la contraseña y renombrar el proyecto como “ssh-decorator“, pero, finalmente y tras todo este revuelo, ha decido borrar la presencia de su código en todas sus cuentas de Github y PyPi:

https://pypi.org/project/ssh-decorate/
https://pypi.org/project/ssh-decorator/
https://github.com/urigoren/ssh_decorator/

Lo que en un principio podría ser un ataque viable con paciencia y mediante el uso de diccionarios, se vuelve más sencillo, si cabe, tras analizar las versiones anteriores del código. En su versión 0.2 se pueden encontrar credenciales por defecto de una cuenta en Bluehost, por lo que, probablemente, los atacantes hayan reutilizado esta misma contraseña en su cuenta de Pypi para poder distribuir la versión modificada:
Fuente: Hispasec
Esta vulneración tan evidente de un módulo, junto con los recientes incidentes publicados sobre otros módulos y repositorios, pone el foco en el esquema de seguridad presente en repositorios como Pypi, donde, a día de hoy, no hay un modo rápido ni claro de poder reportar estos incidentes de módulos maliciosos o vulnerados, ni existe un método de verificación de los mismos mediante firma, por ejemplo.

José Mesa
@jsmesa
Más información:

Report projects that damage other packages, don’t adhere to guidelines, or are malicious

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *