askuma/guardrailprobe
GitHub: askuma/guardrailprobe
一款用于测试和对比多种 AI 防护后端在 OWASP LLM Top 10 对抗探测下拦截能力的独立安全基准评估工具。
Stars: 1 | Forks: 0
# guardrailprobe
**测试你的 AI guardrail 层,而不是你的模型。Provider-agnostic。OWASP LLM Top 10。**
[](LICENSE)
[](https://pypi.org/project/guardrailprobe/)
[](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 劫持, 人工智能安全, 合规性, 大语言模型, 安全测试, 搜索引擎查询, 攻击性安全, 测试用例, 红队评估, 请求拦截, 逆向工具, 防御测试