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, 句柄查看, 威胁检测, 安全运营中心, 实战演练, 家庭实验室, 无后门, 日志解析, 网络安全, 网络映射, 警报分类, 证书伪造, 逆向工具, 隐私保护