AevonXApp/AXCerberus

GitHub: AevonXApp/AXCerberus

基于 Go 和 Coraza 引擎的高性能反向代理 WAF,集成 12 个安全模块提供一站式 Web 应用防护。

Stars: 0 | Forks: 1

AXCerberus

AXCerberus WAF

高性能 Go 语言 Layer 7 Web Application Firewall
独立的反向代理 WAF,集成 Coraza 引擎、DDoS 防护、蜜罐陷阱、撞库检测、数据泄露防护及 SSRF 防护。

Go Coraza Platform CGO Version Tests LOC

## 概述 AXCerberus 是一款企业级 Web Application Firewall,作为反向代理运行于互联网和您的 Web 服务器之间。每个 HTTP/HTTPS 请求都会通过 AXCerberus,经过 12 个独立的安全模块检查,然后转发到上游服务器或被阻止。 ``` Internet → [:80/:443] AXCerberus WAF → [:8181] Nginx/Apache/LiteSpeed → Application ``` 它被设计为 [AevonX](https://aevonx.app) 服务器管理平台的插件,但可以作为独立的 Linux 二进制文件运行,无任何外部依赖(单一静态二进制文件,无 CGO)。 ## 架构 ``` ┌─────────────────────────────────────────────────────────┐ │ HTTP Request │ └───────────────────────┬─────────────────────────────────┘ ▼ ┌─────────────────┐ │ IP Guard │ Allow/Blocklist, CIDR, Auto-Escalation ├─────────────────┤ │ GeoIP │ Country Blocklist/Allowlist (MaxMind) ├─────────────────┤ │ Rate Limiter │ Sliding Window, Per-IP Per-Endpoint ├─────────────────┤ │ DDoS Shield │ EWMA Baseline, Spike Detection, 3 Levels ├─────────────────┤ │ Bot Detector │ 52 UA Patterns (18 good, 34 malicious) ├─────────────────┤ │ Honeypot │ Trap Paths, Fake Pages, Auto-Block ├─────────────────┤ │ SSRF Guard │ Internal IP, Metadata, Dangerous Schemes ├─────────────────┤ │ Credential │ Login Velocity, Brute Force Detection ├─────────────────┤ │ Coraza WAF │ 4-Phase Inspection (ModSecurity Rules) ├─────────────────┤ │ DLP Scanner │ Response Body: CC, API Keys, Stack Traces └────────┬────────┘ ▼ ┌─────────────────┐ │ Upstream Server │ Nginx / Apache / LiteSpeed └─────────────────┘ ``` 所有模块均实现 `Middleware` 接口(`func(http.Handler) http.Handler`),并通过 `pipeline.Chain()` 组合。每个模块均可通过 `config.avx` 独立启用/禁用。 ## 安全模块 ### 1. Coraza WAF 引擎 兼容 ModSecurity 的规则引擎,进行 4 阶段请求/响应检查。内置 5 个规则文件,覆盖 SQL 注入、XSS、路径遍历、命令注入、Log4Shell、RFI、HTTP 走私和敏感文件访问。 ### 2. IP Guard 支持 CIDR 的单 IP 并发限制。自动封锁升级:**5 分钟 → 1 小时 → 24 小时 → 永久**。基于文件的白名单/黑名单。 ### 3. GeoIP 封锁 使用 MaxMind GeoLite2 数据库进行国家级别封锁。两种模式:`blocklist`(封锁列表中的国家)和 `allowlist`(仅允许列表中的国家)。 ### 4. 自适应速率限制器 采用滑动窗口算法(而非固定窗口),按 IP 和端点进行追踪。可配置全局(300/分钟)、登录(10/分钟)和 API(120/分钟)端点的限制。可选的节流模式增加渐进式延迟,而非硬性阻断。 ### 5. DDoS L7 防护 基于 EWMA(指数加权移动平均)的基线学习与峰值检测。三种自动缓解级别。可配置限制的单 IP 连接追踪。 ### 6. Bot 检测器 User-Agent 分类,包含 52 种模式:18 种已验证 Bot(Googlebot、Bingbot 等)和 34 种恶意扫描器(sqlmap、Nikto、Nuclei 等)。评分等级:Human、Verified Bot、Likely Bot、Suspicious、Malicious。 ### 7. 蜜罐陷阱 可配置的陷阱路径(`/wp-admin`、`/phpmyadmin`、`/.env`、`/.git/config` 等),返回逼真的虚假页面。任何触碰陷阱的 IP 将被自动封锁。虚假页面包括:WordPress 登录页、phpMyAdmin、`.env` 文件、`.git/config`。 ### 8. 撞库检测 监控可配置的登录路径(POST 请求至 `/login`、`/signin`、`/api/auth`、`/wp-login.php`)。通过滑动窗口追踪单 IP 登录速度。超过阈值时自动封锁。 ### 9. 数据泄露防护 (DLP) 扫描响应体以检测敏感数据泄露: - **信用卡**:Visa、Mastercard、Amex,含 Luhn 校验 - **API 密钥**:AWS (`AKIA...`)、GitHub (`ghp_...`)、Stripe (`sk_live_...`) - **堆栈跟踪**:PHP、Python、Java、Node.js、Go、.NET - **数据库错误**:MySQL、PostgreSQL 语法错误 - **内部 IP**:响应中的 10.x、172.16-31.x、192.168.x 三种模式:`block`(返回 500)、`mask`(替换为 `[REDACTED]`)、`log`(仅记录)。 ### 10. SSRF 防护 通过检测请求参数中的内部 IP、云元数据端点(`169.254.169.254`、`metadata.google.internal`)和危险 URL scheme(`file://`、`gopher://`、`dict://`)来阻止服务器端请求伪造 (SSRF)。 ### 11. 告警系统 中央调度器,支持 webhook 投递。按事件类型节流(每小时最多 N 条告警)。严重级别:low、medium、high、critical。可配置最低严重级别阈值。 ### 12. 统计 API 本地 REST API,监听 `127.0.0.1:9443`(通过 AevonX 应用的 SSH 隧道访问)。提供实时指标、攻击时间线、顶级攻击者、DDoS 状态、蜜罐命中情况等端点。 ## 项目结构 ``` AXCerberus/ ├── cmd/axcerberus/ │ └── main.go Entry point, signal handling, SIGHUP reload ├── internal/ │ ├── config/config.go Config loader (config.avx JSON schema) │ ├── logger/logger.go 4-channel slog (access, error, warning, security) │ ├── pipeline/pipeline.go Middleware chain: Chain(m1, m2, ...) → handler │ ├── proxy/ │ │ ├── server.go Reverse proxy with middleware composition │ │ ├── deps.go Dependency injection struct │ │ └── ipguard.go IP guard with escalated blocking │ ├── waf/ │ │ ├── engine.go Coraza WAF builder + attack type mapping │ │ └── handler.go 4-phase inspection middleware │ ├── geoip/ │ │ ├── geoip.go MaxMind DB lookup │ │ └── blocker.go Country blocking middleware │ ├── ratelimit/limiter.go Sliding window rate limiter │ ├── bot/detector.go UA-based bot classification │ ├── honeypot/ │ │ ├── engine.go Trap path management + auto-block │ │ └── pages.go Fake response pages │ ├── ddos/shield.go EWMA baseline + spike detection │ ├── credential/detector.go Login velocity tracking │ ├── dlp/ │ │ ├── scanner.go Response body scanning middleware │ │ └── patterns.go Regex patterns + Luhn validation │ ├── ssrf/detector.go Internal IP + metadata detection │ ├── alert/ │ │ ├── dispatcher.go Event routing + throttling │ │ └── webhook.go HTTP POST JSON sender │ ├── stats/ │ │ ├── stats.go In-memory counters (atomic) │ │ └── api.go REST API endpoints │ └── cli/exec.go 23 CLI actions for AevonX plugin system ├── tests/ 14 test suites ├── dist/ │ ├── setup.sh WAF-specific server setup (158 lines) │ ├── uninstall.sh WAF-specific teardown (121 lines) │ ├── config.avx Plugin configuration schema (17 sections) │ ├── hooks/_manifest.json Plugin manifest with lifecycle │ └── rules/*.conf 5 OWASP CRS rule files ├── Makefile ├── go.mod └── go.sum ``` **源代码**:24 个 Go 文件,14 个测试文件 — **共 6,810 行代码**。 ## 依赖 | 依赖 | 用途 | |---|---| | [coraza/v3](https://github.com/corazawaf/coraza) v3.3.3 | 兼容 ModSecurity 的 WAF 引擎 | | [google/uuid](https://github.com/google/uuid) v1.6.0 | 唯一请求/告警 ID | | [oschwald/maxminddb-golang](https://github.com/oschwald/maxminddb-golang) v1.13.1 | GeoLite2 MaxMind DB 读取器 | 零 CGO。单一静态二进制文件。无运行时依赖。 ## 构建 ``` # 先决条件:Go 1.25+ # 为 Linux x86_64 构建(大多数云服务器) make build # 为 Linux ARM64 构建(AWS Graviton, Oracle Ampere, Raspberry Pi) make build-arm64 # 构建两种架构 make build-all # 构建 + 打包 ZIP 以便部署 make zip # 构建特定版本 make zip VERSION=1.0.0 # 运行测试 make test ``` 输出位于 `build/` 目录(通过 `.gitignore` 排除在 git 之外): ``` build/ ├── axcerberus-linux-amd64 11 MB static binary ├── axcerberus-linux-arm64 10 MB static binary └── axcerberus-v1.0.0.zip 8.1 MB deployment package ``` ## 部署 AXCerberus 作为 AevonX 插件部署。ZIP 包通过 AevonX 应用上传到服务器,PluginManager 自动处理整个生命周期。 ### PluginManager 职责(源自 `_manifest.json` 生命周期): - 目录创建(`/etc/aevonx/plugins/axcerberus/`、`/var/log/aevonx/plugins/axcerberus/`) - 带架构检测的二进制安装(`uname -m`) - Systemd 服务生成、启用及启动 - 钩子注册及升级时 `config.avx` 保留 ### `setup.sh` 职责(WAF 专用): 1. 创建 `aevonx-waf` 服务用户 2. 下载 GeoLite2 国家数据库 3. 检测 Web 服务器(Nginx、Apache2、httpd、OpenLiteSpeed、LiteSpeed Enterprise) 4. 将 Web 服务器从端口 80 切换到空闲端口(8181+) 5. 更新 `config.avx` upstream 指向切换后的 Web 服务器 6. 创建 IP 白名单/黑名单文件 ### `uninstall.sh` 职责(WAF 专用): 1. 从配置中读取 upstream 端口 2. 将 Web 服务器恢复至端口 80 3. 恢复原始 Nginx 配置(certbot 重定向) ### 支持的 Web 服务器 | 服务器 | 服务 | 配置格式 | |--------|---------|---------------| | Nginx | `nginx` | `listen 80;` 指令 | | Apache (Debian/Ubuntu) | `apache2` | `/etc/apache2/ports.conf` | | Apache (RHEL/CentOS) | `httpd` | `/etc/httpd/conf/httpd.conf` | | OpenLiteSpeed | `lshttpd` | XML `
*:80
` | | LiteSpeed Enterprise | `lsws` | 配置 `address *:80` | ### 支持的 Linux 发行版 Ubuntu 18+, Debian 10+, CentOS 7+, RHEL 8+, AlmaLinux 8+, Rocky Linux 8+, Amazon Linux 2+ ## 配置 所有设置通过 `config.avx`(JSON schema 格式)管理,可通过 AevonX 应用 UI 编辑或直接在服务器上修改。 **17 个配置部分:** | 部分 | 关键设置 | |---------|-------------| | Network | 监听地址、upstream 服务器、TLS 证书/密钥、代理头 | | Routing | 允许的域名(支持通配符)、路径前缀 | | WAF Protection | 启用/禁用、规则文件 glob、异常评分阈值 | | IP Guard | 单 IP 最大并发数、封锁时长、自动升级 | | URL Lists | URL 白名单/黑名单 | | GeoIP Blocking | 数据库路径、黑名单/白名单模式、国家代码 | | Rate Limiting | 全局(300/分钟)、登录(10/分钟)、API(120/分钟)、节流模式 | | Bot Detection | 启用/禁用基于 UA 的分类 | | Honeypot Traps | 启用、陷阱路径、触碰自动封锁 | | DDoS Shield | 启用、自动缓解、峰值倍数、最大连接数 | | Credential Protection | 启用、登录路径、单 IP/用户名最大尝试次数 | | Data Leak Prevention | 启用、模式、信用卡、API 密钥、堆栈跟踪 | | SSRF Prevention | 启用内部 IP + 元数据 + scheme 封锁 | | Alerts | 启用、webhook URL、每小时最大数、严重级别阈值 | | Stats API | 启用、监听地址(localhost:9443) | | Timeouts | 读/写超时秒数 | | Logging | 访问、错误、警告、安全日志文件路径 | ## 测试 ``` make test ``` 14 个测试套件覆盖所有安全模块: | 测试套件 | 测试内容 | |---|---| | `pipeline_test.go` | 中间件链组合、排序、阻断 | | `config_test.go` | 配置加载、验证、默认值、分割辅助函数 | | `ipguard_test.go` | 允许/封锁、CIDR、升级(5分→1时→24时→永久) | | `ratelimit_test.go` | 滑动窗口、按端点限制、节流模式 | | `honeypot_test.go` | 陷阱检测、自动封锁回调、虚假页面 | | `ddos_test.go` | 基线学习、连接限制、缓解级别 | | `credential_test.go` | 暴力破解检测、回调、多路径 | | `dlp_test.go` | Luhn 校验、信用卡/API 密钥/堆栈跟踪检测、阻断/脱敏/日志模式 | | `ssrf_test.go` | 内部 IP、元数据端点、危险 scheme | | `alert_test.go` | 调度、严重级别过滤、按类型节流、环形缓冲区 | | `bot_test.go` | Human、已验证 bot (5)、恶意扫描器 (7)、评分 | | `stats_test.go` | 计数器、防护率、时间线、顶级攻击者 | | `waf_test.go` | 攻击类型提取(12 类) | | `geoip_test.go` | Nil 安全性、国家集合、大写标准化 | ## WAF 规则 内置 5 个 Coraza(兼容 ModSecurity)规则文件: | 文件 | 覆盖范围 | |------|----------| | `default-rules.conf` | SQL 注入、XSS、路径遍历、LFI、RFI、命令注入、Log4Shell、HTTP 走私、扫描器检测、敏感文件访问 | | `api-protection.conf` | API 端点滥用、JSON 注入 | | `bot-detection.conf` | 恶意 bot User-Agent 模式 | | `php-protection.conf` | PHP eval 注入、文件上传滥用 | | `wordpress-protection.conf` | WordPress xmlrpc、wp-admin 暴力破解 | 规则使用 Coraza 的 `SecRule` 语法,进行 4 阶段检查: 1. **Phase 1** — 请求头(URI、方法、Host) 2. **Phase 2** — 请求体(POST 参数、JSON payload) 3. **Phase 3** — 响应头 4. **Phase 4** — 响应体(DLP 扫描) ## 统计 API 端点 本地 REST API,监听 `127.0.0.1:9443`(通过 SSH 隧道访问): ``` GET /api/v1/stats/overview Full dashboard metrics GET /api/v1/stats/timeline Attack timeline (24h buckets) GET /api/v1/stats/attack-types Attack type distribution GET /api/v1/stats/top-attackers Top blocked IPs GET /api/v1/stats/top-uris Most targeted URIs GET /api/v1/stats/countries Requests by country GET /api/v1/stats/domains Per-domain statistics GET /api/v1/ddos/status DDoS shield status + mitigation level GET /api/v1/honeypot/hits Recent honeypot interactions GET /api/v1/credential/status Credential protection stats GET /api/v1/blocklist Current IP blocklist GET /api/v1/allowlist Current IP allowlist POST /api/v1/blocklist/add Add IP to blocklist POST /api/v1/blocklist/remove Remove IP from blocklist POST /api/v1/allowlist/add Add IP to allowlist POST /api/v1/allowlist/remove Remove IP from allowlist GET /healthz Health check (200 OK) ``` ## CLI 操作 二进制文件支持 23 个 CLI 执行操作,用于与 AevonX 插件系统集成: ``` axcerberus exec waf.stats.overview axcerberus exec waf.blocklist.add '{"ip":"1.2.3.4"}' axcerberus exec waf.service.status ``` ## 许可证 版权所有 (c) 2026 AevonX。保留所有权利。 本软件为专有且机密。未经 AevonX 事先书面许可, 严禁以任何形式或出于任何目的复制、分发、修改或使用本软件 (无论是全部还是部分)。 有关许可咨询,请联系:developers@aevonx.app
标签:AppImage, CISA项目, Coraza, DDoS防护, EVTX分析, Go语言, HTTP安全, IP 地址批量处理, SSRF防护, WAF, Web应用防火墙, 中间件, 反向代理, 安全网关, 应用层防御, 撞库检测, 日志审计, 程序破解, 网络安全, 自动化扫描, 蜜罐, 证书利用, 隐私保护, 零依赖