Steven20201/-Home-SOC-Lab-Threat-Detection-Incident-Response
GitHub: Steven20201/-Home-SOC-Lab-Threat-Detection-Incident-Response
这是一个使用Wazuh和Splunk构建的家庭SOC实验室,旨在模拟真实世界的威胁检测、日志分析、告警分流及事件响应工作流。
Stars: 0 | Forks: 0
# 🛡️ 家庭 SOC 实验室 — 威胁检测与事件响应
## 📌 概述
本项目记录了家庭 SOC 实验室环境的搭建与运行。目标是培养 SIEM 平台、流量分析和攻击模拟方面的实战经验 — 这与 SOC 分析师的日常工作职责直接相关。
**核心关注领域:**
- 实时日志摄取与关联
- 告警检测与分流
- 流量分析
- 事件响应模拟
- MITRE ATT&CK 技术映射
## 🧰 工具与技术
| 类别 | 工具 | 用途 |
|---|---|---|
| SIEM | Wazuh | 日志摄取、关联、告警 |
| SIEM | Splunk | 仪表板监控、SPL 查询 |
| 流量分析 | Wireshark | 数据包捕获与流量检查 |
| 威胁模拟 | TryHackMe | 攻击技术练习(Level 1) |
| 自动化 | Python | 日志解析与告警丰富脚本 |
| 框架 | MITRE ATT&CK | 将检测映射到已知 TTP |
## 🏗️ 实验室架构
```
┌─────────────────────────────────────────────────────┐
│ Home SOC Lab │
│ │
│ ┌─────────────┐ ┌──────────────────────┐ │
│ │ Attacker │──────▶ │ Target Machine │ │
│ │ (Kali / │ │ (Windows / Linux) │ │
│ │ TryHackMe) │ └──────────┬───────────┘ │
│ └─────────────┘ │ logs │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Wazuh Agent │ │
│ └────────┬─────────┘ │
│ │ forwards │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Wazuh Manager/SIEM │ │
│ │ + Splunk Indexer │ │
│ └─────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Analyst Workstation │ │
│ │ Wireshark | Dashboards │ │
│ └─────────────────────────┘ │
└─────────────────────────────────────────────────────┘
```
## ⚙️ 搭建与配置
### 1. Wazuh SIEM
- 在本地 Ubuntu VM 上部署了 Wazuh Manager
- 在 Windows 和 Linux 终端上安装了 Wazuh Agents
- 配置了自定义检测规则,用于:
- 失败的登录尝试(brute force)
- 提权尝试
- 可疑进程执行
- 文件完整性监控(FIM)告警
### 2. Splunk
- 通过 syslog 转发将 Wazuh 告警摄取至 Splunk
- 构建了自定义仪表板,用于:
- 登录活动监控
- 按主机统计的主要告警来源
- 安全事件时间线
- 练习了用于威胁狩猎的 SPL(Search Processing Language)查询
### 3. Wireshark
- 在模拟攻击期间捕获实时流量
- 分析协议:TCP、UDP、DNS、HTTP、ICMP
- 识别入侵指标(IOCs):
- 端口扫描特征(SYN floods)
- 暴力破解模式
- 异常 DNS 查询
## 🎯 模拟攻击场景
| 场景 | 技术 | MITRE ATT&CK |
|---|---|---|
| SSH 暴力破解 | 凭证填充 | T1110.001 |
| 端口扫描 | 网络发现 | T1046 |
| 提权 | Sudo 滥用 | T1548.003 |
| 可疑进程 | 意外的子进程 | T1059 |
| 文件修改 | 篡改日志 | T1070.002 |
## 🐍 Python 自动化
位于 `/scripts/` 目录:
- **`log_parser.py`** — 解析原始 Wazuh JSON 告警并提取关键字段(timestamp, rule ID, severity, source IP)
- **`alert_enricher.py`** — 使用 IP 查询为告警添加地理位置数据
- **`brute_force_detector.py`** — 标记在时间窗口内超过 N 次失败登录的 IP
```
# brute force detection logic
from collections import defaultdict
def detect_brute_force(logs, threshold=5, window_seconds=60):
attempts = defaultdict(list)
flagged = []
for log in logs:
ip = log['source_ip']
timestamp = log['timestamp']
attempts[ip].append(timestamp)
recent = [t for t in attempts[ip] if timestamp - t <= window_seconds]
if len(recent) >= threshold:
flagged.append({'ip': ip, 'attempts': len(recent)})
return flagged
```
## 📊 样本检测
### Wazuh 告警 — 检测到暴力破解
```
{
"rule": {
"id": "5763",
"description": "Multiple authentication failures",
"level": 10
},
"agent": { "name": "windows-endpoint" },
"data": {
"srcip": "192.168.1.105",
"failed_attempts": 12
},
"timestamp": "2024-11-15T08:32:14.000Z"
}
```
## 📚 我学到了什么
- 如何在家庭环境中从零开始部署和配置 SIEM
- 编写与调优检测规则以减少误报
- 阅读和解读原始数据包捕获以识别攻击模式
- 将观察到的行为映射到 MITRE ATT&CK 战术与技术
- 使用 Python 脚本自动化重复性的 SOC 任务
## 🏅 认证与培训
- **CompTIA Security+** — 分数:769/900
- **TryHackMe** — SOC Level 1 路线(进行中)
- **A1 德语** — 语言学习中(目标是面向德国的职位)
## 🗺️ 路线图
- [ ] 添加 Elastic Stack (ELK) 作为替代 SIEM 搭建方案
- [ ] 集成威胁情报源(AlienVault OTX)
- [ ] 构建网络钓鱼模拟与邮件分析模块
- [ ] 编写完整的事件响应手册
- [ ] 添加 Zeek 用于网络安全监控
## 🔗 联系方式
- **LinkedIn:** [Khant Zaw Hein](https://www.linkedin.com/in/khant-zaw-hein-ba0173197/)
- **TryHackMe:** [Khant Zaw Hein](https://tryhackme.com/p/khantzawhein261)
标签:AMSI绕过, Cloudflare, Home Lab, MITRE ATT&CK, Python, SPL, TryHackMe, Wazuh, Wireshark, 句柄查看, 威胁检测, 安全运营中心, 实战演练, 家庭实验室, 无后门, 日志解析, 网络安全, 网络映射, 警报分类, 证书伪造, 逆向工具, 隐私保护