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), 时序注入, 沙箱检测, 硬件无关, 请求拦截, 逆向工具, 静态分析