dockfixlabs/agentguard

GitHub: dockfixlabs/agentguard

AgentGuard 是一款面向 AI Agent 代码的自动化安全扫描器,专门检测提示词注入、工具滥用、数据泄露等 OWASP ASI Top 10 漏洞。

Stars: 1 | Forks: 0

# 🛡️ AgentGuard [![Python 3.10+](https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white)](https://python.org) [![License: MIT](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE) [![CI](https://img.shields.io/badge/CI-GitHub%20Actions-2088FF?style=flat-square&logo=github-actions&logoColor=white)](https://github.com/dockfixlabs/agentguard/actions) [![OWASP ASI](https://img.shields.io/badge/OWASP-ASI%20Top%2010-orange?style=flat-square)](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, 安全扫描器, 无后门, 逆向工具, 错误基检测, 静态代码分析