enak223/project-tripwire

GitHub: enak223/project-tripwire

一个经过Atomic Red Team验证的Wazuh检测规则库,将攻击模拟、ATT&CK映射与分析人员操作手册整合为完整的检测工程方案。

Stars: 0 | Forks: 0

# 🪤 Project Tripwire ### SIEM 检测规则库 — Wazuh · Sigma · MITRE ATT&CK · Atomic Red Team [![状态](https://img.shields.io/badge/Status-Active%20Development-brightgreen?style=flat-square)](https://github.com/enak223) [![技术栈](https://img.shields.io/badge/Stack-Wazuh%20%7C%20Sigma%20%7C%20Atomic%20Red%20Team%20%7C%20MITRE%20ATT%26CK-blue?style=flat-square)](https://github.com/enak223) [![规则](https://img.shields.io/badge/Rules-Wazuh%20%7C%20Sigma-orange?style=flat-square)](https://github.com/enak223) [![许可证](https://img.shields.io/badge/License-MIT-lightgrey?style=flat-square)](https://github.com/enak223/project-tripwire/blob/main/LICENSE) ## 📌 概述 **Project Tripwire** 是一个专为 Wazuh SIEM 构建并经过精心挑选的检测规则库,每一条规则都以原生的 Wazuh XML 格式和可移植的 Sigma 格式编写。每一条规则都映射到具体的 MITRE ATT&CK 技术,使用 Atomic Red Team 针对真实的攻击模拟进行了测试,并附带了分析人员所需的上下文文档,以便针对告警采取行动——而不仅仅是接收告警。 它为每一次检测回答了三个问题: - **我们要检测什么?** —— 映射到 MITRE ATT&CK 技术的特定对手行为,以及捕获该行为的 Wazuh 规则和 Sigma 规则。 - **它真的有效吗?** —— 每一条规则都有一个已记录的 Atomic Red Team 测试用例,在个人实验室中针对活动端点执行,并以生成的 Wazuh 告警作为证明。 - **触发时你要怎么做?** —— 每一条规则都附带了分析人员操作手册:告警的含义、误报上下文、分流处理步骤和升级指南。 这不是单纯的规则堆砌。而是一个检测工程作品集。 ## 🏗️ 架构 \`\`\` ┌──────────────────────────────────────────────────────────────────────┐ │ TRIPWIRE 流水线 │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │ │ │ 模拟 │────▶│ 检测 │────▶│ 验证 │ │ │ │ │ │ │ │ │ │ │ │ Atomic Red │ │ Wazuh 规则 │ │ 告警已确认 │ │ │ │ Team (ART) │ │ Sigma 规则 │ │ 日志证据 │ │ │ │ Kali Linux │ │ Decoders │ │ 无漏报 │ │ │ └──────────────┘ └──────────────┘ └──────────────────┘ │ │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌────────▼─────────┐ │ │ │ 编写文档 │◀────│ 映射 │◀────│ 调优 │ │ │ │ │ │ │ │ │ │ │ │ 分析人员 │ │ MITRE ATT&CK │ │ 阈值调整 │ │ │ │ 操作手册 │ │ 战术/技术 │ │ 误报率 │ │ │ │ 分流指南 │ │ 子技术 │ │ 规则置信度 │ │ │ └──────────────┘ └──────────────┘ └──────────────────┘ │ │ │ │ ┌─────────────────────────────────────────┐ │ │ │ 检测覆盖率矩阵 │ │ │ │ 每个阶段的 ATT&CK Navigator 热力图 │ │ │ │ 按战术统计的规则数量 · 置信度 │ │ │ └─────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────┘ \`\`\` **规则生命周期:** \`\`\` 选择 Atomic Red Team 测试 (MITRE 技术) └──▶ 在个人实验室端点上模拟攻击 (Kali / Windows 11 / Ubuntu) └──▶ Wazuh 采集日志 (Sysmon / Auditd / ossec agent) └──▶ 编写自定义 Wazuh 规则 → 触发告警 └──▶ 编写 Sigma 规则以实现可移植性 └──▶ 映射 MITRE ATT&CK 技术 └──▶ 记录分析人员操作手册 └──▶ 将规则提交至规则库 \`\`\` ## 🧰 技术栈 | 组件 | 工具 | 角色 | | ---------------------- | --------------------------- | ----------------------------------------------------------------- | | **SIEM** | Wazuh 4.12 | 日志采集、规则引擎、告警关联、主动响应 | | **规则标准** | Sigma | 供应商中立的检测规则格式,用于确保可移植性 | | **ATT&CK 框架** | MITRE ATT&CK v15 | 为每条规则进行战术/技术映射 | | **ATT&CK 可视化** | ATT&CK Navigator | 按战术生成覆盖率热力图 | | **攻击模拟** | Atomic Red Team | 每项技术的已验证测试用例 (T-codes) | | **Windows 遥测** | Sysmon (SwiftOnSecurity cfg)| 进程创建、网络、注册表、文件事件日志记录 | | **Linux 遥测** | Auditd | Ubuntu 端点上的系统调用级别事件日志记录 | | **攻击者平台** | Kali Linux | ART 执行、手动攻击模拟 | | **日志可视化** | Wazuh Dashboard | 实时告警审查和规则调优 | | **脚本** | Python 3.10+ | 覆盖率矩阵生成、ATT&CK Navigator JSON 导出 | | **宿主机操作系统** | Ubuntu 22.04 | Wazuh 管理节点主机 (192.168.248.20) | | **虚拟化** | VMware Workstation | 个人实验室多虚拟机环境 | ## ✨ 特性 ### 🪤 检测规则库 - 原生 **Wazuh XML 规则**,可直接部署到 \`/var/ossec/etc/rules/\` - 为每一次检测配套的 **Sigma 规则** —— 可移植到 Splunk、Elastic、Microsoft Sentinel - 规则按 MITRE ATT&CK 战术组织:Initial Access → Execution → Persistence → Privilege Escalation → Defense Evasion → Credential Access → Discovery → Lateral Movement → Collection → Exfiltration → Command & Control → Impact - 规则严重性级别与 Wazuh 的 1–15 等级量表对齐,并附带说明理由 - 每条规则针对特定的日志源:Sysmon (Windows)、Auditd (Linux) 或 Wazuh agent (两者皆有) ### 🧪 Atomic Red Team 验证 - 规则库中的每一条规则都至少有一个已记录的 Atomic Red Team 测试用例 - 测试在个人实验室中针对真实的活动端点执行 —— 不是模拟的 - 验证记录包括:ART 测试 ID、执行的命令、预期的日志 artifact、触发的 Wazuh 规则、告警级别、检测时间 - 漏报测试:在提交之前对规则进行调优,直到确认检测成功 ### 🗺️ MITRE ATT&CK 覆盖率矩阵 - 从规则库生成的 ATT&CK Navigator JSON 热力图 —— 精确显示覆盖了哪些技术 - 按战术阶段、技术和子技术跟踪覆盖情况 - 基于验证结果和误报率的每条规则置信度评分:高 / 中 / 低 - 通过 \`scripts/generate_navigator.py\` 更新 ### 📋 分析人员操作手册 - 每一条规则都在 \`rules///RUNBOOK.md\` 中附带了 Markdown 操作手册 - 手册结构:告警摘要 → 触发原因 → 误报场景 → 分流步骤 → 升级标准 → 参考资料 - 专为 Tier 1 SOC 分析人员编写 —— 在收到告警后 5 分钟内即可采取行动 ### 🔧 Wazuh Decoder 库 - 针对未被 Wazuh 原生解析的日志格式的自定义 Decoders(Sysmon XML、自定义 auditd 字段) - Decoder 验证脚本在部署规则前确认字段提取情况 - Decoders 设计为附加式 —— 无需修改 Wazuh 默认的 Decoders ## 📁 项目结构 \`\`\` project-tripwire/ ├── README.md ├── .gitignore │ ├── rules/ │ ├── initial-access/ │ │ └── T1566.001-phishing-attachment/ │ │ ├── wazuh_rule.xml │ │ ├── sigma_rule.yml │ │ ├── RUNBOOK.md │ │ └── validation/ │ │ ├── art_test.md │ │ └── alert_sample.json │ ├── execution/ │ │ ├── T1059.001-powershell/ │ │ ├── T1059.004-unix-shell/ │ │ └── T1053.003-cron-job/ # ✅ 已验证 — GhostNet ART 套件 │ ├── persistence/ │ │ ├── T1136.001-local-account/ # ✅ 已验证 — GhostNet ART 套件 │ │ └── T1543.002-systemd-service/ │ ├── privilege-escalation/ │ │ ├── T1548.003-sudo-caching/ │ │ └── T1134.001-token-impersonation/ │ ├── defense-evasion/ │ │ ├── T1070.003-clear-history/ # ✅ 已验证 — GhostNet ART 套件 │ │ └── T1562.001-disable-security-tools/ │ ├── credential-access/ │ │ ├── T1003.007-proc-filesystem/ # ✅ 已验证 — GhostNet ART 套件 │ │ └── T1110.001-brute-force/ │ ├── discovery/ │ │ ├── T1046-network-scan/ │ │ └── T1082-system-info/ │ ├── lateral-movement/ │ │ ├── T1021.004-ssh/ │ │ └── T1570-lateral-tool-transfer/ │ ├── collection/ │ │ └── T1560.001-archive-collected-data/ │ ├── exfiltration/ │ │ └── T1048-exfil-over-alt-protocol/ │ ├── command-and-control/ │ │ ├── T1071.001-web-protocols/ │ │ └── T1071.004-dns-c2/ │ └── impact/ │ └── T1486-data-encrypted-for-impact/ │ ├── wazuh/ │ ├── decoders/ │ │ ├── sysmon_decoder.xml │ │ ├── auditd_decoder.xml │ │ └── tripwire_decoder.xml │ ├── ossec.conf.snippet │ └── deploy_rules.sh │ ├── sigma/ │ ├── compiled/ │ └── backends/ │ ├── splunk_export.sh │ └── elastic_export.sh │ ├── scripts/ │ ├── generate_navigator.py │ ├── validate_rules.py │ └── coverage_report.py │ ├── coverage/ │ ├── tripwire_navigator.json │ └── coverage_matrix.md │ ├── sysmon/ │ ├── sysmon_config.xml │ └── deploy_sysmon.ps1 │ ├── auditd/ │ ├── audit.rules │ └── deploy_auditd.sh │ └── docs/ ├── rule_writing_guide.md ├── sigma_conversion_guide.md ├── art_testing_guide.md └── wazuh_rule_levels.md \`\`\` ## ⚙️ 设置与安装 ### 前置条件 \`\`\` - Wazuh 4.12 管理节点已运行 (192.168.248.20 — ubuntuai VM) - Wazuh agents 已在 Windows 11 (192.168.248.128) 和 Ubuntu Web 服务器 (192.168.248.139) 上注册 - Windows 11 上已安装 Sysmon 并配置了 SwiftOnSecurity config - Ubuntu 端点上正在运行 Auditd - 用于执行 Atomic Red Team 的 Kali Linux (192.168.248.130) - Python 3.10+ - sigma-cli (用于转换 Sigma 规则) \`\`\` ### 1. 克隆仓库 \`\`\`bash git clone https://github.com/enak223/project-tripwire.gitcd project-tripwire \`\`\` ### 2. 部署 Wazuh Decoders \`\`\`bash # 在 ubuntuai (192.168.248.20) 上运行 sudo cp wazuh/decoders/sysmon_decoder.xml /var/ossec/etc/decoders/ sudo cp wazuh/decoders/auditd_decoder.xml /var/ossec/etc/decoders/ sudo cp wazuh/decoders/tripwire_decoder.xml /var/ossec/etc/decoders/ sudo systemctl restart wazuh-manager \`\`\` ### 3. 部署检测规则 \`\`\`bash # 一次性部署所有规则 sudo bash wazuh/deploy_rules.sh # 验证规则是否已加载 sudo /var/ossec/bin/wazuh-logtest \`\`\` ### 4. 在 Windows 11 上安装 Sysmon (192.168.248.128) \`\`\`powershell # 在 Windows 11 虚拟机上以管理员身份运行 .\Sysmon64.exe -accepteula -i sysmon\sysmon_config.xml Get-Service Sysmon64 \`\`\` ### 5. 在 Ubuntu 端点上配置 Auditd \`\`\`bash # 在 ubuntu-webserver (192.168.248.139) 上运行 sudo bash auditd/deploy_auditd.sh sudo auditctl -l \`\`\` ### 6. 使用 Atomic Red Team 验证规则 \`\`\`bash # 在 Kali Linux (192.168.248.130) 上运行 # 详见 docs/art_testing_guide.md 获取完整操作指南 # 示例: T1003.007 sudo cat /proc/1/environ # 触发 auditd → Wazuh 规则 101003 \`\`\` ### 7. 生成 ATT&CK Navigator 热力图 \`\`\`bash python scripts/generate_navigator.py \ --rules-dir rules/ \ --output coverage/tripwire_navigator.json \`\`\` ## 🔧 检测规则示例 ### T1003.007 — OS Credential Dumping: /proc 文件系统 \`\`\`xml 80792 tripwire_proc_cred Tripwire: Credential access via /proc filesystem — $(audit.exe) read /proc/$(audit.pid)/environ T1003.007 tripwire_critical,credential_access,proc_filesystem alert_by_email \`\`\` ### T1136.001 — Create Account: 本地账户 \`\`\`xml 5902 useradd|adduser Tripwire: New local account created — $(dstuser) by $(srcuser) [possible persistence] T1136.001 tripwire_high,persistence,account_creation 101136 Tripwire: Off-hours local account creation — $(dstuser) [high-confidence persistence attempt] T1136.001 tripwire_critical,persistence,off_hours alert_by_email \`\`\` ### T1070.003 — 清除命令历史记录 \`\`\`xml 5715 history -c|HISTFILE=/dev/null|unset HISTFILE|export HISTFILESIZE=0 Tripwire: Command history cleared or disabled — $(srcuser) on $(hostname) [defense evasion] T1070.003 tripwire_high,defense_evasion,anti_forensics \`\`\` ## 📋 分析人员操作手册示例 \`\`\`markdown # 操作手册: T1003.007 — 通过 /proc 文件系统进行 OS Credential Dumping **规则 ID:** 101003 | **级别:** 12 (严重) | **战术:** Credential Access ## 告警摘要 一个进程读取了另一个进程的 /proc//environ 文件。此文件会暴露 正在运行的进程的环境变量,其中通常包含密码、 API key 和通过环境传递的会话 token。 ## 触发原因 Auditd 捕获到针对 /proc/*/environ 路径的 openat() 系统调用,并标记为 audit key tripwire_proc_cred。只要进程读取另一个 进程的环境变量(非自身环境),该规则就会触发。 ## 误报场景 - 执行合法进程检查的安全监控 agent - 读取进程状态的容器编排工具 - 自定义监控脚本 —— 根据已知的安全清单验证正在执行的二进制文件 ## 分流步骤 1. 识别读取进程:检查告警中的 audit.exe 字段 2. 识别目标 PID:将 audit.pid 与告警时的 ps aux 交叉比对 3. 检查目标进程是否持有敏感的环境变量 4. 查看同一用户/会话之前的命令 5. 检查告警时间 10 分钟内的横向移动指标 ## 升级标准 如出现以下情况请立即升级: - 读取进程不是已知的监控工具 - 目标进程是 Web 服务器、数据库或密钥管理器 - 告警发生在最近的权限提升或创建新账户告警之后 ## 参考资料 - https://attack.mitre.org/techniques/T1003/007/ - 验证工具: ART Test T1003.007-1 \`\`\` ## 🏠 个人实验室环境 \`\`\` ┌──────────────────────────────────────────────────────────────┐ │ TRIPWIRE 个人实验室 — VMware Workstation │ │ │ │ VMnet: NAT / Host-Only (192.168.248.0/24) │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ 虚拟机 1: ubuntuai — Wazuh 管理节点 + 规则引擎 │ │ │ │ IP: 192.168.248.20 │ │ │ │ 角色: Wazuh 4.12、自定义规则、decoders、覆盖率 │ │ │ │ 脚本、ATT&CK Navigator JSON 生成 │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ 虚拟机 2: ubuntu-webserver — Linux 检测目标 │ │ │ │ IP: 192.168.248.139 │ │ │ │ 角色: Wazuh agent、Auditd 遥测、ART 目标 │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ 虚拟机 3: Kali Linux — 攻击模拟 │ │ │ │ IP: 192.168.248.130 │ │ │ │ 角色: Atomic Red Team 执行、手动 TTPs │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ 虚拟机 4: Windows 11 — Windows 检测目标 │ │ │ │ IP: 192.168.248.128 │ │ │ │ 角色: Wazuh agent、Sysmon 遥测、ART 目标 │ │ │ └──────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────┘ \`\`\` **跨两种操作系统的检测覆盖率:** Windows 11 提供 Sysmon 来源的遥测数据(进程创建、网络连接、注册表事件),而 Ubuntu 提供 auditd 系统调用级别的可见性。每一个适用于这两个平台的 Tripwire 规则都在这两个系统上进行了验证。 ## 🔐 安全说明 - \`101000–101999\` 范围内的规则 ID 为 Tripwire 保留 —— 不会与 Wazuh 默认规则、GhostNet (100600–100699) 或 NullByte (100500) 冲突。 - 仓库中未提交任何凭据、API key 或主机身份数据。 - Atomic Red Team 测试仅在归个人所有的实验室虚拟机上运行 —— 绝不针对外部或生产系统。 - Sigma 规则被标记为 \`status: test\`,直到针对实时遥测数据进行验证。 - **仅供授权使用。** 所有检测内容仅限部署在您拥有或获得明确书面授权进行监控的系统上。 ## 🗺️ 路线图 | 阶段 | 特性 | 状态 | | ----- | -------------------------------------------------------- | -------------- | | v0.1 | 仓库脚手架 + 文件夹结构 | ✅ 已完成 | | v0.1 | Wazuh 管理节点就绪 + agents 已注册 (Win11 + Ubuntu) | ✅ 已完成 | | v0.1 | 在 Windows 11 上部署 Sysmon | ✅ 已完成 | | v0.1 | 在 Ubuntu 端点上配置 Auditd | ✅ 已完成 | | v0.2 | 来自 GhostNet ART 套件的种子规则 (4 项技术) | ✅ 已完成 | | v0.2 | 自定义 Decoders (Sysmon XML、Auditd) | 🔄 进行中 | | v0.3 | 涵盖 5 项战术的 10 条规则 —— 全部通过 ART 验证 | 🔄 进行中 | | v0.3 | 为所有 Wazuh 规则配备 Sigma 伴随规则 | 🔄 进行中 | | v0.4 | 为每条规则编写分析人员操作手册 | 🔄 进行中 | | v0.4 | ATT&CK Navigator 热力图 (自动生成) | 🔲 计划中 | | v0.5 | 涵盖所有 12 项 ATT&CK 战术的 25 条规则 | 🔲 计划中 | | v0.5 | 覆盖率矩阵 Markdown 报告 | 🔲 计划中 | | v1.0 | Sigma → Splunk SPL 转换流水线 | 🔲 计划中 | | v1.0 | Sigma → Elastic EQL 转换流水线 | 🔲 计划中 | | v1.1 | Tripwire + GhostNet 统一告警仪表板 | 🔲 计划中 | | v1.2 | CI 流水线 —— 推送时自动验证规则 XML | 🔲 计划中 | ## 🔗 相关项目 | 项目 | 描述 | 链接 | | ------- | ----------- | ---- | | **Project GhostNet** | 被动网络基线测试与异常检测 — Zeek · Suricata · Wazuh | [github.com/enak223/project-ghostnet](https://github.com/enak223/project-ghostnet) | | **Project NullByte** | 自动化 CVE 检测与修复报告 — Nmap · NVD API · AI | [github.com/enak223/project-nullbyte](https://github.com/enak223/project-nullbyte) | | **Agentic AI for Security** | AI 驱动的 SOC 自动化 — n8n · Claude API · Wazuh | [github.com/enak223/agentic-ai-for-security](https://github.com/enak223/agentic-ai-for-security) | ## 👤 作者 **Eliezer Fuentes** — 网络安全专家 检测工程 | 威胁狩猎 | SOC 自动化 | 漏洞管理 [![GitHub](https://img.shields.io/badge/GitHub-enak223-181717?style=flat&logo=github)](https://github.com/enak223) [![LinkedIn](https://img.shields.io/badge/LinkedIn-eliezerfuentes-0A66C2?style=flat&logo=linkedin)](httpswww.linkedin.com/in/eliezerfuentes/)
标签:AMSI绕过, Sigma规则, Wazuh, 威胁检测, 安全检测工程, 目标导入, 逆向工具