DuneTech Labs Noticias Volver al sitio
← Todas las noticias

Explicador ·

Llaves de la IA: qué pasó en OpenCode Console y GhostAction, y cómo poner límite en cada proveedor

La publicación del 20 de octubre explicó por qué una llave de la IA es dinero y qué hacer. Aquí va lo que no cupo: lo que se sabe y lo que no del incidente de OpenCode Console, cómo funcionaba GhostAction y cómo revisar si te tocó, el mercado de llaves robadas que describe Anthropic, y dónde se pone el límite de gasto y se acota una llave en cada proveedor.

OpenCode Console: lo que se sabe y lo que no

OpenCode es un agente de código abierto que programa con IA: se instala en la computadora y trabaja con los modelos de varios proveedores. Aparte, ofrece Console, un servicio en la nube que funciona como intermediario hacia los modelos. En Console, los dueños y administradores de un espacio de trabajo pueden invitar a su equipo, elegir qué modelos se usan, poner presupuestos y conectar las llaves de sus propios proveedores.

Esa diferencia es la que importa. Con el programa local, las llaves se guardan en la propia computadora (en ~/.local/share/opencode/auth.json, según su documentación) y, según su equipo, no pasan por sus servidores. En Console, las llaves conectadas quedan guardadas en el servicio.

FechaQué pasó
Noche del 16 al 17 de octubreLa brecha, según OpenCode: «last night» (anoche), en su aviso del 17.
17 de octubre, en la mañanaOpenCode avisa por correo a los usuarios afectados.
17 de octubreLo publica en X: afectó al 1.4% de los usuarios de Console, todos con proveedores externos conectados. Quien no recibió el correo no fue afectado. Dice que trabaja con Anthropic, OpenAI y Google para corregirlo.
17 de octubreDax, de su equipo, aclara que se trata de Console y no del programa: «those keys never come to us» (esas llaves nunca nos llegan).
20 de octubreLa cuenta de OpenCode en X no ha publicado nada nuevo sobre el incidente desde el 17.

Qué es la destilación. En sí es un método legítimo: con las respuestas de un modelo grande se entrena uno más chico. Anthropic llama destilación ilícita a una campaña a escala industrial, y encubierta, para extraer las capacidades de un modelo y copiarlas en otro sin autorización. Según su informe de septiembre, suele apoyarse en fraude: redes de cuentas falsas creadas con tarjetas de crédito, credenciales de acceso y llaves de API robadas.

GhostAction: cómo funcionaba y cómo revisar si te tocó

GitGuardian, una empresa que se dedica a encontrar claves expuestas en código, sigue esta campaña desde 2025. El atacante entra a una cuenta de GitHub con lo que parecen credenciales robadas y, con la identidad de su dueño, agrega a sus repositorios un flujo automático (un «workflow» de GitHub Actions). Ese flujo toma las claves que el repositorio usa en sus procesos automáticos y las manda al servidor del atacante.

El párrafo de GitGuardian con las cifras de la ola de octubre: más de 30,000 repositorios de 3,000 usuarios y organizaciones, con unas 1,900 cuentas de GitHub comprometidas.
La actualización del 13 de octubre en el blog de GitGuardian, capturada el 20 de octubre de 2026.

La ola de octubre trajo algo nuevo: además de esas claves, el flujo revisa el historial del repositorio en busca de claves que alguna vez se guardaron en el código, con 11 patrones, entre ellos los de servicios de IA. Que busque en el contenido indica, según GitGuardian, que el atacante apuntaba también a repositorios privados: en uno público, el contenido ya está a la vista.

El párrafo de GitGuardian sobre los 11 patrones de búsqueda, que incluyen claves de servicios de IA.
Los patrones de la versión de octubre, en el blog de GitGuardian, capturada el 20 de octubre de 2026.
OlaAlcance, según GitGuardian
Septiembre de 2025817 repositorios públicos de 327 usuarios; al menos 3,325 claves robadas.
31 de agosto al 30 de septiembre de 2026772 repositorios públicos de 373 usuarios y organizaciones; el flujo apuntaba a 2,577 secretos (algunos, como nombres de servidor o puertos, no son sensibles por sí solos), entre ellos llaves de proveedores de IA. GitHub dejó en espera de aprobación la mayoría de las ejecuciones: de 3,669 corrieron 499. Al 5 de octubre, según el historial público, solo el 16% de esos repositorios se había limpiado.
8 al 12 de octubre de 2026Más de 30,000 repositorios de 3,000 usuarios y organizaciones, con unas 1,900 cuentas comprometidas; intentó sacar 3,174 claves de repositorios públicos. Las ejecuciones del 8 y 9 sí corrieron. GitHub empezó a impedir que el flujo corriera el 9 de octubre: las olas del 10 y del 12 ya no pudieron sacar claves.

Hay señales de que se reutilizan accesos viejos: algunas víctimas de octubre ya lo habían sido en las olas anteriores, y en la ola de agosto y septiembre de 2026, en 92 casos el atacante no agregó un flujo nuevo: modificó uno que había metido en una ola pasada y que nunca se quitó.

El mercado de las llaves robadas, según Anthropic

El informe de amenazas de Anthropic de septiembre de 2026 describe por qué alguien quiere una llave de IA ajena:

  • Botín, cómputo y cobertura. Quien obtiene una llave de IA gana tres cosas a la vez: algo que se revende, cómputo que paga otro, y que la actividad se le atribuya al dueño legítimo de la llave. Una campaña hacktivista funcionó un mes entero solo con llaves robadas. Para varios grupos criminales, conseguirlas se ha vuelto, cada vez más, el único objetivo; a menudo las venden por medio de intermediarios que surten a redes fraudulentas de reventa.
  • Se buscan a escala. Hay proyectos que rastrean de forma automática, entre otros lugares, el código de las aplicaciones, los repositorios, el código que corre en el navegador y los agentes de IA de las propias víctimas en busca de accesos expuestos. Uno descarga todas las aplicaciones de Google Play para buscar en ellas sesiones u otros accesos expuestos.
  • Se roban a través de proveedores. En uno de los casos, las llaves de IA de una empresa se robaron de sus proveedores de software, y una de ellas se usó cerca de tres semanas para atacar a otras organizaciones.

Cómo poner límite en cada proveedor

Además de lo básico (la llave nunca escrita en el código), cada proveedor de IA ofrece sus propias herramientas para acotar el daño si una llave se pierde:

ProveedorUna llave acotadaLímite de gastoAdemás
OpenAIUna llave por persona del equipo; compartirlas va contra sus términos de uso. Llaves de proyecto con fecha de caducidad (sin ella, una llave puede valer indefinidamente), y un máximo de vida que puede fijar el administrador.Mensual, por organización o por proyecto, con corte del servicio («hard enforcement»). El corte puede frenar también lo legítimo, y el gasto puede pasarse un poco del límite.Lista de direcciones IP permitidas: con ella, una llave copiada no sirve desde otra red.
AnthropicLlaves limitadas a un espacio de trabajo («workspace»): solo acceden a lo de ese espacio.Mensual, por espacio de trabajo, con alertas al llegar a ciertos montos. No se puede poner en el espacio por omisión («Default Workspace»).Archivar un espacio de trabajo archiva todas sus llaves en segundos; no se puede deshacer.
Google (Gemini)Claves de autorización ligadas a una cuenta de servicio y limitadas a la API de Gemini; son las que se crean por omisión en AI Studio desde el 28 de mayo de 2026.Su guía no habla de un límite; recomienda alertas de facturación en la consola de Google Cloud.Restricciones por dirección IP, sitio o aplicación. La API de Gemini rechaza las claves estándar sin restricciones.
La documentación de Anthropic: las llaves de API pueden limitarse a un solo espacio de trabajo.
Llaves por espacio de trabajo, en la documentación de Anthropic, capturada el 20 de octubre de 2026.
La documentación de Anthropic: el límite de gasto mensual por espacio de trabajo, con alertas.
El límite de gasto por espacio de trabajo, en la misma documentación de Anthropic, capturada el 20 de octubre de 2026.

La lista de llaves

Es una recomendación nuestra, no de los proveedores. Una tabla sencilla, con un renglón por llave:

  • qué sistema la usa (el chatbot, la conexión del ERP, un reporte automático);
  • de qué proveedor es, y en qué proyecto o espacio de trabajo está;
  • quién la creó y quién más tiene acceso a ella;
  • dónde está guardada (el servidor, una variable de entorno, una herramienta de terceros como OpenCode Console);
  • qué límite de gasto tiene y cuándo caduca;
  • cuándo se revisó por última vez.

Cuando algo pasa, como con OpenCode Console, esa tabla responde de inmediato qué llaves hay que cambiar y en qué sistemas hay que poner las nuevas.

Fuentes

Consultadas el 20 de octubre de 2026.

  1. OpenCode, el aviso del incidente en X, 17 de octubre (versión original): «We had a security breach last night related to a large scale distillation attack that impacted 1.4% of OpenCode Console users»; «If you did not get an email you were not impacted, it was a subset of users who had external providers linked»; «The incident is ongoing».
  2. Dax, del equipo de OpenCode, en X, 17 de octubre: «note this is the OpenCode Console, not OpenCode itself, those keys never come to us».
  3. OpenCode, la documentación de Console: «Owners and admins can invite members, choose which models are enabled from the Models tab, set budgets, and connect their own providers»; y la de proveedores: las llaves «se almacenan en ~/.local/share/opencode/auth.json».
  4. OpenCode, el aviso GHSA-632h-h47v-g4x4, 24 de septiembre: «This issue affects users who are running the OpenCode HTTP server through opencode serve and whose OpenCode installation is managed by npm, pnpm, or Bun»; corregido en la 1.18.22.
  5. GitGuardian, GhostAction, actualizado el 13 de octubre: «targeted more than 30,000 repositories across 3,000 users and orgs. This resulted from compromising the GitHub accounts of about 1,900 users»; «AI-related secrets»; «GitHub started preventing the malicious workflow from running starting October 9»; «Only 124 repositories (16%) were effectively cleaned»; «likely relying in part on unrotated secrets compromised months or years ago»; los nombres de los flujos y de los mensajes; «this time the workflows ran»; «It attempted to extract 3,174 secrets from public repositories’ CI»; «of the 3,669 runs we collected across 605 repositories, only 499 executed»; «A workflow file named github_actions_security.yml is injected into the victim repo»; «copied GhostAction’s naming»; «In 92 cases, the attacker did not add a new workflow»; «Rotating the secrets exfiltrated by the malicious workflow is not enough. The GitHub credential that allowed the injection in the first place must be found and revoked too».
  6. Anthropic, informe de amenazas de septiembre de 2026: «has increasingly become the sole objective of multiple criminal groups»; «fraudulent AI reseller networks that rotate in new stolen API keys»; «a target's AI API keys were stolen from the target's enterprise software vendors»; «purported to be an intermediary service between multiple AI models and offered discounted access to frontier AI models»; la definición de destilación; «Distillation itself is a legitimate training method»; «Loot», «Compute», «Cover: The activity is attributed to the credential’s legitimate owner»; «A hacktivist campaign… ran for a month entirely on stolen API keys»; «one actor project that downloads all APK files from Google Play Store and searches them for exposed session tokens or other access mechanisms».
  7. OpenAI, cómo cuidar las llaves de API: «Always use a unique API key for each team member»; «Project keys can be created with an expiration date»; «Set monthly spend limits for your organization or projects, and enable hard enforcement»; «Spend alerts alone don't stop API traffic»; «IP allowlisting allows you to restrict which IP addresses can access your OpenAI API»; «Before a key expires, create a replacement, update your applications to use it, and revoke the old key once you've verified that the replacement works»; «Hard enforcement can block legitimate requests»; «If you believe your key has been leaked, rotate your key immediately… For customers with applications in production, you will need to update your key values accordingly»; «preventing them from remaining valid indefinitely».
  8. Anthropic, espacios de trabajo: «API keys can be scoped to a single workspace»; «click Spend limits to cap monthly spending and configure alerts»; «Archiving a workspace archives every API key created for that workspace within seconds»; «You cannot set limits on the Default Workspace»; «Cannot be undone».
  9. Google, claves de la API de Gemini: las claves de autorización «se vinculan directamente a una cuenta de servicio de Google Cloud» y están «restringidas a la API de Generative Language»; «A partir del 28 de mayo de 2026, todas las claves de API nuevas que se creen en Google AI Studio se crearán automáticamente como claves de autorización»; «La API de Gemini rechaza las solicitudes de claves estándar sin restricciones»; «Configura alertas de facturación en la consola de Google Cloud»; «Las restricciones de origen limitan qué direcciones IP, sitios web o aplicaciones pueden usar tu clave»; «Inhabilita la clave filtrada en la consola de Cloud una vez que se verifique la clave nueva».
  10. Anthropic, cómo cuidar las llaves de API: «when you upload your API key to third-party tools or platforms… you are giving the developer of that tool access to your Claude Console account. If you don’t trust their reputation, don’t trust them with your API key»; «If you suspect that your API key may be compromised, we recommend revoking the key immediately».
  11. Pillar Security, la falla de OpenCode en Windows y WSL, 19 de octubre (investigación de la empresa que la encontró): «Affected >= 1.0.137, <= 1.18.32, on Windows and WSL»; «Patched 1.18.33, released 2026-09-28»; «did not issue a security advisory or request a CVE».
Letra
Modo