askuma/guardrailprobe

GitHub: askuma/guardrailprobe

一款用于测试和对比多种 AI 防护后端在 OWASP LLM Top 10 对抗探测下拦截能力的独立安全基准评估工具。

Stars: 1 | Forks: 0

# guardrailprobe **测试你的 AI guardrail 层,而不是你的模型。Provider-agnostic。OWASP LLM Top 10。** [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) [![PyPI version](https://img.shields.io/badge/PyPI-v0.1.0-orange.svg)](https://pypi.org/project/guardrailprobe/) [![Probes](https://img.shields.io/badge/Probes-70%2B-green.svg)](guardrail_framework/probes.py) ## 它的功能 - **发起 70+ 次对抗性探测**(OWASP LLM01–LLM10 + 内容审核 CM-001–CM-020),直接针对你的 guardrail middleware —— 而不是模型 —— 并测量有哪些内容绕过了防护 - **在一次运行中并排比较多个后端**:NeMo Guardrails, GuardrailsAI, Presidio, Lakera Guard, GA Guard, OpenAI Moderation, Azure Content Safety, Azure Prompt Shields, AWS Bedrock - **导出加密签名的 PDF 报告**(PKCS#12 + RFC 3161 时间戳),你可以将其提交给审计员或附加到欧盟 AI 法案合规文档中 ## 它的不同之处 | 工具 | 测试模型 | 测试 Guardrail 层 | 多后端 | 合规导出 | | ------------------ | :---------: | :-------------------: | :-----------: | :---------------: | | **guardrailprobe** | ✗ | ✓ | ✓ | ✓ | | Garak | ✓ | ✗ | ✗ | ✗ | | PyRIT | ✓ | ✗ | ✗ | ✗ | Garak 和 PyRIT 是用于评估模型自身防御能力的优秀工具。guardrailprobe 解决的是另一个不同的问题:验证你的团队围绕模型部署的 guardrail **wrapper** 是否名副其实。你可以更换底层模型而无需重新运行红队测试;guardrail 层才是实际部署到生产环境中的部分。 ## 快速安装 ``` pip install guardrailprobe ``` 或者从源码安装: ``` git clone https://github.com/askuma/guardrailprobe.git cd guardrailprobe pip install -e ".[dev]" alembic upgrade head ``` 复制并配置你的环境: ``` cp .env.example .env # 设置 GUARDRAIL_API_KEYS 和 GUARDRAIL_AUTH_ENABLED ``` ## 部署 **Docker Compose(推荐):** ``` cp .env.example .env # set GUARDRAIL_API_KEYS at minimum docker compose up -d ``` **本地开发:** ``` pip install -e ".[dev]" alembic upgrade head # copy docs/alembic.ini to project root first uvicorn guardrail_framework.server:app --reload ``` **横向扩展**需要两个额外的环境变量: ``` GUARDRAIL_DB_URL=postgresql://user:pass@db-host:5432/guardrail # shared policy store GUARDRAIL_REDIS_URL=redis://redis-host:6379/0 # cross-replica rate limiter ``` 请始终在 uvicorn 前面放置一个 TLS 终结反向代理(nginx, Caddy)。 完整的部署指南,包括 Docker 单容器、PostgreSQL、Redis、TLS 配置 和生产环境检查清单:[docs/implementation.md](docs/implementation.md) 数据库迁移配置请参考:[docs/alembic.ini](docs/alembic.ini) ## 快速入门 ``` from guardrail_framework.red_team_runner import RedTeamRunner runner = RedTeamRunner() # 将每个已配置的 backend 与完整的 OWASP LLM Top 10 进行比较 report = runner.compare_backends( backends=["nemo", "guardrails_ai", "presidio"], categories=["LLM01", "LLM06", "LLM08"], sensitivity="high", ) print(f"Best overall: {report.best_overall}") print(f"Worst overall: {report.worst_overall}") # ┌─────────────────┬───────┬───────┬───────┬──────────┐ # │ backend │ LLM01 │ LLM06 │ LLM08 │ overall │ # ├─────────────────┼───────┼───────┼───────┼──────────┤ # │ nemo │ 1.000 │ 0.857 │ 0.833 │ 0.8966 │ # │ guardrails_ai │ 0.875 │ 1.000 │ 0.667 │ 0.8472 │ # │ presidio │ 0.750 │ 1.000 │ 0.500 │ 0.7500 │ # └─────────────────┴───────┴───────┴───────┴──────────┘ ``` 启动 API 服务器并使用控制面板: ``` guardrailprobe serve # → http://localhost:8000 (REST API + Swagger UI 位于 /docs) # → http://localhost:8000/app (React dashboard — Red Team 标签页) ``` 从命令行运行单后端扫描: ``` guardrailprobe scan --backend guardrails_ai --categories LLM01,LLM04,LLM06 ``` ## 支持的后端 | 后端 | 类型 | 需要凭证 | |---------|------|-------------------| | NeMo Guardrails | 本地 SDK | 可选 LLM API key | | GuardrailsAI | 本地 SDK | 可选 LLM API key | | Microsoft Presidio | 本地 SDK | 无需 —— 完全本地化 | | Lakera Guard | 云端 REST API | `LAKERA_GUARD_API_KEY` | | GA Guard | 云端 REST API | `GA_GUARD_API_URL` + `GA_GUARD_API_KEY` | | OpenAI Moderation | 云端 REST API | `OPENAI_API_KEY` | | Azure Content Safety | 云端 REST API | `AZURE_CONTENT_SAFETY_ENDPOINT` + `AZURE_CONTENT_SAFETY_KEY` | | Azure Prompt Shields | 云端 REST API | `AZURE_CONTENT_SAFETY_ENDPOINT` + `AZURE_CONTENT_SAFETY_KEY` | | AWS Bedrock Guardrails | 云端托管 | AWS 凭证 + `AWS_BEDROCK_GUARDRAIL_ID` | 当缺少凭证时,所有后端都会优雅降级——它们在基准测试报告中会显示为 SKIPPED,而不是显示具有误导性的 0% 分数。 ## 基准测试报告 每月独立的基准测试报告,比较所有支持的后端在 OWASP LLM Top 10 和内容审核探测套件下的表现。 最新报告:[benchmarks/](benchmarks/) 实时控制面板:https://askuma.github.io/guardrailprobe 报告包含: - 每个后端在所有 OWASP 类别中的通过率 - 内容审核评分(仇恨 / 暴力 / 色情 / 自残) - 准确性与延迟的权衡分析 - 月度回归追踪 - 用于提交审计的加密签名 PDF ## 独立性声明 guardrailprobe 与任何受测后端提供商之间没有任何商业关系。NVIDIA, Microsoft, OpenAI, Lakera, General Analysis 和 Amazon 均未资助、认可或影响本项目。 探测库、方法论和评分逻辑完全开源,且可独立审计。详情请参阅 [METHODOLOGY.md](METHODOLOGY.md)。 ## 文档 - [METHODOLOGY.md](METHODOLOGY.md) — 探测构建标准、OWASP 映射、通过/失败逻辑、报告完整性、监管映射(欧盟 AI 法案、GDPR、NIST AI RMF) - [API_REFERENCE.md](API_REFERENCE.md) — 全部 54 个 REST endpoint - [docs/implementation.md](docs/implementation.md) — 生产环境部署、PostgreSQL、Redis、Docker、TLS - [CONTRIBUTING.md](CONTRIBUTING.md) — 如何添加探测、后端以及提交 issue - [benchmarks/](benchmarks/) — 每月基准测试报告 ## 项目结构 ``` guardrail_framework/ probes.py — 70+ built-in AttackProbe objects OWASP LLM01–LLM10 adversarial probes + CM-001–CM-020 content moderation probes (Hate, Violence, Sexual, Self-harm) red_team_runner.py — RedTeamRunner, ComparisonReport report_signer.py — PDF + PKCS#12 + RFC 3161 core.py — GuardrailFramework, 9 backends server.py — FastAPI, 54 REST endpoints compiler.py — Policy compiler benchmark_report.py — Monthly benchmark generator benchmarks/ — Published benchmark reports docs/ — GitHub Pages benchmark site ``` ## 许可证 Apache 2.0 — 请参阅 [LICENSE](LICENSE)。
标签:DLL 劫持, 人工智能安全, 合规性, 大语言模型, 安全测试, 搜索引擎查询, 攻击性安全, 测试用例, 红队评估, 请求拦截, 逆向工具, 防御测试