Análisis Principal
Seguridad y Riesgo6 min

Paquetes npm y Go secuestrados utilizan tareas de VS Code y transacciones de blockchain para entregar infostealer Python

Estação de trabalho de um desenvolvedor à noite com VS Code aberto exibindo arquivo JSON, ambiente escuro e iluminação do monitor.

JFrog identifica dos paquetes npm y un clúster de 16 paquetes Go secuestrados con un payload que se activa a través de tasks.json de VS Code y busca instrucciones en transacciones de Tron, Aptos y BSC.

JFrog Security Research publicó el lunes (29) el análisis de dos versiones maliciosas de paquetes npm y de un clúster de 16 paquetes Go que invierten el playbook tradicional de ataque al registry. En lugar de explotar los scripts de ciclo de vida de npm, un objetivo bloqueado por los hardenings de npm v12, los atacantes ocultaron la ejecución dentro del archivo tasks.json de VS Code, configurado con autoRun: 'folderOpen'. Basta que el desarrollador abra la carpeta en el editor para que la cadena se dispare, sin que se invoquen npm install o npm test.


Los paquetes npm comprometidos son html-to-gutenberg en la versión 4.2.11 y fetch-page-assets en 1.2.9, ambos publicados el 25 de mayo y retirados del registry después de la divulgación. La pista de Go fue identificada paralelamente por Nextron Research y replicada para 16 paquetes que cargan el mismo loader. El payload descarga una fuente aparente, en realidad un blob de JavaScript con etiqueta de extensión alterada, y se ejecuta en proceso node -e desacoplado.


Por qué el blockchain entra en la cadena


El loader no utiliza un dominio C2 fijo. Resuelve transacciones en tres blockchains públicas, en el siguiente orden: TronGrid, Aptos y BSC JSON-RPC. Los datos relevantes están en el campo input de la transacción, después de un marcador '?.?', y son decodificados con XOR antes de la ejecución. La mecánica es importante porque imposibilita el takedown clásico de DNS sinkhole y exige que el equipo de detección monitoree el tráfico saliente hacia la infraestructura de blockchain pública, un estándar que los firewalls corporativos casi nunca tratan como hostil.


La segunda etapa establece un backdoor socket.io y el infostealer de Python a continuación. Tiene un alcance amplio: credenciales guardadas en navegadores Chromium y Firefox, administradores de contraseñas, autenticadores TOTP, wallets cripto, historiales de Git, hosts.yml de GitHub CLI, logs de GitHub Desktop, configuraciones del propio VS Code, Windows Credential Manager, Linux Secret Service, KDE Wallet, macOS Keychain y metadatos de proveedores cloud. En ambientes en los que los desarrolladores guardan tokens de API cortos en el .env del proyecto, la filtración es directa.


Quién está expuesto, y en qué altura de la cadena


El ángulo incómodo para el CISO está en quién necesita ejecutar VS Code con auto-trust activo. Las plataformas de coding agent que ofrecen espacio para que el usuario abra un repositorio arbitrario y comience un análisis pertenecen a la categoría más expuesta, porque la apertura del workspace dispara el autoRun sin aviso. Los equipos de DevSecOps que estandarizaron .vscode/tasks.json compartido entre repositorios heredaron un vector que sale del alcance de los escaneos de dependencia que se ejecutan en pre-commit.


La superficie real aún no ha sido medida. JFrog informa que las dos versiones npm tuvieron algunos miles de descargas antes de la eliminación, pero el número no aísla cuánto llegó a estaciones de desarrollador y cuánto quedó en agentes de build efímeros de CI. La telemetría del infostealer, a medida que aparezca en mercados de credential broker en las próximas semanas, es el termómetro que dirá cuánto valió la inversión de los atacantes.


El read-across para Bangalore y São Paulo


Es aquí donde el ataque sale del nicho de investigación en seguridad y se convierte en un problema de comité. Los Acceleration Centers de PwC y Deloitte en Bangalore concentran miles de desarrolladores en proyectos client-facing que usan tasks.json compartido para estandarizar lint, build y deploy. Una intrusión silenciosa en una máquina de entrega en el offshore se convierte en credenciales de GitHub de clientes del Tier 1 financiero inglés o americano. HCLTech y TCS, que operan centros equivalentes en Pune y Chennai, tienen exposición en la misma orden de magnitud.


En Brasil, el vector afecta la ingeniería de fintechs y bancos digitales, que estandarizaron VS Code con tareas compartidas para ambientes de Nubank, C6 y BTG. Stefanini y CI&T, que entregan squads asignados a clientes del retail y la industria, tienen la misma geometría de riesgo. Recomendar la revocación de tokens a gran escala se ha convertido en una acción operacional, no en un ejercicio teórico.


Qué pedir al equipo hoy


La corrección inmediata es configurar 'security.workspace.trust.enabled' como true y desactivar autoRun en todas las imágenes corporativas de VS Code, una política que muchos equipos relajaron cuando agentes de coding comenzaron a necesitar trust del workspace para funcionar. El escaneo de IOC publicado por JFrog cubre los dos paquetes npm y los 16 paquetes Go, y los artefactos de blockchain dead-drop fueron catalogados en el informe. El recordatorio que queda para el CIO es más estructural: las cadenas de suministro de software no terminan en el SBOM. Siguen dentro del editor que el desarrollador abre, y esa frontera ha sido poco vigilada hasta el lunes.

Análisis Principal