How to Build Automated Decision Logic in a Modern SOC (Using Shuffle + SOC Integrator)
Introduction
In a modern Security Operations Center (SOC), speed and consistency are everything. Manual triage is slow, inconsistent, and expensive. The solution is automated decision logic — a structured way to evaluate alerts and decide what action should happen automatically.
This article explains how to build automated decision systems using:
- Shuffle (SOAR platform)
- Wazuh (SIEM)
- DFIR-IRIS (Incident Response)
- PagerDuty (On-call alerting)
- A custom SOC Integrator (Django backend)
We’ll walk through concrete examples and recommended architecture.
Introduction to Shuffle Components
Before designing automated decision logic, it is important to understand the core components of Shuffle (SOAR platform) and how they work together.
1. Backend (Core Engine)
The backend is the automation engine. It:
- Executes workflows
- Handles triggers
- Manages app integrations
- Stores execution history
This is where the playbook logic actually runs.
2. Frontend (Web UI)
The web interface allows analysts and engineers to:
- Build workflows using drag-and-drop
- Configure integrations (API keys, credentials)
- Monitor execution logs
- Manage users and access control
It acts as the SOC automation control panel.
3. Apps (Integration Modules)
Apps are containerized connectors that allow Shuffle to interact with external systems such as:
- Wazuh (SIEM)
- DFIR-IRIS (Incident management)
- PagerDuty (On-call alerting)
- VirusTotal or threat intelligence platforms
Each app performs API calls and returns structured output back into the workflow.
4. Workflows (Playbooks)
Workflows define automation logic:
- Trigger (Webhook, schedule, manual)
- Conditions (IF/ELSE logic)
- Actions (API calls, enrichment, notifications)
Workflows are the brain of SOAR automation.
5. Orborus (App Runner)
Orborus is responsible for executing app containers. It connects the backend to Docker and ensures integration apps run securely and independently.
How Shuffle Components Work Together
Typical flow:
Wazuh → Webhook → Shuffle Backend → Workflow → App Execution → External Systems
Understanding these components makes it easier to design clean automated decision architecture.
What Is Automated Decision Logic?
Automated decision logic is a rule-based or score-based system that answers:
"Given this security alert, what should we do?"
Instead of an analyst deciding manually, the system decides:
- Ignore
- Enrich only
- Create incident case
- Create case + notify on-call
- Append to existing case
The goal is predictable, fast, and measurable incident handling.
Example Scenario: Suspicious VPN Login
Alert from Wazuh
A successful VPN login is detected with the following attributes:
- Country: Russia
- User: admin
- Severity: 12
- Source IP: 185.199.108.153
We want to automate the decision-making process.
Level 1: Simple IF / ELSE Decision
The most basic automation is condition-based.
Rule:
IF
- country != "Thailand"
- AND severity >= 10
THEN
- Enrich IP
- Create IRIS case
- Notify PagerDuty
ELSE
- Log and stop
This works well for early-stage SOC maturity.
Level 2: Risk Scoring Model (Recommended)
Single IF conditions are too rigid. A better approach is scoring.
Example Risk Model
| Signal | Score |
|---|---|
| Country outside Thailand | +40 |
| IP reputation malicious | +30 |
| New user login | +25 |
| Login at unusual hour | +15 |
| MFA disabled | +20 |
Decision Threshold
- Score >= 70 → Critical (Create case + Page)
- Score 40–69 → Medium (Create case only)
- Score < 40 → Log only
This provides flexible and explainable automation.
Level 3: Stateful Decision (Correlation + Deduplication)
Advanced SOC systems must avoid duplicate cases.
Example rule:
"If the same IP triggered in the last 30 minutes, do not create a new case. Append to existing case instead."
This requires state management.
Options:
- Store correlation data in Django database
- Use Redis for temporary state
- Query IRIS before creating new case
This drastically reduces alert fatigue.
Recommended Architecture (Clean Separation)
The cleanest design is to separate responsibilities:
SOC Integrator (Django)
- Risk scoring
- Correlation
- Deduplication
- Decision output
Shuffle
- Workflow execution
- Calling integrations
- Trigger management
Flow
Wazuh → Shuffle Webhook → SOC Integrator /decide → Decision Response → Shuffle executes actions
Sequence Diagram (System Interaction)
sequenceDiagram
autonumber
participant WZ as Wazuh
participant SH as Shuffle (Webhook/Workflow)
participant SI as SOC Integrator (Django /decide)
participant TI as Threat Intel (VT/AbuseIPDB)
participant IR as DFIR-IRIS
participant PD as PagerDuty
WZ->>SH: POST Webhook (alert JSON)
SH->>SI: POST /decide (normalized alert)
SI-->>SH: Decision {ignore|enrich_only|create_case|create_case_and_page|append_case}
alt decision == ignore
SH-->>WZ: Tag/Comment: ignored + reason
else decision == enrich_only
SH->>TI: Enrich src_ip/domain
TI-->>SH: Enrichment result
SH-->>WZ: Tag/Comment: enriched + summary
else decision == append_case
SH->>IR: Add note to existing case (case_id)
IR-->>SH: OK
SH-->>WZ: Tag/Comment: appended_case + case_id
else decision == create_case
SH->>TI: Enrich src_ip/domain
TI-->>SH: Enrichment result
SH->>IR: Create case (title, description, severity)
IR-->>SH: case_id
SH-->>WZ: Tag/Comment: case_created + case_id
else decision == create_case_and_page
SH->>TI: Enrich src_ip/domain
TI-->>SH: Enrichment result
SH->>IR: Create case (title, description, severity)
IR-->>SH: case_id
SH->>PD: Trigger incident (critical) + case link
PD-->>SH: incident_key
SH-->>WZ: Tag/Comment: paged + case_id + incident_key
end
This keeps business logic in code and automation in SOAR.
Example Decision API Response
Your SOC Integrator should return structured decisions:
Example 1 – Create case and page:
{
"decision": "create_case_and_page",
"severity": "critical",
"reason": "High risk VPN login",
"risk_score": 85,
"case_payload": {
"title": "Suspicious VPN Login – admin",
"description": "Login from Russia with malicious IP score"
}
}
Example 2 – Append to existing case:
{
"decision": "append_case",
"case_id": 1234,
"reason": "Repeated event within 30 minutes"
}
Example 3 – Ignore:
{
"decision": "ignore",
"reason": "Low risk score"
}
Shuffle simply branches based on "decision".
Why This Architecture Scales
Benefits:
- Version-controlled decision logic
- Testable scoring models
- Easier tuning over time
- Reduced false positives
- Clear audit trail
It also supports C1, C2, C3 service tiers:
C1 – Basic rule automation
C2 – Risk scoring + enrichment
C3 – Correlation + adaptive decision logic
Final Thoughts
Automated decision systems are not just about speed — they’re about consistency, scalability, and measurable security operations.
Start with simple IF rules.
Then implement scoring.
Then add correlation and state awareness.
That is how you move from reactive SOC to intelligent SOC.
If your organization is planning to implement automated decision systems or build a SOC Integrator layer, this architecture provides a practical and production-ready foundation.
Get in Touch with us
Related Posts
- Agentic AI in SOC Workflows: Beyond Playbooks, Into Autonomous Defense (2026 Guide)
- 从零构建SOC:Wazuh + IRIS-web 真实项目实战报告
- Building a SOC from Scratch: A Real-World Wazuh + IRIS-web Field Report
- 中国品牌出海东南亚:支付、物流与ERP全链路集成技术方案
- 再生资源工厂管理系统:中国回收企业如何在不知不觉中蒙受损失
- 如何将电商平台与ERP系统打通:实战指南(2026年版)
- AI 编程助手到底在用哪些工具?(Claude Code、Codex CLI、Aider 深度解析)
- 使用 Wazuh + 开源工具构建轻量级 SOC:实战指南(2026年版)
- 能源管理软件的ROI:企业电费真的能降低15–40%吗?
- The ROI of Smart Energy: How Software Is Cutting Costs for Forward-Thinking Businesses
- How to Build a Lightweight SOC Using Wazuh + Open Source
- How to Connect Your Ecommerce Store to Your ERP: A Practical Guide (2026)
- What Tools Do AI Coding Assistants Actually Use? (Claude Code, Codex CLI, Aider)
- How to Improve Fuel Economy: The Physics of High Load, Low RPM Driving
- 泰国榴莲仓储管理系统 — 批次追溯、冷链监控、GMP合规、ERP对接一体化
- Durian & Fruit Depot Management Software — WMS, ERP Integration & Export Automation
- 现代榴莲集散中心:告别手写账本,用系统掌控你的生意
- The Modern Durian Depot: Stop Counting Stock on Paper. Start Running a Real Business.
- AI System Reverse Engineering:用 AI 理解企业遗留软件系统(架构、代码与数据)
- AI System Reverse Engineering: How AI Can Understand Legacy Software Systems (Architecture, Code, and Data)













