Investigadores han descubierto un riesgo grave en la cadena de suministro de software: más de 100 extensiones de Visual Studio Code (VS Code) contenían tokens de acceso embebidos (PATs, claves de AWS, OpenAI, etc.) que pueden ser explotados por atacantes. Un adversario que obtenga estos tokens podría secuestrar la extensión y distribuir actualizaciones maliciosas de forma automática a más de 85,000 instalaciones afectadas.
La Filtración Silenciosa en el Entorno de Desarrollo
El hallazgo subraya que la confianza en las herramientas de desarrollo (DevTools) debe ser auditada rigurosamente.
- Alcance de la Filtración: Wiz identificó más de 550 secretos válidos distribuidos en más de 500 extensiones. Los secretos incluían tokens críticos de proveedores de IA (OpenAI, Hugging Face), servicios en la nube (AWS, Google Cloud, Stripe) y bases de datos (MongoDB, PostgreSQL).
- Vector de Secuestro: Más de 100 extensiones filtraron PATs (Personal Access Tokens) del Marketplace de VS Code. Un atacante que posea estos PATs puede silenciosamente inyectar código malicioso en una nueva versión de la extensión y propagarla a miles de usuarios automáticamente.
- Actor Malicioso Detectado: El actor TigerJack ya ha estado publicando extensiones maliciosas que minan criptomonedas, roban código fuente (mediante keyloggers) y establecen backdoors persistentes.
Peligros Clave del Exploit
- Interruptor Silencioso: Dado que las extensiones se actualizan automáticamente, una extensión que comienza siendo benigna puede introducir código malicioso de forma indetectable.
- Ejecución Privilegiada: Las extensiones se ejecutan en el entorno del desarrollador, que a menudo tiene permisos elevados y acceso a código sensible, credenciales internas o sistemas completos.
- Blind Spots: Aunque Microsoft revocó muchos tokens y añadió escaneo de secretos al Marketplace oficial, otros repositorios como Open VSX (que alberga tokens de más de 30 extensiones vulnerables) permanecen menos vigilados, multiplicando la superficie de ataque.
Recomendaciones
- Inventario y Auditoría de Extensiones (Crítico)
- Clasificación de Riesgo: Mantener un registro exhaustivo de las extensiones instaladas. Clasificarlas según permisos elevados, origen desconocido o interfaces con servicios externos.
- Análisis Periódico: Analizar el código de las extensiones (al menos superficialmente) en busca de secretos embebidos, llamadas de red sospechosas o scripts ofuscados.
- Control Centralizado y Listas Blancas (Allowlists)
- Listas Aprobadas: Definir una lista blanca (allowlist) de extensiones aprobadas por la organización que los desarrolladores pueden instalar. Bloquear la instalación de cualquier extensión no aprobada o no auditada.
- Desactivar Actualizaciones Automáticas: En entornos críticos, desactivar las actualizaciones automáticas de extensiones o configurar una política centralizada que exija la revisión antes del despliegue masivo.
- Escaneo de Secretos y Pruebas Automatizadas
- Integración CI/CD: Integrar herramientas de escaneo de secretos (secret scanning) en el pipeline de construcción (CI/CD) para TODAS las extensiones (propias y de terceros) y proyectos internos.
- Pruebas Aisladas: Antes de incorporar una extensión, escanearla activamente en busca de patrones comunes de secretos y probar su comportamiento en entornos sandbox o aislados.
- Principio de Mínimo Privilegio
- Limitar Permisos: Asegurarse de que el proceso de VS Code y sus extensiones tengan solo los permisos estrictamente necesarios. Si una extensión solicita acceso excesivo a la terminal o archivos del sistema, se debe investigar o evitar su uso.
- Rotación: Rotar regularmente los PATs y claves de API de los servicios en la nube utilizados por los desarrolladores.




