Use this workflow in Shuffle UI for the SOC flow: Wazuh -> Shuffle -> soc-integrator -> IRIS/PagerDuty
SOC IOC Enrichment - Sample
Shuffle ToolsWebhook (or workflow execute API){
"ioc_type": "domain",
"ioc_value": "malicious.example",
"source_event": {
"event_id": "evt-123",
"asset": {"hostname": "fw01"},
"network": {"src_ip": "198.51.100.25"}
}
}
ioc_type and ioc_value.Normalize lowercase for domains.
Enrichment (HTTP or app connectors)
Query one or more sources:
Extract fields:
confidence (0.0-1.0)reputation (malicious|suspicious|unknown|benign)evidence (short text)Decision
If reputation in [malicious, suspicious] OR confidence >= 0.7 => matched=true
Else matched=false
Callback to soc-integrator
HTTP POST to:
http://soc-integrator:8080/mvp/ioc/evaluateHeaders:
Content-Type: application/jsonX-Internal-API-Key: dev-internal-key (replace in production)Body:
{
"ioc_type": "${ioc_type}",
"ioc_value": "${ioc_value}",
"source_event": {
"event_id": "${source_event.event_id}",
"asset": "${source_event.asset}",
"network": "${source_event.network}",
"shuffle": {
"matched": "${matched}",
"confidence": "${confidence}",
"reputation": "${reputation}",
"evidence": "${evidence}"
}
}
}
matched=true and confidence >= 0.9, also call:
http://soc-integrator:8080/action/create-incident