Add complete French (fr) and Chinese (zh) translations for all documentation: - Root files: README, CHANGELOG, SECURITY, BETA-RELEASE - docs/: All 16 core documentation files - DOCS/: All 19 deep-dive documents including embedded/ and archive/ - package/secubox/: All 123+ package READMEs - Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/ Total: 346 translation files created Each file includes language switcher links for easy navigation between English, French, and Chinese versions. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
308 lines
12 KiB
Markdown
308 lines
12 KiB
Markdown
# SecuBox CVE 第7层防御系统
|
||
|
||
> **Languages:** [English](../DOCS/CVE-LAYER7.md) | [Francais](../DOCS-fr/CVE-LAYER7.md) | 中文
|
||
|
||
**版本:** 1.0.0
|
||
**最后更新:** 2026-02-28
|
||
|
||
## 概述
|
||
|
||
CVE 第7层创新结合了三个防御支柱,实现全面的 Web 应用安全:
|
||
|
||
1. **mitmproxy WAF** - 实时威胁模式检测 (70+ CVE 模式)
|
||
2. **CrowdSec 场景** - 具有自适应阈值的智能封禁决策
|
||
3. **CVE 分诊代理** - AI 驱动的漏洞评估和修复
|
||
|
||
## 架构
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 第7层: 请求处理 │
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ HAProxy (端口 8080) → mitmproxy (MITM 检查) │ │
|
||
│ │ ↓ │ │
|
||
│ │ secubox_analytics.py │ │
|
||
│ │ (70+ CVE 模式, 亚100毫秒检测) │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ ↓ │
|
||
│ [决策树] │
|
||
│ ┌────────────────┬─────────────┬──────────────┐ │
|
||
│ ↓ ↓ ↓ ↓ │
|
||
│ [允许] [记录威胁] [自动封禁] [告警] │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
↓
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 威胁日志管道 │
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ 日志文件: │ │
|
||
│ │ • /var/log/secubox-access.log (所有请求) │ │
|
||
│ │ • /data/threats.log (CrowdSec 解析器输入) │ │
|
||
│ │ • /data/autoban-requests.log (封禁决策) │ │
|
||
│ │ • /tmp/secubox-subdomain-metrics.json (分析) │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ ↓ │
|
||
│ [CrowdSec 引擎] │
|
||
│ 8 个 mitmproxy 专用场景 │
|
||
│ ┌─────────────────┬──────────────┬──────────┐ │
|
||
│ ↓ ↓ ↓ ↓ │
|
||
│ [CVE] [扫描器] [SSRF] [Shell] │
|
||
│ 封禁30分 封禁10-30分 封禁10分 封禁60分 │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
↓
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 响应与修复 │
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ CrowdSec 防火墙 Bouncer: │ │
|
||
│ │ • 基于 IP 的阻断 (iptables/nftables 规则) │ │
|
||
│ │ • 白名单/黑名单集成 │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ ↓ │
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ CVE 分诊代理 (可选): │ │
|
||
│ │ • 将 CVE 模式与 NVD 数据关联 │ │
|
||
│ │ • LocalAI 影响评估 │ │
|
||
│ │ • 补丁建议 │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## 组件 1: mitmproxy WAF 分析
|
||
|
||
### 位置
|
||
- **配置:** `/etc/config/mitmproxy`
|
||
- **分析插件:** `/srv/mitmproxy/addons/secubox_analytics.py`
|
||
- **WAF 规则:** `/srv/mitmproxy/waf-rules.json`
|
||
|
||
### CVE 模式类别
|
||
|
||
| 类别 | 模式数 | 严重性 | 自动封禁 |
|
||
|------|--------|--------|----------|
|
||
| **SQL 注入** | 18 | 严重 | 是 |
|
||
| **命令注入** | 16 | 严重 | 是 |
|
||
| **XSS** | 17 | 高 | 阈值 |
|
||
| **路径遍历** | 14 | 高 | 阈值 |
|
||
| **XXE** | 8 | 严重 | 是 |
|
||
| **SSRF** | 14 | 高 | 阈值 |
|
||
| **Log4Shell/JNDI** | 8 | 严重 | 是 |
|
||
| **CVE 2021-2025** | 70+ | 严重 | 立即 |
|
||
| **路由器僵尸网络** | 20+ | 严重 | 立即 |
|
||
|
||
### 支持的 CVE (2021-2025)
|
||
|
||
**2024-2025:**
|
||
- CVE-2025-15467 (OpenSSL CMS 堆栈溢出)
|
||
- CVE-2025-0282 (Ivanti Connect Secure)
|
||
- CVE-2024-3400 (PAN-OS GlobalProtect)
|
||
- CVE-2024-21887 (Ivanti Connect Secure)
|
||
- CVE-2024-1708/1709 (ScreenConnect)
|
||
- CVE-2024-27198 (TeamCity)
|
||
- CVE-2024-21762 (Fortinet FortiOS)
|
||
|
||
**2023:**
|
||
- CVE-2023-34362 (MOVEit SQL 注入)
|
||
- CVE-2023-22515 (Confluence 权限提升)
|
||
- CVE-2023-46747 (F5 BIG-IP)
|
||
- CVE-2023-4966 (Citrix Bleed)
|
||
|
||
**2021-2022:**
|
||
- CVE-2021-44228 (Log4Shell)
|
||
- CVE-2021-41773 (Apache 路径遍历)
|
||
- CVE-2022-22965 (Spring4Shell)
|
||
- CVE-2022-1388 (F5 BIG-IP)
|
||
|
||
### 自动封禁配置
|
||
|
||
```uci
|
||
config autoban 'autoban'
|
||
option enabled '1'
|
||
option ban_duration '4h'
|
||
option min_severity 'high'
|
||
option sensitivity 'moderate'
|
||
option moderate_threshold '3'
|
||
option moderate_window '300'
|
||
option whitelist '127.0.0.1,192.168.255.1'
|
||
```
|
||
|
||
**敏感度级别:**
|
||
- **激进:** 首次严重威胁立即封禁
|
||
- **适中:** 5分钟内3次威胁后封禁 (默认)
|
||
- **宽容:** 1小时内5次威胁后封禁
|
||
|
||
## 组件 2: CrowdSec 场景
|
||
|
||
### 位置
|
||
- **场景:** `/etc/crowdsec/scenarios/`
|
||
- **解析器:** `/etc/crowdsec/parsers/s01-parse/secubox-mitmproxy.yaml`
|
||
- **采集:** `/etc/crowdsec/acquis.d/secubox-mitmproxy.yaml`
|
||
|
||
### mitmproxy 威胁场景
|
||
|
||
| 场景 | 类型 | 触发条件 | 封禁时长 |
|
||
|------|------|----------|----------|
|
||
| `secubox/mitmproxy-attack` | Leaky | SQLi, XSS, CMDi, LFI, XXE | 15分 |
|
||
| `secubox/mitmproxy-cve` | Trigger | CVE + 严重级别 | 30分 |
|
||
| `secubox/mitmproxy-botscan` | Leaky | 漏洞扫描器 | 30分 |
|
||
| `secubox/mitmproxy-shell-hunter` | Trigger | Shell/后门搜索 | 60分 |
|
||
| `secubox/mitmproxy-config-hunter` | Leaky | 配置文件搜索 | 30分 |
|
||
| `secubox/mitmproxy-scanner` | Leaky | 管理员/环境扫描 | 10分 |
|
||
| `secubox/mitmproxy-ssrf` | Leaky | SSRF 尝试 | 10分 |
|
||
| `secubox/mitmproxy-suspicious-ua` | Leaky | 可疑 User-Agent | 15分 |
|
||
|
||
### 日志格式 (JSON)
|
||
|
||
```json
|
||
{
|
||
"timestamp": "2026-02-28T12:00:00Z",
|
||
"source_ip": "1.2.3.4",
|
||
"host": "example.com",
|
||
"request": "GET /../../../etc/passwd HTTP/1.1",
|
||
"threat_type": "path_traversal",
|
||
"pattern": "../../../etc/passwd",
|
||
"severity": "critical",
|
||
"cve": "",
|
||
"category": "lfi",
|
||
"is_bot": true,
|
||
"bot_type": "vulnerability_scanner",
|
||
"bot_behavior": "config_hunting"
|
||
}
|
||
```
|
||
|
||
## 组件 3: CVE 分诊代理
|
||
|
||
### 位置
|
||
- **配置:** `/etc/config/cve-triage`
|
||
- **CLI:** `/usr/bin/cve-triage`
|
||
- **库:** `/usr/lib/cve-triage/`
|
||
|
||
### 工作流
|
||
|
||
1. **收集器** (`collector.sh`):
|
||
- 收集已安装的软件包 (opkg, dpkg, apk)
|
||
- 扫描 LXC 容器和 Docker 镜像
|
||
- 与 NVD API 交叉引用
|
||
|
||
2. **分析器** (`analyzer.sh`):
|
||
- 基于 CVSS 的严重性评分
|
||
- LocalAI 影响评估 (可选)
|
||
- 攻击向量分析
|
||
|
||
3. **推荐器** (`recommender.sh`):
|
||
- 补丁建议
|
||
- 缓解策略
|
||
- 监控指导
|
||
|
||
4. **应用器** (`applier.sh`):
|
||
- 基于队列的审批工作流
|
||
- 自动应用选项 (可配置)
|
||
- 回滚能力
|
||
|
||
### 配置
|
||
|
||
```uci
|
||
config cve-triage 'main'
|
||
option enabled '1'
|
||
option scan_interval '3600'
|
||
option min_severity 'medium'
|
||
option auto_apply_patches '0'
|
||
option localai_analysis '1'
|
||
```
|
||
|
||
## 集成点
|
||
|
||
### mitmproxy → CrowdSec
|
||
|
||
1. mitmproxy 将 JSON 威胁日志写入 `/data/threats.log`
|
||
2. CrowdSec `secubox-mitmproxy` 解析器提取字段
|
||
3. 8 个场景评估严重性并决定封禁时长
|
||
4. 防火墙 Bouncer 应用 IP 阻断
|
||
|
||
### mitmproxy → CVE 分诊
|
||
|
||
1. 检测中的 CVE 字段传递给分诊代理
|
||
2. 分诊与 NVD API 关联
|
||
3. 生成修复建议
|
||
4. 如需更新自动封禁敏感度
|
||
|
||
### 自动封禁反馈循环
|
||
|
||
1. 高严重性 CVE 尝试触发立即封禁
|
||
2. 来自同一 IP 的重复尝试升级封禁时长
|
||
3. 白名单/WireGuard 端点保护防止误报
|
||
4. CrowdSec 社区黑名单集成
|
||
|
||
## 文件位置
|
||
|
||
| 组件 | 路径 | 用途 |
|
||
|------|------|------|
|
||
| WAF 配置 | `/etc/config/mitmproxy` | 自动封禁设置 |
|
||
| WAF 规则 | `/srv/mitmproxy/waf-rules.json` | 模式定义 |
|
||
| 分析 | `/srv/mitmproxy/addons/secubox_analytics.py` | 检测引擎 |
|
||
| 威胁日志 | `/data/threats.log` | CrowdSec 输入 |
|
||
| 访问日志 | `/var/log/secubox-access.log` | 所有请求 |
|
||
| 自动封禁日志 | `/data/autoban-requests.log` | 封禁决策 |
|
||
| 场景 | `/etc/crowdsec/scenarios/` | CrowdSec 规则 |
|
||
| CVE 分诊 | `/usr/lib/cve-triage/` | 代理库 |
|
||
|
||
## 指标与监控
|
||
|
||
### 子域指标
|
||
|
||
实时 JSON 导出: `/tmp/secubox-subdomain-metrics.json`
|
||
|
||
- 每域请求计数
|
||
- 威胁类型分布
|
||
- 每子域 Top 20 URI
|
||
- 基于国家的统计
|
||
|
||
### 速率限制
|
||
|
||
```python
|
||
RATE_LIMITS = {
|
||
'path_scan': {'window': 60, 'max': 20},
|
||
'auth_attempt': {'window': 60, 'max': 10},
|
||
'bot_request': {'window': 60, 'max': 30},
|
||
'normal': {'window': 60, 'max': 100},
|
||
}
|
||
```
|
||
|
||
## 命令
|
||
|
||
### 查看活动威胁
|
||
```bash
|
||
# 最近的威胁
|
||
tail -f /data/threats.log | jq
|
||
|
||
# 自动封禁日志
|
||
cat /data/autoban-requests.log
|
||
|
||
# CrowdSec 决策
|
||
cscli decisions list
|
||
```
|
||
|
||
### 手动封禁/解禁
|
||
```bash
|
||
# 封禁 IP 4 小时
|
||
cscli decisions add --ip 1.2.3.4 --duration 4h --reason "手动封禁"
|
||
|
||
# 移除封禁
|
||
cscli decisions delete --ip 1.2.3.4
|
||
```
|
||
|
||
### 检查状态
|
||
```bash
|
||
# mitmproxy WAF 状态
|
||
mitmproxyctl status
|
||
|
||
# CrowdSec 状态
|
||
cscli metrics
|
||
|
||
# CVE 分诊状态
|
||
cve-triage status
|
||
```
|
||
|
||
## 另请参阅
|
||
|
||
- [mitmproxy UCI 配置](../package/secubox/secubox-app-mitmproxy/README.md)
|
||
- [CrowdSec 自定义场景](../package/secubox/secubox-app-crowdsec-custom/README.md)
|
||
- [CVE 分诊代理](../package/secubox/secubox-cve-triage/README.md)
|