二进制等价的不同层次用于比较来自不同构建的二进制文件
密码学与安全
2025-04-10 v2 软件工程
摘要
为应对软件供应链安全挑战, 多个组织已创建基础设施, 独立构建商业开源项目并发布所得二进制文件。构建平台的可变性可增强安全性, 因其 facilitate 检测被破坏的构建环境。此外, 通过改善构建平台的安全性并收集构建过程中的 provenance 信息, 所得 artifact 可获得更大的信任。Google、Oracle 和 RedHat 现已提供此类服务。多个由相同源代码构建的二进制文件的可用性带来了新的挑战与机遇, 引发诸如 "构建 A 是否确认构建 B 的完整性?" 或 "构建 A 是否能揭示被破坏的构建 B?" 等问题。要回答此类问题, 需要一种二进制之间的等价性概念。我们演示了基于位级相等性的显然方法在实际中存在显著缺陷, 采用替代等价性观念具有价值。我们通过引入受克隆检测类型启发的等价层次来概念化这一点。通过几个实验演示了这些新层次的价值。我们构建了一个由 Java 二进制文件组成的数据集, 这些二进制文件由不同提供商独立构建, 总计 14,156 对二进制文件。随后我们比较这些 jar 文件中的编译 class 文件, 发现在 3,750 对 jar 文件(26.49%)中存在至少一个不同文件, 也导致 jar 文件及其加密散列值不同。然而, 基于新的等价层次, 我们仍可确立许多它们是实际等价的。我们在半合成数据集上评估了几个候选等价关系, 该数据集提供或包含应该等价或必须不等价的二进制文件对。
引用
@article{arxiv.2410.08427,
title = {Levels of Binary Equivalence for the Comparison of Binaries from Alternative Builds},
author = {Jens Dietrich and Tim White and Behnaz Hassanshahi and Paddy Krishnan},
journal= {arXiv preprint arXiv:2410.08427},
year = {2025}
}
备注
20 pages, 1 figure, 10 tables