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>
12 KiB
12 KiB
SecuBox CVE 第7层防御系统
版本: 1.0.0 最后更新: 2026-02-28
概述
CVE 第7层创新结合了三个防御支柱,实现全面的 Web 应用安全:
- mitmproxy WAF - 实时威胁模式检测 (70+ CVE 模式)
- CrowdSec 场景 - 具有自适应阈值的智能封禁决策
- 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)
自动封禁配置
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)
{
"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/
工作流
-
收集器 (
collector.sh):- 收集已安装的软件包 (opkg, dpkg, apk)
- 扫描 LXC 容器和 Docker 镜像
- 与 NVD API 交叉引用
-
分析器 (
analyzer.sh):- 基于 CVSS 的严重性评分
- LocalAI 影响评估 (可选)
- 攻击向量分析
-
推荐器 (
recommender.sh):- 补丁建议
- 缓解策略
- 监控指导
-
应用器 (
applier.sh):- 基于队列的审批工作流
- 自动应用选项 (可配置)
- 回滚能力
配置
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
- mitmproxy 将 JSON 威胁日志写入
/data/threats.log - CrowdSec
secubox-mitmproxy解析器提取字段 - 8 个场景评估严重性并决定封禁时长
- 防火墙 Bouncer 应用 IP 阻断
mitmproxy → CVE 分诊
- 检测中的 CVE 字段传递给分诊代理
- 分诊与 NVD API 关联
- 生成修复建议
- 如需更新自动封禁敏感度
自动封禁反馈循环
- 高严重性 CVE 尝试触发立即封禁
- 来自同一 IP 的重复尝试升级封禁时长
- 白名单/WireGuard 端点保护防止误报
- 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
- 基于国家的统计
速率限制
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},
}
命令
查看活动威胁
# 最近的威胁
tail -f /data/threats.log | jq
# 自动封禁日志
cat /data/autoban-requests.log
# CrowdSec 决策
cscli decisions list
手动封禁/解禁
# 封禁 IP 4 小时
cscli decisions add --ip 1.2.3.4 --duration 4h --reason "手动封禁"
# 移除封禁
cscli decisions delete --ip 1.2.3.4
检查状态
# mitmproxy WAF 状态
mitmproxyctl status
# CrowdSec 状态
cscli metrics
# CVE 分诊状态
cve-triage status