dhorton77/security-engineering-portfolio
GitHub: dhorton77/security-engineering-portfolio
一个完整的家庭安全实验室项目文档,系统记录了基于 Wazuh 和 Splunk 双 SIEM 架构的蓝队检测工程实践,涵盖攻击模拟、规则调优、告警分析与事件响应全流程。
Stars: 0 | Forks: 0
# 🛡️ 家庭实验室安全测试项目
一个全面的、证据驱动的安全测试和检测工程实验室,展示了真实的 SOC(安全运营中心)工作流程、SIEM 部署、事件响应和蓝队分析能力。
**作品集分类:** 家庭实验室演练 | 安全工程师演示
**最后更新:** 2026 年 5 月 10 日
## 📋 概述
本仓库记录了一个完整的家庭实验室安全测试项目,涵盖了跨多个攻击场景的攻击模拟、检测工程、事件调查和补救措施。每次演练都从基础攻击检测逐步深入到高级威胁狩猎、差距分析以及战略性 SIEM 部署。
**本项目展示了:**
- ✅ 端到端 SOC 分析师工作流(检测 → 调查 → 补救 → 验证)
- ✅ SIEM 部署和配置(Wazuh + Splunk)
- ✅ 自定义检测规则工程
- ✅ 证据驱动的安全决策
- ✅ 专业的文档和报告标准
- ✅ 事件响应和威胁狩猎能力
## 🗺️ 实验室环境
### 网络拓扑
```
Internet Simulation
↓
IPFire Gateway (192.168.1.1)
/ | \
RED ZONE GREEN ZONE ORANGE ZONE
(Attack/Vuln) (Infrastructure) (Legacy OS)
| | |
• Kali Linux 2025.4 • Wazuh SIEM • Windows 10
• Mr Robot VM • Splunk SIEM • Windows XP
• DVWA • Kali Purple • Windows Vista
• OWASP WebApps • SIFT Workstation • Windows 7
• Metasploitable2 • Windows Servers • Windows 98
• Windows 11
• SOF-ELK
```
### 系统清单
| 区域 | 系统 | IP | 角色 | 状态 |
|------|--------|----|----|--------|
| **RED** | Kali Linux 2025.4 | 192.168.1.21 | 攻击平台 (Agent 005) | ✅ 活跃 |
| **RED** | Mr Robot VM | TBD | 漏洞靶机 | ✅ 可用 |
| **RED** | DVWA | TBD | Web 漏洞训练 | ✅ 可用 |
| **RED** | OWASP Broken Web Apps v1.2 | TBD | Web 应用测试 | ✅ 可用 |
| **RED** | Metasploitable2-Linux | TBD | Linux 漏洞靶机 | ✅ 可用 |
| **GREEN** | Wazuh SIEM | 192.168.1.15 | 主 SIEM (v4.11.2) | ✅ 活跃 |
| **GREEN** | Splunk SIEM | 192.168.1.20 | 辅助 SIEM | ✅ 活跃 |
| **GREEN** | Kali Purple | TBD | 紫队 / 取证 | ✅ 可用 |
| **GREEN** | SIFT Workstation | TBD | 取证与事件响应 | ✅ 可用 |
| **GREEN** | Windows Server 2019 | TBD | 域服务 | ✅ 可用 |
| **GREEN** | Windows Server 2016 Essentials | TBD | 支持服务 | ✅ 可用 |
| **GREEN** | Windows 11 x64 | 192.168.1.8 | 目标终端 (Agent 001) | ✅ 活跃 |
| **GREEN** | Windows 11 Workstation x64 | TBD | 用户工作站 | ✅ 可用 |
| **GREEN** | SOF-ELK | TBD | 网络+测试 | ✅ 可用 |
| **ORANGE** | Windows 10 x64 | TBD | 旧版操作系统测试 | ✅ 可用 |
| **ORANGE** | Windows XP Professional | TBD | 旧版操作系统测试 | ✅ 可用 |
| **ORANGE** | Windows Vista x64 Edition | TBD | 旧版操作系统测试 | ✅ 可用 |
| **ORANGE** | Windows 7 | TBD | 旧版操作系统测试 | ✅ 可用 |
| **ORANGE** | Windows 98 SE | TBD | 旧版操作系统测试 | ✅ 可用 |
**系统总数:** 24 台 VMs | **Hypervisor:** VMware Workstation Pro 25H2 | **宿主机 RAM:** 32GB
## 📊 已完成的演练与报告
### 练习 1:SSH 暴力破解检测与调查(2026 年 5 月 3–9 日)
从基础攻击检测到内部威胁模拟和战略性 SIEM 部署的完整 4 阶段进阶过程。
#### 阶段 1:初始检测(5 月 3 日)
**报告:** `Wazuh_SSH_Lab_Report_v1.0.md`
- 模拟 SSH 暴力破解攻击(3 次手动尝试)
- 验证了自定义 Wazuh 检测规则
- **结果:** ✅ 在几秒钟内检测到攻击
#### 阶段 2:告警调查(5 月 3–4 日)
**报告:** `Wazuh_SSH_Lab_Report_v2.0.md`
- 对原始 Windows 安全事件日志进行深度调查
- 源 IP 归因分析
- 识别出 4 个安全缺口(发现项 F-001 至 F-004)
- **发现项:** 2 个关键缺口(源 IP 不可见,东西向流量盲点)
#### 阶段 3:纠正措施(5 月 4–5 日)
**报告:** `Wazuh_SSH_Lab_Report_v3.0.md`
- 配置了 Wazuh OpenSSH/Operational 日志收集
- 增强了 IPFire 防火墙日志记录(GREEN 区域流量)
- 在 Kali Linux 上部署了 Wazuh Agent 005(消除了东西向盲点)
- 战略决策:部署 Splunk 作为辅助 SIEM
- **状态:** 2 项发现已解决,2 项进行中
#### 阶段 4:内部威胁模拟(5 月 8 日)
**报告:** `Wazuh_SSH_Lab_Report_v4.0.md`
- 从手动尝试升级为使用 **Hydra** 进行自动化暴力破解
- 使用了 rockyou.txt 密码字典(贴近真实攻击)
- 展示了终端和网络双重可见性(Agent 005)
- **结果:** ✅ 成功检测并记录复杂攻击
#### 阶段 5:战略性 SIEM 部署(5 月 9 日)
**报告:** `Splunk_Supplementary_SIEM_Report_FINAL.md`
- 部署了 Splunk Enterprise 10.2.3
- 发现 Splunk 原生支持解析 Windows OpenSSH/Operational 日志
- 源 IP 提取现已实现自动化
- **结果:** ✅ 所有 4 项安全发现已完全解决
#### 非技术性摘要
- `Lab_Reports_Non_Technical.md` — 高层级概述(练习 1 和 2)
- `Lab_Reports_Non_Technical_v2.md` — 更新摘要(练习 1、2、3)
### 练习 2:网站篡改检测(计划于 2026 年 5 月 10–11 日)
**状态:** 🔄 规划中
**目标:** OWASP Broken Web Apps v1.2
**攻击方法:** 文件上传漏洞 / SQL 注入 / WebDAV 漏洞利用
**检测:** Wazuh FIM + Splunk 日志关联
**交付物(已就绪):**
- 攻击场景计划
- Wazuh FIM 配置(9 条自定义规则:ID 100201–100209)
- 12 条 Splunk SPL 查询
- 专业的报告模板
**预期报告:** `Website_Defacement_Lab_Report.md`
### 练习 3:勒索软件检测与响应(计划时间 TBD)
**状态:** 📋 已计划
**重点:** 勒索软件攻击模拟、加密检测、备份恢复
**预期报告:** `Ransomware_Lab_Report.md`
## 🎯 安全发现与补救
### 完整发现追踪表
| 发现 ID | 严重程度 | 问题 | 状态 | 解决方案 |
|------------|----------|-------|--------|-----------|
| **F-001** | HIGH | Windows SSH 日志中未捕获源 IP | ✅ 已解决 | Splunk OpenSSH/Operational 解析 |
| **F-002** | HIGH | 东西向流量盲点(内部 VMs) | ✅ 已解决 | 在 Kali 上部署 Wazuh Agent 005 |
| **F-003** | MEDIUM | Windows 11 未设置账户锁定策略 | ✅ 已解决 | 已配置组策略(5 次尝试,锁定 30 分钟) |
| **F-004** | MEDIUM | IPFire 日志存储问题 | ✅ 已解决 | 已验证 IPFire 日志处于活动状态(15,835 次命中) |
| **F-005** | LOW | OpenSSH 后量子加密警告 | ⏸️ 已推迟 | 优先级低,可稍后处理 |
| **F-006** | LOW | Wazuh 版本不匹配(agent/manager) | ✅ 已解决 | Agent 降级,仓库版本已固定 |
**总结:** 识别出 6 项发现 | 5 项已完全解决 | 1 项已推迟
## 🛠️ 检测工程
### 自定义 Wazuh 规则
**SSH 暴力破解检测(练习 1–4):**
- 规则 100001:SSH 身份验证失败检测
- 规则 100002:暴力破解模式识别
- 规则 60122:Wazuh 内置登录失败规则 (Level 5)
**网站篡改检测(练习 2):**
- 规则 100201:Web 根目录文件修改告警
- 规则 100202:Nginx 根目录文件修改告警
- 规则 100203:CRITICAL — 主页修改 (Level 10)
- 规则 100204:新 Webshell 创建检测
- 规则 100205:新 Webshell 创建
- 规则 100206:Apache 配置更改告警
- 规则 100207:Nginx 配置更改告警
- 规则 100208:PHP 配置更改告警
- 规则 100209:自动化攻击关联(Webshell + 访问)
**自定义规则总数:** 11 条(加上标准 Wazuh 规则)
### Splunk SPL 查询
**SSH 暴力破解调查:**
- 实时告警查询
- 源 IP 归因
- 身份验证失败时间线关联
**网站篡改检测:**
- 涵盖以下内容的 12 项综合查询:
- 文件创建/修改检测
- Webshell 识别
- HTTP 请求模式分析
- 时间线关联(文件更改 + HTTP 访问)
- SQL 注入尝试检测
- 权限修改追踪
## 📈 MITRE ATT&CK 覆盖范围
### 演示的技术
| 战术 | 技术 | 子技术 | 练习 |
|--------|-----------|---------------|----------|
| **Credential Access** | T1110 | 密码猜测 (T1110.001) | SSH 暴力破解 |
| **Initial Access** | T1190 | 利用面向公众的应用程序 | 网站篡改(计划中) |
| **Execution** | T1505.003 | Web Shell | 网站篡改(计划中) |
| **Impact** | T1491.001 | 篡改:内部 | 网站篡改(计划中) |
## 📚 文档结构
```
Lab-reports-/
├── README.md (this file)
├── NETWORK_TOPOLOGY.md (visual reference)
│
├── SSH_Brute_Force_Exercises/
│ ├── Wazuh_SSH_Lab_Report_v1.0.md (Detection)
│ ├── Wazuh_SSH_Lab_Report_v2.0.md (Investigation)
│ ├── Wazuh_SSH_Lab_Report_v3.0.md (Remediation)
│ ├── Wazuh_SSH_Lab_Report_v4.0.md (Insider Threat)
│ ├── Splunk_Supplementary_SIEM_Report_FINAL.md (Deployment)
│ ├── Lab_Reports_Non_Technical.md (Summary v1)
│ └── Lab_Reports_Non_Technical_v2.md (Summary v2)
│
├── Website_Defacement_Exercise/ (Planned)
│ ├── Attack_Scenario_Plan.md
│ ├── Wazuh_FIM_Configuration.conf
│ ├── Splunk_Queries.md
│ ├── Website_Defacement_Lab_Report.md
│ └── Evidence/
│
├── Ransomware_Exercise/ (Planned)
│ ├── Ransomware_Attack_Plan.md
│ ├── Ransomware_Lab_Report.md
│ └── Evidence/
│
└── Lab_Infrastructure/
├── Network_Topology_Diagram.svg
├── Wazuh_Custom_Rules_Complete.xml
├── Splunk_Queries_Library.spl
├── Lab_Setup_Guide.md
├── Change_Management_Log.md
└── Lessons_Learned.md
```
## 🚀 入门指南
### 前置条件
- VMware Workstation Pro 25H2(或兼容的 Hypervisor)
- 最低 32GB RAM(最低要求 16GB,但若需运行所有 VMs 推荐使用 32GB)
- 500GB+ 可用存储空间
- 宿主机 OS:Windows/Linux/macOS
### 实验室搭建步骤
1. **部署 VMs** — 安装上方清单中列出的系统
2. **配置防火墙** — IPFire 区域(RED/GREEN/ORANGE)
3. **安装 Wazuh** — 在 Ubuntu 上安装 Manager,在所有受监控系统上安装 Agent
4. **安装 Splunk** — 在 Ubuntu 20.04 LTS 上安装企业版
5. **配置 Agent** — 部署 Wazuh Agent(Windows 11 上的 Agent 001,Kali 上的 Agent 005)
6. **应用监控** — 配置 FIM、日志转发、告警规则
7. **验证连接性** — 使用测试事件验证检测
### 快速验证
```
# Wazuh manager 健康状况
systemctl status wazuh-manager
# Splunk 健康状况
/opt/splunk/bin/splunk show forward-server -auth admin:password
# 验证 agent 连接性
curl -s http://192.168.1.15:55000/agents | jq '.data'
```
## 📖 如何使用本仓库
### 用于学习
1. 阅读 `Lab_Reports_Non_Technical.md` 获取高层级概述
2. 按顺序查看每份技术报告(v1.0 → v2.0 → v3.0 → v4.0 → Splunk)
3. 研究发现项的演进过程,以了解差距分析方法论
4. 查看 Wazuh 规则和 Splunk 查询,观察检测工程的实际应用
### 用于复现
1. 遵循 `Lab_Setup_Guide.md` 搭建你自己的实验室
2. 参考 `Wazuh_Custom_Rules_Complete.xml` 获取检测规则
3. 使用 `Splunk_Queriesibrary.spl` 获取日志分析查询
4. 查看 `Network_Topology_Diagram.svg` 了解基础设施布局
### 用于作品集
1. 每份报告均独立成文,且以专业标准记录
2. 网络拓扑图展示了基础设施设计思维
3. 完整的发现追踪表展示了系统化的差距分析
4. 跨演练的进展展示了安全工程的成熟度
5. 基于证据的决策贯穿于整个文档中
## 🔍 核心洞察与经验教训
### 表现良好的方面
✅ Wazuh 成功在几秒钟内检测到 SSH 暴力破解攻击
✅ 基于 Agent 的监控提供了全面的终端可见性
✅ 系统化的差距分析推动了有针对性的改进
✅ 多 SIEM 策略(Wazuh + Splunk)提供了完整的覆盖
✅ 文件完整性监控在检测篡改方面非常有效
### 我们学到了什么
🔹 仅靠 SIEM 终端检测是不够的——网络层可见性必不可少
🔹 Windows OpenSSH 日志需要专门的解析(由 Splunk 解决)
🔹 东西向流量盲区是一个真实世界的问题
🔹 调查过程揭示了攻击检测无法发现的漏洞
🔹 基于证据的决策制定能防止资源浪费
### 下一步计划
- 完成网站篡改演练(FIM 验证)
- 执行勒索软件攻击模拟(加密检测)
- 部署网络行为分析 (NBA) 以进行异常检测
- 实施自动化事件响应 Playbook
## 📊 实验室指标
| 指标 | 数值 |
|--------|-------|
| **VMs 总数** | 24 |
| **SIEM 平台** | 2 (Wazuh + Splunk) |
| **自定义检测规则** | 11+ |
| **Splunk 查询** | 12+ |
| **已完成的演练** | 4(SSH 阶段) |
| **计划中的演练** | 2(篡改 + 勒索软件) |
| **识别出的发现项** | 6 |
| **已解决的发现项** | 5 |
| **检测准确率** | 100%(已完成演练中无误报) |
| **平均告警时间 (MTTA)** | < 1 秒 |
| **平均响应时间 (MTTR)** | 2–5 分钟 |
## 🎓 专业价值
本实验室展示了:
1. **安全架构** — 具有适当隔离的多区域网络设计
2. **SIEM 部署** — 生产级监控基础设施
3. **检测工程** — 用于针对性威胁狩猎的自定义规则
4. **事件响应** — 系统化的调查和补救
5. **文档标准** — 专业的技术报告
6. **持续改进** — 差距分析和基于证据的决策
7. **真实世界仿真** — 高级攻击工具和专业字典
适用于以下职位:SOC 分析师、安全工程师、检测工程师、事件响应人员、蓝队负责人
## 🤝 贡献
这是一个个人作品集项目。如需提出改进或建议,请参阅各个演练报告以提供反馈。
## 📝 许可证
作品集文档 — 仅限教育和专业用途。不得用于商业分发。
## 📧 作者
**David Boyd Horton**
安全工程师与蓝队从业者
创建时间:2026 年 5 月
## 🔗 快速链接
- **Wazuh 文档:** https://documentation.wazuh.com/
- **Splunk 文档:** https://docs.splunk.com/
- **MITRE ATT&CK 框架:** https://attack.mitre.org/
- **网络安全分析:** https://www.sans.org/
**最后更新:** 2026 年 5 月 10 日 | **状态:** 活跃 — 持续进行演练 | **分类:** 作品集 — 家庭实验室演练
*本仓库代表了真实的安全工程工作,展示了检测能力、事件响应方法论以及专业的文档标准。*
标签:CISA项目, DVWA, HTTP工具, IPFire, IP 地址批量处理, OPA, SOF-ELK, Wazuh, 告警分析, 子域名变形, 安全实验室, 安全工程师, 安全报告, 安全运营中心, 安全项目, 家庭实验室, 库, 应急响应, 插件系统, 攻击模拟, 数字取证, 数据展示, 流量捕获, 漏洞分析, 漏洞靶场, 红队, 网络安全, 网络安全审计, 网络拓扑, 网络映射, 自动化脚本, 规则调优, 路径探测, 防御检测, 隐私保护, 靶场, 驱动签名利用