齐齐哈尔化工机械网

当前的位置是:主页 >> 化工机械厂家

SN4KE用于二进制突变测试的轻量级和可扩展框架

时间:2022-04-28 来源网站:齐齐哈尔化工机械网

SN4KE:用于二进制突变测试的轻量级和可扩展框架

当开发人员向客户交付软件时,他们通常还会提供所谓的“测试套件”。测试套件是允许用户测试软件,揭示其可能存在的任何错误以及使开发人员有机会修复这些错误或其他潜在问题的工具。

因此,除了评估软件外,开发人员还需要确定测试套件在识别错误??和错误方面的功效中国机械网okmao.com。运行测试套件评估的一种方法是通过变异测试,该技术通过略微修改其原始代码来生成程序的多个“变异”。尽管事实证明,突变测试工具非常有用,但大多数工具不能应用于仅以二进制代码提供的软件(一种使用两个符号(通常为“ 0”和“ 1”表示计算机的文本或指令的方式)。

亚利桑那州立大学,伍斯特理工学院和明尼苏达大学的研究人员最近开发了SN4KE,该框架可用于进行二进制水平的突变分析。这个框架在2月的21世纪Binary Analysis Research(BAR)NDSS研讨会上提出,是一种有效测试基于二进制代码的软件套件的新工具。

进行这项研究的研究人员之一Mohsen Ahmadi告诉TechXplore:“我们的工作源于软件测试领域的类似概念。” “在我们的研究中,我们使用两种新颖的二进制重写技术将源代码级变异算子应用于闭源程序。”

研究人员应用所谓的“变异算子”来生成原始软件程序的不同变体。变异测试方法的最终目标是评估测试套装将原始二进制代码与其变体区别的程度。分析完成后,测试套件将销毁每个突变体并产生一个“突变得分”,该分数实质上是其杀死的突变体总数占其产生的突变体总数的总和。

艾哈迈迪说:“获得更高突变分数的一个涉及因素与变异指令的可及性有关,从而导致异常,将错误传播到程序输出的明显变化。” “测试套件涵盖的代码部分越多,测试套件检测突变体的几率就越高。”

Ahmadi和他的同事创建了一个轻量级且可扩展的二进制突变框架,该框架具有从源级突变引擎中获得的丰富的突变策略集。尝试在二进制级别应用突变时的主要挑战是恢复在编译突变时丢失的语义。

“在选择正确的重写工具集时,我们考虑了以下因素:1)体系结构独立性,2)运行时性能,3)语义恢复准确性,” Ahmadi说。“我们研究的另一个优势是,我们比较了两种重写方案;一种是基于可重组的汇编,另一种是在完全翻译的基础上进行的。根据我们的选择标准,我们选择了Ddisasm(著名的反汇编器)作为依靠可重定位的汇编代码和Rev.ng(二进制分析工具)进行完整翻译的候选人。”

与以前开发的突变测试方法相反,研究人员创建的框架产生了大量的突变体,因为它具有多种多样的突变算子。在他们的实验中,Ahmadi和他的同事意识到像Rev.ng这样的技术不适合进行突变分析,该技术将翻译后的二进制代码重新编译为中间表示形式。

“与基准相比,Rev.ng重写的二进制文件的大小增加了70倍,” Ahmadi解释说。“这样做的原因是包含了QEMU的回调,该回调用于将翻译后的模块链接到生成的二进制文件中。我们发现,突变得分与被杀死的突变数量直接相关,与Disv相比,Ddisasm结果通常观察到更高的突变得分.ng和以前的作品。”

到目前为止,由这组研究人员创建的二进制突变测试框架已经取得了令人鼓舞的结果。将来,它可以使全球的开发人员和研究人员可以基于二进制代码评估软件程序的测试套件。

艾哈迈迪说:“在我们最近的论文中,我们通过采用更健壮的二进制重写方法并采用了一套全面的突变操作解决了二进制突变的局限性。” “这项工作可以扩展为在无法访问源代码时对补丁进行证明测试。一种解决方法是将变异算子映射到二进制文件中可能存在的漏洞。例如,在执行过程中错误替换了代码一个软件修补程序可能会由于在内存读/写模式中引入歧义而导致双重获取漏洞。”

玫瑰锁妆粉底液

小银管眼线液笔

玫瑰锁妆粉底液

colorkey