Aller au contenu principal
Version: 1.0.0

Modèles d'analyse

Les modèles d'analyse vous permettent de sauvegarder des configurations fréquemment utilisées pour une réutilisation rapide. Au lieu de spécifier le type d'analyse, les options, la priorité et les tags à chaque fois, créez un modèle une fois et lancez des analyses en fournissant uniquement la cible.

Avantages

  • Cohérence — Appliquez des paramètres identiques à chaque exécution
  • Rapidité — Lancez des analyses avec une seule requête contenant uniquement la cible
  • Standardisation — Partagez des configurations standardisées au sein de votre équipe
  • Intégration CI/CD — Référencez les modèles par ID dans vos pipelines d'automatisation

Créer un modèle

Endpoint

POST /api/v1/scan-templates

Portée requise : templates:create

Requête

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 Conteneurs",
"description": "Analyse de vulnérabilités pour les images de conteneurs dans le pipeline CI",
"scanType": "trivy",
"priority": "high",
"options": {
"scanners": ["vuln", "misconfig", "secret"],
"severity": ["CRITICAL", "HIGH"]
},
"tags": ["ci", "conteneur", "production"]
}'

Paramètres de la requête

ChampTypeRequisDescription
namestringOuiNom lisible du modèle (max 255 caractères)
descriptionstringNonDescription de l'objectif et du comportement
scanTypestringOuiMoteur d'analyse à utiliser
targetTypestringNonType de cible par défaut
prioritystringNonPriorité par défaut : critical, high, normal, low
optionsobjectNonOptions du moteur (identiques à POST /scans)
configobjectNonSurcharges de configuration du moteur
tagsstring[]NonTags pour l'organisation et le filtrage
timeoutintegerNonDurée maximale en secondes

Réponse (201 Created)

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

Lister les modèles

GET /api/v1/scan-templates

Portée requise : templates:read

ParamètreTypeDéfautDescription
pageinteger1Numéro de page
limitinteger20Résultats par page (max : 100)

Obtenir un modèle

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

Portée requise : templates:read

Retourne la configuration complète du modèle incluant options, config, tags et statistiques d'utilisation.

Mettre à jour un modèle

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

Portée requise : templates:update

curl -X PATCH https://api.cert-ix.com/scan-api/api/v1/scan-templates/$TEMPLATE_ID \
-H "X-API-Key: $CERTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"priority": "critical",
"options": {
"scanners": ["vuln", "misconfig", "secret", "license"],
"severity": ["CRITICAL", "HIGH", "MEDIUM"]
}
}'

Champs modifiables : name, description, priority, options, config, tags, timeout.

Supprimer un modèle

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

Portée requise : templates:delete

remarque

Supprimer un modèle n'affecte pas les analyses déjà lancées à partir de celui-ci.

Lancer une analyse depuis un modèle

Lancez une analyse en utilisant les options préconfigurées d'un modèle. Fournissez simplement la cible — tout le reste est hérité du modèle.

Endpoint

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

Portée requise : scans:create

Requête

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/monapp:latest"
}'

Paramètres de lancement

ChampTypeRequisDescription
targetstringOuiLa cible de l'analyse
namestringNonSurcharger le nom (sinon utilise le nom du modèle)
prioritystringNonSurcharger la priorité
tagsstring[]NonTags supplémentaires (fusionnés avec ceux du modèle)

Réponse (201 Created)

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

Le templateId est inclus dans la réponse pour la traçabilité. Le usageCount du modèle est également incrémenté.

Cas d'utilisation des modèles

Intégration CI/CD

Référencez les modèles par ID dans vos pipelines. Cela découple la configuration d'analyse de la logique CI/CD — mettez à jour le modèle sans modifier votre pipeline.

# .github/workflows/security-scan.yml
- name: Lancer l'analyse de sécurité
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 }}"}'

Analyse par lot

Lancez le même modèle contre plusieurs cibles :

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\": \"Analyse lot - $TARGET\"}"
echo "Analyse lancée pour : $TARGET"
done

Exemples de modèles courants

Scan réseau rapide :

{
"name": "Scan réseau rapide",
"scanType": "nmap",
"options": { "topPorts": 100, "timing": "T4", "serviceDetection": true }
}

Évaluation web OWASP :

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

Évaluation de sécurité complète :

{
"name": "Évaluation Sentinel complète",
"scanType": "sentinel",
"priority": "high",
"options": { "depth": "deep", "correlate": true, "riskScore": true }
}

Prochaines étapes :