Template di scansione
I template di scansione vi permettono di salvare configurazioni usate frequentemente per un riutilizzo rapido. Invece di specificare tipo di scansione, opzioni, priorità e tag ogni volta, create un template una volta e lanciate scansioni fornendo solo l'obiettivo.
Vantaggi​
- Coerenza — Applicate parametri identici ad ogni esecuzione
- Velocità — Lanciate scansioni con una singola richiesta contenente solo l'obiettivo
- Standardizzazione — Condividete configurazioni standardizzate all'interno del team
- Integrazione CI/CD — Referenziate template per ID nelle vostre pipeline di automazione
Creare un template​
Endpoint​
POST /api/v1/scan-templates
Scope richiesto: templates:create
Richiesta​
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 Container",
"description": "Analisi vulnerabilità per immagini container nella pipeline CI",
"scanType": "trivy",
"priority": "high",
"options": {
"scanners": ["vuln", "misconfig", "secret"],
"severity": ["CRITICAL", "HIGH"]
},
"tags": ["ci", "container", "produzione"]
}'
Parametri della richiesta​
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name | string | Sì | Nome leggibile del template (max. 255 caratteri) |
description | string | No | Descrizione dell'obiettivo e del comportamento |
scanType | string | Sì | Motore di scansione da usare |
targetType | string | No | Tipo di obiettivo predefinito |
priority | string | No | Priorità predefinita: critical, high, normal, low |
options | object | No | Opzioni del motore (identiche a POST /scans) |
config | object | No | Sovrascritture di configurazione del motore |
tags | string[] | No | Tag per organizzazione e filtraggio |
timeout | integer | No | Durata massima in secondi |
Risposta (201 Created)​
{
"success": true,
"data": {
"id": "tmpl-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"tenantId": "7b5b0610-2947-412f-a869-4683da321fcf",
"name": "Scan CI Container",
"scanType": "trivy",
"priority": "high",
"options": {
"scanners": ["vuln", "misconfig", "secret"],
"severity": ["CRITICAL", "HIGH"]
},
"tags": ["ci", "container", "produzione"],
"usageCount": 0,
"createdAt": "2026-03-06T10:00:00Z"
}
}
Elencare i template​
GET /api/v1/scan-templates
Scope richiesto: templates:read
Ottenere un template​
GET /api/v1/scan-templates/:templateId
Scope richiesto: templates:read
Aggiornare un template​
PATCH /api/v1/scan-templates/:templateId
Scope richiesto: templates:update
Campi modificabili: name, description, priority, options, config, tags, timeout.
Eliminare un template​
DELETE /api/v1/scan-templates/:templateId
Scope richiesto: templates:delete
L'eliminazione di un template non influenza le scansioni già lanciate da esso.
Lanciare una scansione da un template​
Lanciate una scansione utilizzando le opzioni preconfigurate di un template. Fornite semplicemente l'obiettivo — tutto il resto viene ereditato dal template.
Endpoint​
POST /api/v1/scan-templates/:templateId/launch
Scope richiesto: scans:create
Richiesta​
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/miaapp:latest"
}'
Parametri di lancio​
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
target | string | Sì | L'obiettivo della scansione |
name | string | No | Sovrascrivere il nome (altrimenti usa il nome del template) |
priority | string | No | Sovrascrivere la priorità |
tags | string[] | No | Tag aggiuntivi (uniti con quelli del template) |
Risposta (201 Created)​
{
"success": true,
"data": {
"id": "scan-new-uuid",
"scanType": "trivy",
"name": "Scan CI Container",
"target": "registry.example.com/miaapp:latest",
"status": "queued",
"priority": "high",
"templateId": "tmpl-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"tags": ["ci", "container", "produzione"],
"createdAt": "2026-03-06T10:05:00Z"
}
}
Casi d'uso dei template​
Integrazione CI/CD​
# .github/workflows/security-scan.yml
- name: Lanciare scansione di sicurezza
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 }}"}'
Scansione batch​
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\": \"Scansione batch - $TARGET\"}"
echo "Scansione lanciata per: $TARGET"
done
Esempi di template comuni​
Scansione di rete rapida:
{
"name": "Scansione di rete rapida",
"scanType": "nmap",
"options": { "topPorts": 100, "timing": "T4", "serviceDetection": true }
}
Valutazione web OWASP:
{
"name": "Valutazione web OWASP",
"scanType": "zap",
"priority": "high",
"options": { "scanPolicy": "full", "spiderMaxDepth": 5, "ajaxSpider": true, "activeScan": true }
}
Valutazione di sicurezza completa:
{
"name": "Valutazione Sentinel completa",
"scanType": "sentinel",
"priority": "high",
"options": { "depth": "deep", "correlate": true, "riskScore": true }
}
Prossimi passi: