Bij een bevestigde aanval krijgen de accounteigenaar en je NOC-contactpersonen een e-mail; hoe je die aanval daarna volgt, staat in Een DDoS-aanval volgen. Maar mail is niet altijd waar je team zit. Het overleg tijdens een storing gebeurt in een chatkanaal, en wie zijn monitoring, ticketsysteem of statuspagina wil laten reageren, heeft niets aan een bericht dat voor mensen is geschreven. Daarvoor zijn de webhooks.
Twee soorten webhook
Onder Netwerk → DDoS → DDoS-meldingen vul je een of beide in:
- Slack-compatibele webhook — een opgemaakt bericht in een kanaal. Werkt direct met Slack; voor Discord zet je
/slackachter de webhook-URL. - Webhook (JSON) — een
POSTmet de aanval als gestructureerde data, voor je eigen systemen.
Na het opslaan stuur je met één knop een testbericht naar elke webhook. Doe dat meteen: een verkeerd geplakte URL wil je nu ontdekken, niet tijdens de eerste aanval.
Het chatbericht noemt het doelwit, de soort aanval, de piek, hoeveel er bij je aankwam en welk deel is tegengehouden, wanneer de aanval begon en hoe lang hij duurt, met een link naar de aanvalspagina. Draait de mitigatie al, dan staat er ook bij dat je niets hoeft te doen. Dat ene zinnetje scheelt een hoop vragen in het kanaal.
Eén bericht bij het begin, één bij het einde
Een veelgehoorde zorg is dat een aanval een kanaal laat vollopen. Dat gebeurt niet: per aanval gaat er één bericht uit zodra hij is bevestigd, en één als hij voorbij is. Signalen die geen aanval bleken, sturen niets. Het verloop tussendoor, zoals pieken, vectoren en maatregelen, volg je live op de aanvalspagina.
Wat de JSON-webhook verstuurt
De JSON-webhook stuurt bij start en bij end hetzelfde soort bericht. Ingekort:
{
"schema_version": 1,
"event": "start",
"attack_id": "01a10627-3e65-7ef0-a505-5e9b37ce4ff3",
"state": "confirmed",
"target": "192.0.2.10",
"prefix": "192.0.2.0/24",
"attack_type": "single-host",
"first_seen": "2026-10-04T09:03:17Z",
"peak": { "bps": 2400000000, "pps": 310000 },
"delivered": { "bps": 40000000, "pps": 4000 },
"vectors": [{ "cls": "udp/123", "bps": 2200000000, "pps": 290000 }],
"mitigation": [{ "kind": "rate-limit", "since": "2026-10-04T09:03:40Z", "until": null }]
}
Het nuttigste veld is vaak delivered: wat er na de mitigatie bij je aankwam. Daarmee bouw je je eigen drempel. Een aanval van tien gigabit waarvan 40 Mbit/s doorkomt, hoeft niemand wakker te bellen; komt er genoeg door om je uplink te vullen, dan wel. Andere toepassingen die we zien: automatisch een ticket openen met het attack_id erin, een annotatie in je verkeersgrafieken, of een melding op je statuspagina.
Controleer dat het van ons komt
Een webhook-adres is geen geheim waar je op kunt bouwen; het staat in configuratiebestanden en soms in logs. Daarom ondertekenen we elk JSON-bericht. De header X-Xyphen-Signature bevat een tijdstip t en een handtekening v1: de HMAC-SHA256 van t.body met jouw secret key. Je ontvanger rekent dezelfde handtekening uit en weigert berichten die niet kloppen of ouder zijn dan vijf minuten. Dat laatste voorkomt dat iemand een oud, geldig bericht opnieuw afspeelt.
import hmac, hashlib, time
def verify(header: str, body: bytes, secret: str) -> bool:
parts = dict(p.split("=", 1) for p in header.split(","))
expected = hmac.new(secret.encode(), f"{parts['t']}.".encode() + body, hashlib.sha256).hexdigest()
fresh = abs(time.time() - int(parts["t"])) < 300
return fresh and hmac.compare_digest(expected, parts["v1"])
De secret key staat in het dashboard bij de webhooks. Behandel hem als een wachtwoord. Vermoed je dat hij is uitgelekt, maak dan een nieuwe; je ontvanger wijst berichten af tot je daar de nieuwe hebt ingevuld.
Webhooks gaan alleen naar https-adressen op het publieke internet. Interne en private adressen weigert het dashboard, zodat een webhook nooit gebruikt kan worden om iets binnen ons netwerk aan te spreken.
Webhooks bij Xyphen IT
E-mailmeldingen horen bij elke klant met DDoS-bescherming via IP-transit of colocatie. De webhooks zijn een uitbreiding die je erbij neemt; zonder uitbreiding zie je in het dashboard op die plek hoe je hem aanvraagt. Wil je weten wat er bij een aanval nog meer mogelijk is, of wil je dat iemand meekijkt met NOC-as-a-Service? Neem contact op.