Imagina que abres el correo una mañana y encuentras tres avisos de gasto al mismo tiempo, de tres proveedores distintos, por cantidades que no reconoces. Según TechCrunch, es lo que vieron algunos usuarios de OpenCode a mediados de octubre: alguien había usado sus claves de API para lanzar consultas a modelos de pago en su nombre.
Qué ha contado OpenCode, y qué falta
OpenCode es un agente de programación de código abierto que TechCrunch presenta como una alternativa popular a Claude Code y Cursor. Lo que se vulneró no fue el programa, sino su consola web, el lugar donde algunos usuarios guardan las claves de los modelos que quieren usar. Según TechCrunch, el ataque afectó al 1,4 % de los usuarios de esa consola, y su cofundador Dax Raad aseguró que la aplicación y la herramienta de línea de comandos siguen intactas porque las claves «nunca llegan» a ellos por esa vía.
Las facturas fueron lo que hizo ruido. TechCrunch habla de usuarios con cargos de cientos de dólares y de varios por encima de los 1.000 en cuentas de OpenAI, Anthropic y Google. BleepingComputer eleva la cifra a 1.700 dólares en una sola noche y añade que Google suspendió algunos proyectos por actividad abusiva. OpenCode llama al ataque «distillation attack»: en lugar de vender las claves, quienes las usaron habrían lanzado un volumen enorme de consultas para recoger las respuestas de los modelos y reproducir su comportamiento. Esa explicación es de OpenCode, y TechCrunch recoge que hay quien la cuestiona: ven una brecha sin más, con el uso para destilación sin demostrar. Los proveedores no han detallado públicamente qué vieron en sus sistemas.
Las fechas tampoco coinciden según quién cuente la historia. TechCrunch, que publicó el 19 de octubre, cita a OpenCode hablando de una brecha «anoche». BleepingComputer sitúa la primera exposición a las 00:30 UTC del 17, y el aviso de OpenCode, tal como lo reproduce el blog OrcaRouter, lleva fecha del 17 y habla de un acceso no autorizado a un sistema antiguo que estaban retirando. Según ese aviso, solo recibieron correo los afectados, es decir, quienes tenían proveedores externos vinculados. BleepingComputer informó de que OpenCode no había respondido a sus preguntas al publicar.
Lo que hicieron los proveedores
Según TechCrunch, Anthropic y Google bloquearon las claves expuestas, y OpenAI trabajó con OpenCode para restablecer el acceso y reembolsar los créditos consumidos. OpenCode, por su parte, dijo que los reembolsos de cargos no autorizados estaban en marcha y, en su aviso, pidió a los afectados que revocaran y sustituyeran sus claves directamente en cada proveedor. Si alguna vez guardaste una clave en esa consola, ese es el primer paso. El aviso asegura que quien no recibió correo no está afectado; cambiarla igualmente es una precaución nuestra, y apenas cuesta nada.
El episodio tuvo además un giro incómodo. Según el mismo reportaje, los modelos de última generación se negaban una y otra vez a analizar el código malicioso porque lo tomaban por contenido peligroso, hasta que OpenCode consiguió acceso a Daybreak Blue, el programa de OpenAI con modelos menos restringidos para profesionales de seguridad acreditados. Raad lo calificó de «un poco frustrante».
Un tope de gasto frena lo que un aviso solo cuenta
Lo más útil de esta historia para quien paga por uso no está en la brecha, sino en lo que habría limitado el daño. Un aviso de gasto llega cuando el dinero ya se está yendo; un tope lo detiene. Los tres proveedores permiten algo parecido, con matices.
| Proveedor | Qué puede cortar el gasto | La advertencia de su documentación |
|---|---|---|
| OpenAI | Un límite duro, por organización o por proyecto, que devuelve error 429 al alcanzarlo | La guía de límites avisa de que «no es instantáneo» y puede colarse algo de gasto extra; las alertas, por sí solas, no ponen techo |
| Anthropic | Un límite de gasto por espacio de trabajo en la consola, siempre inferior al de la organización | Según su ayuda, cada clave pertenece a un único espacio de trabajo y puede desactivarse o borrarse |
| Google (API de Gemini) | Un presupuesto con tope en Cloud Billing, que pausa el uso al superarse | Según la documentación de Google, se calcula con costes estimados y los presupuestos normales solo avisan |
La consecuencia práctica es separar. Si usas la misma clave para todo, un robo agota todo el presupuesto. Si creas una clave por herramienta y por proyecto, con su propio tope, el peor escenario queda acotado a lo que decidiste asumir. OpenAI recomienda además, en su guía de buenas prácticas, poner fecha de caducidad a las claves de proyecto y rotarlas con regularidad: crear la nueva, cambiarla en las aplicaciones y revocar la vieja.
Si programas con un agente, mira primero con qué entra
Hay otra pregunta menos evidente: ¿necesita tu herramienta una clave de pago por uso? En Claude Code no siempre. Su documentación permite entrar con una suscripción de Claude o con una cuenta de la consola de Anthropic, y en este segundo caso, desde la versión 2.1.242, ofrece iniciar sesión sin crear una clave: guarda un token de acceso que se renueva y, según la propia documentación, una clave de API es una credencial estática. Si tienes ANTHROPIC_API_KEY definida en el entorno y la aceptas, la herramienta la usa; para volver a la suscripción basta con quitar esa variable y comprobar el método activo con /status.
Eso no vuelve inmune a nadie, y no vale para cualquier combinación de herramienta y modelo. Pero ilustra el criterio: antes de pegar una clave en un servicio de terceros, comprueba si existe una vía que no te obligue a entregarla. Y si no la hay, averigua si ese servicio la guarda en sus servidores o solo en tu equipo. Esa diferencia es la que, según OpenCode, separó a los afectados del resto: la clave estaba en su consola web, no en la aplicación.
Qué revisar antes de que acabe la semana
Entra en las tres consolas que uses y mira qué claves están activas, quién las usa y desde cuándo; borra las que no reconozcas. Si alguna vez las guardaste en la consola de OpenCode, sustitúyelas aunque no te hayan avisado. Después, pon un límite mensual a cada proyecto que sea claramente superior a tu gasto habitual pero muy inferior a lo que te dolería perder, y añade una alerta al 50 % para enterarte antes de que el tope te corte el trabajo. Un tope bien puesto es una molestia puntual, pero un cargo de mil dólares no lo es.
Lo que sigue sin saberse
OpenCode no ha publicado, que sepamos, una explicación técnica: no ha dicho cómo entraron los atacantes, cuántas cuentas ni cuántos dólares suman en total, ni ha detallado su política de reembolsos más allá de lo que ha dicho a la prensa. Tampoco se sabe si el sistema afectado almacenaba las claves cifradas. Y queda abierta la pregunta que este caso deja a cualquiera que use agentes de programación: cuántas de las claves que cada uno ha pegado en herramientas de terceros siguen vivas sin que nadie las vigile.