aleenaarzoo/soc-week3-malware-detection-wazuh
GitHub: aleenaarzoo/soc-week3-malware-detection-wazuh
该项目在虚拟化环境中搭建了一套基于 Wazuh SIEM 的恶意软件检测与事件响应流水线,涵盖防火墙、代理扫描、日志聚合、自定义告警及事件响应全流程。
Stars: 0 | Forks: 0
# SOC 第 3 周 — 恶意软件检测与事件响应
**实习:** ITSimplera Solutions — SOC 分析师实习生(蓝队)
**任务:** 第 3 周 — 恶意软件检测与事件响应
**工具:** pfSense · Squid Proxy · ClamAV · Syslog-NG · Wazuh SIEM(Manager、Indexer、Dashboard) · Ubuntu · Oracle VirtualBox
## 概述
本项目在虚拟化实验室环境中实现了一个小型的 SOC 监控流水线。pfSense 作为网络防火墙/网关,Squid Proxy 结合 ClamAV 扫描 Web 流量以检测恶意软件,Syslog-NG 将防火墙和代理事件转发到 Wazuh SIEM,而自定义的 Wazuh decoder/rule 对可检测行业标准的 EICAR 测试文件——从而验证完整的检测到告警的流水线。
整个实验室构建并运行在一台 8 GB RAM 的笔记本电脑上,同时运行三个并发虚拟机,这也意味着需要解决几个现实世界中的限制(RAM 不足、agent 注册问题、协议不匹配),这些都在下文中记录了下来。
## 架构
```
Windows Host (192.168.56.1)
│
▼
pfSense Firewall (192.168.56.2)
├─ Squid Proxy (LAN, port 3128)
│ └─ ClamAV via squidclamav + C-ICAP
└─ Syslog-NG ──► forwards logs (UDP/514)
│
▼
Wazuh Server (192.168.56.102)
├─ rsyslog (receives pfSense syslog)
├─ Wazuh Manager (custom decoder + rule)
├─ Wazuh Indexer
└─ Wazuh Dashboard (alerts & monitoring)
│
▼
Ubuntu Agent (192.168.56.101) — Wazuh Agent endpoint
```
## 实验室环境
| 组件 | IP 地址 | 角色 |
|---|---|---|
| pfSense 防火墙 | 192.168.56.2 | 防火墙、网关、Squid Proxy、ClamAV、Syslog-NG |
| Wazuh 服务器 | 192.168.56.102 | Wazuh Manager、Indexer、Dashboard |
| Ubuntu Agent | 192.168.56.101 | Wazuh Agent 终端 |
| Windows 宿主机 | 192.168.56.1 | 承载所有虚拟机的物理笔记本电脑 |
## 完成的工作
- ✅ 部署并配置 pfSense 作为网络防火墙/网关
- ✅ 安装并配置 Squid Proxy,集成 ClamAV 防病毒功能
- ✅ 在 pfSense 上配置 Syslog-NG,并将其与 Wazuh Manager (rsyslog) 集成
- ✅ 将一个 Ubuntu 终端注册为 Wazuh Agent
- ✅ 编写了自定义的 Wazuh decoder 和 rule 以检测 EICAR 测试签名
- ✅ 使用 EICAR 标准防病毒测试文件测试了恶意软件检测
- ✅ 在 Wazuh Dashboard 中验证了告警
- ✅ 分析了收集到的日志,并制定了结构化的事件响应计划
## 仓库结构
```
├── documentation/
│ └── Week3_SOC_Internship_Report.docx # Full write-up: procedure, screenshots, IR plan
├── wazuh-config/
│ ├── local_decoder.xml # Custom EICAR decoder
│ └── local_rules.xml # Custom EICAR detection rule
├── screenshots/
│ ├── 01_pfsense_dashboard.png
│ ├── 02_squid_general.png
│ ├── ... (see documentation for full captioned set)
└── README.md
```
## 关键故障排除(已解决的实际问题)
| 问题 | 根本原因 | 解决方案 |
|---|---|---|
| Wazuh Agent 陷入“Duplicate agent name”循环 | Agent 拥有有效的密钥,但自动注册仍然隐式处于活动状态 | 在 Agent 的 `ossec.conf` 中添加 `no ` |
| 修复注册问题后,Agent 状态显示“Waiting for server reply” | Agent 配置为 UDP;`wazuh-remoted` 仅监听 TCP | 将 Agent 协议从 `udp` 更改为 `tcp` |
| Syslog-ng 目标语法测试失败 | GUI 未自动将对象参数包装在 `{ }` 中 | 将参数写为 `{ udp("192.168.56.102" port(514)); };` |
| pfSense 日志未到达 Wazuh Manager | Amazon Linux 2023 Wazuh 主机上未安装 syslog 接收器 | 安装并配置了带有 `imudp` 模块的 `rsyslog` |
| `wazuh-manager.service` 启动超时 | 在 8 GB 宿主机上运行 3 个并发虚拟机导致 RAM 不足 | 添加了 2 GB 交换文件,通过停止非必要的虚拟机释放了 RAM,增加了 Manager 虚拟机内存 |
完整的详细信息、截图和完整的事件响应计划请参见 [`documentation/Week3_SOC_Internship_Report.docx`](./documentation/Week3_SOC_Internship_Report.docx)。
## 作者
**Aleena** — SOC 分析师实习生,ITSimplera Solutions(蓝队)
标签:ClamAV, pfSense, Wazuh, Web 安全测试, 安全运营, 库, 应急响应, 扫描框架