MenasrChahir/Enterprise-SOC-Telemetry-Attack-Detection-Lab
GitHub: MenasrChahir/Enterprise-SOC-Telemetry-Attack-Detection-Lab
一个基于 Wazuh 和 Docker 的企业级 SOC 遥测实验室,演示从应用日志采集到威胁可视化告警的完整安全检测管道。
Stars: 0 | Forks: 0
# 企业级 SOC 遥测攻击检测实验室
本项目演示了端到端的安全遥测工程:捕获原始的应用程序事务日志,通过内嵌的 endpoint 传感器安全地进行流式传输,根据可编程的签名模式解析数据流,并在中央 SIEM 界面中可视化高严重性威胁。
## 🎯 项目目标
本项目的核心目标是模拟现代企业环境在遭受实际网络攻击时,如何实现对分布式基础设施的可见性。
该实验室实现了四个关键的安全工程里程碑:
* **遥测生成:** 配置动态的 Web 服务应用层,以生成持续的事务访问日志。
* **传感器解耦:** 将主动的 endpoint 监控 daemon 直接嵌入到目标资产中,作为基于主机的入侵检测系统 (HIDS)。
* **自动化标准化:** 将原始的非结构化日志字符串路由到中央解析引擎,以标准化数据 schema。
* **威胁分析与规则验证:** 通过将实时的攻击 payload 与严格的模式匹配签名进行比对,触发高严重性的分析警报。
## 🏗️ 架构管道
```
[ Threat Actor ]
│ (Malicious HTTP Injection)
▼
[ Target Web Server (Apache) ] ──► [ Local Access Log File ]
│ (Continuous Monitoring)
▼
[ Wazuh Agent Sensor ]
│ (TLS Encrypted Stream)
▼
[ Central Wazuh Manager ] ──► [ Rule Engine Match ]
│
▼
[ Indexer Database ]
│
▼
[ Dashboard web UI ]
```
## 💻 锁定的 Agent 镜像蓝图 (`Dockerfile`)
受监控的资产是使用自定义的镜像蓝图构建的,旨在将安全合规传感器直接嵌入到基础操作系统中。
Dockerfile
FROM debian:bookworm-slim
# 1. 安装生产级 Web 应用程序服务器依赖项
RUN apt-get update && apt-get install -y \
apache2 \
curl \
gnupg \
procps \
&& rm -rf /var/lib/apt/lists/*
# 2. 建立 SIEM 仓库频道并验证 GPG 密钥
RUN curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor -o /usr/share/keyrings/wazuh.gpg
RUN echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list
# 3. 部署 endpoint 传感器,严格锁定版本以确与管理器兼容
RUN apt-get update && apt-get install -y wazuh-agent=4.10.0-1
# 4. 自动化传感器网络路由配置,将其指向中央管理器
RUN sed -i 's/MANAGER_IP<\/address>/wazuh.manager<\/address>/g' /var/ossec/etc/ossec.conf
EXPOSE 80
# 5. 初始化 endpoint runtime 循环与 Web daemon
CMD service wazuh-agent start && apache2ctl -D FOREGROUND
⚡ 攻击模拟与遥测生命周期
1. 执行漏洞 Payload
使用针对性的 HTTP 请求模拟了恶意的 Web 向量。该 payload 执行了目录遍历攻击,尝试使用相对跟踪路径 (../) 爬出 Web 文档根目录并访问敏感的系统文件 (/etc/passwd)。
Bash
curl -G "http://localhost:8080/index.html" --data-urlencode "file=../../../../etc/passwd"
2. 日志生成与解析逻辑
Apache 应用层将事务事件元数据直接写入磁盘上的 `/var/log/apache2/access.log`。后台的 wazuh-agent 立即将新的日志字符串 tokenize,通过加密的 TLS 通道将其传输给管理器,并触发了对规则 31103 的精确正则表达式查找匹配:
XML
31101
\.\./\.\./\.\./\.\./etc/passwd
Web 服务器规则 - 目录遍历尝试
🛠️ Linux 系统工程与故障排除的胜利
在现代 Linux 工作站上构建安全实验室引入了严格的平台限制。本项目成功克服并解决了几个核心的系统冲突:
软件包锁定解析:通过诊断 Web 仓库与集群基础版本之间的上游版本不匹配问题,克服了最初的 agent 部署失败,最终通过实施严格的软件点版本约束 (wazuh-agent=4.10.0-1) 解决了该问题。
SELinux 资源优化:解决了一个严重的桌面资源瓶颈。在此瓶颈中,Fedora 的 D-Bus 激活的 setroubleshootd daemon 在容器数据库操作期间用 GUI 警报淹没了系统。通过追踪策略循环、将目录上下文更新为 `container_file_t` 并屏蔽警报服务以恢复系统性能,完全缓解了 CPU 飙升问题。
持久化缓存管理:修复了由持久化 Docker 卷中损坏的、写了一半的配置状态文件引起的后端 API 链接瞬时崩溃,方法是编排了一个细粒度的卷清理循环 (`docker compose down -v`)。
🚀 如何运行该实验室
1. 启动核心 SIEM 技术栈
Bash
cd wazuh-images/single-node
docker compose up -d
2. 启动企业目标资产
Bash
docker run -d \
--name enterprise-webserver \
--network single-node_default \
-p 8080:80 \
vulnerable-apache
3. 优雅地销毁实验室环境
Bash
docker rm -f enterprise-webserver
docker compose down
标签:CISA项目, OPA, Wazuh, 安全运营, 应用安全, 扫描框架, 版权保护, 请求拦截, 靶场