koach08/agentsift

GitHub: koach08/agentsift

针对AI代理插件、技能和MCP包的安全扫描工具,填补了传统安全工具无法检测AI代理生态特有威胁的空白。

Stars: 0 | Forks: 0

AgentSift

AI 代理插件、技能和 MCP 包的安全扫描器

npm audit for the AI agent ecosystem

功能 | 快速开始 | 生态系统 | 贡献指南 | 路线图

## 问题背景 AI 代理生态系统正遭受攻击。数据令人担忧: - **12% 的 ClawHub 包**包含恶意有效载荷([ClawHavoc 事件](https://cyberpress.org/clawhavoc-poisons-openclaws-clawhub-with-1184-malicious-skills/)) - **41.7% 的 2,890+ OpenClaw 技能**存在严重安全漏洞 - **43% 的 MCP 服务器**存在命令注入漏洞 - **43% 的 MCP 服务器**存在 OAuth 认证缺陷 - **单次供应链攻击活动**造成超过 1600 万美元的损失 传统安全扫描工具(Snyk、Trivy、Semgrep)是为传统软件设计的。它们无法检测 AI 代理生态系统特有的威胁:工具投毒、通过插件进行提示词注入、通过 MCP 服务器窃取凭证,以及对自主代理的行为操纵。 **AgentSift 填补了这一空白。** ## 功能 - **静态分析** -- 检测可疑模式:混淆代码、隐藏网络调用、凭证访问、加密货币钱包定向 - **行为沙箱** -- 在隔离环境中执行插件并监控实际系统调用、网络连接和文件访问 - **信誉评分** -- 基于作者历史、下载模式、与已知恶意软件的代码相似度以及社区信号进行风险评分 - **SBOM 生成** -- 生成 CycloneDX/SPDX 格式的软件物料清单以满足合规要求 - **CI/CD 集成** -- 输出 SARIF 格式以支持 GitHub Advanced Security、GitLab SAST 和其他平台 - **检测规则** -- 可扩展的基于 YAML 的规则引擎(可使用内置检测规则或自定义规则) ## 快速开始 ``` # 安装 pip install agentsift # 扫描 ClawHub skill agentsift scan clawhub:cryptocurrency-trader # 扫描来自 npm 的 MCP 包 agentsift scan npm:@modelcontextprotocol/server-postgres # 扫描本地插件目录 agentsift scan ./my-agent-plugin/ # 使用完整行为分析进行扫描(较慢,但更彻底) agentsift scan --deep clawhub:cryptocurrency-trader # 输出 SARIF 用于 CI/CD agentsift scan --format sarif -o results.sarif clawhub:some-skill # 生成 SBOM agentsift sbom --format cyclonedx clawhub:some-skill ``` ## 抑制误报 使用 `.agentsift-ignore` 文件或 CLI 标志来抑制已知误报: ``` # 通过 CLI 忽略特定规则 agentsift scan --ignore-rules AS-021,AS-022 ./my-plugin/ # 或在扫描目录中放置 .agentsift-ignore 文件 ``` `.agentsift-ignore` 格式: ``` # 忽略特定规则 ID rule:AS-021 rule:AS-010,AS-011 # 通过 glob 模式忽略文件 file:vendor/** file:tests/** file:*.test.js ``` ## 支持的生态系统 | 生态系统 | 状态 | 描述 | |-----------|--------|-------------| | **ClawHub** | `v0.1` | OpenClaw 技能市场 | | **MCP (npm)** | `v0.1` | npm 上的 Model Context Protocol 服务器 | | **MCP (PyPI)** | `v0.2` | PyPI 上的 MCP 服务器 | | **LangChain Hub** | 计划中 | LangChain 工具和链 | | **CrewAI Tools** | 计划中 | CrewAI 工具包 | | **自定义** | `v0.1` | 任何包含代理代码的本地目录 | ## 工作原理 ``` +-----------------+ | agentsift | | scan | +--------+--------+ | +--------------+--------------+ | | | +--------v---+ +------v------+ +----v--------+ | Static | | Behavioral | | Reputation | | Analysis | | Sandbox | | Scoring | +--------+---+ +------+------+ +----+--------+ | | | +--------------+--------------+ | +--------v--------+ | Risk Score & | | Report Output | | (JSON/SARIF/ | | CycloneDX) | +-----------------+ ``` ### 静态分析 扫描源代码以检测与恶意 AI 代理插件相关的已知模式: - **网络数据泄露**:隐藏的 HTTP 调用、DNS 隧道、WebSocket 连接到未知主机 - **凭证收集**:访问环境变量、SSH 密钥、浏览器凭证存储、加密货币钱包 - **代码混淆**:Base64 编码的有效载荷、`eval()`/`exec()` 使用、动态导入 - **提示词注入**:旨在操纵宿主 AI 代理的嵌入指令 - **权限提升**:试图逃逸沙箱、修改系统文件或提升权限 ### 行为沙箱 在隔离的 Docker 容器中在 `strace` 下执行插件并监控: - **文件访问** -- 读取 SSH 密钥、AWS/GCP/Azure 凭证、加密货币钱包、浏览器存储、`/etc/shadow`、`/proc/self/environ` - **网络连接** -- outbound `connect()` 调用到非回环地址(报告 IP 和端口) - **进程生成** -- 执行 `curl`、`wget`、`nc`、`ssh`、带 `-c` 标志的 shell 命令、`chmod`/`base64` - **超时检测** -- 挂起或停滞的包(可能是反分析) ``` # 安装沙箱依赖项 pip install agentsift[sandbox] # 使用行为分析运行 agentsift scan --deep clawhub:suspicious-skill # 沙箱发现结果整合到相同的风险评分和报告中 ``` 容器隔离:只读包挂载、256MB 内存限制、50% CPU 限制、非特权用户、默认无网络。 ### 信誉评分 基于以下因素计算 0-100 的风险评分: - 作者账户年龄和验证状态 - 下载数量和增长模式 - 与已知恶意包的代码相似度(通过模糊哈希) - 依赖链分析 - 社区报告和标记 ## 检测规则 AgentSift 使用基于 YAML 的检测规则: ``` # rules/credential-access.yaml id: AS-001 name: environment-variable-exfiltration severity: critical description: Plugin accesses sensitive environment variables and makes network calls patterns: - type: code match: "os.environ|process.env" context: "network_call_in_same_scope" - type: behavior match: "dns_query_after_env_read" tags: [credential-theft, exfiltration] ecosystems: [clawhub, mcp, npm] ``` 编写自定义规则并贡献回社区! ## CI/CD 集成 ### GitHub Actions ``` - name: Scan MCP dependencies uses: agentsift/agentsift-action@v1 with: targets: "mcp-packages.json" fail-on: "high" ``` ### GitLab CI ``` agentsift-scan: image: agentsift/agentsift:latest script: - agentsift scan --format sarif -o gl-agentsift-report.sarif ./ artifacts: reports: sast: gl-agentsift-report.sarif ``` ## 与现有工具的比较 | 功能 | AgentSift | Cisco MCP Scanner | Snyk | Trivy | |---------|-----------|-------------------|------|-------| | AI 代理插件扫描 | 是 | 仅 MCP | 否 | 否 | | 行为沙箱 | 是 | 否 | 否 | 否 | | ClawHub 支持 | 是 | 否 | 否 | 否 | | MCP 服务器扫描 | 是 | 是 | 否 | 否 | | 提示词注入检测 | 是 | 否 | 否 | 否 | | SBOM 生成 | 是 | 否 | 是 | 是 | | SARIF 输出 | 是 | 否 | 是 | 是 | | 自定义检测规则 | 是 | 有限 | 否 | 是 | ## 项目状态 请参阅[路线图](了解计划中的功能和里程碑。 ## 安全 发现 AgentSift 本身存在漏洞?请参阅 [SECURITY.md](./SECURITY.md) 了解负责任的披露流程。 ## 许可证 Apache License 2.0 -- 参见 [LICENSE](./LICENSE) ## 致谢 本项目参考了以下研究: - [OWASP Top 10 for Agentic Applications](https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/) - [Cisco MCP Scanner](https://github.com/cisco-ai-defense/mcp-scanner) - [Meta LlamaFirewall](https://github.com/meta-llama/LlamaFirewall) - [NVIDIA NemoClaw](https://github.com/NVIDIA/NemoClaw) - [Ona Research on AI sandbox escapes](https://ona.com/stories/how-claude-code-escapes-its-own-denylist-and-sandbox)

秉持 AI 代理应该默认安全的理念构建。

标签:AI安全, Chat Copilot, CI/CD安全, CISA项目, DevSecOps, IP 地址批量处理, Llama, MCP安全, OAuth安全, SARIF, SBOM, 上游代理, 云安全监控, 代理安全, 凭据安全, 加密货币安全, 合规检测, 命令注入检测, 威胁情报, 安全扫描, 开发者工具, 插件安全, 搜索语句(dork), 时序注入, 沙箱检测, 硬件无关, 请求拦截, 逆向工具, 静态分析