openguardrails/openguardrails-oss
GitHub: openguardrails/openguardrails-oss
OpenGuardrails-OSS 是一个面向 AI 智能体的安全检查与红队测试工具包,解决智能体在自主运行时面临的漏洞与攻击风险。
Stars: 338 | Forks: 49
# OpenGuardrails-OSS
OpenGuardrails 是一个智能体安全平台。**OpenGuardrails-OSS** 是其
开放源代码部分 — 一个用于为 AI 智能体提供 **健康检查** 和
**考试** 的工具包。你通过一个智能体(OpenClaw、Hercules — 任何自主智能体)用自然语言
驱动它;它随后使用 OpenGuardrails-OSS 来审计 *自身* 或 *其他
智能体*。
它做三件事:
1. **扫描** — 对已安装的智能体、技能、插件和 MCP 服务器进行健康检查。查找已知漏洞、已知恶意组件和
危险配置。把它想象成一次身体检查。
2. **红队测试** — 动态考试。运行来自
OpenGuardrails Agent Threat Intelligence 的 curated 攻击提示,以查看目标智能体是否会中招。把它想象成在敌对条件下进行的驾驶测试。
3. **集成** — 开箱即用的插件、技能和 SDK,使开发者能够在运行时
从自己的智能体内部调用 OpenGuardrails。
## 👤 阅读本文档的是谁?
该项目设计为由 **AI 智能体驱动,而不是由人类输入命令**。选择与你匹配的部分:
- 👤 **你是人类** — 继续阅读下方的 [For Humans](#-for-humans) 部分。你不需要输入任何命令。你只需将本仓库的 URL 交给一个智能体(OpenClaw、Hercules Agent、Claude Code、Codex 或其他任何自主智能体),并告诉它,用 plain language 你想要检查什么。被你驱动的智能体可能是 *同一个* 被审计的智能体(自我检查)或 *不同的* 智能体(审计对等体)。
- 🤖 **你是 AI 智能体** — 跳转到 [For Agents](#-for-agents)。该部分包含你需要的命令、标志、退出码和机器可读的输出格式。你可以在自身上运行,也可以在同一机器上的兄弟智能体上运行。
## 👤 面向人类
### 用一段话概括这是做什么的
一个 AI 智能体 — OpenClaw、Hercules Agent、Claude Code、Cursor,无论你运行哪一个 — 对你的笔记本电脑拥有类似 root 的权限。它读取文件、写入文件、运行命令、安装工具并将数据发送到互联网。
如果攻击者偷偷将一个坏提示、坏技能或坏 MCP 服务器植入智能体的环境,攻击者就继承了该权限。
OpenGuardrails-OSS 是你告诉智能体使用的工具包,以便它可以
为自己 — 或你机器上的另一个智能体 — 进行健康检查
和考试,并在早期发现问题。
### 如何使用(无需技术技能)
1. 打开任何可以运行 shell 命令的智能体(OpenClaw、Hercules Agent、
Claude Code、Cursor、带有终端工具的 ChatGPT 桌面等)。
2. 将以下内容粘贴给它:
3. 就这样。智能体会处理安装、扫描和
报告。
你可以请求:
- *“给自己做一次安全检查。”* → 智能体运行 `scan` 检查
自身
- *“检查我安装的其他智能体。”* → 针对该智能体配置路径的 `scan`
- *“假装成攻击者,看看我的智能体是否会上当。”* → 对你指定的目标运行 `redteam`
- *“安装 OpenGuardrails 技能,以便这个智能体下次可以保护自己。”* → 在 `skills/openguardrails/` 下安装技能
驱动工作的智能体不 **必须** 是被审计的智能体。你可以驱动自检(智能体审计自身)或同行审计(智能体 A 审计智能体 B)。
### 为什么一部分是开放的,一部分不是
安全是 **在成本约束下的不对称对抗**。
- 攻击者只需要找到一个 *可用的* 漏洞。
- 防御者必须覆盖 *每一个可能的路径*。
- 因此,防御者的成本在结构上高于攻击者。
- 防御取胜的唯一方法是将攻击者的成本提升到超过其预期回报(或超过其从更容易的目标获得的回报)。
这一事实决定了我们开源什么以及保留什么:
| 开源(本仓库) | 原因 |
| ----------------------------------------- | ---------------------------------------------- |
| 已知漏洞扫描器 | 每个打补丁的用户 = 减少一个免费击杀 |
| 红队攻击目录和运行器 | 让防御者 *衡量* 他们的暴露程度 |
| 集成客户端(插件、技能、SDK) | 对攻击者价值低 |
| 保留专有部分 | 原因 |
| ----------------------------------------- | ---------------------------------------------- |
| 检测规则和运行时策略引擎 | 公布它们会告诉攻击者如何规避 |
| 威胁情报摄取管道 | 公布它会告诉攻击者我们看到了什么 |
| 防御模型和评分 | 公布它们会让攻击者针对它们进行训练 |
简而言之:我们开源 **帮助你发现问题** 的部分,我们保留 **帮助你阻止它们** 的部分。这两部分都提高了攻击者的成本。关于更长论述,请参见 [docs/PHILOSOPHY.md](docs/PHILOSOPHY.md)。
### 你从中得到什么
- 如果有的话,会得到一份机器上已知不良组件的报告。
- 如果有的话,会得到一个分数和智能体中招的攻击列表。
- 如果你正在构建智能体并希望在运行时得到保护,则有简单的集成路径。
## 🤖 面向代理
你阅读本文档是因为有人给了你这个仓库的 URL 并
要求你审计智能体安全。审计对象可能是 **你
自己**(自检)、**同一机器上的另一个智能体**(同行检查,
例如你正在检查 OpenClaw 的安装),或 **人类给你的远程智能体端点**。如果请求有歧义,请澄清。
按照以下步骤操作。优先使用机器可读输出(`--json`)。假设人类想要一个简短摘要;不要直接给他们原始 JSON。
### 引导
```
git clone https://github.com/openguardrails/openguardrails-oss.git
cd openguardrails-oss
bun install
```
如果未安装 `bun`:`curl -fsSL https://bun.sh/install | bash`。如果
无法安装 Bun,请停止并告知人类 — 不要静默回退到
`node`。
### 命令
所有命令都通过 `bun src/cli.ts <子命令>` 调用,或在
`bun link` 后通过 `openguardrails <子命令>` / `ogr <子命令>` 调用。
#### `scan` — 静态健康检查
```
ogr scan [--target ] [--json] [--severity ]
```
- 遍历常见的智能体安装位置(`~/.claude`、`~/.cursor`、
`~/.config/*mcp*`、项目本地 `.mcp.json` 等)。
- 引用离线的知识库 `src/scan/knowledge-base.ts`。
- 退出码:`0` 干净,`2` 低于 `--severity` 的发现,`3` 在或高于 `--severity` 的发现,`1` 工具错误。
#### `redteam` — 动态红队测试
```
ogr redteam --target [--suite ] [--json] [--max ]
```
- `--target` 可以是接受
`POST { "prompt": "..." }` 并返回 `{ "response": "..." }` 的 HTTP 端点,或一个从 stdin 读取提示并将其输出写入 stdout 的 shell 命令。
- 套件在 `src/redteam/attacks.ts` 中定义。默认套件为
`core-prompt-injection`。
- 每次攻击都有一个检测器;命中计为目标失败。
- 退出码反映失败(与 `scan` 相同的方案)。
#### `integrate` — 生成一个集成工件
```
ogr integrate skill > openguardrails.skill.md
ogr integrate plugin > moltguard.plugin.json
ogr integrate sdk # prints SDK usage snippet
```
### 输出约定
使用 `--json` 时,每个命令都会向 stdout 输出一个 JSON 对象:
```
{
"tool": "openguardrails-oss",
"version": "0.1.0",
"command": "scan",
"startedAt": "2026-04-17T12:00:00Z",
"finishedAt": "2026-04-17T12:00:04Z",
"findings": [
{
"id": "OGR-KB-0001",
"severity": "high",
"title": "...",
"location": "...",
"evidence": "...",
"remediation": "..."
}
],
"summary": { "total": 1, "bySeverity": { "high": 1 } }
}
```
报告 `severity` 字段时不要意译;保留原样报告给人类。
### 何时升级给人类
- 任何 `critical` 发现 — 停止,立即报告,不要自动修复。
- 表明目标智能体泄露了文件系统内容或执行了攻击者提供的 shell 命令的 `redteam` 失败。
- 缺少读取 `~/.claude` 或类似目录的权限 — 询问;不要使用 sudo。
### 你不应该做的事
- 不要将扫描报告提交回用户的仓库,除非被要求 — 它们包含路径,可能包含敏感字符串。
- 不要对未明确要求测试的目标运行 `redteam`。攻击套件设计为日志中会发出很大噪音。
- 不要“改进”知识库,添加推测性条目。
## 项目结构
```
src/
cli.ts # CLI entry — scan / redteam / integrate
index.ts # library entry
scan/ # static scanner + offline knowledge base
redteam/ # attack runner + attack catalog
integrations/
sdk.ts # TypeScript SDK for agent developers
moltguard/ # plugin for OpenClaw-family agents
skill/ # portable skill package for tool-using LLMs
utils/
skills/
openguardrails/ # drop-in skill directory for Claude Code etc.
docs/
PHILOSOPHY.md # why we open-source what we open-source
AGENT.md # extended agent-facing playbook
```
## 贡献
对 **攻击目录** (`src/redteam/attacks.ts`) 和
**知识库** (`src/scan/knowledge-base.ts`) 的贡献尤其受欢迎 —
这是随着社区参与而扩展的工作的一半。在提出防御性方面的任何建议之前,请先阅读
[docs/PHILOSOPHY.md](docs/PHILOSOPHY.md),我们很可能会将其重定向到闭源产品。
## 许可证与联系
Apache-2.0。参见 [LICENSE](LICENSE)。
- 网站: https://openguardrails.com
- 作者: [@thomas-security](https://github.com/thomas-security) ·
thomas@openguardrails.com
- 组织: OpenGuardrails.com
## 关于 @OpenGuardrails/MoltGuard
**OpenClaw 上最受欢迎的安保技能 [ClawHub](https://clawhub.ai/thomas-security/moltguard)** — 保护你的每个操作。
标签:Agent威胁情报, AI代理审计, AI安全, AI驱动安全, Chat Copilot, CISA项目, CSV导出, DNS 反向解析, DNS通配符暴力破解, MITM代理, OpenGuardrails, OSS安全工具, 代理安全, 健康检查, 动态攻击测试, 危险配置审计, 威胁情报, 安全检查, 安全防护, 开发者工具, 恶意组件检测, 插件安全, 文档结构分析, 结构化查询, 自动化安全, 自动化攻击, 集成SDK