Descubrimiento de Código Malicioso en Extensión de Ethereum
Investigadores de la firma de ciberseguridad ReversingLabs han descubierto que un hacker insertó una solicitud de extracción maliciosa en una extensión de código destinada a desarrolladores de Ethereum. Este código malicioso fue incluido en una actualización de ETHcode, un conjunto de herramientas de código abierto que los desarrolladores utilizan para construir y desplegar contratos inteligentes y aplicaciones descentralizadas (dapps) compatibles con la Ethereum Virtual Machine (EVM).
Detalles del Incidente
Un blog de ReversingLabs revela que dos líneas de código malicioso estaban ocultas en una solicitud de extracción de GitHub que contenía 43 commits y 4,000 líneas de código actualizadas, enfocándose principalmente en la adición de un nuevo marco de pruebas y capacidades. La actualización fue subida a GitHub el 17 de junio por un usuario llamado Airez299, quien no tenía historial previo en la plataforma.
La solicitud de extracción fue revisada por el sistema de inteligencia artificial de GitHub y por miembros de 7finney, el grupo responsable de crear ETHcode. Sin embargo, solo se solicitaron cambios menores, y ni 7finney ni el escáner de IA detectaron nada sospechoso.
Airez299 logró ocultar la naturaleza maliciosa de la primera línea de código dándole un nombre similar al de un archivo preexistente, además de ofuscar y desordenar el código, lo que dificultó su lectura. La segunda línea de código activa la primera y, según ReversingLabs, tiene como objetivo final crear una función automatizada (un script de PowerShell) que descarga y ejecuta un script por lotes desde un servicio de alojamiento de archivos público.
Consecuencias Potenciales
ReversingLabs continúa investigando la funcionalidad exacta de este script, aunque se trabaja bajo la suposición de que está destinado a robar activos criptográficos almacenados en la máquina de la víctima o, alternativamente, comprometer los contratos de Ethereum en desarrollo por parte de los usuarios de la extensión.
En una conversación con Decrypt, Petar Kirhmajer, autor del blog, informó que ReversingLabs no tiene indicios ni evidencia de que el código malicioso haya sido utilizado realmente para robar tokens o datos. Sin embargo, Kirhmajer señala que ETHcode cuenta con 6,000 instalaciones, y que la solicitud de extracción, que podría haberse implementado como parte de una actualización automática, podría haberse propagado a miles de sistemas de desarrolladores.
Opiniones de Expertos
Esto es potencialmente preocupante, y algunos desarrolladores sugieren que este tipo de explotación ocurre con frecuencia en el ámbito de las criptomonedas, dado que la industria depende en gran medida del desarrollo de código abierto. Zak Cole, desarrollador de Ethereum y cofundador de NUMBER GROUP, advierte que muchos desarrolladores instalan paquetes de código abierto sin revisarlos adecuadamente.
«Es demasiado fácil para alguien insertar algo malicioso,»
le dijo a Decrypt.
«Podría ser un paquete npm, una extensión de navegador, lo que sea.»
Ejemplos recientes de alto perfil incluyen la explotación del Ledger Connect Kit en diciembre de 2023, así como el descubrimiento de malware en la biblioteca de código abierto web3.js de Solana.
«Hay demasiado código y no suficientes ojos sobre él,»
añade Cole.
«La mayoría de la gente simplemente asume que las cosas son seguras porque son populares o han estado disponibles durante un tiempo, pero eso no significa nada.»
Recomendaciones para Desarrolladores
Cole afirma que, aunque este tipo de incidentes no es particularmente nuevo, «la superficie de ataque abordable se está expandiendo» debido a que cada vez más desarrolladores utilizan herramientas de código abierto.
«Además, ten en cuenta que hay repositorios enteros llenos de operativos de la DPRK cuyo trabajo a tiempo completo es ejecutar estas explotaciones,»
dice. Mientras Cole sugiere que probablemente hay más código malicioso acechando de lo que muchos desarrolladores se dan cuenta, Kirhmajer le comentó a Decrypt que, en su estimación, «los intentos exitosos son muy raros.»
Esto plantea la pregunta de qué pueden hacer los desarrolladores para reducir sus posibilidades de utilizar código comprometido. ReversingLabs recomienda verificar la identidad y el historial de los contribuyentes antes de descargar cualquier cosa. La firma también sugiere que los desarrolladores revisen archivos como package.json para evaluar nuevas dependencias, algo que Zak Cole también apoya.
«Lo que ayuda es restringir tus dependencias para que no estés incorporando cosas nuevas al azar cada vez que construyes,»
dijo. Cole también recomendó utilizar herramientas que escaneen comportamientos extraños o mantenedores sospechosos, y estar atento a cualquier paquete que pueda cambiar de manos o actualizarse repentinamente.
«Además, no ejecutes herramientas de firma o billeteras en la misma máquina que usas para construir cosas,»
concluyó.
«Simplemente asume que nada es seguro a menos que lo hayas revisado o aislado.»