dockfixlabs/agentguard
GitHub: dockfixlabs/agentguard
AgentGuard 是一款面向 AI Agent 代码的自动化安全扫描器,专门检测提示词注入、工具滥用、数据泄露等 OWASP ASI Top 10 漏洞。
Stars: 1 | Forks: 0
# 🛡️ AgentGuard
[](https://python.org)
[](LICENSE)
[](https://github.com/dockfixlabs/agentguard/actions)
[](https://owasp.org/www-project-agentic-security-initiative/)
## 为什么选择 AgentGuard?
AI agent 正在大规模部署——应用于编码工具、客户支持、交易机器人和自治系统中。**然而,却没人在扫描它们代码中的安全漏洞。**
现有工具(Bandit、Semgrep、CodeQL)扫描的是传统漏洞。AgentGuard 专门扫描**针对 agent 的**攻击向量:
- 📥 **Prompt Injection** — 不可信输入到达 LLM prompt
- 🔧 **工具滥用** — agent 具有不受限制的 shell/exec 访问权限
- 📤 **数据泄露** — agent 向外部 URL 泄露数据
- 🔑 **凭据暴露** — 硬编码的 API 密钥和钱包种子
- ⚡ **不安全的 Eval** — 将用户输入直接用于 `eval()`、`exec()`、`subprocess(shell=True)`
- 🧠 **上下文篡改** — 无限制的上下文窗口攻击
- 🏰 **信任边界违规** — agent 以 root 身份运行,或访问宿主文件系统
## 快速开始
```
pip install dfx-agentguard
# 扫描目录
agentguard .
# 用于 CI/CD 的 JSON 输出
agentguard src/ --format json
# 用于 GitHub Code Scanning 的 SARIF
agentguard . --format sarif > results.sarif
# 仅显示 HIGH 及以上级别
agentguard . --min-severity HIGH
```
## CLI 用法
```
agentguard [OPTIONS] [TARGET]
Arguments:
TARGET Directory or file to scan (default: current directory)
Options:
--format [text|json|sarif] Output format (default: text)
--exit-code / --no-exit-code Exit non-zero if findings found (default: on)
--min-severity [CRITICAL|HIGH|MEDIUM|LOW|INFO] Minimum severity to report
--help Show help
```
## OWASP ASI Top 10 覆盖范围
| ID | 漏洞 | 状态 |
|----|--------------|--------|
| ASI01 | Prompt Injection | ✅ |
| ASI02 | 工具滥用 / 非预期工具使用 | ✅ |
| ASI03 | 数据泄露 / 敏感数据泄漏 | ✅ |
| ASI04 | 未授权操作 / 过度授权 | ✅ |
| ASI05 | 供应链 / 不可信组件 | ✅ |
| ASI06 | 不安全的输出处理 | ✅ |
| ASI07 | 凭据 / 密钥暴露 | ✅ |
| ASI08 | 上下文窗口篡改 | ✅ |
| ASI09 | Agent 循环利用 | ✅ |
| ASI10 | 信任边界违规 | ✅ |
## CI/CD 集成
### GitHub Actions
```
name: Security Scan
on: [push, pull_request]
jobs:
agentguard:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: pip install dfx-agentguard
- run: agentguard . --format sarif > results.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
```
### Pre-commit Hook
```
repos:
- repo: https://github.com/dockfixlabs/agentguard
rev: v0.1.0
hooks:
- id: agentguard
args: ["--min-severity", "HIGH"]
```
## 编程方式调用
```
from agentguard.scanner import scan_directory
from agentguard.reporter import json_report
result = scan_directory("src/")
print(f"Found {len(result.findings)} issues")
print(f"Critical: {result.critical_count}")
print(f"High: {result.high_count}")
for finding in result.findings:
print(f" [{finding.severity}] {finding.rule_name} at {finding.file}:{finding.line}")
```
## 检测规则
### ASI01 — Prompt Injection
检测通过 f-string、`.format()` 或字符串拼接,将不可信用户输入连接到 LLM prompt 中的行为。
### ASI02 — 工具滥用
标记具有访问 `exec()`、`subprocess`、`os.system()`、shell 工具的 agent,以及不受限制的工具注册和缺失速率限制。
### ASI03 — 数据泄露
检测指向外部 URL 的出站 HTTP 请求、webhook 配置、DNS 泄露模式,以及密钥与网络的关联。
### ASI06 — 不安全的 Eval
标记将用户输入直接用于 `eval()`、`exec()`、`compile()`、`pickle.load()`、未启用 SafeLoader 的 `yaml.load()`,以及 `subprocess(shell=True)` 的行为。
### ASI07 — 凭据暴露
检测硬编码的 API 密钥(sk-、ghp_、AKIA)、私钥、带密码的连接字符串,以及加密钱包种子。
### ASI08 — 上下文篡改
标记缺失 token 限制、无限制的上下文累积,以及将大文件直接加载到 LLM 上下文中的行为。
### ASI10 — 信任边界违规
检测以 root 身份运行的 agent、宿主文件系统访问、自我修改代码,以及通过用户输入直接访问数据库的行为。
## MCP Server 模式
直接从 Claude Code、Cursor 或任何兼容 MCP 的客户端扫描 agent 代码:
```
// ~/.claude/claude_code_config.json
{
"mcpServers": {
"agentguard": {
"command": "python3",
"args": ["-m", "agentguard.mcp_server"]
}
}
}
```
然后询问 Claude:*“扫描我的 agent 代码以查找安全漏洞”*
### MCP 工具
- `scan_agent_code` — 扫描目录/文件中的漏洞
- `list_rules` — 列出所有检测规则及 OWASP 映射
- `get_finding_details` — 获取特定规则的修复指南
## 路线图
- [x] OWASP ASI Top 10 — 覆盖全部 10 个类别
- [x] MCP Server 模式 — 从 Claude Code/Cursor 进行扫描
- [x] SARIF 输出 — 集成 GitHub Code Scanning
- [ ] 发布至 PyPI
- [ ] 利用 LLM 辅助代码审查进行语义分析
- [ ] 语言支持:Rust, Go, Java
- [ ] VS Code 插件
- [ ] GitHub App,用于自动化 PR 审查
## 安全
请参阅 [SECURITY.md](SECURITY.md)。请私下报告漏洞——请勿公开发布 issue。
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
由 [Dockfix Labs](https://github.com/dockfixlabs) 构建。为 AI agent 时代而生。
标签:AI代理, CLI应用, GraphQL安全矩阵, LNA, OWASP ASI, Python, StruQ, 安全扫描器, 无后门, 逆向工具, 错误基检测, 静态代码分析