jmoreira01/siem-lab-project

GitHub: jmoreira01/siem-lab-project

基于 Wazuh 的企业级 SIEM 实验室项目,实现了多平台文件完整性监控、YARA 恶意软件检测、暴力破解与 SQL 注入防御及自动化主动响应,并完成 MITRE ATT&CK 全链路映射。

Stars: 0 | Forks: 0

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Wazuh](https://img.shields.io/badge/Wazuh-v4.14.2-blue)](https://wazuh.com/) [![YARA](https://img.shields.io/badge/YARA-v4.5.5-red)](https://virustotal.github.io/yara/) [![MITRE ATT&CK](https://img.shields.io/badge/MITRE-ATT%26CK-orange)](https://attack.mitre.org/) # Wazuh SIEM 实验室 — 企业级威胁检测与自动响应 ## 目录 1. [引言](#-introduction) 2. [项目架构](#-project-architecture) 3. [Wazuh 服务器](#-wazuh-server) 4. [Windows 机器](#-windows-machine) 5. [Linux 机器](#-linux-machine) 6. [模拟攻击](#-simulated-attacks) 7. [MITRE ATT&CK 映射](#-mitre-attck-mapping) 8. [获得的结果](#-results-obtained) 9. [结论](#-conclusion) 10. [技术文档](#-technical-documentation) ## 引言 使用 Wazuh 实现企业级 SIEM 解决方案的个人家庭实验室。 涵盖多平台 agent 部署(Windows + Linux)、文件完整性监控、 基于 YARA 的恶意软件检测、网络入侵检测以及自动化的主动响应。 所有攻击模拟均在隔离的实验室环境中进行。 ### 项目目标 - **Wazuh SIEM 服务器的安装与配置** - **在 Windows 和 Linux 上部署 agent** - **配置文件完整性监控 (FIM)** - **检测并拦截恶意远程访问** - **集成 YARA 模块进行恶意软件检测** - **模拟真实攻击** - **与 MITRE ATT&CK 框架进行映射** ## 项目架构 ### 基础设施组件 ``` ┌─────────────────────────────────────────────────────────────┐ │ WAZUH SERVER │ │ (Docker - Ubuntu 22.04) │ │ IP: 10.107.5.100 │ │ ┌──────────────┬──────────────┬──────────────┐ │ │ │ Manager │ Indexer │ Dashboard │ │ │ └──────────────┴──────────────┴──────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ┌───────────────┴──────────────┐ │ │ ┌───────▼──────┐ ┌────────▼─────┐ │ WINDOWS │ │ LINUX │ │ AGENT │ │ AGENT │ │ │ │ │ │ • FIM │ │ • FIM │ │ • YARA │ │ • YARA │ │ • RDP │ │ • SSH │ │ • Active Rsp │ │ • Apache Mon │ └──────────────┘ └──────────────┘ ``` ### 技术规格 | 组件 | 操作系统 | IP | 服务 | Wazuh 版本 | |-----------|------------------|-----|----------|---------------| | **Wazuh Server** | Ubuntu 22.04 (Docker) | 10.107.5.100 | Manager, Indexer, Dashboard | v4.14.2 | | **Windows Agent** | Windows 10/11 | 动态获取 | RDP, SMB, Share | Agent v4.14.2 | | **Linux Agent** | Debian/Ubuntu | 动态获取 | Apache, SSH | Agent v4.14.2 | | **Kali Attacker** | Kali Linux | 10.107.5.88 / 10.0.2.6 | Hydra, curl | N/A | ## Wazuh 服务器 ### Docker 实现 该实现使用了 **Docker** 来创建一个具备以下特性的环境: - **模块化** - 组件相互隔离 - **可复现** - 易于复制 - **可扩展** - 支持规模增长 ### 主要组件 #### 1 Wazuh Manager 负责接收和分析 agent 发送的事件。 #### 2 Wazuh Indexer 用于安全数据的存储和索引。 #### 3 Wazuh Dashboard 用于可视化、告警分析和事件响应的图形界面。 ### 网络架构 ``` version: '3.9' services: wazuh-manager: ports: - "1514:1514" # Agent communication - "1515:1515" # Agent enrollment - "55000:55000" # API wazuh-indexer: ports: - "9200:9200" # Indexer wazuh-dashboard: ports: - "443:5601" # Web Interface ``` ## Windows 机器 ### 1. Wazuh Agent 安装 **方法:** 通过 Dashboard 部署新 agent ``` # 下载和安装 Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.14.2-1.msi ` -OutFile $env:tmp\wazuh-agent msiexec.exe /i $env:tmp\wazuh-agent /q ` WAZUH_MANAGER='10.107.5.100' ` WAZUH_AGENT_NAME='windows' # 启动服务 NET START Wazuh ``` **验证:** ``` Get-Service -Name "WazuhSvc" # 状态:Running ``` ### 2. 文件完整性监控 - FIM **目标:** 监控关键文件的更改。 **配置:** `C:\Program Files (x86)\ossec-agent\ossec.conf` ``` no 43200 yes C:\partilha C:\Users\user ``` **参数:** - `check_all="yes"` - 监控所有内容(大小、权限、哈希) - `realtime="yes"` - 实时检测 **激活的规则:** - **Rule 554** - 文件被添加 - **Rule 550** - 文件被修改 - **Rule 553** - 文件被删除 ### 3. RDP 监控 + 恶意 IP 拦截 **目标:** 检测并拦截来自恶意 IP 的 RDP 访问尝试。 #### 3.1 启用 RDP 日志 ``` Security eventchannel Event/System[EventID=4625 or EventID=4624] ``` - **EventID 4624** - 成功登录 - **EventID 4625** - 登录尝试失败 #### 3.2 恶意 IP CDB 列表 (服务器) ``` # 下载 AlienVault 列表 sudo wget https://iplists.firehol.org/files/alienvault_reputation.ipset \ -O /var/ossec/etc/lists/alienvault_reputation.ipset # 添加攻击者 IP sudo echo "10.0.2.6" >> /var/ossec/etc/lists/alienvault_reputation.ipset # 转换为 CDB sudo wget https://wazuh.com/resources/iplist-to-cdblist.py -O /tmp/iplist-to-cdblist.py sudo /var/ossec/framework/python/bin/python3 /tmp/iplist-to-cdblist.py \ /var/ossec/etc/lists/alienvault_reputation.ipset \ /var/ossec/etc/lists/malicious-ip ``` #### 3.3 自定义规则 **服务器:** `/var/ossec/etc/rules/local_rules.xml` ``` ``` **使用的默认规则:** - **Rule 99919** - 来自恶意 IP 的登录失败 #### 3.4 主动响应 - 自动拦截 **服务器:** `/var/ossec/etc/ossec.conf` ``` no netsh local 99919 600 ``` **结果:** IP 通过 Windows Firewall 被拦截 10 分钟。 ### 4. YARA 模块 - 恶意软件检测 #### 4.1 在 Windows 上安装 YARA ``` # 下载:https://github.com/VirusTotal/yara/releases # 文件:yara-v4.5.5-win64.zip # 解压至:C:\Program Files\yara\ # 添加到系统 PATH # 验证 yara --version ``` #### 4.2 YARA 规则 ``` # 创建目录 mkdir C:\yara_rules # 下载 Valhalla 规则 Invoke-WebRequest -Uri "https://valhalla.nextron-systems.com/api/v1/get" ` -Method POST ` -Body "demo=demo&apikey=1111...&format=text" ` -OutFile "C:\yara_rules\yara_rules.yar" ``` #### 4.3 主动响应脚本 **文件:** `C:\Program Files (x86)\ossec-agent\active-response\bin\yara.bat` ``` @echo off setlocal set /p INPUT_JSON= for /f "tokens=2 delims=:" %%a in ('echo %INPUT_JSON% ^| findstr /i "path"') do set FILEPATH=%%a set FILEPATH=%FILEPATH:"=% set FILEPATH=%FILEPATH:}=% set FILEPATH=%FILEPATH: =% "C:\Program Files\yara\yara64.exe" -r ^ "C:\yara_rules\yara_rules.yar" ^ "%FILEPATH%" >> "C:\Program Files (x86)\ossec-agent\active-responses.log" 2>&1 exit /b 0 ``` #### 4.4 服务器配置 **Decoders:** `/var/ossec/etc/decoders/local_decoder.xml` ``` wazuh-yara: yara_decoder wazuh-yara: (\S+) - Scan result: (\S+) (\S+) log_type, yara_rule, yara_scanned_file ``` **Rules:** `/var/ossec/etc/rules/local_rules.xml` ``` 550 C:\\partilha File modified in C:\partilha directory. 554 C:\\partilha File added to C:\partilha directory. yara_decoder Yara grouping rule 108000 wazuh-yara: INFO - Scan result: File "$(yara_scanned_file)" is a positive match. Yara rule: $(yara_rule) ``` **主动响应:** ``` yara_windows yara.bat no no yara_windows local 100303,100304 ``` ## Linux 机器 ### 1. Wazuh Agent 安装 ``` # 下载 wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.14.2-1_amd64.deb # 安装 sudo WAZUH_MANAGER='10.107.5.100' WAZUH_AGENT_NAME='linux' \ dpkg -i ./wazuh-agent_4.14.2-1_amd64.deb # 启用并启动 sudo systemctl daemon-reload sudo systemctl enable wazuh-agent sudo systemctl start wazuh-agent ``` ### 2. 文件完整性监控 **配置:** `/var/ossec/etc/ossec.conf` ``` no /var/www/html /home/root /etc ``` **激活的规则:** - **Rule 554** - 文件被添加 - **Rule 550** - 文件被修改 - **Rule 553** - 文件被删除 ### 3. 恶意 IP 拦截 Apache **Apache 日志配置:** ``` apache /var/log/apache2/access.log ``` **自定义规则:** ``` web|attack|attacks etc/lists/malicious-ioc/malicious-ip IP address found in AlienVault reputation database. ``` **主动响应:** ``` no firewall-drop local 100100 600 ``` **添加的恶意 IP:** `10.107.5.88` ### 4. SSH 暴力破解检测 **使用的默认规则:** - **Rule 99903** - 来自恶意 IP 的成功登录 - **Rule 99904** - 多次身份验证失败 **主动响应:** ``` no firewall-drop local 99903,99904 600 ``` **攻击工具:** Hydra ``` hydra -l user -P passwords.txt IP_LINUX ssh -t 4 ``` ### 5. YARA 模块 Linux #### 5.1 YARA 安装 ``` # 依赖项 sudo apt install -y make gcc autoconf libtool libssl-dev pkg-config jq # 下载和编译 sudo curl -LO https://github.com/VirusTotal/yara/archive/v4.5.5.tar.gz sudo tar -xvzf v4.5.5.tar.gz -C /usr/local/bin/ cd /usr/local/bin/yara-4.5.5/ sudo ./bootstrap.sh sudo ./configure sudo make sudo make install ``` #### 5.2 YARA 规则 ``` sudo mkdir -p /tmp/yara/rules sudo curl 'https://valhalla.nextron-systems.com/api/v1/get' \ -H 'Accept: text/html,application/xhtml+xml,application/xml' \ --data 'demo=demo&apikey=1111...&format=text' \ -o /tmp/yara/rules/yara_rules.yar ``` #### 5.3 yara.sh 脚本 **文件:** `/var/ossec/active-response/bin/yara.sh` ``` #!/bin/bash LOCAL=`dirname $0` cd $LOCAL && cd ../ LOG_FILE="/var/ossec/logs/active-responses.log" read INPUT_JSON YARA_PATH=$(echo $INPUT_JSON | jq -r .parameters.extra_args[1]) YARA_RULES=$(echo $INPUT_JSON | jq -r .parameters.extra_args[3]) FILENAME=$(echo $INPUT_JSON | jq -r .parameters.alert.syscheck.path) ${YARA_PATH}/yara -w -r ${YARA_RULES} ${FILENAME} >> ${LOG_FILE} 2>&1 ``` #### 5.4 服务器配置 **Rules:** ``` 550 /var/www/html File modified in /var/www/html directory. 554 /tmp/yara/malware File added to /var/www/html directory. 550 /root File modified in /root directory. 554 /root File added to /root directory. ``` **主动响应:** ``` yara_linux yara.sh -yara_path /usr/local/bin -yara_rules /tmp/yara/rules/yara_rules.yar no no yara_linux local 100300,100301,100306,100307 ``` ## 模拟攻击 ### 1. SSH 暴力破解 (Linux) **工具:** Hydra **目标:** SSH 服务 (端口 22) ``` # 创建密码列表 cat > passwords.txt << EOF 123456 password qwerty admin letmein EOF # 执行攻击 hydra -l user -P passwords.txt IP_LINUX ssh -t 4 ``` **检测:** - Rule 99904 - 多次身份验证失败 - 主动响应自动拦截了 IP ### 2. RDP 暴力破解 (Windows) **工具:** Hydra / rdesktop **目标:** 远程桌面协议 (端口 3389) **检测:** - Rule 99919 - 来自恶意 IP 的登录失败 - 主动响应通过 netsh 拦截了 IP ### 3. SQL 注入 (Linux Apache) **使用的 Payload:** ``` curl -XGET "http://IP_LINUX/users/?id=SELECT+*+FROM+users" curl -XGET "http://IP_LINUX/search?q=test'+UNION+SELECT+null--" curl -XGET "http://IP_LINUX/login.php?id=1'+OR+'1'='1" curl -XGET "http://IP_LINUX/login.php?user=admin'--" ``` **检测:** - Rule 31106 (默认) - SQL 注入尝试 - Wazuh 分析了 Apache 日志 ### 4. 恶意软件上传 (YARA) **测试样本:** - EICAR 测试文件 - 恶意软件样本 (用于教学目的) **检测:** - FIM 检测到文件创建 (Rule 554) - YARA 分析了文件 - Rule 108001 - 检测到恶意软件 ## MITRE ATT&CK 映射 ### 映射表 | 攻击 | 战术 | 技术 | MITRE ID | Wazuh Rule | 主动响应 | |--------|--------|-----------|----------|------------|-----------------| | **SSH 暴力破解** | 凭证访问 | 暴力破解:密码猜测 | T1110.001 | 99904 | firewall-drop | | **RDP 暴力破解** | 凭证访问 | 暴力破解:密码猜测 | T1110.001 | 99919 | netsh | | **SQL 注入** | 初始访问 | 利用面向公众的应用程序 | T1190 | 31106 | firewall-drop | | **恶意软件上传** | 执行 / 持久化 | 用户执行:恶意文件 | T1204.002 | 108001 | yara scan | | **恶意 IP** | 命令与控制 | 应用层协议 | T1071 | 100100 | firewall-drop | ### 按技术分析 #### T1110.001 - 密码猜测 **描述:** 自动化的凭证猜测尝试 **Wazuh 缓解措施:** 关联多次失败尝试 + 自动拦截 **有效性:** ✅ 100% - 所有暴力破解攻击均被检测并拦截 #### T1190 - 利用面向公众的应用程序 **描述:** 利用 Web 应用程序中的漏洞 **Wazuh 缓解措施:** Apache 日志分析 + 恶意 SQL 模式 **有效性:** ✅ 100% - 所有 SQL 注入尝试均被检测 #### T1204.002 - 用户执行:恶意文件 **描述:** 执行恶意文件 **Wazuh 缓解措施:** FIM + YARA 签名 **有效性:** ✅ 100% - 实时检测到恶意软件 ## 获得的结果 ### 检测率 | 指标 | 结果 | |--------|--------| | **文件完整性监控** | ✅ 100% (实时) | | **YARA 检测率** | ✅ 100% (所有样本) | | **暴力破解检测** | ✅ 100% (SSH + RDP) | | **SQL 注入检测** | ✅ 100% (所有 payload) | | **IP 拦截 (主动响应)** | ✅ 100% (自动) | | **平均响应时间** | ⚡ < 15 秒 | ## 结论 ### 已实现的目标 - 使用 Wazuh 的 **功能性 SIEM 系统** - Windows 和 Linux 的 **集中监控** - 实时的 **文件完整性监控** - 通过 YARA 进行 **恶意软件检测** - 恶意 IP 的 **自动拦截** - 对攻击的 **自动响应** - **完整的 MITRE ATT&CK 映射** ### 主要收获 1. **组件集成:** FIM、主动响应和 YARA 协同工作 2. **自定义规则的重要性:** 针对特定环境进行调整 3. **主动响应的有效性:** 自动缓解措施减少了暴露窗口 4. **MITRE ATT&CK 的价值:** 用于威胁分析的通用框架 ## 技术文档 ### 有用的链接 - 📖 [Wazuh 官方文档](https://documentation.wazuh.com) - 🦠 [YARA 文档](https://yara.readthedocs.io) - 🎯 [MITRE ATT&CK](https://attack.mitre.org) - 🔗 [AlienVault IP 信誉库](https://iplists.firehol.org) ## 许可证 本项目作为个人家庭实验室练习而开发。所有模拟均在隔离的实验室环境中进行。
标签:AMSI绕过, ATT&CK映射, Cloudflare, Conpot, DNS 反向解析, Docker, DOE合作, Homelab, IP 地址批量处理, meg, MITRE ATT&CK, OISF, OpenCanary, Wazuh, Windows安全, x64dbg, YARA, 主动响应, 云资产可视化, 企业安全, 信息安全, 多平台代理, 威胁检测, 安全信息与事件管理, 安全实验室, 安全运营, 安全防御评估, 扫描框架, 搜索引擎爬取, 攻击模拟, 日志管理, 端点安全, 网络安全, 网络资产管理, 自动化响应, 补丁管理, 请求拦截, 速率限制处理, 隐私保护, 驱动签名利用