Biblioteca de Python con una Backdoor éstaba robando credenciales de SSH

Apenas ha pasado una semana desde el último intento de ocultar una puerta trasera en una biblioteca, y hoy tenemos un nuevo caso. Esta vez, la puerta trasera se encontró en un módulo de Python, y no en un paquete npm (JavaScript).

El nombre del módulo es SSH Decorator (ssh-decorate), desarrollado por el desarrollador israelí Uri Goren, una biblioteca para manejar conexiones SSH desde el código Python.

El lunes, otro desarrollador notó que varias versiones recientes del módulo SSH Decorate contenían código que recolectaba las credenciales SSH de los usuarios y enviaba los datos a un servidor remoto ubicado en:

http://ssh-decorate.cf/index.php

Desarrollador: La Backdoor fue el resultado de un hackeo

Después de que le llamaran la atención, Goren dijo que la puerta trasera no fue creada de forma intencionada y que fue el resultado de un ataque.

"He actualizado mi contraseña de PyPI y he reenviado el paquete con un nuevo nombre ssh-decorator", dijo. "También actualicé el archivo Léame del repositorio, para asegurarme de que mis usuarios también estén al tanto de este incidente". El archivo README dice:

Se nos ha informado que las versiones anteriores de este módulo habían sido secuestradas y cargadas ilegalmente en PyPi. Asegúrese de mirar el código de este paquete (o cualquier otro paquete que solicite sus credenciales) antes de usarlo.

Pero después de que el incidente se convirtiera en un tema de tendencia en Reddit ayer, y algunas personas lanzaron algunas acusaciones a su manera, Goren decidió eliminar el paquete por completo, tanto de GitHub como de PyPI, el centro de repo central de Python.

Si todavía está utilizando el módulo SH Decorator (ssh-decorate) en sus proyectos, la última versión segura fue la 0.27. Las versiones 0.28 a 0.31 fueron consideradas maliciosas.

Ha habido incidentes anteriores

Esta tampoco es la primera vez que las bibliotecas se archivan y se cargan en repositorios de código central. El último incidente ocurrió la semana pasada, cuando el equipo de npm encontró una puerta trasera inteligentemente escondida que se abrió paso en un paquete popular de npm.

En agosto de 2017, el mismo equipo de npm también eliminó 38 paquetes JavaScript npm que fueron detectados robando variables de entorno de proyectos infectados.

Algo similar sucedió en PyPI (Python Package Index) el repositorio oficial de software de terceros para el lenguaje de programación Python. En septiembre de 2017, la Oficina de Seguridad Nacional de Eslovaquia (NBU) encontró y reportó diez paquetes de Python maliciosos en PyPI, que fueron eliminados rápidamente.