Scans einreichen
Die Scan-API akzeptiert Scan-Anfragen über einen einzigen, einheitlichen Endpunkt. Geben Sie das Ziel, die Scan-Engine und die optionale Konfiguration an — die Plattform übernimmt die Einreihung, Ausführung, Ergebnissammlung und Benachrichtigungen.
Architektur
Scans werden asynchron über Kafka verarbeitet:
POST /scans → Kafka → Scan-Engine → Ergebnisse → Webhook/Polling
Scan erstellen
Endpunkt
POST /api/v1/scans
Erforderlicher Bereich: scans:create
Anfrage
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": "Wöchentliches Netzwerk-Audit",
"targetType": "domain",
"priority": "normal",
"options": {
"ports": "1-1024",
"timing": "T3"
},
"tags": ["produktion", "wöchentlich"],
"timeout": 3600
}'
Anfrageparameter
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
target | string | Ja | Scan-Ziel (URL, Host, Domain, IP oder CIDR) |
scanType | string | Ja | Zu verwendende Scan-Engine (siehe Referenz unten) |
name | string | Nein | Lesbarer Name des Scans |
targetType | string | Nein | Zielklassifizierung: host, url, domain, ip, network |
priority | string | Nein | Ausführungspriorität: critical, high, normal, low (Standard: normal) |
options | object | Nein | Engine-spezifische Optionen |
config | object | Nein | Engine-Konfigurationsüberschreibungen |
tags | string[] | Nein | Benutzerdefinierte Tags zur Organisation und Filterung |
timeout | integer | Nein | Maximale Scan-Dauer in Sekunden |
assetId | string | Nein | Scan mit einem registrierten Asset in der Asset-Verwaltung verknüpfen |
callbackUrl | string | Nein | HTTPS-URL für einen einmaligen Abschluss-Callback |
Antwort (201 Created)
{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"scanType": "nmap",
"name": "Wöchentliches Netzwerk-Audit",
"target": "example.com",
"status": "queued",
"priority": "normal",
"progress": 0,
"tags": ["produktion", "wöchentlich"],
"createdAt": "2026-03-06T10:00:00Z"
}
}
Referenz der Scan-Engines
Nmap — Netzwerkerkennung
Typ: nmap · Kategorie: Netzwerk · Ziele: host, ip, network, domain
{
"target": "192.168.1.0/24",
"scanType": "nmap",
"options": {
"ports": "1-65535",
"timing": "T4",
"serviceDetection": true,
"osDetection": true,
"scriptScan": true,
"scripts": ["vuln", "safe"]
}
}
| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
ports | string | 1-1024 | Port-Bereich (z.B.: 22,80,443, 1-1024, 1-65535) |
timing | string | T3 | Timing-Template: T0 (paranoid) bis T5 (wahnsinnig) |
serviceDetection | boolean | true | Service-/Versionserkennung aktivieren (-sV) |
osDetection | boolean | false | OS-Identifizierung aktivieren (-O) |
scriptScan | boolean | false | NSE-Script-Scan aktivieren |
scripts | string[] | [] | NSE-Script-Kategorien zum Ausführen |
udpScan | boolean | false | UDP-Scan einschließen (-sU) |
topPorts | integer | — | Nur die N häufigsten Ports scannen |
ZAP — Webanwendungssicherheit
Typ: zap · Kategorie: Web-App · Ziele: url
{
"target": "https://app.example.com",
"scanType": "zap",
"options": {
"scanPolicy": "full",
"spiderMaxDepth": 5,
"ajaxSpider": true,
"activeScan": true
}
}
| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
scanPolicy | string | standard | Intensität: light, standard, full |
spiderMaxDepth | integer | 3 | Maximale Crawl-Tiefe |
ajaxSpider | boolean | false | AJAX/JavaScript-Crawling aktivieren |
activeScan | boolean | true | Aktive Schwachstellentests durchführen |
Trivy — Container-Schwachstellenanalyse
Typ: trivy · Kategorie: Container/Infrastruktur · Ziele: url, host
{
"target": "registry.example.com/meineapp:latest",
"scanType": "trivy",
"options": {
"scanners": ["vuln", "misconfig", "secret"],
"severity": ["CRITICAL", "HIGH"],
"ignoreUnfixed": true
}
}
Nuclei — Template-basierte Erkennung
Typ: nuclei · Kategorie: Schwachstellenerkennung · Ziele: url, host, domain
{
"target": "https://api.example.com",
"scanType": "nuclei",
"options": {
"templates": ["cves", "vulnerabilities", "misconfigurations"],
"severity": ["critical", "high", "medium"],
"concurrency": 25,
"rateLimit": 150
}
}
Nikto — Webserver-Scan
Typ: nikto · Kategorie: Webserver · Ziele: url
{
"target": "https://www.example.com",
"scanType": "nikto",
"options": { "tuning": "1234", "maxTime": "600s", "ssl": true }
}
SQLMap — SQL-Injection-Erkennung
Typ: sqlmap · Kategorie: Web-App · Ziele: url
{
"target": "https://app.example.com/search?q=test",
"scanType": "sqlmap",
"options": { "level": 3, "risk": 2, "technique": "BEUSTQ", "dbs": true, "batch": true }
}
SQLMap kann aggressiv sein. Verwenden Sie auf Produktionssystemen immer level ≤ 3 und risk ≤ 2.
Wapiti — Webanwendungs-Scan
Typ: wapiti · Kategorie: Web-App · Ziele: url
{
"target": "https://app.example.com",
"scanType": "wapiti",
"options": { "modules": ["xss", "sql", "exec", "file", "crlf"], "scope": "domain", "maxDepth": 5 }
}
theHarvester — OSINT-Aufklärung
Typ: harvester · Kategorie: OSINT · Ziele: domain
{
"target": "example.com",
"scanType": "harvester",
"options": { "sources": ["google", "bing", "linkedin", "shodan", "crtsh"], "limit": 500, "dnsLookup": true }
}
Sublist3r — Subdomain-Enumeration
Typ: sublist3r · Kategorie: OSINT · Ziele: domain
{
"target": "example.com",
"scanType": "sublist3r",
"options": { "engines": ["google", "bing", "yahoo", "virustotal"], "bruteforce": true, "ports": "80,443,8080", "threads": 30 }
}
Sentinel — Multi-Engine-Orchestrierung
Typ: sentinel · Kategorie: Einheitlich/Umfassend · Ziele: url, host, domain, ip
Proprietäre Multi-Engine-Orchestrierungsanalyse von Cert-IX. Wählt automatisch die am besten geeignete Kombination von Scannern basierend auf dem Zieltyp aus, korreliert und dedupliziert Befunde.
{
"target": "example.com",
"scanType": "sentinel",
"priority": "high",
"options": { "depth": "standard", "engines": ["nmap", "nuclei", "harvester", "sublist3r"], "correlate": true, "riskScore": true }
}
| Tiefe | Verwendete Engines | Geschätzte Dauer |
|---|---|---|
quick | Nmap + Nuclei | 5–15 Minuten |
standard | Nmap + Nuclei + Harvester + ZAP/Nikto | 15–45 Minuten |
deep | Alle anwendbaren Engines | 1–3 Stunden |
Prioritätsstufen
| Priorität | Verhalten | Anwendungsfall |
|---|---|---|
critical | An die Spitze der Warteschlange, sofortige Verarbeitung | Aktive Vorfallreaktion |
high | Vor normalen Scans | Prüfungen vor dem Deployment |
normal | Standard-FIFO-Reihenfolge | Routinebewertungen (Standard) |
low | Verarbeitung bei verfügbarer Kapazität | Hintergrund-/Batch-Scans |
Scan abbrechen
POST /api/v1/scans/:scanId/cancel
Erforderlicher Bereich: scans:cancel
Scans auflisten
GET /api/v1/scans
Erforderlicher Bereich: scans:list
Nächste Schritte: