Aller au contenu principal
ALERTE TEMPS RÉEL • SIEM & SOC

Webhooks & Intégration SIEM

Diffusion instantanée signée par HMAC-SHA256 des alertes critiques vers Datadog, Splunk, Microsoft Sentinel, PagerDuty et Slack.

Webhooks & Intégration SIEM

Webhooks & Intégration SIEM

Les webhooks sortants permettent à Boundry de notifier instantanément vos systèmes tiers (SIEM, Slack, Datadog, Splunk, orchestrateurs internes) lors d'un incident de sécurité ou d'une mise en quarantaine.


1. Événements Émis​

Type d'ÉvénementCondition de Déclenchement
event.blockedUn appel d'outil a été formellement bloqué par une règle de pare-feu.
event.quarantinedUne action sensible est suspendue en attente d'approbation humaine.
event.anomalyLe score de risque d'une action a dépassé le seuil d'alerte configuré.
agent.circuit_breaker_trippedLe disjoncteur anti-boucle d'un agent a été déclenché.
audit.integrity_breachDiscordance détectée dans la chaîne séquentielle HMAC SHA-256.

2. Structure du Payload JSON​

Exemple d'événement webhook 'event.blocked'
{
"id": "evt_hook_901283af",
"event_type": "event.blocked",
"created_at": "2026-10-21T12:15:30.451Z",
"data": {
"agent_id": "support-agent-prod",
"tool_name": "delete_customer_database",
"risk_score": 98,
"rule_violated": {
"id": "rule_prevent_db_drop",
"name": "Interdiction de destruction de base de données"
},
"ip_address": "198.51.100.12",
"sha256_hash": "a4f8910bcde82710381928371928301293810293810293810293810293810293"
}
}

3. Vérification de Signature Cryptographique​

Pour garantir qu'une requête provient authentiquement de la passerelle Boundry et n'a pas été rejouée par un tiers, chaque appel contient les en-têtes :

X-Boundry-Timestamp: 1729512930
X-Boundry-Signature: t=1729512930,v1=9f2d1e8c7b3a4f6d9012e8b7c6a5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8c7

Script de Validation en Python (FastAPI / Flask)​

verify_webhook.py
import hmac
import hashlib
import time

def verify_boundry_webhook(payload_bytes: bytes, signature_header: str, secret_key: str) -> bool:
"""Valide l'en-tête de signature X-Boundry-Signature."""
elements = dict(item.split("=") for item in signature_header.split(","))
timestamp = elements.get("t")
v1_sig = elements.get("v1")

# 1. Protection contre les attaques par rejeu (tolérance max de 5 minutes)
if abs(time.time() - int(timestamp)) > 300:
return False

# 2. Recalcul du hash HMAC
signed_payload = f"{timestamp}.".encode("utf-8") + payload_bytes
expected_sig = hmac.new(
secret_key.encode("utf-8"),
signed_payload,
hashlib.sha256
).hexdigest()

return hmac.compare_digest(expected_sig, v1_sig)

4. Politique de Réessai et Tolérance aux Pannes​

  • Délai d'accusé de réception : Votre endpoint doit retourner un code HTTP 2xx en moins de 5 000 ms.
  • Politique de réessai avec backoff exponentiel : En cas d'échec (timeout ou code 5xx), Boundry effectue jusqu'à 5 tentatives :
  1. Immédiat
  2. Après 30 secondes
  3. Après 5 minutes
  4. Après 30 minutes
  5. Après 2 heures
  • Circuit Breaker d'évacuation : Après 5 échecs consécutifs, l'événement est archivé dans le journal des livraisons en échec de votre console pour renvoi manuel.