Trailmark 将代码转换为图。 笔记

Trailmark 将代码转换为图。

Trailmark 是一个新的开源库,能够将源代码转换为可查询的调用图。该图表示函数、类及其关系,并包含语义元数据。Claude 技能可以通过 Python API 直接与该图交互。传统的安全分析通常依赖发现列表,但攻击者以图的方式思考,这使得防御者处于劣势。Trailmark 旨在为 Claude 等 AI 模型提供基于图的推理能力。 变异测试是一种通过引入微小代码变更来评估测试质量的方法,会产生大量存活的变异体。这些变异体的扁平列表无法区分等价变异体、死代码或真正具有意义的变异体。Trailmark 使 Claude 能够根据安全相关性对这些变异体进行分诊,例如从不可信输入的可到达性角度进行分析。该库分三个阶段处理代码:使用 tree-sitter 进行解析以生成抽象语法树(AST),索引到高性能图中,并查询调用者、被调用者和攻击面等信息。 Trailmark 支持十七种编程语言,并提供八个预构建的 Claude Code 技能。这些技能可协助完成变异体分诊、测试向量生成和协议图绘制等任务。例如,"genotoxic"技能利用图分析对存活变异体进行分类;"vector-forge"技能则生成测试向量以填补已识别的覆盖率缺口。Trailmark 还集成了静态分析器和审计工具的发现结果,并将其映射到代码图上。 在加密库的内部使用中,我们发现等价变异体在测试充分的代码中往往占多数,而扁平列表会遗漏这一细节。图分析还揭示了架构瓶颈,例如 libhydrogen 中单个置换原语影响了所有加密操作。对于缺乏标准化测试向量的新颖构造,变异测试通过识别测试未能约束代码行为的位置而证明其价值。在各种代码库中,出现了常见模式:算术模块具有较大的爆炸半径,编解码器解析器是模糊测试的理想目标,而基于属性的测试往往稀疏。最终,Trailmark 作为连接不同分析工具的纽带,使更针对性的安全评估成为可能。