Una muy usada librería de Node.js de los repositorios de NPM se alteró para incluir malware robador de criptomonedas. La librería en cuestión, event-stream, se descarga más de dos millones de veces por semana por programadores de back-end.
Este acto criminal es recordatorio de los peligros de usar grandes y complejas redes de dependencias en el software: a no ser que se tomen las medidas adecuadas, cualquier componente de una aplicación puede modificarse para alterar su seguridad. Si tu proyecto usa event-stream de alguna forma, deberías comprobar que no instalaste la versión alterada durante las etapas de prueba o producción.
¿Como se llegó a infectar una librería tan grande?
Esto empezó así: un desarrollador de GitHub llamado «right9control» se ofreció para estar a cargo de event-stream, que se estaba manteniendo por otro desarrollador. El JavaScript se actualizó al poco tiempo para incluír otro módulo, flatmap-stream, que luego se modificó por otro desarrollador para incluir el malware que roba bitcoins.
Para más detalles del evento se puede ver esta línea de tiempo. En resumen, el 9 de Septiembre, right9control añadió flatmap-stream como dependencia de event-stream, y el 16 de Septiembre, removió la dependencia implementando el código en la librería, aunque este cambió no fue pusheado automáticamente a las librerías de los usuarios. El 5 de Octubre, flatmap-stream se alteró por un usuario llamado «hugeglass» para incluir código alterado que luego se descubrió que intentaba sacar Bitcoins de billeteras usando el software.
Por esto, cualquiera usando event-stream y recibiendo la alterada flatmap-stream, en vez del código reescrito, podían ser atacados por el malware si fue descargada después el 5 de Octubre. El código alterado ya se removió de event-stream. Por suerte, el malware escondido apuntaba a ciertas billeteras nomas, y no estaba diseñado para atacar a todos los programadores y aplicaciones usando event-stream.
¿Qué opinan de este peligro de las librerías de código abierto?
Fuente: The Register