静态调用图分析
从字节码、AST 和源代码中提取调用图。跟踪从入口点到易受攻击符号的路径。
- • 语言支持:Go、Rust、C#、Java、Python、JavaScript、C/C++
- • 处理虚拟调度、接口调用、保守近似的反射
- • 生成每个节点具有可达性状态的 DAG
可达性作为证据
三层分析 - 静态调用图、二进制符号匹配、运行时 eBPF 探针 - 生成签名的 DSSE 证明,可显著减少误报。
每一层都提供逐渐更强有力的证据,证明易受攻击的函数可以(或不可)从您的应用程序代码访问。
从字节码、AST 和源代码中提取调用图。跟踪从入口点到易受攻击符号的路径。
将易受攻击的符号与编译的二进制导出进行匹配。确认代码确实已链接。
可选的生产分析。捕获执行期间的实际函数调用。
结果:显著减少误报。重点关注 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)。未知节点有助于风险评分,而不是被忽略。
每个可达性分析都会生成存储在内容寻址存储中的加密签名证明。
内容寻址存储路径
cas://reachability_graphs/<hh>/<sha>.tar.zst
cas://runtime_traces/<hh>/<sha>.tar.zst
基于 Tetragon 的可选检测可捕获生产中的实际函数执行,提供最高置信度的可达性证据。
捕获的探测数据
symbol_id: 规范符号标识
code_id: 代码段标识
hit_count: 执行频率
loader_base: 内存基址
cas_uri: 内容寻址引用
探针批量向 /api/v1/observations 提交观察结果。每个观察都包含底层工件的 CAS URI。
安装Stella Ops 并开始通过三层分析生成签名的可达性证明。