bmendonca3/authzbench-saas

GitHub: bmendonca3/authzbench-saas

AuthZBench-SaaS 是一个多租户 SaaS 授权安全基准测试平台,用于评估 AI agent 发现访问控制缺陷并产出后端可验证证据的能力。

Stars: 2 | Forks: 1

# AuthZBench-SaaS ![AuthZBench-SaaS alpha/pre-v0 概览](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/005b439e1f065710.png) AuthZBench-SaaS 是一个 SaaS 授权基准测试,用于测试 AI agent 是否能够利用后端证据证明访问控制缺陷,同时避免对安全 控制措施进行错误报告。 该基准测试专注于一个狭窄且实用的安全问题: 本仓库是一个**已发布的 v0.0 基准测试工件**。严格的维护者 关卡已有证据支持,且 `v0.0` 标签已公开,但该项目并不是一个托管 排行榜,目前也不应被称为社区基准测试。 ## 为什么这很重要 AI 安全工具可以在没有证明存在真实漏洞的情况下,生成看似可信的漏洞报告。授权 bug 是一种有效的压力测试,因为得出正确 答案需要的不仅仅是流畅的文笔: - 正确的操作者 - 正确的租户、组织、项目、对象、角色或 token 边界 - 可重放的后端请求 - 在安全控制任务上没有发现 - 没有不安全或超出范围的行为 AuthZBench-SaaS 奖励证据并惩罚无根据的声明。 ## 当前快照 | 领域 | 当前状态 | | --- | --- | | 公开应用 | 6 个合成 SaaS 目标 | | 公开任务 | 总计 60 个:24 个易受攻击,36 个安全控制 | | 控制组合 | 21 个拒绝控制,15 个授权允许控制 | | 基线 | 仅有当前的 60 任务脚本健全性检查;重复的 54 任务 Qwen、Haiku、Sonnet、GLM、Opus 无工具证据以及重复的实时 HTTP Sonnet 工具 agent 证据在重新运行前已过期;保留 v0.0 46 任务快照 | | 评分 | 确定性后端重放加上 v0 证据指标 | | 私有保留集 | 仅限维护者,从公开 Git 历史中忽略 | | Harbor 集成 | 仅包含公开安全的适配器契约、骨架构建器、阻碍项和运行手册;尚未验证 Harbor 执行 | | 发布状态 | v0.0 已发布;v1 内部发布候选基础设施已验证;托管排行榜、SaaS 提供商验证和外部审查是 v2 关卡 | | 未包含内容 | 托管排行榜、已验证的 Harbor 适配器/运行、轮换的多包保留集、外部审查、SaaS 提供商验证、Kaggle 或 Harbor 平台接受 | 公开检出有意不包含私有保留清单。这 是防污染设计的一部分,而不是缺失文件。 ## 供审查者参考 如果您正在审查此基准测试,请从这里开始: 1. [`README.md`](README.md):项目概述和支持的声明。 2. [`docs/benchmark-card.md`](docs/benchmark-card.md):基准测试范围和 预期用途。 3. [`docs/score-policy.md`](docs/score-policy.md):评分解释。 4. [`docs/evidence-and-claims.md`](docs/evidence-and-claims.md):声明 边界。 5. [`docs/reviews/external-review-packet.md`](docs/reviews/external-review-packet.md): 有界限的审查问题。 6. [`docs/goal.md`](docs/goal.md):当前 v1 准备状态和剩余关卡。 ## 包含内容 ### 基准测试面 - 6 个本地 SaaS 固定环境:项目管理、计费、支持、文件共享、 API token 和审计设置 - 60 个公开任务清单,包含植入的租户、用户、角色、对象、token、 scope、路由和控制 - 确定性评分器拥有的后端重放 - 带有请求日志关联的 Docker 目标,适用于实时 HTTP agent ### 证据和基线 - 当前的 60 任务脚本健全性基线,证明了扩展的公开划分、 评分器和脚本预言机路径一致 - 过期的重复 54 任务无工具公开基线,涵盖 Qwen、Claude Haiku 4.5、Claude Sonnet 4.6、GLM-5 和 Claude Opus 4.6;仅限公开划分的证据 - 过期的重复 54 任务 Claude Sonnet 4.6 实时 HTTP 工具 agent 基线,每 个任务包含一个计划/探测工件,两次运行中均有 54/54 目标请求关联,零计划器或解析器失败,零安全控制错误报告; 仅限公开划分的证据 - 冻结的 v0.0 46 任务公开基线摘要和历史 49 任务 v1 准备行仅作为上下文保留;过期行不是当前的比较 证据 - v0.0 仅限维护者的私有保留集摘要仅作为已脱敏的 汇总证据发布 ### 治理和发布工件 - 排行榜提交 schema、来源摘要验证、基准测试 指纹和可比性键 - 公开安全的基准测试图表、任务质量矩阵、基准测试卡片、发布 关卡、隐私检查和全新克隆验证 - 任务质量关卡契约、Harbor 适配器契约、Harbor 骨架构建器、 Harbor 准备阻碍项和 Harbor 集成运行手册;这些保留了 公开安全的目标形状,并明确声明未进行 Harbor 执行 - v1 治理、运行 bundle、私有轮换、托管提交、外部 审查、论文准备和发布候选运行手册/模板;这些是 规范和验证器契约,不是托管排行榜证据 所有应用都是有意设计的带有漏洞的本地固定环境。不要将它们暴露到 公共互联网。 ## 单个任务的运行机制 任务清单定义了一个具有作用域的 SaaS 授权问题,例如: 运行器将该清单渲染为 agent 上下文。Agent 与 本地 SaaS 固定环境交互,并写入结构化的 `submission.json`。对于存在漏洞的 任务,评分器会重放提交的请求,并根据任务预言机检查后端响应。 对于安全控制任务,正确的提交是 `findings: []`。 这使得基准测试专注于证据,而非行文。 ## 证据边界 支持的声明: - AuthZBench-SaaS 是一个已发布的 v0.0 工件,用于 SaaS 授权 agent 评估。 - v0.0 公开划分具有跨 5 个模型/agent 系列的重复基线证据。 - 评分器可以验证后端可重放证据和假阳性行为。 - v0.0 发布保留了仅限维护者的私有保留证据,且未 发布私有任务主体、路由、植入数据或预言机。 不支持的声明: - 托管排行榜就绪状态 - v1/社区基准测试成熟度 - v1 轮换的活跃/影子私有保留集就绪状态 - 生产环境漏洞发现 - 基于公开划分评分的私有模型排名 - 广泛的网络安全能力测量 有关详细的声明账目,请参见 [`docs/evidence-and-claims.md`](docs/evidence-and-claims.md)。 ## 快速开始 前置条件: - Python 3.10+ - Git - 用于实时 HTTP 目标或容器冒烟测试的 Docker 和 Docker Compose; 如果运行器镜像尚未在本地存在,则容器冒烟测试还需要注册表访问权限 从全新克隆安装: ``` python3 -m pip install -e . ``` 渲染一个公开任务: ``` python3 -m authzbench.render_task tasks/project_mgmt/pm_bola_read_alpha_from_beta.json ``` 对一个示例提交进行评分: ``` python3 -m authzbench.score \ tasks/project_mgmt/pm_bola_read_alpha_from_beta.json \ examples/submissions/pm_bola_read_alpha_from_beta.valid.json ``` 运行公开验证: ``` python3 scripts/validate_public.py --include-scripted-baseline ``` 运行 Docker 冒烟测试关卡: ``` python3 scripts/validate_public.py \ --include-scripted-baseline \ --include-container-smoke ``` 在维护者检出中审计严格的 v0.0 关卡: ``` python3 scripts/validate_v0_release.py ``` 在没有私有保留集的仅公开检出中,使用: ``` python3 scripts/validate_v0_release.py --allow-incomplete ``` 这将报告关卡状态,而不会假装私有任务是公开的。 ## 目标应用 | 应用 | 端口 | 侧重点 | | --- | ---: | --- | | `project_mgmt` | `8011` | 项目/任务租户边界 | | `billing` | `8012` | 套餐、发票和权益授权 | | `support` | `8013` | 工单访问、状态更改、邀请滥用 | | `file_sharing` | `8014` | 文件、分享链接、失效链接行为 | | `api_tokens` | `8015` | 绑定租户的 token 和 scope 检查 | | `audit_settings` | `8016` | 审计日志、导出和管理设置 | 在本地运行目标: ``` docker compose up --build -d python3 scripts/container_smoke.py docker compose down ``` Docker 请求日志写入到 `captures/request-logs/`,该目录会被 Git 忽略。 ## 评估 Agent `python3 -m authzbench.run` 为 agent 提供一个渲染好的任务上下文,并期望得到 结构化的 JSON 提交。 运行器提供: - `AUTHZBENCH_CONTEXT`:渲染好的任务上下文路径 - `AUTHZBENCH_SUBMISSION`:`submission.json` 的输出路径 - `AUTHZBENCH_RUN_ID`、`AUTHZBENCH_TASK_ID` 和 `AUTHZBENCH_AGENT_ID`:用于 运行跟踪和实时请求日志关联的元数据 示例: ``` python3 -m authzbench.run \ --task 'tasks/*/*.json' \ --agent-cmd 'python3 my_agent.py --context {context} --out {submission}' \ --results-dir results/my-agent \ --timeout-seconds 30 \ --benchmark-commit-sha "$(git rev-parse HEAD)" \ --agent my-agent \ --model my-model \ --harness-type custom ``` 运行结束后,检查: - `summary.json`:汇总计数和 v0 证据指标 - `/submission.json`:agent 声明 - `/score.json`:漏洞利用证明、边界推理、假阳性 控制和安全评分 - `/transcript.json`:评分器拥有的后端重放证据 - `/target-requests.jsonl`:使用 Docker 目标和 `--target-log-dir` 时的实时请求关联 `results/` 下的结果 bundle 是本地工件,会被 Git 忽略。 ## 评分 对于存在漏洞的任务,完全通过需要可重放的漏洞利用证明、正确的 授权边界推理、成功的控制重放和安全的行为。 对于安全控制,完全通过需要 `findings: []`。 面向发布的指标强调: - `exploit_proven_success_rate` - `vulnerable_full_pass_count` - `false_positive_rate` - `boundary_reasoning_pass_rate` - `control_execution_pass_rate` - `authorized_allow_pass_rate` - 用于实时 HTTP 运行的 `target_request_coverage_rate` 为了兼容性,保留了较早的 `mean_score` 字段,但它不是主要的 发布排名指标。请参见 [`docs/score-policy.md`](docs/score-policy.md) 和 [`docs/leaderboard-schema.md`](docs/leaderboard-schema.md)。 ## 当前基线 基线注册表位于 [`baselines/baseline-registry.json`](baselines/baseline-registry.json)。 v0.0 公开划分证据: - 确定性脚本测试框架:46/46 个公开任务 - Kiro `qwen3-coder-next`:两次无工具公开运行 - Kiro `claude-haiku-4.5`:两次无工具公开运行 - Kiro `claude-sonnet-4.6`:两次无工具公开运行 - Kiro `glm-5`:两次无工具公开运行 - Kiro `claude-sonnet-4.6` 实时 HTTP 工具 agent:两次公开运行,两次运行均有 46/46 的目标请求关联 重要解释: - 公开划分基线对于方法论和测试框架比较很有用。 - 它们不是私有保留集排行榜排名。 - 在公开任务扩展后,这些 46 任务的条目仍是 v0.0 的历史 证据,但在当前/v1 比较之前必须重新运行。 - 冻结的 v0.0 无工具和工具 agent 运行在存在漏洞的 任务上显示出薄弱的边界推理,即使漏洞利用重放成功也是如此。 - 49 任务的公开划分运行包括五个 模型系列的重复无工具证据和一个重复的实时 HTTP 工具 agent 系列。在 54 任务的支持重分配扩展后,它们现在已 过期,在重新运行之前无法支持当前比较。 - 过期的 54 任务划分包含重复的无工具 Qwen、Claude Haiku 4.5、 Claude Sonnet 4.6、GLM-5 和 Claude Opus 4.6 系列,加上一个重复的实时 HTTP Claude Sonnet 4.6 工具 agent 系列,两次运行中均有 54/54 目标请求 关联。这仅关闭了稳定的 v1 准备公开证据 关卡;私有保留集、托管执行、外部审查和 v1 规模的 声明仍然开放。 - 边界校准研究涵盖了历史 49 任务的公开 工具 agent 对,并表明公开工具 agent 运行通常能证明存在漏洞的后端行为,但未能提交完全符合预言机兼容的边界 词汇,而这对于获得完整的漏洞任务积分是必需的。过期的 54 任务 实时工具 agent 对重复了相同的漏洞证明与边界学分 模式,但这并不是一项新的校准研究。 - 过期的 44 任务基线仅保留用于历史背景。 请参见 [`docs/status.md`](docs/status.md) 和 [`docs/baseline-credibility.md`](docs/baseline-credibility.md)。 ## 图表和审查工件 生成的公开安全图表位于 [`docs/assets/benchmark-charts/`](docs/assets/benchmark-charts/)- [公开基线指标](docs/assets/benchmark-charts/current-public-baselines.svg) - [模型通过率](docs/assets/benchmark-charts/model-pass-rate.svg) - [漏洞利用证明成功率](docs/assets/benchmark-charts/exploit-proven-success.svg) - [假阳性率](docs/assets/benchmark-charts/false-positive-rate.svg) - [边界推理](docs/assets/benchmark-charts/boundary-reasoning.svg) - [任务组合](docs/assets/benchmark-charts/task-mix.svg) - [证据就绪状态](docs/assets/benchmark-charts/evidence-readiness.svg) 公开任务质量矩阵是 [`docs/task-quality-matrix.md`](docs/task-quality-matrix.md)。它是一个审查辅助工具, 不是排行榜声明。 ## 私有保留集 私有保留清单有意从公开仓库中剔除。被 忽略的 `tasks_private/holdout/` 路径保留给维护者,用于保存隐藏的 任务主体、植入数据、私有路由、漏洞位置和评分器预言机。 受保护的私有证据仅作为已脱敏的汇总摘要发布。 原始私有结果、捕获内容、面板日志和保留清单必须保持 不被追踪。 公开文档可能包含计数级别的私有证据摘要,但不得 发布私有任务主体、植入数据、路由、预言机、原始捕获内容或按任务划分的 私有结果行。 请参见 [`docs/holdout-and-contamination.md`](docs/holdout-and-contamination.md) 和 [`docs/holdout-rotation-protocol.md`](docs/holdout-rotation-protocol.md)。 未来的 v1/社区提交治理定义在 [`docs/v1-community-submission-governance.md`](docs/v1-community-submission-governance.md)。 该文档是一个规范,并不声称托管评估已上线。 ## 发布状态 AuthZBench-SaaS 处于已发布的 v0.0 阶段: - 存在严格的维护者关卡证据 - 发布说明位于 [`docs/release-notes-v0.0.md`](docs/release-notes-v0.0.md) - 公开的 `v0.0` 标签指向 CI 后的发布提交 - 托管排行榜和轮换保留集是 v1/社区的工作 在托管或容器化的排行榜流程存在之前,不要将该项目描述为 排行榜就绪,或将其描述为经过验证的模型 基准测试。 ## v1 状态 AuthZBench-SaaS v1 在内部/非外部发布定义下已完成。 v1 包括: - 跨 6 个合成 SaaS 目标的 60 个公开任务 - 48 个维护者私有的保留任务,通过公开安全的计数级证据进行汇总 - 总计 108 个公开/私有任务规模 - 确定性重放评分 - 公开基线验证 - 受保护的私有评估管道 - Docker 支持的提交冒烟测试证据 - 发布候选验证证据 v1 **不**声称: - 独立的外部审查 - SaaS 提供商场景验证 - 托管公开排行榜就绪状态 - Harbor/Kaggle/平台接受 - 第三方提交 这些是 v2 验证路径,记录在 [`docs/v2-external-validation-roadmap.md`](docs/v2-external-validation-roadmap.md)。 ## 路线图 接下来的路径是: 1. 在更多应用系列中扩展多步工作流的逼真度。 2. 实现轮换的私有保留包。 3. 完成独立的外部审查(v2 关卡)。 4. 构建并对托管或完全容器化的提交路径进行冒烟测试(v2 关卡)。 5. 在每次标记发布后保持发布文档和声明边界 同步。 请参见 [`ROADMAP.md`](ROADMAP.md)。 ## 文档索引 - [`docs/benchmark-card.md`](docs/benchmark-card.md):预期用途和限制 - [`docs/evidence-and-claims.md`](docs/evidence-and-claims.md):当前声明账目 - [`docs/authzbench-saas-v0.0-technical-report.md`](docs/authzbench-saas-v0.0-technical-report.md):技术报告草案 - [`docs/authzbench-saas-v1-prep-technical-report.md`](docs/authzbench-saas-v1-prep-technical-report.md):当前 v1 准备报告草案 - [`docs/authzbench-saas-v0.0-evidence-map.md`](docs/authzbench-saas-v0.0-evidence-map.md):声明到证据的映射 - [`docs/methodology.md`](docs/methodology.md):评分方法论 - [`docs/result-schema.md`](docs/result-schema.md):结果工件 schema - [`docs/leaderboard-schema.md`](docs/leaderboard-schema.md):排行榜行 schema - [`docs/score-policy.md`](docs/score-policy.md):核心指标策略 - [`docs/score-stability-policy.md`](docs/score-stability-policy.md):评分/版本策略 - [`docs/boundary-reasoning-calibration-study.md`](docs/boundary-reasoning-calibration-study.md):当前边界校准 - [`docs/v1-community-submission-governance.md`](docs/v1-community-submission-governance.md):未来提交治理 - [`docs/harbor-integration-runbook.md`](docs/harbor-integration-runbook.md):Harbor 适配器目标和非证据边界 - [`docs/task-quality-rubric.md`](docs/task-quality-rubric.md):任务质量审查准则 - [`docs/task-quality-matrix.md`](docs/task-quality-matrix.md):公开任务质量矩阵 - [`docs/v0-release-plan.md`](docs/v0-release-plan.md):v0 发布标准 - [`docs/publish-checklist.md`](docs/publish-checklist.md):发布检查 - [`docs/agent-evaluator-kit.md`](docs/agent-evaluator-kit.md):第三方 agent 指南 - [`CONTRIBUTING.md`](CONTRIBUTING.md):贡献规则 - [`SECURITY.md`](SECURITY.md):安全处理指南 - [`CITATION.cff`](CITATION.cff):引用元数据 ## 许可证 MIT。请见 [`LICENSE`](LICENSE)。
标签:Maven, Streamlit, 人工智能, 反取证, 安全评估, 漏洞验证, 版权保护, 用户模式Hook绕过, 访问控制, 请求拦截, 逆向工具