Aller au contenu principal
Version: 1.0.0

Soumission d'analyses

L'API Scan accepte les requêtes d'analyse via un endpoint unique et unifié. Spécifiez la cible, le moteur d'analyse et la configuration optionnelle — la plateforme gère la mise en file d'attente, l'exécution, la collecte des résultats et les notifications.

Architecture

Les analyses sont traitées de manière asynchrone via Kafka :

POST /scans → Kafka → Moteur d'analyse → Résultats → Webhook/Polling

Lorsque vous soumettez une analyse, elle est immédiatement mise en file d'attente et retourne un ID d'analyse. Le scanner la prend en charge, l'exécute et publie les résultats. Vous pouvez interroger le statut ou configurer des webhooks pour des mises à jour en temps réel.

Créer une analyse

Endpoint

POST /api/v1/scans

Portée requise : scans:create

Requête

curl -X POST https://api.cert-ix.com/scan-api/api/v1/scans \
-H "X-API-Key: $CERTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target": "example.com",
"scanType": "nmap",
"name": "Audit réseau hebdomadaire",
"targetType": "domain",
"priority": "normal",
"options": {
"ports": "1-1024",
"timing": "T3"
},
"tags": ["production", "hebdomadaire"],
"timeout": 3600
}'

Paramètres de la requête

ChampTypeRequisDescription
targetstringOuiCible de l'analyse (URL, hôte, domaine, IP ou CIDR)
scanTypestringOuiMoteur d'analyse à utiliser (voir référence ci-dessous)
namestringNonNom lisible de l'analyse
targetTypestringNonClassification de la cible : host, url, domain, ip, network
prioritystringNonPriorité d'exécution : critical, high, normal, low (défaut : normal)
optionsobjectNonOptions spécifiques au moteur
configobjectNonSurcharges de configuration du moteur
tagsstring[]NonTags personnalisés pour l'organisation et le filtrage
timeoutintegerNonDurée maximale de l'analyse en secondes
assetIdstringNonLier l'analyse à un actif enregistré dans la Gestion des actifs
callbackUrlstringNonURL HTTPS pour un callback ponctuel de complétion

Réponse (201 Created)

{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"scanType": "nmap",
"name": "Audit réseau hebdomadaire",
"target": "example.com",
"status": "queued",
"priority": "normal",
"progress": 0,
"tags": ["production", "hebdomadaire"],
"createdAt": "2026-03-06T10:00:00Z"
}
}

Référence des moteurs d'analyse

Nmap — Découverte réseau

Type : nmap · Catégorie : Réseau · Cibles : host, ip, network, domain

Effectue la découverte d'hôtes, le scan de ports, la détection de services et l'identification d'OS. Idéal pour les évaluations d'infrastructure réseau.

{
"target": "192.168.1.0/24",
"scanType": "nmap",
"options": {
"ports": "1-65535",
"timing": "T4",
"serviceDetection": true,
"osDetection": true,
"scriptScan": true,
"scripts": ["vuln", "safe"]
}
}
OptionTypeDéfautDescription
portsstring1-1024Plage de ports (ex. : 22,80,443, 1-1024, 1-65535)
timingstringT3Template de timing : T0 (paranoïaque) à T5 (insensé)
serviceDetectionbooleantrueActiver la détection de service/version (-sV)
osDetectionbooleanfalseActiver l'identification d'OS (-O)
scriptScanbooleanfalseActiver le scan par scripts NSE
scriptsstring[][]Catégories de scripts NSE à exécuter
udpScanbooleanfalseInclure le scan UDP (-sU)
topPortsintegerScanner uniquement les N ports les plus courants

ZAP — Sécurité des applications web

Type : zap · Catégorie : App web · Cibles : url

OWASP ZAP effectue des Tests Dynamiques de Sécurité Applicative (DAST). Il explore l'application web cible et teste les vulnérabilités OWASP Top 10 incluant XSS, injection SQL, CSRF et plus.

{
"target": "https://app.example.com",
"scanType": "zap",
"options": {
"scanPolicy": "full",
"spiderMaxDepth": 5,
"ajaxSpider": true,
"activeScan": true,
"contextInclude": ["https://app.example.com/.*"],
"contextExclude": ["https://app.example.com/logout"]
}
}
OptionTypeDéfautDescription
scanPolicystringstandardIntensité : light, standard, full
spiderMaxDepthinteger3Profondeur maximale d'exploration
ajaxSpiderbooleanfalseActiver l'exploration AJAX/JavaScript
activeScanbooleantrueEffectuer les tests actifs de vulnérabilités
contextIncludestring[][]Patterns regex d'URL à inclure dans le périmètre
contextExcludestring[][]Patterns regex d'URL à exclure du périmètre
authenticationobjectConfiguration d'authentification (formulaire, en-tête ou cookie)

Trivy — Analyse de vulnérabilités des conteneurs

Type : trivy · Catégorie : Conteneur/Infrastructure · Cibles : url, host

Analyse les images de conteneurs, les systèmes de fichiers et l'infrastructure-as-code pour détecter les vulnérabilités connues (CVE), les mauvaises configurations et les secrets exposés.

{
"target": "registry.example.com/monapp:latest",
"scanType": "trivy",
"options": {
"scanners": ["vuln", "misconfig", "secret"],
"severity": ["CRITICAL", "HIGH"],
"ignoreUnfixed": true
}
}
OptionTypeDéfautDescription
scannersstring[]["vuln"]Scanners : vuln, misconfig, secret, license
severitystring[]["CRITICAL","HIGH","MEDIUM"]Filtrer par sévérité
ignoreUnfixedbooleanfalseIgnorer les vulnérabilités sans correctif disponible
skipDirsstring[][]Répertoires à ignorer
skipFilesstring[][]Fichiers à ignorer

Nuclei — Détection basée sur des templates

Type : nuclei · Catégorie : Détection de vulnérabilités · Cibles : url, host, domain

Utilise des templates communautaires et personnalisés pour détecter les vulnérabilités, les mauvaises configurations et les expositions sur un large éventail de technologies.

{
"target": "https://api.example.com",
"scanType": "nuclei",
"options": {
"templates": ["cves", "vulnerabilities", "misconfigurations"],
"severity": ["critical", "high", "medium"],
"concurrency": 25,
"rateLimit": 150
}
}
OptionTypeDéfautDescription
templatesstring[]["cves"]Catégories de templates à exécuter
severitystring[]ToutesFiltrer par sévérité
concurrencyinteger25Exécutions de templates en parallèle
rateLimitinteger150Requêtes max par seconde
tagsstring[][]Exécuter uniquement les templates correspondant à ces tags
excludeTagsstring[][]Ignorer les templates correspondant à ces tags

Nikto — Scan de serveurs web

Type : nikto · Catégorie : Serveur web · Cibles : url

Teste les serveurs web pour détecter les fichiers dangereux, les logiciels obsolètes et les mauvaises configurations. Vérifie plus de 6 700 fichiers/CGI potentiellement dangereux.

{
"target": "https://www.example.com",
"scanType": "nikto",
"options": {
"tuning": "1234",
"maxTime": "600s",
"ssl": true
}
}
OptionTypeDéfautDescription
tuningstring"123"Catégories de test : 1=Fichiers, 2=Mauvaises configs, 3=Info, 4=XSS, etc.
maxTimestringDurée maximale (ex. : "600s", "10m")
sslbooleanautoForcer le mode SSL

SQLMap — Détection d'injection SQL

Type : sqlmap · Catégorie : App web · Cibles : url

Automatise la détection et l'exploitation des failles d'injection SQL. Prend en charge tous les principaux moteurs de base de données.

{
"target": "https://app.example.com/search?q=test",
"scanType": "sqlmap",
"options": {
"level": 3,
"risk": 2,
"technique": "BEUSTQ",
"dbs": true,
"batch": true
}
}
OptionTypeDéfautDescription
levelinteger1Niveau de test (1–5). Plus élevé = plus de payloads
riskinteger1Niveau de risque (1–3). Plus élevé = plus agressif
techniquestring"BEUSTQ"Techniques d'injection à tester
dbsbooleanfalseÉnumérer les bases de données
batchbooleantrueMode non interactif
Sécurité en production

SQLMap peut être agressif. Utilisez toujours level ≤ 3 et risk ≤ 2 sur les systèmes de production. N'utilisez des valeurs plus élevées que dans des environnements de test isolés.


Wapiti — Scan d'applications web

Type : wapiti · Catégorie : App web · Cibles : url

Effectue une analyse de vulnérabilités d'applications web en boîte noire. Explore l'application, identifie les surfaces d'attaque et lance des tests ciblés.

{
"target": "https://app.example.com",
"scanType": "wapiti",
"options": {
"modules": ["xss", "sql", "exec", "file", "crlf"],
"scope": "domain",
"maxDepth": 5
}
}
OptionTypeDéfautDescription
modulesstring[]TousModules d'attaque à activer
scopestring"domain"Périmètre d'exploration : url, page, folder, domain
maxDepthinteger3Profondeur maximale d'exploration
maxTimestringDurée maximale

theHarvester — Reconnaissance OSINT

Type : harvester · Catégorie : OSINT · Cibles : domain

Collecte les adresses email, sous-domaines, IP et métadonnées à partir de sources publiques. Reconnaissance passive sans interaction directe avec la cible.

{
"target": "example.com",
"scanType": "harvester",
"options": {
"sources": ["google", "bing", "linkedin", "shodan", "crtsh"],
"limit": 500,
"dnsLookup": true
}
}
OptionTypeDéfautDescription
sourcesstring[]Toutes publiquesSources de données à interroger
limitinteger200Résultats max par source
dnsLookupbooleanfalseEffectuer la résolution DNS des hôtes découverts
dnsBrutebooleanfalseActiver la découverte de sous-domaines par force brute DNS

Sublist3r — Énumération de sous-domaines

Type : sublist3r · Catégorie : OSINT · Cibles : domain

Énumère les sous-domaines en utilisant plusieurs moteurs de recherche et services DNS. Découvrez votre surface d'attaque complète.

{
"target": "example.com",
"scanType": "sublist3r",
"options": {
"engines": ["google", "bing", "yahoo", "virustotal", "dnsdumpster"],
"bruteforce": true,
"ports": "80,443,8080,8443",
"threads": 30
}
}
OptionTypeDéfautDescription
enginesstring[]TousMoteurs de recherche à utiliser
bruteforcebooleanfalseActiver la force brute DNS
portsstringScanner les sous-domaines découverts pour les ports ouverts
threadsinteger10Threads concurrents

Sentinel — Orchestration multi-moteurs

Type : sentinel · Catégorie : Unifié/Complet · Cibles : url, host, domain, ip

Analyse orchestrée multi-moteurs propriétaire de Cert-IX. Sélectionne et exécute automatiquement la combinaison de scanners la plus appropriée en fonction du type de cible, puis corrèle et déduplique les découvertes dans un rapport unifié.

{
"target": "example.com",
"scanType": "sentinel",
"priority": "high",
"options": {
"depth": "standard",
"engines": ["nmap", "nuclei", "harvester", "sublist3r"],
"correlate": true,
"riskScore": true
}
}
OptionTypeDéfautDescription
depthstring"standard"Profondeur d'évaluation : quick, standard, deep
enginesstring[]autoMoteurs spécifiques à inclure (défaut : sélection auto)
correlatebooleantrueCorréler les découvertes entre moteurs
riskScorebooleantrueCalculer le score de risque agrégé

Niveaux de profondeur :

ProfondeurMoteurs utilisésDurée estimée
quickNmap + Nuclei5–15 minutes
standardNmap + Nuclei + Harvester + ZAP/Nikto15–45 minutes
deepTous les moteurs applicables1–3 heures

Niveaux de priorité

La priorité affecte l'ordonnancement dans la file d'attente. Les analyses à priorité plus élevée sont traitées en premier.

PrioritéComportementCas d'utilisation
criticalEn tête de file, traitement immédiatRéponse à incident active
highAvant les analyses normalesVérifications pré-déploiement
normalOrdonnancement FIFO standardÉvaluations de routine (défaut)
lowTraitement quand capacité disponibleAnalyses en arrière-plan/lot

Types de cibles

Type de cibleExemplesMoteurs compatibles
hostserveur1.example.comnmap, nuclei, sentinel
urlhttps://app.example.com/cheminzap, nikto, sqlmap, wapiti, nuclei, trivy, sentinel
domainexample.comnmap, nuclei, harvester, sublist3r, sentinel
ip192.168.1.1, 2001:db8::1nmap, nuclei, sentinel
network192.168.1.0/24nmap
Détection automatique

Si vous omettez targetType, l'API le déduit du format de la cible. Le typage explicite est recommandé pour plus de clarté.

Annuler une analyse

Annulez une analyse en cours ou en file d'attente :

POST /api/v1/scans/:scanId/cancel

Portée requise : scans:cancel

curl -X POST "https://api.cert-ix.com/scan-api/api/v1/scans/$SCAN_ID/cancel" \
-H "X-API-Key: $CERTIX_API_KEY"

Lister les analyses

GET /api/v1/scans

Portée requise : scans:list

ParamètreTypeDéfautDescription
scanTypestringnmapFiltrer par moteur d'analyse
statusstringFiltrer par statut
pageinteger1Numéro de page
limitinteger20Résultats par page (max : 100)

Prochaines étapes :