chayan-bit/pentimento

GitHub: chayan-bit/pentimento

Pentimento 是一个无需运行模型即可对神经网络权重进行静态检查、比对、指纹识别和威胁扫描的工具链,旨在为 AI 模型供应链提供类似二进制安全领域的溯源与审查能力。

Stars: 0 | Forks: 0

# Pentimento **用于神经网络权重的静态分析工具链——无需运行模型,即可检查、比对、指纹识别和扫描模型检查点。** **状态:设计阶段。** 架构、威胁模型和规则语言详见 [`docs/`](docs/);实现进度在[路线图](docs/roadmap.md)中追踪。 欢迎现在提交设计审查的 issue 和 PR——这正是社区审查成本最低的阶段。 ## 问题所在 我们对待模型权重的方式,就像业界在 1995 年对待二进制文件一样:将其视为我们要么运行要么不运行的不透明数据块。 如今,关于检查点的每一个安全和溯源问题,都是通过*动态*方式来回答的——运行它、探测它、评估它。 但是,对模型进行动态分析是不够的,原因与对二进制文件进行动态分析不够一样:在某个罕见输入下触发的后门永远不会出现在你的评估套件中,就像直到通过特定日期检查才会发作的恶意软件一样。 与此同时,供应链已经呈爆炸式增长:公共枢纽上有数以百万计未经审查的检查点,对微调进行再微调却没有任何记录的谱系,以及企业在部署下载的权重时,根本没有进行等效的防病毒扫描。 二进制安全领域在过去 30 年里建立起来的东西——反汇编器、比对工具、签名扫描器、溯源数据库——在权重领域根本不存在: - 现有的模型扫描器([modelscan](https://github.com/protectai/modelscan)、picklescan)会检查**序列化格式**中是否存在执行代码的 payload。它们从不从语义上查看权重。 - 机制可解释性会查看模型内部,但需要运行它们,且其目标是科学研究而非从业者工具。 - 模型合并工具([mergekit](https://github.com/arcee-ai/mergekit))会操作权重,但不会对其进行分析。 - 关于权重指纹识别和静态后门检测的学术研究虽然存在,但都是零散的一次性论文仓库,而不是统一、持续维护的工具链。 还没有人打造出这个领域的 IDA Pro。Pentimento 就是那个缺失的静态工具链。 ## Pentimento 是什么 基于共享中间表示的五大能力,全部直接对检查点文件进行操作——不需要 GPU、不需要推理、不需要训练数据。 | 能力 | 二进制安全类比 | 它能解答什么问题 | |---|---|---| | **Inspect** | 反汇编器 / `readelf` | 这个检查点里到底有什么?架构、张量清单、dtype/布局异常、元数据不一致。 | | **Diff** | BinDiff | 这次微调到底改变了什么?逐张量的差值、涉及层映射图、低秩结构恢复(“这是一个嫁接到第 12-18 层的 rank-16 LoRA”)。 | | **Fingerprint** | FLIRT 签名 / ssdeep | 这个模型是从哪里来的?能够在微调、排列和精度变化中保留下来的不变谱系指纹。 | | **Scan** | YARA | 这个检查点是否匹配已知恶意或已知显著的模式?基于权重空间特征的声明式社区规则。 | | **Anomaly** | 加密段 / 熵启发式分析 | 这里是否有任何偏离该架构检查点经验分布群体的内容? | 完整模块设计:[docs/architecture.md](docs/architecture.md)。 规则语言:[docs/rules.md](docs/rules.md)。 ## Pentimento 不是什么(在提交显而易见的 issue 之前请阅读此部分) 我们已经预先写明了这些局限性,因为一个夸大其词的安全工具比没有工具更糟糕。 1. **它不是后门预言机。** Goldwasser、Kim、Vaikuntanathan 和 Zamir(2022)证明了在某些情况下,可以在模型中植入在密码学意义上*不可检测的*后门。 没有任何静态工具能够承诺抓住一个资源达到最高级别的攻击者,我们也不能。 与 YARA 和防病毒软件一样,我们的目标是**提高攻击者的成本**,并可靠地捕获*已知的植入族和低成本的攻击*——这占据了现实世界中滥用行为的绝大多数。 有关我们涵盖和不涵盖的显式攻击者层级,请参阅[威胁模型](docs/threat-model.md)。 2. **它不输出法律结论。** 权重相似度是*证据*,而不是证明。 Pentimento 报告的是经过校准的发现(“与 Llama-3.1-8B 的谱指纹相匹配,置信度 0.97,方法为 AWM 风格的不变量”),而绝不会出现“违反许可”之类的结论字符串。 将证据转化为主张是带有律师的人类的工作。 3. **已知的原生 diff 机制存在缺陷,因此我们不采用它。** 权重空间具有庞大的对称群——神经元/注意力头排列、缩放,以及残差流的完全正交旋转(这是 SliceGPT 背后的计算不变性结果)——在这些对称性下,两个功能完全相同的检查点在数值上看起来毫无关联。 仅靠排列对齐(Git Re-Basin 风格)对于 transformer 来说可被证明是不够的,因此 Pentimento 的主要路径是**不变特征**(奇异值谱、不变注意力乘积签名、CKA),它们在解析上对对称群进行了求商处理,并将显式对齐作为一种带有残差标记的尽力而为模式。 完整的对称性目录及每个主张的验证状态在 [docs/architecture.md](docs/architecture.md) 中。 4. **“统计异常值”需要的是参考群体,而不是主观感觉。** 异常检测严格定义为相对于经验参考语料库进行的衡量,这些语料库由相同架构的公共枢纽检查点构建而成,并随附测量的误报率。 如果你的架构还没有语料库,Pentimento 会提示“无基准”,而不是盲目猜测。 5. **它必须在 70B+ 规模下工作,因此任何操作都绝不会加载完整模型。** 每一项分析都是基于对 safetensors/GGUF 的流式、内存映射、逐层访问来定义的——加载器契约禁止将检查点具体化。 ## 横向对比 | | 序列化扫描器(modelscan、picklescan) | 合并/操作工具(mergekit、ckpt) | 学术指纹库(SeedPrints、AWM、GhostSpec) | 机制可解释性 | **Pentimento** | |---|---|---|---|---|---| | 从语义上查看权重*值* | ✗ | 部分 | ✓ | ✓ | ✓ | | 无需推理即可运行 | ✓ | ✓ | 多数情况下 | ✗ | ✓ | | 统一的工具链,而非某篇论文的方法 | ✓ | ✓ | ✗ | ✗ | ✓ | | 社区可扩展签名 | ✗ | ✗ | ✗ | ✗ | ✓ | | 发布了诚实的威胁模型 | 部分 | 不适用 | 极少 | 不适用 | ✓ | Pentimento 将学术研究视为其标准库,而非竞争对手:文献中的指纹识别方法成为了统一 CLI 和报告格式背后的可插拔后端。 引用和各论文的定位:[docs/related-work.md](docs/related-work.md)。 ## 计划接口 ``` $ pnt inspect model.safetensors $ pnt diff base.safetensors finetune.safetensors # touched layers, low-rank grafts $ pnt lineage mystery-model/ --index hub-reference.idx # nearest ancestors + confidence $ pnt scan model.gguf --rules community-rules/ # YARA-style weight signatures $ pnt anomaly model.safetensors --corpus llama-8b.ref # population outliers + FP rate ``` 所有功能也都以 Python API 的形式提供,并且报告会输出机器可读的 JSON(受 SARIF 启发),可用于 CI 门禁。 ## 文档 | 文档 | 内容 | |---|---| | [docs/architecture.md](docs/architecture.md) | 模块设计、Weight IR、规范化、流式加载器契约 | | [docs/threat-model.md](docs/threat-model.md) | 攻击者层级、在/不在范围内、理论限制、检测理念 | | [docs/rules.md](docs/rules.md) | 权重签名规则语言(规范草案) | | [docs/related-work.md](docs/related-work.md) | 带注释的现有技术:论文、工具以及 Pentimento 从中借鉴的内容 | | [docs/roadmap.md](docs/roadmap.md) | 从文档阶段到枢纽规模扫描的分阶段计划 | | [docs/faq.md](docs/faq.md) | 对最尖锐的反对意见的抢先解答 | ## 贡献 期待设计阶段的贡献:对威胁模型的对抗性审查、规则语言反馈、我们遗漏的指纹识别方法,以及参考语料库方法论。 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [SECURITY.md](SECURITY.md)。 ## 许可证 [Apache-2.0](LICENSE)。
标签:Linux系统监控, 云安全监控, 人工智能, 实时告警, 文档结构分析, 模型安全, 用户模式Hook绕过, 神经网络模型, 逆向分析, 逆向工具, 静态分析