研究人员展示了一种新工具,可以分析开源软件更新,以指定正在修改哪些代码部分以解决最近发现的安全漏洞。这个名为VFCFinder的工具应该可以让程序员更快、更轻松地确定哪些安全更新是防止漏洞所必需的,而无需进行不必要的更改。
“开源计算机代码的更新通常包括旨在解决安全漏洞的更改,”该研究论文的合著者、北卡罗来纳州立大学计算机科学教授WilliamEnck说。“但是许多使用开源代码的程序不受任何给定漏洞的影响,并且接受不必要的更新本身可能会带来编程挑战。这使得程序员了解哪些漏洞更新实际上会使他们的程序更安全非常重要。”
开源软件是根据许可发布的软件,允许用户研究和修改软件的代码。它被从个人到大公司的用户广泛使用。
向公众通报开源软件中的安全漏洞的现有流程让用户知道存在漏洞,并且用户应该采用解决该漏洞的软件更新版本。然而,在现代编码中,许多开发人员创建依赖于代码段库的新程序,每个代码段执行特定的功能。如果您所依赖的其中一段代码需要更新,则可能会给较大的程序带来问题。
“这使得使用开源代码库的程序员了解每个漏洞的性质,包括计算机代码的哪些特定部分导致该漏洞非常重要,”该论文的第一作者、博士生特雷弗·邓拉普(TrevorDunlap)说。北卡罗来纳州立大学的学生。“根据漏洞的性质,许多程序员可能不需要执行更新。但大多数安全公告并没有明确说明问题是什么——只是发现了问题,并且更新可以修复它。”
Enck表示:“为了为这里的挑战提供一些背景信息,每天都会发布数十到数百条安全公告;到2023年,这一数字将超过29,000条。”“每次更新软件时,都会包含许多不同的软件修改,称为提交,其中只有一些可能与使用该软件的程序相关。
“目前,大多数程序员都使用源代码组合分析(SCA)服务,该服务雇用编码人员来识别这些更新的性质以及哪些代码片段已被修改以解决漏洞,”Enck说。“然后,程序员可以使用这些信息来决定是否运行相关更新。简而言之,这需要很多人花大量时间钻研代码,以准确识别哪个代码部分对每个漏洞负责以及哪些类型的程序可能需要运行更新。”
“VFCFinder用于识别最有可能修复给定漏洞的具体更改,”Dunlap说。“换句话来说,VFCFinder使SCA服务能够更轻松地识别受影响的代码部分。这反过来又可以帮助程序员决定是否更新他们在程序中使用的开源代码。”
为了测试VFCFinder,研究人员针对数千个漏洞进行了测试,其中负责修复每个漏洞的提交都已经建立。
“VFCFinder能够以96.6%的准确率识别出五个最有可能的提交,”Dunlap说。“它在精确识别修复漏洞的提交方面具有80%的准确度。以前最先进的技术在精确识别相关提交方面的准确度为44%。”
然后,研究人员针对数百个尚未确定相关提交的安全建议对VFCFinder进行了测试。
“当查看这些建议时,数字几乎相同,”邓拉普说。“实际上,结果甚至更好,因为VFCFinder能够在81%的时间内准确识别相关提交。而且我们的结果已被GitHub安全咨询数据库接受。”
“最终,我们的目标是减少与开源软件广泛使用相关的安全风险,”恩克说。“我们乐观地认为,VFCFinder可以帮助提高SCA服务的效率,从而加强软件供应链的关键部分。”