Saltar al contenido principal
Version: 1.0.0

Plantillas de análisis

Las plantillas de análisis le permiten guardar configuraciones frecuentemente utilizadas para una reutilización rápida. En lugar de especificar el tipo de análisis, opciones, prioridad y etiquetas cada vez, cree una plantilla una vez y lance análisis proporcionando únicamente el objetivo.

Beneficios

  • Consistencia — Aplique parámetros idénticos en cada ejecución
  • Rapidez — Lance análisis con una sola solicitud conteniendo solo el objetivo
  • Estandarización — Comparta configuraciones estandarizadas dentro de su equipo
  • Integración CI/CD — Referencie plantillas por ID en sus pipelines de automatización

Crear una plantilla

Endpoint

POST /api/v1/scan-templates

Alcance requerido: templates:create

Solicitud

curl -X POST https://api.cert-ix.com/scan-api/api/v1/scan-templates \
-H "X-API-Key: $CERTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Scan CI Contenedores",
"description": "Análisis de vulnerabilidades para imágenes de contenedores en pipeline CI",
"scanType": "trivy",
"priority": "high",
"options": {
"scanners": ["vuln", "misconfig", "secret"],
"severity": ["CRITICAL", "HIGH"]
},
"tags": ["ci", "contenedor", "producción"]
}'

Parámetros de la solicitud

CampoTipoRequeridoDescripción
namestringNombre legible de la plantilla (máx. 255 caracteres)
descriptionstringNoDescripción del objetivo y comportamiento
scanTypestringMotor de análisis a usar
targetTypestringNoTipo de objetivo predeterminado
prioritystringNoPrioridad predeterminada: critical, high, normal, low
optionsobjectNoOpciones del motor (idénticas a POST /scans)
configobjectNoSobreescrituras de configuración del motor
tagsstring[]NoEtiquetas para organización y filtrado
timeoutintegerNoDuración máxima en segundos

Respuesta (201 Created)

{
"success": true,
"data": {
"id": "tmpl-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"tenantId": "7b5b0610-2947-412f-a869-4683da321fcf",
"name": "Scan CI Contenedores",
"scanType": "trivy",
"priority": "high",
"options": {
"scanners": ["vuln", "misconfig", "secret"],
"severity": ["CRITICAL", "HIGH"]
},
"tags": ["ci", "contenedor", "producción"],
"usageCount": 0,
"createdAt": "2026-03-06T10:00:00Z"
}
}

Listar plantillas

GET /api/v1/scan-templates

Alcance requerido: templates:read

Obtener una plantilla

GET /api/v1/scan-templates/:templateId

Alcance requerido: templates:read

Actualizar una plantilla

PATCH /api/v1/scan-templates/:templateId

Alcance requerido: templates:update

Campos modificables: name, description, priority, options, config, tags, timeout.

Eliminar una plantilla

DELETE /api/v1/scan-templates/:templateId

Alcance requerido: templates:delete

nota

Eliminar una plantilla no afecta los análisis ya lanzados desde ella.

Lanzar un análisis desde una plantilla

Lance un análisis usando las opciones preconfiguradas de una plantilla. Proporcione simplemente el objetivo — todo lo demás se hereda de la plantilla.

Endpoint

POST /api/v1/scan-templates/:templateId/launch

Alcance requerido: scans:create

Solicitud

curl -X POST "https://api.cert-ix.com/scan-api/api/v1/scan-templates/$TEMPLATE_ID/launch" \
-H "X-API-Key: $CERTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target": "registry.example.com/miapp:latest"
}'

Parámetros de lanzamiento

CampoTipoRequeridoDescripción
targetstringEl objetivo del análisis
namestringNoSobreescribir el nombre (sino usa el nombre de la plantilla)
prioritystringNoSobreescribir la prioridad
tagsstring[]NoEtiquetas adicionales (fusionadas con las de la plantilla)

Respuesta (201 Created)

{
"success": true,
"data": {
"id": "scan-new-uuid",
"scanType": "trivy",
"name": "Scan CI Contenedores",
"target": "registry.example.com/miapp:latest",
"status": "queued",
"priority": "high",
"templateId": "tmpl-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"tags": ["ci", "contenedor", "producción"],
"createdAt": "2026-03-06T10:05:00Z"
}
}

Casos de uso de plantillas

Integración CI/CD

# .github/workflows/security-scan.yml
- name: Lanzar análisis de seguridad
run: |
curl -X POST "$CERTIX_URL/scan-templates/$TEMPLATE_ID/launch" \
-H "X-API-Key: $CERTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"target": "ghcr.io/${{ github.repository }}:${{ github.sha }}"}'

Análisis por lote

TARGETS=("app1.example.com" "app2.example.com" "app3.example.com")

for TARGET in "${TARGETS[@]}"; do
curl -s -X POST "$BASE_URL/scan-templates/$TEMPLATE_ID/launch" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d "{\"target\": \"$TARGET\", \"name\": \"Análisis lote - $TARGET\"}"
echo "Análisis lanzado para: $TARGET"
done

Ejemplos de plantillas comunes

Escaneo de red rápido:

{
"name": "Escaneo de red rápido",
"scanType": "nmap",
"options": { "topPorts": 100, "timing": "T4", "serviceDetection": true }
}

Evaluación web OWASP:

{
"name": "Evaluación web OWASP",
"scanType": "zap",
"priority": "high",
"options": { "scanPolicy": "full", "spiderMaxDepth": 5, "ajaxSpider": true, "activeScan": true }
}

Evaluación de seguridad completa:

{
"name": "Evaluación Sentinel completa",
"scanType": "sentinel",
"priority": "high",
"options": { "depth": "deep", "correlate": true, "riskScore": true }
}

Próximos pasos: