oats-scan Skill 技能

Agent Skill 安全审计工具

oats-scan — Agent Skill 安全审计工具

技能简介

oats-scan 是一款本地化的 Agent Skill 安全审计工具,专门解决一个被长期忽视的问题:用户安装了大量 AI Skill(告诉 AI 在电脑上执行命令的配置文件),但既不知道这些 Skill 实际会让 AI 执行什么操作,也没有任何工具能快速揭示这一点。oats-scan 读取本机已安装的 Skill 文件,在 30 秒内将其中所有命令归类为「安全」「需人工确认」或「危险」,并将危险操作高亮显示,全程无需账号、不上传任何数据。


核心能力

  • 命令分类:将 Skill 中的命令归入 33 个后果类别(consequence class),每个类别附带 0~100 的严重度评分
  • 危险操作识别:严重度 ≥75 的类别被标记为「永远不能无人值守运行」,包括破坏性命令、远程代码执行、凭据访问等
  • 来源追溯:--files 参数可显示每个危险命令来自哪个 Skill 文件
  • CI 集成:--strict 参数在发现任何需审核操作时退出码为 1,适合自动化检查流程
  • 完全本地:不调用任何外部 API,不上传任何文件,纯本地分类
  • 跨平台支持:支持 macOS(Intel + Apple Silicon)、Linux(x86-64 + aarch64)、Windows x86-64
  • 零依赖:仅需 Python 3.9+,pip list 只会显示 oats-scan 本身
  • 确定性结果:分类器是编译后的确定性算法,同一命令每次分类结果一致,无需联网复现

安装配置

前置要求:Python 3.9 或更高版本

一键安装:

pip install oats-scan

或使用 pipx(推荐,避免污染系统环境):

pipx install oats-scan

验证安装:

oats-scan

使用步骤

  1. 安装:pip install oats-scan
  2. 基础扫描(扫描本机所有 Skill 位置 ~/.claude、~/.cursor、~/.codex 等):
    oats-scan
  3. 查看每个命令来自哪个 Skill(来源追溯):
    oats-scan --files
  4. 输出机器可读格式(JSON,供其他工具处理):
    oats-scan --json
  5. 严格模式(CI 使用,发现任何危险操作则退出码为 1):
    oats-scan --strict
  6. 扫描指定项目目录:
    oats-scan ~/my-project

适用场景

  • 个人用户自查:安装了多个 Skill 后想了解每个 Skill 实际会让 AI 执行什么命令
  • 安全审计:企业安全团队检查开发者的 AI 编程环境是否引入了过高风险的操作
  • CI/CD 集成:在持续集成流程中加入 Skill 安全检查,确保代码仓库中的 Skill 配置符合安全基线
  • 合规检查:金融机构、医疗机构等高合规要求组织审查 AI 编程工具的权限边界
  • Skill 选型参考:评估不同 Skill 的风险级别,决定是否允许在特定项目中使用

适用人群

  • AI 编程工具用户:使用 Claude Code、Cursor、Windsurf、GitHub Copilot 等工具的开发者
  • 企业安全团队:负责审核和管控 AI 编程工具使用规范的 IT 安全人员
  • DevSecOps 工程师:希望在 CI 流程中引入 AI Skill 安全检查的自动化专家
  • 高合规行业从业者:金融、医疗、政府等对代码执行有严格管控要求的行业人员

工作原理

oats-scan 的核心是一个编译后的确定性分类器,基于命令字符串本身进行分类,不依赖任何机器学习模型或外部 API。具体流程:

  1. 读取本机 Skill 目录(~/.claude、~/.cursor 等)中的 markdown 文件内容
  2. 从 Skill 文件中提取所有 fenced shell 代码块
  3. 将每个命令与 33 个后果类别进行模式匹配
  4. 输出分类结果,严重度 ≥75 的类别被标记为「always needs a person」
  5. 分类器作为编译后的二进制分发,不依赖 Python 环境外的其他依赖

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论