Falso proceso de selección utilizado para distribuir un paquete npm malicioso
Tiempo estimado de lectura: 5 minutos
Dificultad técnica: Alta
Conclusiones clave
- Se han utilizado procesos de selección fraudulentos para difundir paquetes npm maliciosos.
- El ataque puede comprometer datos sensibles de navegadores y billeteras de criptomonedas.
- La sofisticación del ataque dificulta su detección y puede diseminarse entre desarrolladores.
- Es crucial verificar orígenes de código antes de ejecutar cualquier repositorio o script.
Índice
Descripción del ataque
El ataque se inicia con una entrevista falsa en la que la víctima, un desarrollador interesado en proyectos de Web3, recibe instrucciones para clonar un repositorio de GitHub y ejecutar un entorno Node.js que aparenta ser legítimo. Dentro de dicho repositorio, el archivo package.json
ha sido alterado para incluir el paquete troyanizado rtk-logger
(versión 1.11.5). Este paquete, que había sido previamente eliminado del registro oficial de npm, es restaurado y ejecuta código ofuscado, encriptado con AES-256-CBC. A través de funciones eval()
, el script desencripta y ejecuta cargas adicionales maliciosas que recogen información sensible del sistema, incluyendo:
- Bases de datos de navegadores: Chrome, Brave, Opera, Firefox.
- Extensiones de billeteras de criptomonedas: MetaMask, entre otras.
Durante el ataque se identificaron conexiones de comando y control (C2) destinadas a la exfiltración de datos, así como intentos de evadir análisis y supervisar el entorno de la víctima.
Principales riesgos
El principal riesgo asociado es el robo de tokens, credenciales y claves que se hallan almacenadas en navegadores y extensiones, lo que compromete la seguridad de los fondos y la privacidad de los usuarios que participan en actividades relacionadas con criptomonedas. Las cadenas de suministro que dependen de npm y GitHub pueden ser vulneradas si no se realiza un control riguroso del código fuente externo. Aunque la explotación del ataque requiere ejecución manual y ciertas condiciones específicas (tales como ejecución local y permisos elevados), la sofisticación en la ocultación del ataque dificulta su detección. Además, el ataque tiene el potencial de diseminarse dentro de comunidades de desarrolladores y criptomonedas si no se comunica con suficiente antelación.
Sugerencias de prevención
- Fomentar la conciencia sobre ataques de ingeniería social, especialmente en procesos de selección y pruebas técnicas.
- Asegurarse de verificar siempre los orígenes de los repositorios antes de clonar o ejecutar cualquier código.
- Restringir los permisos de ejecución en entornos de prueba.
- Implementar políticas estrictas de lista blanca para módulos npm.
- Monitorizar la actividad de red en busca de Indicadores de Compromiso (IoCs), como URLs y hashes divulgados.
- Aplicar o actualizar soluciones de Respuesta y Detección de Amenazas (EDR) y mantener sistemas y herramientas de seguridad actualizadas.
- Realizar limpiezas y auditorías periódicas en los entornos de desarrollo y operación.
Conclusión
La confianza en los procesos de selección y colaboración técnica debe complementarse con controles y validaciones adicionales. La creciente sofisticación de campañas que mezclan ingeniería social y la troyanización de dependencias enfatiza la necesidad de adoptar una postura proactiva y cautelosa ante cualquier petición para ejecutar código no verificado.