Saltar al contenido principal

CI/CD Security Gate

El CI/CD Security Gate desplaza Beak AI Security hacia la izquierda, dentro del proceso de compilación. Mientras que Red Teaming le indica que un agente no es seguro y el Threat Dashboard le indica que una solicitud fue bloqueada en producción, el gate impide que un agente inseguro llegue a producción en absoluto. Un pipeline publica lo que conoce sobre la compilación y el gate responde con un resultado de aprobación o fallo junto con los hallazgos que lo respaldan.

A diferencia de todas las demás capacidades de Beak AI Security, el gate no tiene pantalla propia — es una API invocada desde un pipeline de compilación.


Endpoint​

POST /aisecurity/cicd/evaluate

La solicitud se autentica exactamente igual que el resto de la API de AI Security, con un token bearer para el tenant. No está controlada por permisos: un pipeline no tiene un usuario interactivo de Beak al que asignar un rol, por lo que el gate se clasifica como endpoint de máquina y no se verifica ningún permiso authz.

El estado de la respuesta es el resultado del gate, lo que lo hace utilizable directamente como paso de compilación:

  • 200 — El gate ha sido aprobado.
  • 422 — El gate ha fallado. Un pipeline que falla la compilación ante una respuesta no-2xx no necesita parsear el resultado en absoluto.

Comprobaciones​

Hay cuatro comprobaciones disponibles. Cada una se ejecuta únicamente si su clave está presente en el cuerpo de la solicitud, de modo que un pipeline puede adoptar el gate de forma incremental y añadir comprobaciones a medida que la evidencia correspondiente esté disponible.

Secretos Codificados en Plantillas de Prompt​

  • Clave — prompt_templates (lista de cadenas de texto)
  • Severidad — critical

Analiza cada plantilla de prompt suministrada en busca de credenciales que hayan sido pegadas en un prompt. Se reconocen siete patrones: asignaciones genéricas de API key, asignaciones genéricas de secreto, contraseña o token, claves de estilo OpenAI con sk-, tokens bearer, bloques de clave privada PEM, tokens de acceso personal de GitHub (ghp_) e IDs de clave de acceso de AWS (AKIA).

Cualquier coincidencia falla el gate. El hallazgo indica el índice de la plantilla infractora y cuántas coincidencias contenía, de modo que el registro del pipeline apunta al prompt exacto sin volver a imprimir el secreto.

Tasa de Aprobación del Red Team​

  • Claves — redteam_pass_rate (0–1), y opcionalmente redteam_min_pass_rate (valor predeterminado 0.8)
  • Severidad — high en caso de fallo

Compara la tasa de aprobación de la campaña de red team más reciente con el mínimo requerido por la compilación. Suministrar redteam_pass_rate sin redteam_min_pass_rate aplica el valor predeterminado de 0.8.

Validez del AIBOM​

  • Clave — aibom_valid (booleano)
  • Severidad — medium en caso de fallo

Falla el gate cuando el AIBOM está ausente o desactualizado, de modo que un despliegue no puede publicarse con un inventario que ya no describe lo que se está desplegando.

CVE de Contenedores​

  • Claves — container_cves (lista de IDs de CVE), y opcionalmente max_critical_cves (valor predeterminado 0)
  • Severidad — critical en caso de fallo

Falla cuando el número de CVE encontradas en la imagen del contenedor supera la cantidad permitida. El valor predeterminado de 0 significa que cualquier CVE falla el gate. El hallazgo devuelve la lista de CVE para que el registro de compilación registre exactamente lo que se encontró.


Solicitud​

{
"prompt_templates": ["You are a support agent. Use api_key=..."],
"redteam_pass_rate": 0.92,
"redteam_min_pass_rate": 0.85,
"aibom_valid": true,
"container_cves": ["CVE-2025-1234"],
"max_critical_cves": 0
}

Respuesta​

El resultado se devuelve en el sobre estándar de la API de Beak, con el resultado del gate en data:

{
"status": "success",
"message": "Gate evaluation complete",
"data": {
"gate_passed": false,
"checks_run": 4,
"checks_passed": 3,
"checks_failed": 1,
"findings": [
{
"check": "container_cves",
"severity": "critical",
"passed": false,
"description": "1 CVE(s) found in container (max allowed: 0)",
"cves": ["CVE-2025-1234"]
}
]
}
}
  • gate_passed — false si alguna comprobación falló. Refleja el estado HTTP.
  • checks_run, checks_passed, checks_failed — Conteos sobre los hallazgos efectivamente producidos. checks_run cuenta únicamente las comprobaciones cuyas claves fueron suministradas.
  • findings — Una entrada por cada comprobación ejecutada, cada una con check, severity, passed y una description legible por humanos, además de detalles específicos de cada comprobación.

Nota: Las comprobaciones aprobadas también se notifican, con severidad info. La lista de hallazgos es el registro completo de lo que fue evaluado, no solo de lo que falló.


Cómo se Ve una Comprobación Omitida​

Una comprobación que no se suministra se omite silenciosamente — no produce ningún hallazgo y no falla el gate. Dos casos son fáciles de confundir con una aprobación:

  • Omitir una clave por completo. Un cuerpo con solo aibom_valid ejecuta una comprobación y checks_run reporta 1.
  • Suministrar una lista vacía de prompt_templates o container_cves. Una lista vacía omite la comprobación en lugar de aprobarla, por lo que un escáner que no produjo salida y un escáner que no logró ejecutarse son indistinguibles para el gate.

Compare checks_run con el número de comprobaciones que el pipeline pretendía enviar. Un gate que fue aprobado porque no se comprobó nada es el modo de fallo que vale la pena prevenir.


Buenas Prácticas​

  • Falle la compilación según el estado HTTP — Trate cualquier respuesta no-200 como una detención. No requiere parsear el resultado y no puede ser anulado por un cambio en el cuerpo de la respuesta.
  • Verifique checks_run — Un gate en verde no significa nada si la evidencia nunca llegó. Compruebe que el conteo coincide con lo que el pipeline pretendía enviar.
  • Alimente el gate con salida real del escáner — Conecte container_cves al análisis de imagen y redteam_pass_rate a la campaña más reciente en lugar de a valores codificados, o el gate solo confirmará sus propios valores predeterminados.
  • Establezca max_critical_cves en 0 y manténgalo así — La tolerancia existe para la adopción gradual en un entorno existente; aumentarla permanentemente convierte la comprobación en una formalidad.
  • Ejecute el gate antes de publicar la imagen, no después — El gate solo es un control si un fallo impide que el artefacto esté disponible para su despliegue.

Páginas Relacionadas​

  • Red Teaming — Produce la tasa de aprobación de campaña que el gate aplica.
  • AIBOM — El inventario cuya validez comprueba el gate.
  • Atlas Browser — Mapea hallazgos con técnicas adversariales para revisión previa al despliegue.
  • Threat Dashboard — Protección en tiempo de ejecución para lo que sí llega a producción.
  • Overview — Descripción general de alto nivel del producto Beak AI Security.