mcpField
A
audit

audit

github.com/glebis安全40265 次安装2 天前更新
代码仓库

关于 audit

confide:audit 是用于批量检查会话文件中个人信息(PII)的安全技能,适合评估原始或脱敏语料。检测在本地执行,报告仅包含聚合统计,不泄露文本或文件名。

主要功能

  1. 01递归扫描 Markdown 和文本文件
  2. 02分层本地 PII 检测
  3. 03按类型与检测层统计
  4. 04计算脱敏率及残留指标
  5. 05生成 Markdown、JSON 和可选 HTML 报告

适用场景

  1. 01估算原始语料中的 PII 规模
  2. 02检查脱敏语料的残留风险
  3. 03分享统计结果而不暴露文本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/glebis/claude-skills --skill audit

安装后在 Claude Code 中输入/audit确认已加载。

附带文件scripts/audit.py

详细介绍

confide:audit — 面向语料库的纯统计 PII 审计

衡量整个会话文件夹中包含多少 PII,同时绝不暴露任何 PII。审计会对每个文件运行 shared/confide_core.py 中分层的本地检测器栈(regex → Natasha → 本地 LLM),并且只输出汇总数据。这与 real_session_eval 的隐私约定一致:仅在进程内读取文本,只输出计数。

隐私不变量(不得违反)

  • 仅限本地。 不调用云端 API。原始对话文本绝不会离开本机。
  • 输出仅含统计数据。 报告(Markdown + JSON + 可选 HTML)只包含计数和比率——绝不包含对话文本片段,也绝不包含检测到的 PII 值。
  • 不包含文件名。 每个文件的行使用匿名 ID own-00、own-01、… 标识。绝不会写入或打印原始路径/名称。遇到无法读取的文件时,只记录索引和异常类名。
  • 可安全分享。 报告仅包含计数,因此可以分享给云端 Agent,或粘贴到聊天中。PII 会留在本机。

报告内容

  • n_files、文档字符总数 / 平均数 / 最小值 / 最大值
  • spans_by_type(PERSON、EMAIL、PHONE、DATE、…)和 spans_by_layer(regex / natasha / llm)
  • overall_redaction_rate 以及每个会话的脱敏率分布(最小值 / 中位数 / 平均值 / 最大值)
  • 粗略的残留指标:脱敏后仍可检测到的片段——在干净的 RED 语料库中约为 0,在 GREEN 语料库中则是泄漏信号。

运行

将其指向一个文件夹(递归处理每个 .md/.txt 文件;跳过 confide 自身生成的 *.green.md / *.stats.json 输出):

python3 skills/audit/scripts/audit.py FOLDER

选项:

  • --list paths.txt — 同时或改为审计按每行一个绝对路径列出的文件。
  • --layers regex,natasha,llm — 选择检测层(默认值来自配置)。使用 --layers regex 执行完全离线且结果确定的扫描(不使用模型/网络)。
  • --out report.md — 报告路径;同时在同一目录写入同名的 report.json。
  • --html — 同时生成类似 Tufte 风格的信息面板(report.html,仅含计数)。

写入 Markdown + JSON 报告(以及可选的 HTML),并打印汇总结果——全部仅含计数。

RED 与 GREEN

  • RED(原始)语料库: 在任何脱敏之前,评估 PII 问题的规模。
  • GREEN(已脱敏)语料库: 残留指标和剩余的 spans_by_type 能说明脱敏是否在大规模场景下有效。

运行后

  1. 报告汇总结果(文件数、按类型/层划分的片段总数、脱敏率分布、残留指标)——绝不要粘贴 PII。
  2. 如果 GREEN 语料库中的残留并非微不足道,请引导用户使用 confide:anon 重新脱敏,并使用 confide:red 探测重新识别风险。

设置

层的可用性(Natasha、通过 Ollama 运行的本地 LLM)由配置决定——如果尚未安装,请运行 confide:setup。--layers regex 始终可离线运行。

评论

支持 Markdown