ijaz-ahmad11-dev/cyber-deception-and-active-defense-lab
GitHub: ijaz-ahmad11-dev/cyber-deception-and-active-defense-lab
基于 Cowrie、Suricata 和 Wazuh 构建的企业级网络欺骗与 SOAR 自动防御流水线,实现从蜜罐诱捕到威胁情报富化再到亚秒级防火墙自动封禁的闭环响应。
Stars: 0 | Forks: 0
python3 -c "
content = '''# 企业级网络欺骗与自动化主动防御 SOC 实验室






一个基于 **Wazuh SIEM/SOAR**、**Cowrie SSH Honeypot**、**Suricata NIDS** 和 **AbuseIPDB 威胁情报**构建的企业级闭环**网络欺骗与自动化主动防御流水线**。
本项目演示了生产级的入侵处理和主动防御工作流:当攻击者试图通过 SSH 获取未经授权的访问时,静默的 `iptables` 端口转发会将会话重定向到交互式欺骗 Honeypot 中。执行的命令和网络交互会被 Wazuh 实时摄取,通过威胁情报 API 评分进行丰富,并由有状态的主动响应守护程序在 **0.102 秒**内自动在防火墙层丢弃违规 IP 地址,从而实现自动缓解。
## 执行摘要与影响指标
* **平均响应时间 (MTTR):** 通过自动化的主动防火墙响应,从手动分析师分类时间缩短至 **0.102 秒**。
* **架构:** 闭环 欺骗 -> 网络/端点遥测 -> SIEM -> 威胁情报 API -> 主动响应守护程序 -> SIEM 反馈。
* **核心重点:** 网络欺骗、检测工程、威胁情报丰富化、自动化 SOAR 缓解。
### 展示的核心技能与能力
| 领域 | 展示的技能与技术 |
| :--- | :--- |
| **网络欺骗与加固** | SSH 管理隔离(端口 2222),静默端口转发(`iptables` DNAT 22 ➔ 2223),交互日志记录。 |
| **检测工程** | 自定义 XML 规则工程,PCRE2 正则匹配,日志归一化,MITRE ATT&CK 映射。 |
| **SOAR 与主动防御** | 自动化防火墙缓解(`firewall-drop`),具有 600 秒生存时间 (TTL) 的有状态 IP 封禁。 |
| **威胁情报** | AbuseIPDB API 集成,实时 IP 信誉评分,自动化丰富流水线。 |
## 架构与自动化工作流
\`\`\`text
┌──────────────────────────────────────────────────────────────────────────┐
│ ATTACKER / ADVERSARY │
│ │
│ 1. Initiates SSH Connection on Standard Port 22 │
└───────┬──────────────────────────────────────────────────────────────────┘
│
▼ (Silent iptables DNAT PREROUTING Redirection)
┌──────────────────────────────────────────────────────────────────────────┐
│ DECEPTION LAYER │
│ │
│ 2. Connection routed silently to Cowrie Honeypot (Port 2223) │
│ 3. Attacker executes commands (e.g., 'cat /etc/shadow') │
│ 4. Cowrie logs event to /var/log/cowrie/cowrie.json │
└───────┬──────────────────────────────────────────────────────────────────┘
│
▼ (Log Collector Harvests JSON Telemetry)
┌──────────────────────────────────────────────────────────────────────────┐
│ WAZUH MANAGER SIEM │
│ │
│ 5. Custom Rule 110103 Fires (Level 11 Critical Command Execution) │
│ 6. Dispatches IP lookup to AbuseIPDB Threat Intel API │
│ 7. Triggers Active Response Engine (/execd -> firewall-drop) │
└───────┬──────────────────────────────────────────────────────────────────┘
│
▼ (Active Response Signal Sent to Firewall Daemon)
┌──────────────────────────────────────────────────────────────────────────┐
│ STATEFUL FIREWALL DAEMON │
│ │
│ 8. Executes: active-response/bin/firewall-drop add - │
│ 9. Inserts iptables DROP rule in 0.102 seconds │
└───────┬──────────────────────────────────────────────────────────────────┘
│
▼ (Log Collector Harvests Execution Proof)
┌──────────────────────────────────────────────────────────────────────────┐
│ WAZUH DASHBOARD │
│ │
│ 10. Rule 651 Confirms Automated Host Block with 600s TTL Expiration │
└──────────────────────────────────────────────────────────────────────────┘
\`\`\`
## MITRE ATT&CK 框架映射
| 攻击阶段 | MITRE ID | 技术名称 | 项目实现 |
| :--- | :--- | :--- | :--- |
| **侦察** | [T1595](https://attack.mitre.org/techniques/T1595/) | 主动扫描 | 通过 Suricata NIDS 进行网络数据包检查和特征匹配。 |
| **初始访问** | [T1021.004](https://attack.mitre.org/techniques/T1021/004/) | 远程服务:SSH | 端口 22 静默重定向至 Cowrie SSH honeypot 环境。 |
| **凭据访问** | [T1110](https://attack.mitre.org/techniques/T1110/) | 暴力破解 | 在 Cowrie 中捕获并分析凭据访问尝试。 |
| **执行** | [T1059.004](https://attack.mitre.org/techniques/T1059/004/) | Unix Shell 命令执行 | 实时命令解析与告警触发(规则 110103)。 |
| **防御规避** | [T1562.004](https://attack.mitre.org/techniques/T1562/004/) | 禁用或修改系统防火墙 | 通过 `iptables` 自动进行攻击者 IP 的有状态封禁。 |
## 前置条件与环境
- **SIEM 管理器:** 运行于 Linux 上的 Wazuh Manager 4.x。
- **欺骗 Honeypot:** 运行在 Python 虚拟环境中的 Cowrie Honeypot。
- **NIDS 引擎:** 配置了 `eve-log` JSON 输出的 Suricata NIDS。
- **防火墙组件:** 原生 Linux `iptables`,具有 PREROUTING 重定向和 `firewall-drop` 脚本绑定。
- **威胁情报:** 在 Wazuh 集成模块下配置的 AbuseIPDB API 密钥。
## 仓库结构
\`\`\`text
cyber-deception-and-active-defense-lab/
├── README.md # Master Technical Documentation
├── phase.txt # Project Milestone & Phase Tracker
├── docs/
│ └── architecture.png # High-Resolution System Architecture Flowchart
└── configs/
├── local_rules.xml # Custom Wazuh Detection Rules (IDs 110100 - 110201)
├── ossec.conf # Wazuh Active Response & Threat Intel Integrations
├── cowrie.cfg # Custom Cowrie Honeypot Configuration
└── iptables-rules.v4 # Persistent Port Redirection & Firewall Rules
\`\`\`
## 技术深度解析:解决的工程难题
### 1. 静默欺骗端口重定向与 SSH 加固
* **挑战:** 在非标准端口(例如 2223)上暴露 honeypot 会提醒高级攻击者他们正处于沙箱环境中。
* **工程解决方案:** 将合法的主机管理 SSH 移至端口 `2222`,并实施了 `iptables` DNAT PREROUTING 重定向,将所有端口 `22` 的流量透明地转发到 `2223`。
### 2. Wazuh 分析引擎中的 PCRE2 正则表达式兼容性
* **挑战:** 在使用标准 Wazuh 正则表达式评估 AbuseIPDB 置信度分数的数字范围正则表达式时,规则解析失败并出现 `wazuh-analysisd` 错误 5107。
* **工程解决方案:** 在自定义字段匹配器上实现了显式的 `type=\"pcre2\"` 评估,以启用用于数字风险评分的高级 PCRE2 模式匹配(`^([5-9][0-9]|100)$`)。
### 3. 亚秒级有状态主动响应 (SOAR)
* **挑战:** 大量的 honeypot 交互日志需要立即进行自动化缓解,同时不能导致防火墙规则臃肿或意外锁定管理子网。
* **工程解决方案:** 配置了与高严重性检测规则(`110101`、`110103`、`110201`)绑定的有状态主动响应,触发 `/var/ossec/active-response/bin/firewall-drop`,并带有 600 秒的生存时间 (TTL) 自动解封机制。
## 部署与配置指南
### 步骤 1:SSH 加固与静默端口转发
迁移真实的管理 SSH 守护进程并设置静默端口转发规则:
\`\`\`bash
# 更改实际 SSH 端口
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo systemctl restart ssh
# 添加静默 iptables 端口转发
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2223
\`\`\`
### 步骤 2:Honeypot 与 NIDS 部署
1. 在专用的 `cowrie` 用户下部署 Cowrie,监听端口 `2223`。
2. 配置 Suricata NIDS 以检查接口流量并将告警记录到 `/var/log/suricata/eve.json`。
3. 在 `/var/ossec/etc/ossec.conf` 中添加日志监控条目,以从两个引擎摄取 JSON 日志。
### 步骤 3:检测规则与威胁情报集成
1. 将 `configs/local_rules.xml` 中的自定义规则定义应用到 `/var/ossec/etc/rules/local_rules.xml`。
2. 将 `configs/ossec.conf` 中的 AbuseIPDB 集成和主动响应配置片段追加到 `/var/ossec/etc/ossec.conf` 中。
3. 重启 Wazuh Manager 服务:
\`\`\`bash
sudo systemctl restart wazuh-manager
\`\`\`
## 概念验证与验证
### 1. 触发攻击模拟
向 Cowrie honeypot 流水线中注入了一个合成的恶意命令执行事件(`cat /etc/shadow`),以测试端到端的检测和响应延迟。
### 2. 闭环主动响应日志
检查 Wazuh Dashboard 和 `/var/ossec/logs/active-responses.log` 证实了在 **0.102 秒**内的零接触缓解:
\`\`\`text
[23:02:48.993] Rule 110103 (Level 11): Attacker executed command 'cat /etc/shadow' from 192.168.99.99
[23:02:49.095] Rule 651 (Level 3) : Host Blocked by firewall-drop Active Response
\`\`\`
### 3. 内核防火墙状态验证
检查活动的 `iptables` 规则集,确认违规 IP 已被自动放入 `DROP` 链中:
\`\`\`bash
$ sudo iptables -L INPUT -v -n | grep \"192.168.99.99\"
0 0 DROP all -- * * 192.168.99.99 0.0.0.0/0
\`\`\`
## SOC 分析师事件分类手册
当 **Rule 651** 或 **Rule 110103** 在 Wazuh Dashboard 上触发时:
1. **验证自动化操作:** 确认规则 `651` 触发时的状态为 `Host Blocked by firewall-drop Active Response`。
2. **审查命令遥测数据:** 检查规则 `110103` 的 payload 详情,以查看完整的执行命令历史(`data.input`)。
3. **威胁情报审查:** 检查关联的 AbuseIPDB 告警(规则 `110201`),以验证全局 IP 信誉和地理来源。
4. **工单解决:** 由于主动响应守护程序在 0.102 秒内封禁了该 IP,因此请将事件工单更新为**已确认自动化缓解**,并在 TTL 到期后将其归档。
## 作者
**Ijaz Ahmad**
*网络安全工程 | SIEM 与欺骗技术 | 检测工程*
## 许可证
本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE]( ) 文件。
'''
with open('README.md', 'w') as f:
f.write(content)
print('Successfully generated complete enterprise README.md!')
"
标签:SOAR, 威胁情报, 安全, 安全运营, 开发者工具, 扫描框架, 自动化防御, 蜜罐, 证书利用, 超时处理, 逆向工具