Skill Scanner — 智能体技能安全扫描器
针对 AI Agent 技能的安全扫描工具,识别提示注入、数据外泄和恶意代码。
证据显示:扫描器默认仅进行静态分析,不自动上传文件;LLM和VirusTotal等外部服务需显式启用并提供API密钥;文档明确说明扫描结果需人工复核。扣分原因:未发现明确的用户确认机制(如扫描前提示),且外部服务调用可能发送数据,但未提供数据流透明度的详细说明。
证据显示:项目有完整的测试套件和CI配置,依赖锁定在uv.lock中,且提供了失败时的错误信息。扣分原因:未提供详细的故障恢复机制或错误处理文档。
证据显示:支持多种技能格式(OpenAI Codex、Cursor、Claude Code),提供lenient模式和非标准格式扫描,且支持自定义策略和规则。扣分原因:未明确说明不同环境(如CI、本地)的适配细节。
证据显示:文档结构清晰,包含安装、快速开始、CLI选项、示例输出等;提供Apache 2.0许可证;有版本标签和变更日志链接。扣分原因:未提供详细的变更日志内容,且维护责任未明确指定。
证据显示:提供多种输出格式(SARIF、HTML、JSON等),适合CI/CD集成;扫描器针对Agent Skills安全检测,具有明确的价值。扣分原因:未提供性能基准或与其他工具的对比。
证据显示:README中明确区分了检测结果和保证,且提供了架构文档和威胁分类。扣分原因:未提供独立的第三方验证或交叉验证证据。
- 外部服务(LLM、VirusTotal、AI Defense)可能发送技能内容到第三方,需谨慎配置API密钥和网络策略。
- 扫描结果不保证安全,需人工复核,尤其在高风险场景。
- 未提供回滚机制,若扫描器误报可能导致CI失败,需配置适当的失败策略。
这个 Agent 能做什么,适合哪些场景?
Skill Scanner 是一个由 Cisco AI Defense 团队开发的最佳努力型安全扫描器,用于检测 AI Agent 技能中的潜在威胁。它结合了基于模式的检测(YAML + YARA)、LLM 语义分析和行为数据流分析,以最大程度地覆盖可能的风险,同时减少误报。该工具支持 OpenAI Codex Skills 和 Cursor Agent Skills 格式,并可通过 --lenient 模式扫描 Claude Code 命令等非标准格式。它提供命令行界面、Python SDK 和 GitHub Actions 集成,可输出 SARIF 格式以便在 CI/CD 中使用。该项目基于 Apache 2.0 许可证开源,要求 Python 3.10+。
Skill Scanner 读取技能目录,扫描技能元数据文件和脚本,检测恶意模式。它包含多个分析引擎:静态分析使用 YAML 和 YARA 规则,字节码分析验证 .pyc 文件完整性,管道分析检查 shell 管道中的命令污染,行为分析使用 AST 数据流分析,LLM 分析器通过 API 进行语义评估,另有元分析器用于过滤误报,以及 VirusTotal 和 Cisco AI Defense 云服务集成。用户可通过 CLI 命令如 skill-scanner scan 或 scan-all 触发扫描,也可通过 Python SDK 编程调用。输出支持 summary、json、markdown、table、sarif 和 html 等格式,并提供了 fail-on-severity 等选项支持 CI 失败。
- 软件开发者在将技能纳入代码库前,使用 CLI 命令扫描单个技能目录以发现潜在风险。
- CI/CD 工程师将 GitHub Actions 工作流集成到仓库,在每次 PR 时自动扫描 .cursor/skills 目录,并在 PR 中产生内联注释。
- 安全团队对技能仓库进行递归扫描,使用 scan-all --recursive 和 --check-overlap 检测跨技能描述重叠的威胁。
- 使用 --use-llm 和 --enable-meta 的团队进行深度语义分析,并利用元分析器减少误报。
- 需要遵循严格安全策略的团队,通过 --policy strict 或自定义策略文件强制执行安全基线。
这个 Agent 有哪些优点和局限?
- 多引擎检测:同时使用静态、行为、LLM 和云服务分析,提高覆盖范围。
- 提供预提交钩子和 GitHub Actions 集成,方便在开发流程中自动扫描。
- 支持多种输出格式,包括 SARIF,可直接用于 GitHub Code Scanning。
- 需要配置外部 API 密钥(如 LLM 分析器需要 SKILL_SCANNER_LLM_API_KEY)才能使用完整功能。
- 扫描结果可能产生误报,需要结合人工审查,不能完全自动化决策。
- 对非标准技能格式的支持需要 --lenient 模式,可能降低准确性。
如何安装或部署这个 Agent?
安装前需具备 Python 3.10+ 和 uv 或 pip。使用 uv:uv pip install cisco-ai-skill-scanner;使用 pip:pip install cisco-ai-skill-scanner。可选安装云提供商额外依赖:如 pip install cisco-ai-skill-scanner[bedrock]、[google]、[vertex]、[azure] 或 [all]。
如何使用这个 Agent?
首次使用可运行 skill-scanner 启动交互式向导。或直接使用 CLI:skill-scanner scan /path/to/skill --use-llm --enable-meta。设置环境变量 SKILL_SCANNER_LLM_API_KEY 和 SKILL_SCANNER_LLM_MODEL 以启用 LLM 分析。可使用 scan-all --recursive 递归扫描多个技能,scan-repo owner/repo 扫描 GitHub 仓库。生成 SARIF 输出以集成到 GitHub Code Scanning:skill-scanner scan-all ./skills --fail-on-severity high --format sarif --output results.sarif。Python SDK 示例:from skill_scanner import SkillScanner; from skill_scanner.core.analyzers import BehavioralAnalyzer; scanner = SkillScanner(analyzers=[BehavioralAnalyzer()]); result = scanner.scan_skill("/path/to/skill")。