BinPro:一种二进制源代码溯源工具
密码学与安全
2017-11-03 v1
摘要
执行开源许可证(如 GNU 通用公共许可证(GPL))、分析二进制文件可能存在的漏洞以及代码维护,都是在能够确定二进制文件的源代码溯源时有用的场景。先前的工作要么聚焦于计算二进制到二进制的相似性,要么聚焦于源代码到源代码的相似性,而据我们所知,BinPro 是首个解决源代码到二进制相似性问题的研究。BinPro 即使不知道用于生成二进制的编译器或编译器使用的优化级别,也能将二进制文件与其源代码匹配。为此,BinPro 利用机器学习计算用于确定二进制到源代码相似性的最优代码特征,并利用静态分析流水线基于这些特征提取和计算相似性。我们的实验表明,BinPro 平均为同一应用程序的二进制文件和源代码计算出 81% 的相似性,而为相似但不同应用程序的二进制文件和源代码平均计算出 25% 的相似性。这表明 BinPro 的相似性分数可用于确定二进制文件是否源自特定源代码。
引用
@article{arxiv.1711.00830,
title = {BinPro: A Tool for Binary Source Code Provenance},
author = {Dhaval Miyani and Zhen Huang and David Lie},
journal= {arXiv preprint arXiv:1711.00830},
year = {2017}
}