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 环境中的自动化部署与检测工程 ![基础设施](https://img.shields.io/badge/Infrastructure-As--Code-blue) ![SIEM](https://img.shields.io/badge/SIEM-Wazuh-00aae6) ![SOAR](https://img.shields.io/badge/SOAR-Shuffle-orange) ![自动化](https://img.shields.io/badge/Automation-Ansible-black) ![语言](https://img.shields.io/badge/Language-Python-yellow) ## 概述 一个自动化的云原生 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), 系统提示词, 自动化运维, 请求拦截, 逆向工具