siddhantpatel007/SIEM-Homelab-Detection-Response
GitHub: siddhantpatel007/SIEM-Homelab-Detection-Response
一个基于 Wazuh 和 Suricata 构建 SOC 家庭实验室的完整方案,包含自定义检测规则、自动化响应 Playbook 以及覆盖完整杀伤链的攻击模拟。
Stars: 0 | Forks: 0
# SIEM 家庭实验室:检测工程与自动化事件响应
一个功能齐全的安全运营中心 (SOC) 环境,具备使用 Wazuh SIEM 和 Suricata IDS 进行实时威胁检测、映射 MITRE ATT&CK 的自定义检测规则以及自动化事件响应能力。
## 概述
本项目通过构建多虚拟机实验室环境,演示了端到端的安全操作:在此环境中发起、检测、分析真实攻击并自动做出响应。每一条检测规则都映射到 MITRE ATT&CK 框架,自动化 Playbook 负责处理诸如 IP 封禁和用户账户锁定等遏制措施。
### 主要亮点
- 9 条映射到 MITRE ATT&CK 框架的自定义检测规则
- 5 次覆盖完整网络杀伤链的真实攻击模拟
- 3 个自动化响应 Playbook(IP 封禁、用户锁定、富化告警)
- 包含多个可视化面板的自定义 SOC 监控仪表板
- 网络层和端点层的检测覆盖
## 架构
| 组件 | 角色 | IP 地址 |
|:----------|:-----|:-----------|
| Wazuh Server (Ubuntu 22.04) | SIEM — Manager, Indexer, Dashboard | `192.168.56.10` |
| Target Machine (Ubuntu 22.04) | 安装了 Wazuh Agent, Suricata, auditd 的受监控端点 | `192.168.56.11` |
| Kali Linux | 攻击模拟机 | `192.168.56.12` |
```
┌──────────────────────────────────────────────────────────────┐
│ VirtualBox Host │
│ │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ Wazuh Server │ │ Target Machine │ │ Kali Linux │ │
│ │ │ │ │ │ (Attacker) │ │
│ │ - Wazuh Mgr │ │ - Wazuh Agent │ │ │ │
│ │ - Indexer │◄─┤ - Suricata │ │ - Nmap │ │
│ │ - Dashboard │ │ - auditd │ │ - Hydra │ │
│ │ │ │ - Apache2 │ │ - Nikto │ │
│ │ .56.10 │ │ .56.11 │ │ .56.12 │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
│ │
│ Network: 192.168.56.0/24 (Host-Only) │
└──────────────────────────────────────────────────────────────┘
```
## 技术栈
| 类别 | 技术 |
|:---------|:-----------|
| SIEM 平台 | Wazuh 4.9.2 (Manager + Indexer + Dashboard) |
| 网络 IDS | Suricata 7.x 配合 Emerging Threats 规则集 |
| 端点监控 | auditd (Linux Audit Daemon) |
| 日志转发 | Filebeat |
| 攻击工具 | Nmap, Hydra, Nikto, dirb, Netcat |
| 威胁框架 | MITRE ATT&CK |
| 虚拟化 | Oracle VirtualBox |
| 操作系统 | Ubuntu 22.04 LTS, Kali Linux 2025.x |
| 脚本语言 | Bash |
## 攻击模拟
在完整的网络杀伤链中模拟了五次真实世界的攻击:
| # | 攻击 | 使用工具 | MITRE ATT&CK | 杀伤链阶段 |
|:-:|:-------|:----------|:-------------|:-----------------|
| 1 | 网络侦察 | Nmap | T1046 | Reconnaissance |
| 2 | SSH 暴力破解 | Hydra | T1110.001 | Credential Access |
| 3 | Web 应用扫描 | Nikto, dirb | T1190, T1595.002 | Initial Access |
| 4 | 权限提升 | 手动 (sudo, find) | T1548.003, T1083 | Privilege Escalation |
| 5 | 数据窃取 | Netcat | T1041 | Exfiltration |
### 杀伤链流程
```
Reconnaissance Initial Access Privilege Escalation Exfiltration
(Nmap scan) → (Hydra brute force) → (sudo attempts, SUID) → (Netcat transfer)
│ │ │ │
▼ ▼ ▼ ▼
T1046 T1110.001 T1548.003 T1041
```
## 自定义检测规则
编写了 9 条自定义 Wazuh 规则,每条都映射到特定的 MITRE ATT&CK 技术:
| 规则 ID | 攻击类型 | MITRE ID | 严重性 | 自动响应 |
|:--------|:-----------|:---------|:---------|:--------------|
| 100001 | 端口扫描检测 | T1046 | Level 8 | Alert |
| 100002 | SSH 暴力破解 (60秒内失败5次以上) | T1110.001 | Level 10 | Block IP + Notify |
| 100003 | 暴力破解后登录 | T1110.001, T1078 | Level 14 | Disable User |
| 100004 | 目录遍历 | T1190 | Level 12 | Notify |
| 100005 | Web 漏洞扫描 | T1595.002 | Level 10 | Alert |
| 100006 | 未授权 Sudo 尝试 | T1548.003 | Level 12 | Notify |
| 100007 | SUID 二进制文件枚举 | T1083 | Level 8 | Alert |
| 100008 | Netcat 执行 | T1041 | Level 13 | Notify |
| 100009 | 可疑出站连接 | T1041 | Level 10 | Alert |
## 自动化事件响应
实施了三个主动响应 Playbook 用于自动威胁遏制:
### 1. IP 自动封禁 (Firewall Drop)
### 2. 用户账户锁定
### 3. 富化告警通知
## 仪表板
在 Wazuh Dashboard 中构建的自定义 SOC 监控仪表板:
| 可视化项 | 类型 | 用途 |
|:-------------|:-----|:--------|
| Alerts by Severity | 饼图 | 各严重等级的告警分布 |
| Top Triggered Rules | 水平条形图 | 触发最频繁的检测规则 |
| Attack Timeline | 折线图 | 显示攻击模式随时间变化的告警量 |
| Top Source IPs | 数据表 | 最活跃的攻击者 IP 地址 |
| MITRE Techniques | 标签云 | 最常检测到的 ATT&CK 技术 |
## MITRE ATT&CK 覆盖范围
```
┌────────────────────┬─────────────────────────────────────────────┐
│ Tactic │ Techniques Detected │
├────────────────────┼─────────────────────────────────────────────┤
│ Reconnaissance │ T1046 - Network Service Scanning │
│ │ T1595 - Vulnerability Scanning │
├────────────────────┼─────────────────────────────────────────────┤
│ Initial Access │ T1190 - Exploit Public-Facing Application │
│ │ T1078 - Valid Accounts │
├────────────────────┼─────────────────────────────────────────────┤
│ Credential Access │ T1110 - Brute Force: Password Guessing │
├────────────────────┼─────────────────────────────────────────────┤
│ Priv. Escalation │ T1548 - Sudo and Sudo Caching │
├────────────────────┼─────────────────────────────────────────────┤
│ Discovery │ T1083 - File and Directory Discovery │
├────────────────────┼─────────────────────────────────────────────┤
│ Exfiltration │ T1041 - Exfiltration Over C2 Channel │
└────────────────────┴─────────────────────────────────────────────┘
```
## 仓库结构
```
siem-homelab-detection-response/
│
├── README.md
├── architecture/
│ └── architecture-diagram.png
├── detection-rules/
│ └── local_rules.xml
├── active-response/
│ ├── custom-notify.sh
│ └── disable-user.sh
├── configurations/
│ ├── suricata-homelab.yaml
│ ├── audit.rules
│ └── ossec-agent.conf.example
├── attack-simulations/
│ └── attack-playbook.md
└── docs/
└── detection-rule-mapping.md
```
## 设置与复现
### 前置条件
- Oracle VirtualBox 7.x
- 主机最低 16GB RAM(Wazuh Server 6GB,Target 和 Kali 各 2GB)
- Ubuntu 22.04 Server ISO, Ubuntu 22.04 Desktop ISO, Kali Linux VirtualBox 镜像
- 100GB 可用磁盘空间
### 快速开始
1. 在隔离的 host-only 网络 (`192.168.56.0/24`) 上创建三个虚拟机
2. 在服务器 VM 上安装 Wazuh 4.9 all-in-one (Manager + Indexer + Dashboard)
3. 在目标 VM 上部署 Wazuh agent, Suricata, 和 auditd
4. 从 [`detection-rules/local_rules.xml`](detection-rules/local_rules.xml) 导入自定义检测规则
5. 从 [`active-response/`](active-response/) 部署主动响应脚本
6. 按照 [`attack-simulations/attack-playbook.md`](attack-simulations/attack-playbook.md) 从 Kali 发起攻击模拟
## 展示的技能
- **检测工程** — 编写经过严重性调整和 MITRE ATT&CK 映射的自定义 SIEM 规则
- **事件响应** — 构建自动化遏制 Playbook 以缩短平均响应时间
- **网络安全监控** — 部署 Suricata IDS 进行网络层威胁检测
- **端点安全** — 配置 auditd 以进行系统级审计和文件完整性监控
- **日志管理** — 将多源日志(syslog, Apache, Suricata, auditd)集中到单一 SIEM 中
- **威胁情报** — 应用 MITRE ATT&CK 框架进行标准化威胁分类
- **安全可视化** — 构建用于实时安全监控的运营仪表板
标签:AMSI绕过, Cloudflare, FTP漏洞扫描, IP 地址批量处理, Metaprompt, MITRE ATT&CK, PE 加载器, Suricata, VirtualBox, Wazuh, 仪表盘, 入侵检测系统, 凭证访问, 发现, 命令与控制, 威胁检测, 安全数据湖, 安全模拟, 安全编排, 安全运营中心, 家庭实验室, 应用安全, 执行, 收集, 攻击模拟, 现代安全运营, 私有化部署, 网络安全, 网络映射, 自动化响应, 防御规避, 隐私保护, 驱动签名利用