TheApexWu/openzerg

GitHub: TheApexWu/openzerg

OpenZerg 是一个基于 Kubernetes 集群编排、结合遗传进化与 Gemma 4 AI Agent 的红队渗透测试框架,用于对授权 Web 应用进行自动化多代迭代攻击以发现完整突破路径。

Stars: 1 | Forks: 0

# OpenZerg OpenZerg 是一个不断进化的、基于 agent 的红队集群。Go 控制平面会生成一个由 Kubernetes 支持的 PI agent pod 集群(通过 OpenRouter 使用 Gemma 4,通过 Nimble 进行 Web 导航)。每个 pod 都是一个一次性的自主渗透测试器,针对固定的 HTTP 目标。控制平面根据适应度对每个探测进行评分,淘汰弱者,变异强者,并重新生成下一代——直到找到完整的突破口或达到 `--generations`。最终的摘要会解释集群得出结果的路径。 内置演示的目标:Railway 上的 OWASP Juice Shop(我们已获得授权)。 ## 快速开始 ``` # 1. 将 key 放在 repo 根目录的 .env 中(.env.example 展示了 schema)。 # 必需:OPENROUTER_API_KEY(付费,无 :free)。 # 必需:NIMBLE_API_KEY。 # 2. 在 cluster 上创建 openzerg namespace + openzerg-keys Secret。 kubectl create namespace openzerg kubectl -n openzerg create secret generic openzerg-keys --from-env-file=.env # 3. 构建并运行。 cd backend && go build -o ./bin/openzerg ./cmd/openzerg ./bin/openzerg run \ --target https://juice-shop-production-d0c5.up.railway.app \ --population 3 --generations 2 ``` 一个简短的 doctor 命令可以在不接触集群的情况下报告环境就绪状态: ``` ./bin/openzerg doctor ``` ## Web UI 同一个二进制文件还提供了一个内置实时集群可视化的 HTTP + SSE 控制平面: ``` ./bin/openzerg serve --addr :8080 # 打开 http://localhost:8080 ``` `serve` 和 `run` 共享同一个 runner——UI 只是通过 `POST /api/runs` 而不是 CLI 标志来触发它。前端(HTML + ES modules + CSS,无需构建步骤)通过 `go:embed` 嵌入到 Go 二进制文件中,因此该二进制文件是自包含的:将其复制到任何地方,`serve` 都可以正常运行,无需额外文件。SSE 会流式传输 `run_start`、`generation_start`、`pod_spawn`、`pod_result`、`mutation`、`breach` 和 `run_end` 事件;UI 会将每个 pod 绘制在黄金角螺旋上,并随着结果的到达根据适应度为其着色。提供了一个 `--frontend ` 标志,用于在不重新构建二进制文件的情况下编辑 UI。 ## 输出示例(已截断) ``` === generation 1/2: spawning 3 pods === [gen 1 pod 0] {"type":"result","status":"BREACH","vector":"sqli_login", "evidence":"admin token returned via SQL bypass",...} [gen 1 pod 0] fitness=1.00 vector=sqli_login status=BREACH [gen 1 pod 1] fitness=0.00 vector=sqli_login_union status=NOOP [gen 1 pod 2] fitness=0.00 vector=xss_search_reflected status=NOOP BREACH detected in generation 1. Stopping. summary: out/summary-r1779563300.json out/summary-r1779563300.md outcome: BREACH (best fitness 1.00) run: ok ``` Markdown 摘要包含每个世代的表格、得分最高的探测、突破目标的确切请求以及简短的叙述。 ## 目录结构 ``` backend/ Go module cmd/openzerg/ control-plane CLI internal/ attacks/ genome catalog + seed list config/ flag + env merging evolve/ fitness scoring + mutation + result parsing k8s/ client-go wrappers (create / stream / wait / delete) nimble/ Nimble client (control-plane CVE seeding hook) openrouter/ minimal chat-completions client pi/ PI agent helpers secrets/ .env + process env loader spawn/ pod-spec builders + fan-out orchestrator store/ in-memory RunStore + JSON/MD summary writers docker/pi-attacker/ attacker pod image (PI + Gemma 4 entrypoint) deploy/ namespace + reference pod manifest docs/ DEMO.md, ARCHITECTURE.md scripts/ helper scripts (build-and-push-attacker.sh, ...) out/ run summaries (gitignored except sample) ``` ## 白帽范围 OpenZerg 仅攻击 `--target`。内置演示针对的是由我们运营的 OWASP Juice Shop 实例。请勿将其指向您不拥有的任何目标。 ## 状态 请查看 `ralph-logs/STATE.md` 以了解里程碑状态。
标签:AI红队, CISA项目, DLL 劫持, EVTX分析, Go语言, 大语言模型, 子域名突变, 日志审计, 程序破解, 请求拦截, 遗传算法