skandarhadrich-cell/Automation-of-Deployment-and-Detection-Engineering-in-an-Open-Source-SOC-Environment
GitHub: skandarhadrich-cell/Automation-of-Deployment-and-Detection-Engineering-in-an-Open-Source-SOC-Environment
该项目是一个开源 SOC 实验室自动化方案,通过 Ansible 实现基础设施零接触部署,并借助自研调优引擎解决静态规则导致的告警疲劳问题。
Stars: 0 | Forks: 0
# 开源 SOC 环境中的自动化部署与检测工程





## 概述
一个自动化的云原生 SOC 实验室,致力于解决两个核心问题:
1. **手动基础设施部署** —— 通过 Ansible 使用基础设施即代码 解决。
2. **静态规则导致的告警疲劳** —— 通过自定义的**双架构调优引擎** 解决,该引擎能够基于资产上下文和统计异常动态注入抑制规则。
## 架构
在 Microsoft Azure(或任何云提供商)上部署的两个虚拟机:
### SOC 主机 (Ubuntu Server 22.04 LTS)
- **Wazuh** —— Manager、Indexer 和 Dashboard (Docker)
- **Shuffle SOAR** —— 编排平台 (Docker)
- **调优引擎** —— 自定义 Python 微服务
### 目标终端 (Windows Server)
- **Sysmon** —— 通过 SwiftOnSecurity 配置进行系统监控
- **Wazuh Agent** —— 将 Event Channel 日志转发至 SIEM
## 核心功能
### 零接触部署
通过 **Ansible** 完全自动化部署 Docker、Wazuh、Shuffle 和 Windows 代理。
### 半自动调优 (Human-in-the-Loop)
基于 Flask 的 Python API 与 Shuffle SOAR 集成。它可以:
- 丰富传入的告警信息
- 查询本地**资产上下文数据库**
- 计算**置信度分数**
- 通过电子邮件向分析师发送交互式的**“批准调优”**按钮以供审查
### 自动容量调优
一个独立的 Python 脚本,它可以:
- 查询 Wazuh 日志以发现大容量异常(例如,内部扫描器)
- 如果授权子网超过阈值 → 自动注入 Level-0 XML 抑制规则
- 自动重载 SIEM
## 仓库结构
```
├── inventory.ini # Ansible inventory (IPs and connection variables)
├── site.yml # Master Ansible playbook
├── roles/
│ ├── docker/ # Installs Docker & Docker Compose
│ ├── wazuh/ # Deploys Wazuh SIEM stack via Docker
│ ├── shuffle/ # Deploys Shuffle SOAR via Docker
│ └── windows_agent/ # Deploys Sysmon & Wazuh Agent via WinRM
├── tuning-engine/
│ ├── engine_api.py # Flask API for Semi-Autonomous SOAR tuning
│ ├── auto_tuner.py # Standalone script for Autonomous volumetric tuning
│ └── context_db.json # Asset inventory and rule metadata database
└── README.md
```
## 部署
### 前置条件
- 一个 Ansible 控制节点(例如 Kali Linux 或 Ubuntu)
- 两个云虚拟机(1x Linux,1x Windows),并开放以下端口:
- `22` (SSH), `5985` (WinRM), `1514`, `9200`, `55000`, `3443`, `8000`
- 在 Windows 目标机上启用 WinRM
### 1. 克隆与配置
克隆仓库,然后编辑 `inventory.ini` 填入您的云 IP 和凭据:
```
[soc_host]
soc_manager ansible_host= ansible_connection=ssh
[soc_host:vars]
ansible_user=
ansible_ssh_pass=
ansible_become_password=
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
[windows_agents]
windows_agent1 ansible_host=
[windows_agents:vars]
ansible_user=
ansible_password=
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_transport=basic
ansible_port=5985
```
### 2. 部署
```
ansible-playbook -i inventory.ini site.yml
```
## 攻击模拟与调优演示
### 自动调优 —— 容量噪声
从授权的扫描器子网(即 `auto_tuner.py` 中定义的 ``)发起积极的 WinRM 暴力破解:
```
crackmapexec winrm -u Administrator -p /path/to/wordlist.txt
```
然后在 SOC 主机上:
```
python3 auto_tuner.py
```
引擎会检测到异常,注入 XML 抑制规则,并重启 SIEM。
### 半自动调优 —— 上下文感知
1. 确保 Shuffle Webhook 处于活动状态并链接到 `ossec.conf`
2. 在 Windows 终端触发目标告警
3. 监控 Shuffle 执行流程
4. 检查分析师电子邮件收件箱以获取调优建议和批准链接
## ⚠️ 安全免责声明
本项目是用于家庭/云实验室环境的**学术概念验证**。它使用了:
- 自签名证书
- 出于测试目的禁用了防火墙配置文件
- 硬编码的变量
在没有适当的安全加固、密钥管理(例如 Ansible Vault)以及 TLS 证书验证的情况下,**请勿在生产环境中部署**。
标签:Ansible, BurpSuite集成, SOAR, Wazuh, 安全检测工程, 安全运营中心(SOC), 系统提示词, 自动化运维, 请求拦截, 逆向工具