Protegiendo nuestra base de código con agentes autónomos
En los últimos nueve meses, nuestro ritmo de PR ha aumentado 5 veces. Las herramientas de seguridad basadas en análisis estático o en una propiedad rígida del código siguen siendo útiles, pero no bastan a esta escala. Nos hemos adaptado usando Cursor Automations, lo que nos ha permitido crear rápidamente una flota de agentes de seguridad que identifican y reparan continuamente vulnerabilidades en nuestra base de código.


Hoy lanzamos cuatro nuevas plantillas de automatización con los planos exactos de los agentes de seguridad que hemos considerado más útiles. Otros equipos de seguridad pueden personalizar estas plantillas para crear agentes que resuelvan automáticamente una amplia variedad de incidencias de seguridad.
La arquitectura de las automatizaciones
Para que los agentes sean útiles para la seguridad, necesitan dos funcionalidades, y Cursor Automations proporciona ambas.
La primera son integraciones listas para usar para recibir webhooks, responder a pull requests de GitHub y supervisar cambios en el codebase. Esto permite que los agentes que operan en segundo plano sepan cuándo dar un paso al frente y actuar.
La segunda es un entorno y marco de ejecución sólidos para agentes. Automations funciona con agentes en la nube, lo que les proporciona todas las herramientas, Skills y la observabilidad a las que tienen acceso los agentes en la nube.
Para que Automations sea más potente en casos de uso específicos de seguridad, creamos una herramienta de seguridad MCP y la desplegamos como una función Lambda sin servidor, disponible justo a tiempo cuando se necesita y, en caso contrario, sin ejecutarse.
El MCP, cuyo código de referencia está disponible aquí, cumple tres propósitos:
-
Datos persistentes. El agente usa el MCP para almacenar datos, de modo que podamos hacer seguimiento y medir el impacto en seguridad a lo largo del tiempo. Usamos esos datos para perfeccionar continuamente cuándo y cómo activamos las automatizaciones.
-
Eliminación de duplicados. Ejecutamos varios agentes de revisión en cada cambio y, como sus hallazgos los genera un LLM, distintos agentes pueden acabar usando palabras diferentes para describir el mismo problema subyacente. Para evitar trabajo duplicado, el MCP permite al agente desplegar un clasificador impulsado por Gemini Flash 2.5 que determina cuándo dos hallazgos semánticamente distintos describen el mismo problema.
-
Salida coherente. Los agentes reportan cada vulnerabilidad que encuentran a través del MCP, que envía mensajes de Slack con un formato coherente y gestiona acciones posteriores, como descartar o posponer un hallazgo.
Con esta base, las cuatro automatizaciones de seguridad que se detallan a continuación añaden sus propios flujos de trabajo y su lógica de activación. Usamos Terraform para garantizar que todos los cambios en las herramientas de seguridad pasen por un proceso estándar de revisión y despliegue.
Agentic Security Review
Internamente, ya usábamos Bugbot para revisar PRs en busca de calidad de código e incidencias generales, incluidos algunos hallazgos de seguridad. Pero una herramienta de revisión de propósito general no es ideal para la seguridad, porque no puede ajustarse mediante prompts a nuestro modelo de amenazas específico, y porque necesitábamos la capacidad de bloquear la CI específicamente por hallazgos de seguridad, sin bloquear por cada incidencia general de calidad de código.
Dado eso, creamos una automatización dedicada a la que llamamos Agentic Security Review. Inicialmente, hicimos que reenviara sus hallazgos a un canal privado de Slack supervisado por nuestro equipo de seguridad.

Una vez que tuvimos confianza en que identificaba incidencias reales, activamos los comentarios en los PR y luego implementamos una comprobación de bloqueo. En los últimos dos meses, Agentic Security Review se ha ejecutado en miles de PRs y ha evitado que cientos de incidencias lleguen a producción.
Vuln Hunter
Tras el éxito de Agentic Security Review en código nuevo, pusimos agentes a trabajar sobre la base de código existente. Vuln Hunter es una automatización que divide el código en segmentos lógicos y busca vulnerabilidades en cada uno. Nuestro equipo clasifica los hallazgos y normalmente los soluciona, a menudo usando @Cursor desde Slack para generar PRs.
Anybump
Aplicar parches a las dependencias consume tanto tiempo que la mayoría de los equipos de seguridad acaban por rendirse y trasladan esa tarea a ingeniería, donde se queda en el backlog. Creamos una automatización llamada Anybump que ha automatizado por completo casi todo el proceso.
Anybump ejecuta análisis de alcanzabilidad para reducir las vulnerabilidades a las que realmente tienen impacto; después, recorre las rutas de código relevantes, ejecuta pruebas, verifica que nada se rompa y abre una PR cuando las pruebas pasan. Una vez fusionada la PR, el pipeline de despliegue canario de Cursor actúa como una última barrera de seguridad antes de que nada llegue a producción.

Invariant Sentinel
Invariant Sentinel se ejecuta a diario para monitorear desviaciones respecto a un conjunto de propiedades de seguridad y cumplimiento. Divide el repositorio en segmentos lógicos e inicia subagentes para validar el código con una lista de invariantes.
Tras el análisis, el agente compara el estado actual con ejecuciones anteriores mediante la función de memoria de automatizaciones. Si detecta una desviación, vuelve a validar para garantizar la precisión; luego actualiza su memoria y envía un informe por Slack al equipo de seguridad con una descripción del cambio y ubicaciones específicas del código como evidencia.
Como esta automatización se ejecuta en un entorno de desarrollo completo, el agente puede escribir y ejecutar código para validar sus propios supuestos, complementando las pruebas funcionales, unitarias y de integración tradicionales.
Más automatizaciones por venir
La seguridad está llena de oportunidades para aplicar automatizaciones, y estas cuatro son solo el comienzo del trabajo que planeamos hacer. Ya las estamos ampliando para abarcar la recepción de informes de vulnerabilidades, la supervisión del cumplimiento en materia de privacidad, la clasificación de alertas de guardia y el aprovisionamiento de acceso.
En cada caso, los agentes nos brindan cobertura y consistencia a una escala que no podríamos lograr manualmente.