La versión falsa de BoltDB-go se diseño utilizando la técnica de «tiposquatting», que busca engañar a los desarrolladores a descargar un paquete que parece legítimo. Si un desarrollador se confunde y elige el paquete malicioso (github.com/boltdb-go/bolt) en lugar del original, podría dar lugar a una puerta trasera que permite la ejecución de código remoto (RCE) en su proyecto. A pesar de existir, el paquete malicioso está prácticamente bajo el radar, con solo dos importaciones registradas, ambas de un único proyecto de criptomonedas que no parece tener mucha actividad.
Boychenko destaca que no hay forma de determinar cuántas veces ha sido descargado el paquete, ya que Go no rastrea esta métrica. Sin embargo, la escasa visibilidad de la página de GitHub del paquete, que muestra cero estrellas y sin forks ni contribuciones recientes, sugiere que posiblemente ha pasado desapercibido. El analista también subraya un problema crítico en la forma en que el creador del paquete fraudulento explotó el sistema de módulos de Go, quien manipuló las etiquetas Git del proyecto para que una revisión manual no revelara anormalidades mientras la versión dañina se distribuía a los desarrolladores desprevenidos.
Este incidente es significativo ya que podría ser uno de los primeros casos documentados en el que un actor malicioso aprovecha el almacenamiento en caché indefinido que ofrece el módulo de Go. A pesar de la inmutabilidad de los módulos de Go, que impide que el código se modifique una vez descargado, la situación actual ilustra cómo una puerta trasera maliciosa puede permanecer accesible indefinidamente.
Boychenko enfatiza la necesidad de que los desarrolladores sean más conscientes de la importancia de verificar la integridad de los paquetes antes de instalarlos. Recomienda que los desarrolladores analicen las dependencias en busca de anomalías y utilicen herramientas de seguridad que inspeccionen el código de manera más profunda. Asegurar que el ecosistema de Go se mantenga resistente a futuros ataques requerirá una vigilancia continua, el desarrollo de mecanismos de seguridad más robustos, y un mayor entendimiento de las tácticas empleadas por actores maliciosos que explotan los canales de distribución de software.
Además, Socket Security ha publicado que tanto BoltDB-go como un paquete similar no malicioso han sido marcados para su extracción permanente, para evitar que puedan ser mal utilizados en el futuro. Al preguntar al equipo de Go sobre el problema, no se obtuvo una respuesta inmediata.
Este incidente pone de manifiesto la vulnerabilidad inherente en el ecosistema de programación, resaltando la necesidad urgente de vigilancia y educación en cuanto a las amenazas que enfrentan los desarrolladores y la importancia de adoptar medidas proactivas para protegerse contra potenciales ataques a la cadena de suministro de software. La comunidad de desarrollo debe tomarse en serio la seguridad y ser proactiva al adoptar prácticas de análisis y verificación de código.
Enlace de la fuente, haz clic para tener más información