跳转到内容
EN

安全审计的评分方式

点击运行审计或运行 hk audit 时会执行审计。从市场、Git 或本地文件夹安装一个 skill 后,也会立即审计一次。用安装到智能体复制 skill 时,只有来源 skill 记录了来源,新副本才会被审计。其他安装和所有更新,都要等到下一次完整审计。

  1. 读取扩展。skill 读取 SKILL.md,MCP server 读取命令、参数、环境变量和 header,hook 读取命令,plugin 读取脚本文件。CLI 读取的是它在内置清单中的条目,以及它的安装方式。
  2. 去除不可见字符。这样零宽字符就无法拆散模式。
  3. 运行 20 条规则。查出的每个问题都标有严重程度。
  4. 扣分。一条规则查出的第一个问题按严重程度扣分:严重扣 25 分,高扣 15 分,中扣 8 分,低扣 3 分。同一条规则再查出问题,每个只扣 1 分。分数最低为 0。
  5. 划定等级。80 分及以上为安全,60 到 79 分为低风险,低于 60 分为需复核。

例如,某个 skill 查出一个提示词注入问题,且来源未知,得分即为 100 − 25 − 3 = 72,属于低风险。

规则名称与安全审计页面上的一致。

严重程度规则
严重提示词注入、远程代码执行、明文密钥、绕过安全机制
高过宽权限、权限组合风险、CLI 凭据存储、MCP 命令注入
中Skill 调用键大小写、dsh !!js 环境变量缺少回退、供应链风险、CLI 网络访问、CLI 权限范围
低来源未知
分两档凭据窃取(严重或高)、危险命令(hook 中为高,其他为中)、CLI 二进制来源(高或中)、CLI 综合风险(高或低)、Plugin 来源可信度(中或低)、Plugin 生命周期脚本(中或低)

文本规则查找以下内容:

  • 提示词注入检查 skill 和 plugin 里的「ignore previous instructions」、「disregard previous」、「you are now a」、「new system prompt」、「override system prompt」和 [SYSTEM]。
  • 远程代码执行查找用管道交给 shell 的 curl 或 wget、先下载到 /tmp/ 再运行的 curl、输出再接管道的 base64 -d,以及 eval(。
  • 凭据窃取查找 ~/.ssh 下的密钥、known_hosts 和 config,以及 .env、.netrc、.pgpass 和云服务凭据文件。若文本同时向外发送数据,则为严重。
  • 明文密钥查找以 sk-、ghp_、gho_、AKIA、xoxb- 或 xoxp- 开头的词,既查文本,也查 MCP 的环境变量和 header 值。
  • 绕过安全机制查找 --no-verify、--force、--yes、allowedTools: "*",以及提到跳过或绕过确认的句子。

HarnessKit 在扫描时推断 5 类权限。这些只是供你查看的标签,HarnessKit 并不按它们做任何限制。

  • 文件系统。skill 或 hook 里 ~/…、/etc/… 这类路径,或者 MCP 参数里的绝对路径。每个 skill 都会显示这一类。
  • 网络。从 http:// 和 https:// URL 中提取的域名。用 npx 或 uvx 启动的 MCP server 一律记为任意域名(*)。远程 MCP server 记为它的主机。
  • Shell。skill 中 bash、sh、zsh 或 shell 代码块中每行的第一个词,或者 MCP server、hook 的命令。
  • 数据库。提到 PostgreSQL、MySQL、MariaDB、SQLite、MongoDB 或 Redis。
  • 环境变量。仅限 MCP server:记录环境变量和 header 的名称,从不记录值。

推断 plugin 的权限时,HarnessKit 读取它文件夹顶层的脚本和 .json 文件,不读取子文件夹。每个 plugin 都会显示 Shell 和文件系统。CLI 的权限由两部分组成:HarnessKit 掌握的二进制文件信息(API 域名和凭据文件),加上它的子 skill 和 MCP server 的权限。

  • crates/hk-core/src/auditor/rules.rs 按运行顺序列出 20 条规则。
  • crates/hk-core/src/auditor/rules/ 存放每条规则的模式。
  • crates/hk-core/src/auditor/mod.rs 去除不可见字符,并计算评分。
  • crates/hk-core/src/scanner.rs 在扫描时推断权限。
  • crates/hk-core/src/service.rs 决定每个扩展的审计读取哪些内容。