Skip to content

Webhooks API ​

Erhalten Sie Echtzeit-Benachrichtigungen für CyberOrigen-Ereignisse.

Professional und Enterprise

Webhooks sind in den Professional und Enterprise Tarifen verfügbar.

Übersicht ​

Webhooks ermöglichen es Ihnen, HTTP-Callbacks zu empfangen, wenn Ereignisse in CyberOrigen auftreten. Konfigurieren Sie Endpunkte, um Benachrichtigungen über Scans, Findings, Compliance-Änderungen und mehr zu erhalten.

Endpunkte ​

MethodEndpointBeschreibung
GET/api/v1/webhooksWebhooks auflisten
POST/api/v1/webhooksWebhook erstellen
GET/api/v1/webhooks/{id}Webhook-Details abrufen
PATCH/api/v1/webhooks/{id}Webhook aktualisieren
DELETE/api/v1/webhooks/{id}Webhook löschen
POST/api/v1/webhooks/{id}/testTest-Ereignis senden
GET/api/v1/webhooks/{id}/deliveriesZustellungsverlauf auflisten

Webhook erstellen ​

bash
POST /api/v1/webhooks
Content-Type: application/json

{
  "name": "Security Alerts",
  "url": "https://your-server.com/webhooks/cyberorigen",
  "events": [
    "scan.completed",
    "vulnerability.critical",
    "vulnerability.high"
  ],
  "secret": "your-webhook-secret",
  "active": true
}

Parameter ​

FeldTypErforderlichBeschreibung
namestringJaBeschreibender Name
urlstringJaHTTPS-Endpunkt-URL
eventsarrayJaZu abonnierende Ereignisse
secretstringNeinSignatur-Secret zur Verifizierung
activebooleanNeinWebhook aktivieren/deaktivieren

Antwort ​

json
{
  "id": "webhook_abc123",
  "name": "Security Alerts",
  "url": "https://your-server.com/webhooks/cyberorigen",
  "events": ["scan.completed", "vulnerability.critical", "vulnerability.high"],
  "active": true,
  "created_at": "2025-12-21T10:00:00Z"
}

Verfügbare Ereignisse ​

Scan-Ereignisse ​

EreignisBeschreibung
scan.createdNeuer Scan initiiert
scan.startedScan-Ausführung gestartet
scan.progressScan-Phase abgeschlossen
scan.completedScan erfolgreich beendet
scan.failedScan mit Fehler fehlgeschlagen

Schwachstellen-Ereignisse ​

EreignisBeschreibung
vulnerability.foundNeue Schwachstelle entdeckt
vulnerability.criticalFinding mit kritischem Schweregrad
vulnerability.highFinding mit hohem Schweregrad
vulnerability.status_changedFinding-Status aktualisiert
vulnerability.resolvedFinding als behoben markiert

Compliance-Ereignisse ​

EreignisBeschreibung
control.status_changedControl-Status aktualisiert
evidence.uploadedNeuer Nachweis hinzugefügt
evidence.expiringNachweis läuft bald ab
framework.score_changedCompliance-Score geändert
audit.request_createdNeue Auditor-Anfrage

Sicherheits-Ereignisse ​

EreignisBeschreibung
quarantine.threat_detectedMalware im Upload erkannt
user.login_failedFehlgeschlagener Login-Versuch
user.mfa_disabledMFA auf Account deaktiviert

Webhook-Payload ​

Alle Webhook-Zustellungen enthalten:

json
{
  "id": "delivery_xyz789",
  "event": "scan.completed",
  "timestamp": "2025-12-21T15:30:00Z",
  "data": {
    // Ereignisspezifische Daten
  }
}

Beispiel: Scan abgeschlossen ​

json
{
  "id": "delivery_xyz789",
  "event": "scan.completed",
  "timestamp": "2025-12-21T15:30:00Z",
  "data": {
    "scan_id": "scan_abc123",
    "target": "example.com",
    "status": "completed",
    "duration_seconds": 2700,
    "findings": {
      "total": 12,
      "critical": 1,
      "high": 3,
      "medium": 5,
      "low": 3
    }
  }
}

Beispiel: Kritische Schwachstelle ​

json
{
  "id": "delivery_abc456",
  "event": "vulnerability.critical",
  "timestamp": "2025-12-21T15:35:00Z",
  "data": {
    "finding_id": "finding_xyz789",
    "title": "Remote Code Execution",
    "severity": "critical",
    "cvss_score": 9.8,
    "target": "example.com",
    "affected_component": "https://example.com/api/upload",
    "cve_ids": ["CVE-2024-1234"],
    "scan_id": "scan_abc123"
  }
}

Signatur-Verifizierung ​

Wenn Sie ein secret angeben, signiert CyberOrigen jede Zustellung mit HMAC-SHA256.

Headers ​

X-CyberOrigen-Signature: sha256=abc123...
X-CyberOrigen-Event: scan.completed
X-CyberOrigen-Delivery: delivery_xyz789

Verifizierungs-Beispiel (Node.js) ​

javascript
const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

// Express middleware
app.post('/webhooks/cyberorigen', (req, res) => {
  const signature = req.headers['x-cyberorigen-signature'];
  const payload = JSON.stringify(req.body);

  if (!verifySignature(payload, signature, process.env.WEBHOOK_SECRET)) {
    return res.status(401).send('Invalid signature');
  }

  // Process webhook...
  res.status(200).send('OK');
});

Verifizierungs-Beispiel (Python) ​

python
import hmac
import hashlib

def verify_signature(payload: bytes, signature: str, secret: str) -> bool:
    expected = 'sha256=' + hmac.new(
        secret.encode(),
        payload,
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(signature, expected)

# Flask route
@app.route('/webhooks/cyberorigen', methods=['POST'])
def webhook():
    signature = request.headers.get('X-CyberOrigen-Signature')

    if not verify_signature(request.data, signature, WEBHOOK_SECRET):
        return 'Invalid signature', 401

    # Process webhook...
    return 'OK', 200

Webhook testen ​

Ein Test-Ereignis senden, um Ihren Endpunkt zu verifizieren:

bash
POST /api/v1/webhooks/{webhook_id}/test

Antwort ​

json
{
  "delivery_id": "delivery_test123",
  "status": "success",
  "response_code": 200,
  "response_time_ms": 145
}

Zustellungsverlauf ​

Webhook-Zustellungsversuche anzeigen:

bash
GET /api/v1/webhooks/{webhook_id}/deliveries

Antwort ​

json
{
  "items": [
    {
      "id": "delivery_xyz789",
      "event": "scan.completed",
      "status": "success",
      "response_code": 200,
      "response_time_ms": 145,
      "attempts": 1,
      "created_at": "2025-12-21T15:30:00Z",
      "delivered_at": "2025-12-21T15:30:00Z"
    },
    {
      "id": "delivery_abc456",
      "event": "vulnerability.critical",
      "status": "failed",
      "response_code": 500,
      "response_time_ms": 2000,
      "attempts": 3,
      "error": "Connection timeout",
      "created_at": "2025-12-21T15:35:00Z",
      "next_retry": "2025-12-21T16:35:00Z"
    }
  ],
  "total": 156
}

Wiederholungsrichtlinie ​

Fehlgeschlagene Zustellungen werden automatisch wiederholt:

VersuchVerzögerung
1Sofort
25 Minuten
330 Minuten
42 Stunden
58 Stunden

Nach 5 fehlgeschlagenen Versuchen wird die Zustellung als fehlgeschlagen markiert und der Webhook wird deaktiviert, wenn Fehler andauern.

Best Practices ​

  1. Signaturen immer verifizieren, um Authentizität sicherzustellen
  2. Schnell antworten (innerhalb von 30 Sekunden), um Timeouts zu vermeiden
  3. 2xx-Status zurückgeben, um Empfang zu bestätigen
  4. Asynchron verarbeiten für langwierige Operationen
  5. Idempotenz implementieren unter Verwendung von Zustellungs-IDs
  6. Zustellungsstatus überwachen und fehlerhafte Endpunkte zeitnah reparieren

Rate Limits ​

TarifWebhooksEreignisse/Stunde
Professional51.000
EnterpriseUnbegrenzt10.000

Updated at:

Agentic AI-Powered Security & Compliance