可达性作为证据

证明存在漏洞的代码是否确实存在致电

三层分析 - 静态调用图、二进制符号匹配、运行时 eBPF 探针 - 生成签名的 DSSE 证明,可显著减少误报。

三层分析

每一层都提供逐渐更强有力的证据,证明易受攻击的函数可以(或不可)从您的应用程序代码访问。

层 1

静态调用图分析

从字节码、AST 和源代码中提取调用图。跟踪从入口点到易受攻击符号的路径。

  • • 语言支持:Go、Rust、C#、Java、Python、JavaScript、C/C++
  • • 处理虚拟调度、接口调用、保守近似的反射
  • • 生成每个节点具有可达性状态的 DAG
层 2

二进制符号分析

将易受攻击的符号与编译的二进制导出进行匹配。确认代码确实已链接。

  • •从ELF、PE、Mach-O中提取符号表
  • • 交叉引用 DWARF/PDB 调试信息(如果可用)
层 3

运行时eBPF 探针

可选的生产分析。捕获执行期间的实际函数调用。

  • • 基于 Tetragon 的 eBPF 工具
  • •记录symbol_id、code_id、hit_count、 loader_base
  • • 隐私保护:未捕获任何参数值

结果:显著减少误报。重点关注 12 个可到达的 CVE,而不是 487 个理论上的。

节点哈希连接

可达性证据经过内容寻址,以进行重复数据删除和验证。节点哈希可实现版本之间的高效差异。

节点哈希

SHA256(normalize(purl) + ":" + normalize(symbol))

路径哈希

SHA256(entryNodeHash + ":" + joinedIntermediateHashes + ":" + sinkNodeHash)

Top-K 重要路径保留在证据束中。路径按执行频率(来自运行时)或调用深度(来自静态)进行排名。

未知作为一流状态

当分析无法确定可达性时,会显式跟踪不确定性 - 不会隐藏或默默地假定安全。

可达性桶默认权重
入口点1.0
直接调用0.85
运行时确认0.45
未知0.5
不可达0.0

所有路径的最终得分 = max(bucket_weights)。未知节点有助于风险评分,而不是被忽略。

DSSE签名证明

每个可达性分析都会生成存储在内容寻址存储中的加密签名证明。

  • DSSE 带有 in-toto SLSA 谓词的信封格式
  • 无需网络访问即可由审核员验证
  • 确定性重放产生位相同的结果
  • 存档图形和跟踪以供离线验证

内容寻址存储路径

cas://reachability_graphs/<hh>/<sha>.tar.zst

cas://runtime_traces/<hh>/<sha>.tar.zst

eBPF 运行时探针

基于 Tetragon 的可选检测可捕获生产中的实际函数执行,提供最高置信度的可达性证据。

捕获的探测数据

symbol_id: 规范符号标识

code_id: 代码段标识

hit_count: 执行频率

loader_base: 内存基址

cas_uri: 内容寻址引用

探针批量向 /api/v1/observations 提交观察结果。每个观察都包含底层工件的 CAS URI。

准备好显著减少误报了吗?

安装Stella Ops 并开始通过三层分析生成签名的可达性证明。