Runbook: webhook auth failure spike
Alert source: packages/testkit/alerts/security.rules.yaml
Canonical markdown: docs/runbooks/webhook-auth-failure-spike.md
Severity: warning.
Symptom
Webhook trigger {{ triggerId }} is rejecting > 0.5 auth failures/s
for 5 minutes. HMAC or bearer signatures don't match the configured
secret.
Likely cause
- Upstream partner rotated the shared secret out-of-band.
- The partner is misconfigured (wrong secret in their webhook form).
- Someone is probing the webhook endpoint — reconnaissance.
Immediate mitigation
If the secret genuinely rotated, roll the stored value:
declaragent secrets rotate <triggerId-webhook-secret>
# restart so the source picks up the new value:
declaragent down && declaragent up -d
If reconnaissance is suspected, block the source IP at the ingress layer. Do NOT weaken the HMAC check.
Root-cause investigation
# Auth failures log with reason (missing/malformed/stale/bad signature):
declaragent logs -f # webhook verify rejections log per request
Correlate remoteAddr — a single IP hammering with varying payloads
is a probe; many IPs with the same payload is a partner config issue.
Post-incident
- Capture: peak failure rate, source IP distribution, mitigation.
- Close when: auth failures < 0.01/s for 30 minutes.
- If reconnaissance was confirmed, escalate to security.