Madhan-mohan14/Automated-Threat-Detection-Response-phase2
GitHub: Madhan-mohan14/Automated-Threat-Detection-Response-phase2
基于Wazuh和TheHive构建的开源自动化SOC流水线,实现从实时威胁检测、自动防火墙拦截到事件工单创建的全流程安全运营闭环。
Stars: 0 | Forks: 0
# 🛡️ 使用开源 SIEM 进行自动化威胁检测与响应
一个完全使用开源工具构建的全功能安全信息和事件管理 (SIEM) 系统。该自动化 SOC 流水线利用 Wazuh 和 TheHive,具备实时威胁检测、主动响应(自动防火墙拦截)、文件完整性监控 (FIM) 以及用于事件工单管理的 SOAR 集成功能。
## 📋 项目概述
本项目演示了一个端到端的安全监控流水线:
1. **Wazuh SIEM** 实时检测暴力破解攻击和文件篡改
2. **主动响应** 通过防火墙规则自动拦截攻击者 IP
3. **文件完整性监控 (FIM)** 捕获利用后的文件修改
4. **TheHive 集成** 转发高危警报以进行事件案例管理
本项目作为 VIT Bhopal 大学 B.Tech(网络安全与数字取证)专业的 Capstone 项目开发。
## 🏗️ 架构
```
┌─────────────────┐ SSH Brute-Force ┌─────────────────────────┐
│ Kali Linux │ ──────────────────────────────▶ │ Ubuntu Server │
│ (Attacker) │ Nmap Scans │ (Wazuh Server) │
│ 10.0.2.5 │ │ 10.0.2.4 │
│ │ │ │
│ • Hydra │ ◀── Firewall Block ──────── │ • Wazuh Manager │
│ • Nmap │ (Active Response) │ • Wazuh Indexer │
│ • Wazuh Agent │ │ • Wazuh Dashboard │
└─────────────────┘ │ • TheHive (Docker) │
│ • Cassandra (Docker) │
│ • Elasticsearch(Docker)│
└─────────────────────────┘
```
**网络:** VirtualBox NAT 网络 (`10.0.2.0/24`)
## 🔧 技术栈
| 组件 | 工具 | 用途 |
|-----------|------|---------|
| SIEM 平台 | Wazuh 4.7.5 | 日志分析、威胁检测、告警 |
| 终端代理 | Wazuh Agent | 从受监控的终端收集日志 |
| 虚拟化 | Oracle VirtualBox | 隔离的实验环境 |
| 服务器操作系统 | Ubuntu Server 22.04 | 承载 Wazuh 服务器组件 |
| 攻击者操作系统 | Kali Linux | 攻击模拟终端 |
| 事件响应 | TheHive 5.2 | 案例管理与告警追踪 |
| 数据库 | Cassandra 4.0 | TheHive 后端存储 |
| 搜索引擎 | Elasticsearch 7.17.9 | TheHive 索引 |
| 攻击工具 | Hydra, Nmap | 暴力破解与端口扫描模拟 |
## 📁 仓库结构
```
├── README.md # This file
├── config/
│ ├── ossec.conf # Wazuh Manager configuration (key sections)
│ └── custom-thehive # TheHive integration script
├── docs/
│ ├── 01-virtualbox-setup.md # VirtualBox & VM setup guide
│ ├── 02-wazuh-installation.md # Wazuh server & agent installation
│ ├── 03-thehive-setup.md # TheHive Docker setup & integration
│ ├── 04-attack-simulation.md # Running attacks & viewing results
│ └── 05-rules-reference.md # Wazuh rules explained
└── screenshots/ # Add your demo screenshots here
└── .gitkeep
```
## 🚀 快速开始
### 前置条件
- **主机:** 最低 8GB 内存,50GB 可用磁盘空间
- **软件:** 已安装 Oracle VirtualBox 7.x
- **ISO 镜像:** Ubuntu Server 22.04,Kali Linux(最新版)
### 步骤 1:VirtualBox 网络设置
1. 打开 VirtualBox → 文件 → 工具 → 网络管理器
2. 转到 **NAT 网络** 选项卡 → 点击 **创建**
3. 配置:
- 名称:`WazuhLabNet`
- IPv4 前缀:`10.0.2.0/24`
- 启用 DHCP:✅
### 步骤 2:创建虚拟机
**Ubuntu Server 虚拟机 (Wazuh 服务器):**
- 内存:4096 MB(最低)
- CPU:2 核
- 硬盘:30 GB
- 网络:连接到 `WazuhLabNet`
**Kali Linux 虚拟机 (攻击者/终端):**
- 内存:2048 MB
- CPU:2 核
- 硬盘:25 GB
- 网络:连接到 `WazuhLabNet`
### 步骤 3:安装 Wazuh 服务器 (Ubuntu 虚拟机)
```
# 更新系统
sudo apt update && sudo apt upgrade -y
# 下载并运行 Wazuh 安装程序
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
sudo bash wazuh-install.sh -a
# 保存最后显示的凭据!
# 访问 https:// 处的 dashboard
```
验证所有服务:
```
sudo systemctl status wazuh-manager
sudo systemctl status wazuh-indexer
sudo systemctl status wazuh-dashboard
```
### 步骤 4:安装 Wazuh 代理 (Kali 虚拟机)
1. 打开 Wazuh 控制面板 → 代理 → 部署新代理
2. 选择 Linux DEB,输入服务器 IP (`10.0.2.4`)
3. 复制生成的命令并在 Kali 上运行:
```
# 示例(你的命令会有所不同):
wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.7.5-1_amd64.deb
sudo WAZUH_MANAGER='10.0.2.4' dpkg -i wazuh-agent_4.7.5-1_amd64.deb
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent
```
验证连接:
```
sudo systemctl status wazuh-agent
```
### 步骤 5:配置主动响应与 FIM
编辑 Wazuh Manager 配置文件:
```
sudo nano /var/ossec/etc/ossec.conf
```
添加以下代码块(完整参考请参见 `config/ossec.conf`):
**主动响应 — 自动拦截暴力破解攻击者:**
```
firewall-drop
local
5720,5763
600
```
**主动响应 — 自动拦截端口扫描器:**
```
firewall-drop
local
581
600
```
**文件完整性监控 — 实时检测:**
```
/etc,/usr/bin,/usr/sbin
```
更改后重启:
```
sudo systemctl restart wazuh-manager
```
### 步骤 6:设置 TheHive (Docker)
```
# 安装 Docker
sudo apt install docker.io docker-compose -y
sudo systemctl enable docker
sudo systemctl start docker
# 启动 Cassandra
sudo docker run -d --name cassandra \
-p 9042:9042 \
-e CASSANDRA_CLUSTER_NAME=TheHive \
cassandra:4.0
# 等待 60 秒以初始化 Cassandra
sleep 60
# 启动 Elasticsearch(使用端口 9201 以避免与 Wazuh Indexer 在 9200 上的冲突)
sudo docker run -d --name elasticsearch \
-p 9201:9200 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
docker.elastic.co/elasticsearch/elasticsearch:7.17.9
# 等待 30 秒
sleep 30
# 启动 TheHive
sudo docker run -d --name thehive \
-p 9000:9000 \
strangebee/thehive:5.2
# 访问 http://:9000 处的 TheHive
# 默认登录信息:admin@thehive.local / secret
```
### 步骤 7:集成 Wazuh → TheHive
**创建集成脚本:**
```
sudo nano /var/ossec/integrations/custom-thehive
```
粘贴 `config/custom-thehive` 中的内容,然后执行:
```
sudo chmod 750 /var/ossec/integrations/custom-thehive
sudo chown root:wazuh /var/ossec/integrations/custom-thehive
```
**创建一个具有告警权限的 TheHive 组织和用户:**
```
sudo /var/ossec/framework/python/bin/python3 -c "
import requests
headers = {
'Authorization': 'Bearer ',
'Content-Type': 'application/json'
}
# 创建 SOC organisation
r = requests.post('http://127.0.0.1:9000/api/v1/organisation',
headers=headers,
json={'name': 'SOC', 'description': 'Security Operations'},
verify=False)
print('Create org:', r.status_code)
# 在 SOC org 中创建 analyst 用户
r2 = requests.post('http://127.0.0.1:9000/api/v1/user',
headers=headers,
json={'login': 'soc-wazuh@thehive.local', 'name': 'Wazuh SIEM',
'profile': 'analyst', 'organisation': 'SOC'},
verify=False)
print('Create user:', r2.status_code)
# 生成 API key
r3 = requests.post('http://127.0.0.1:9000/api/v1/user/soc-wazuh@thehive.local/key/renew',
headers=headers, verify=False)
print('API key:', r3.text)
"
```
**将集成添加到 ossec.conf:**
```
custom-thehive
http://127.0.0.1:9000/api/alert
YOUR_SOC_USER_API_KEY
json
5720,5763
```
重启 Wazuh:
```
sudo systemctl restart wazuh-manager
```
## ⚔️ 攻击模拟
### 攻击 1:SSH 暴力破解(从 Kali 发起)
```
# 单次密码尝试(循环)
while true; do hydra -l maddy -p "wrongpassword123" ssh://10.0.2.4; sleep 1; done
# 或使用 wordlist
hydra -l maddy -P /usr/share/wordlists/rockyou.txt ssh://10.0.2.4 -t 4
```
**预期的 Wazuh 告警:**
| 规则 ID | 级别 | 描述 |
|---------|-------|-------------|
| 5760 | 5 | sshd: 认证失败 |
| 5503 | 5 | PAM: 用户登录失败 |
| 5551 | 10 | PAM: 短时间内多次登录失败 |
| 5763 | 10 | sshd: 暴力破解尝试获取系统访问权限 |
| 651 | 3 | 主机被 firewall-drop 主动响应拦截 |
**预期的 TheHive 告警:** Wazuh 警报 - 规则 5763(自动创建)
### 攻击 2:文件完整性篡改(在 Ubuntu 上)
```
# 模拟攻击者植入 backdoor
sudo touch /etc/malicious_backdoor
# 模拟攻击者修改系统文件
sudo bash -c 'echo "compromised" >> /etc/hosts'
```
**预期的 Wazuh 告警:**
| 规则 ID | 级别 | 描述 |
|---------|-------|-------------|
| 554 | 5 | 文件已添加到系统 |
| 550 | 7 | 完整性校验和已更改 |
| 553 | 7 | 文件已删除(如果您删除了测试文件) |
## 🔑 Wazuh 规则参考
| 规则 ID | 类别 | 描述 |
|---------|----------|-------------|
| 5760 | 认证 | 单次 SSH 登录失败 |
| 5503 | 认证 | PAM 级别登录失败确认 |
| 5551 | 暴力破解 | 检测到多次登录失败(模式) |
| 5720 | 暴力破解 | 来自同一 IP 的多次认证失败 |
| 5763 | 暴力破解 | 暴力破解攻击已确认 |
| 581 | 端口扫描 | 基于主机的异常检测 — 连接尝试(端口扫描) |
| 651 | 主动响应 | 攻击者 IP 被 firewall-drop 拦截 |
| 550 | 文件完整性 | 文件校验和已更改(修改) |
| 554 | 文件完整性 | 新文件已添加到受监控目录 |
| 553 | 文件完整性 | 文件已从受监控目录中删除 |
## 🧹 演示后清理
```
# 删除测试文件
sudo rm /etc/malicious_backdoor /etc/hacker_was_here
# 从 /etc/hosts 中移除添加的行
sudo nano /etc/hosts # Delete lines containing "hacked", "compromised", etc.
# 解封攻击者 IP(或等待 600 秒自动解封)
sudo /var/ossec/active-response/bin/firewall-drop delete - - 10.0.2.5
```
## 🎥 项目演示视频
[](https://youtu.be/5Vjwi6d7peA)
*点击上方图片观看我们自动化 SOC 流水线的完整技术演示,包括实时威胁检测、主动响应和事件工单管理。*
## 🔮 未来增强计划
- **Cortex 集成:** 自动化威胁情报富化(IP 信誉,MISP 查询)
- **MITRE ATT&CK 映射:** 为所有检测到的威胁进行完整的战术/技术映射
- **电子邮件/Slack 通知:** 实时告警通知
- **自定义仪表盘:** 集成 Grafana 进行安全指标可视化
- **网络 IDS:** 集成 Suricata 进行网络级威胁检测
## 👥 团队
| 姓名 | 角色 |
|------|------|
| Madhan Mohan Naidu .M (22BCY10182) | 完整的系统开发 — Wazuh 服务器/代理设置,主动响应配置,文件完整性监控,TheHive Docker 部署,Wazuh-TheHive 集成脚本 |
| Rehan Rajesh (22BCY10196) | 攻击模拟与验证,演示文稿准备及文档编写 |
| V.A.Aaswin (22BCY10257) | 项目报告撰写,报告的研究与数据收集 |
| Insaf Sadik A S (22BCY10282) | 报告的研究与数据收集 |
**指导教师:** Dr. Hariharasitaraman S
**所属机构:** VIT Bhopal University
## 📄 许可证
本项目作为 B.Tech Capstone 项目 (DSN4091) 的一部分,仅用于教育目的。
标签:AMSI绕过, CIDR查询, CTI, Docker, FTP漏洞扫描, SOAR, SSH安全, TheHive, Ubuntu Server, Wazuh, 主动响应, 信息安全管理, 威胁检测, 安全编排, 安全运营中心, 安全防御评估, 密码管理, 工单管理, 暴力破解防护, 毕业设计, 毕设项目, 端点安全, 网络安全, 网络映射, 自动化防御, 自动封禁, 补丁管理, 请求拦截, 防火墙策略, 隐私保护