Bugb-Technologies/cert-x-gen

GitHub: Bugb-Technologies/cert-x-gen

支持十二种编程语言的多语言漏洞检测执行引擎,将安全检查从配置文件升级为真实代码,解决复杂协议和高级逻辑的检测难题。

Stars: 20 | Forks: 0

CERT-X-GEN

多语言漏洞检测执行引擎

使用 Python、Rust、Go、C、Shell 或 YAML 等真实代码编写安全检查——安全、可复现且可规模化地运行。

简介安装快速开始模板文档模板仓库

## CERT-X-GEN 简介 现代安全扫描已经超越了静态模板的范畴。如今,漏洞检测通常需要真正的编程逻辑、协议级控制、数据处理以及复用现有脚本——然而大多数扫描器强制将所有内容限制在 YAML-only 的抽象中。 CERT-X-GEN 是一种截然不同的扫描器。它是一个**多语言安全执行引擎**,将漏洞检测视为代码而非配置。您可以使用最适合解决问题的语言编写检测逻辑——CERT-X-GEN 负责处理编排、沙箱和输出。 **这意味着:** ``` # 运行用于 stateful protocol 检查的 Python template cxg scan --scope 192.168.1.100:25 --templates smtp-open-relay.py # 运行用于高性能 database probing 的 Go template cxg scan --scope db.example.com:5432 --templates postgresql-default-credentials.go # 在单次扫描中混合多种语言 cxg scan --scope targets.txt --templates redis*.py,docker*.go,system*.sh ``` ### 亮点 - 用于漏洞检测逻辑的**语言无关运行时** - 跨 12 种语言的安全检查**统一执行层** - 研究脚本与生产扫描器之间的**桥梁** - 专为 CI、自动化和 Agent 系统设计的**扫描器** ## 为什么这很重要
**问题所在** 当您需要以下功能时,YAML DSL 会遇到瓶颈: - 多步协议交互 - 二进制协议解析 - 条件分支逻辑 - 性能关键型操作 - 原生库访问 **解决方案** CERT-X-GEN 运行以以下语言编写的模板: - **Python** — 有状态协议、数据分析 - **Go** — 并发操作、二进制协议 - **Rust/C** — 极致性能 - **Shell** — 原生工具集成 - **YAML** — 简单检查、兼容性
### 实际案例 | 场景 | 模板 | 无法使用 YAML 的原因 | |----------|----------|---------------------| | SMTP 中继测试 | [`smtp-open-relay.py`](https://github.com/Bugb-Technologies/cert-x-gen-templates/blob/main/templates/python/smtp-open-relay.py) | 多步交互:EHLO → MAIL FROM → RCPT TO 并包含分支逻辑 | | PostgreSQL 认证检查 | [`postgresql-default-credentials.go`](https://github.com/Bugb-Technologies/cert-x-gen-templates/blob/main/templates/go/postgresql-default-credentials.go) | PostgreSQL 线路协议 + MD5 挑战-响应 | | SNMP 团体字符串 | [`snmp-default-community.sh`](https://github.com/Bugb-Technologies/cert-x-gen-templates/blob/main/templates/shell/snmp-default-community.sh) | 原生 `snmpwalk` 集成 | | VNC 无认证检测 | [`vnc-no-auth.c`](https://github.com/Bugb-Technologies/cert-x-gen-templates/blob/main/templates/c/vnc-no-auth.c) | RFB 二进制协议握手 | ## 安装说明 ### Homebrew (macOS/Linux) ``` brew tap bugb-technologies/cxg brew install cxg ``` ### 快速安装脚本 ``` curl -fsSL https://raw.githubusercontent.com/Bugb-Technologies/cert-x-gen/main/install.sh | bash ``` ### Docker ``` docker run --rm ghcr.io/bugb-technologies/cert-x-gen:latest --help # 使用 Docker 扫描 docker run --rm ghcr.io/bugb-technologies/cert-x-gen:latest scan --scope example.com ``` ### 从源码构建 ``` git clone https://github.com/Bugb-Technologies/cert-x-gen.git cd cert-x-gen make install ``` ### 使用 Cargo ``` cargo install --git https://github.com/Bugb-Technologies/cert-x-gen.git ``` ### 下载二进制文件 从 [GitHub Releases](https://github.com/Bugb-Technologies/cert-x-gen/releases/latest) 下载预构建的二进制文件: - `cxg-linux-amd64` — Linux x86_64 - `cxg-linux-arm64` — Linux ARM64 - `cxg-darwin-amd64` — macOS Intel - `cxg-darwin-arm64` — macOS Apple Silicon - `cxg-windows-amd64.exe` — Windows x86_64 ### 验证安装 ``` cxg --version cxg template update # Downloads official templates ``` ## 快速开始 ### 基本扫描 ``` # 扫描单个目标 cxg scan --scope example.com # 扫描特定端口 cxg scan --scope example.com --ports 22,80,443,3306,5432,6379 # 扫描网络范围 cxg scan --scope 192.168.1.0/24 --top-ports 100 # 从文件扫描目标 cxg scan --scope targets.txt --templates redis*.py ``` ### 模板操作 ``` # 列出可用 templates cxg template list # 搜索 templates cxg template search redis # 验证 template cxg template validate my-template.py # 获取 template 信息 cxg template info smtp-open-relay.py ``` ### 输出格式 ``` # JSON 输出 cxg scan --scope target.com --format json -o results.json # HTML 报告 cxg scan --scope target.com --format html -o report.html # 用于 CI/CD 的 SARIF cxg scan --scope target.com --format sarif -o results.sarif ``` ## 模板 模板在一个独立的仓库中维护,以便于社区贡献: **[github.com/Bugb-Technologies/cert-x-gen-templates](https://github.com/Bugb-Technologies/cert-x-gen-templates)** | 语言 | 数量 | 最适合场景 | |----------|-------|----------| | Python | 15 | 有状态协议、HTTP API、数据处理 | | Go | 5 | 二进制协议、高并发 | | C | 5 | 底层协议、极致性能 | | Rust | 4 | 内存安全的性能、异步 I/O | | Shell | 5 | 原生工具集成、系统检查 | | YAML | 24 | 简单 HTTP 检查、Nuclei 兼容 | 首次扫描时模板会自动下载。使用 `cxg template update` 更新。 ### 编写模板 所有模板都遵循一个简单的约定: 1. 从环境变量中读取 `CERT_X_GEN_TARGET_HOST` 和 `CERT_X_GEN_TARGET_PORT` 2. 执行检测逻辑 3. 输出包含 findings 数组的 JSON **Python 示例:** ``` #!/usr/bin/env python3 # @id: redis-unauth # @name: Redis Unauthenticated Access # @severity: high import socket, json, os host = os.environ['CERT_X_GEN_TARGET_HOST'] port = int(os.environ.get('CERT_X_GEN_TARGET_PORT', '6379')) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) sock.connect((host, port)) sock.send(b'INFO\r\n') response = sock.recv(4096).decode() if 'redis_version' in response: print(json.dumps({"findings": [{ "id": "redis-unauth", "severity": "high", "host": host, "port": port }]})) ``` ## 设计原则 - **代码优于配置** — 使用真实语言编写真实逻辑 - **确定性执行** — 相同的输入,相同的输出 - **默认沙箱化** — 模板在严格的资源限制下运行 - **可组合扫描** — 混合语言,跨模板复用逻辑 - **自动化优先** — 为 CI、流水线和 Agent 系统构建 ## 功能特性 **执行引擎** - 支持 12 种语言(Python、Go、Rust、C、C++、Java、JavaScript、Ruby、Perl、PHP、Shell、YAML) - 具有可配置资源限制的沙箱执行 - 编译型语言的编译缓存 - 具有速率限制的并行模板执行 **CLI** - 统一的 `--scope` 用于目标(单个、文件、CIDR、URL) - 智能 `--templates` 选择(glob 模式、标签、严重性) - 多种输出格式(JSON、HTML、CSV、Markdown、SARIF) - 内置模板管理和验证 **集成** - 基于 Git 的模板仓库,支持自动更新 - CI/CD 友好(退出代码、SARIF 输出) - 可通过 CLI、配置文件或环境变量进行配置 ## 文档 | 文档 | 描述 | |----------|-------------| | [使用指南](docs/USAGE_GUIDE.md) | 全面的 CLI 用法和示例 | | [架构设计](docs/ARCHITECTURE.md) | 系统设计与内部机制 | | [引擎指南](docs/ENGINES.md) | 特定语言的执行细节 | | [沙箱指南](docs/SANDBOX_GUIDE.md) | 安全模型和资源限制 | | [贡献指南](CONTRIBUTING.md) | 如何贡献代码和模板 | ## 贡献指南 我们欢迎各种贡献。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。 **优先领域:** - 新的检测模板(任何语言) - 协议处理程序改进 - 文档和示例 ``` # 开发设置 git clone https://github.com/Bugb-Technologies/cert-x-gen.git cd cert-x-gen cargo build cargo test ``` ## 许可证 CERT-X-GEN 根据 [Apache License 2.0](LICENSE) 授权。 ## 安全 请将漏洞报告发送至 **security@bugb.io**。参见 [SECURITY.md](SECURITY.md)。

使用 Rust 构建 · 模板 · 讨论

标签:CERT-X-GEN, Cutter, DAST, DevSecOps, FTP漏洞扫描, Go安全, JS文件枚举, Rust安全, SAST, URL发现, YAML配置, 上游代理, 代码生成, 动态检测, 可扩展架构, 可视化界面, 多语言引擎, 多语言支持, 多语言编程, 安全合规, 安全检测, 安全测试框架, 安全编排, 密码管理, 恶意软件分析, 插件系统, 数据可视化, 日志审计, 渗透测试工具, 盲注攻击, 网络代理, 网络安全, 请求拦截, 逆向工具, 通知系统, 隐私保护