公务员期刊网 论文中心 正文

多媒体后期处理软件安全性能测试浅析

多媒体后期处理软件安全性能测试浅析

摘要:传统软件安全性能测试方法对于恶意代码变种检测命中率低,因此需要设计新的多媒体后期处理软件安全性能测试方法。在建立安全测试框架的基础上,构建故障树模型,利用该模型对软件工作环境进行定性分析,确定出现安全问题的原因并计算其出现概率。根据编译逆向工程的静态反编汇过程,解决最小代价的二分图匹配问题。建立二分图法代价矩阵,过滤出不相干节点。在漏洞定位中,通过规则网络特征进行补丁比对,找到补丁之间的结构差异完成漏洞定位,实现多媒体后期处理软件安全性能测试。实验结果表明,设计的测试方法对于恶意代码变种检测命中率比传统方法高出12.0%,验证了该方法的有效性。

关键词:多媒体后期处理软件;安全性能测试;漏洞定位

0引言

软件安全隐患是自计算机诞生就存在的一个问题。随着计算机技术的发展,软件的安全问题也越来越受到人们的重视。多媒体后期处理软件是日常生活中应用较为广泛的软件,它能按照指定的要求,完成对文字、图片、声音、视频等文件的后期处理[1]。在网络环境下,这些软件容易受到攻击,导致文件缺失,因此需要对这些多媒体后期处理软件进行安全性能测试。传统的安全性能测试方法对于恶意代码变种检测的命中率低,且很大程度上依赖于人工检测,因此本文设计了一种新的多媒体后期处理软件安全性能测试方法。

1多媒体后期处理软件安全性能测试

多媒体后期处理软件安全性能测试标准是软件安全性需求提取、软件安全性分析、安全性测试和评估的基础,本文对几种安全性能测试标准进行分析[2-3],设计了适用于多媒体后期处理软件的安全性能测试框架,如图1所示。本文在该安全性能测试框架的基础上,对多媒体后期处理软件安全性能测试方法进行研究。

1.1建立故障树模型

多媒体后期处理软件的安全性测试,关注的是软件在运行过程中是否会造成多媒体文件丢失与损坏以及失效等情况。通过对失效软件与系统外部环境的状态检测,可以发现软件安全性缺陷,因此需要对后期处理软件进行安全性能测试建模[4-5]。本文利用故障树模型作为多媒体后期处理软件的安全性能测试模型。故障树模型最早是美国贝尔实验室对信息工程领域系统安全性进行分析的一种技术。随着人们对软件工程安全性的重视,故障树模型也在不断进化。对于软件中某一危险分析的故障树模型如图2所示。图2中,H表示危险,也为故障树模型的顶事件。G1到G4为中间事件,A1到A5表示基本事件,为故障树的叶子节点。通过对故障树模型的分析,可以发现导致危险H发生的原因为G1+G2,同理可以推导出G1到G4发生的直接原因,最后可以推导出H=A1A2+(A)2+A3A4A5(1)利用故障树对软件工作环境进行分析,确定导致其出现安全问题的原因。在故障树模型中,割集是模型中导致顶事件发生的基本事件的集合,最小割集是割集的子集,也是软件安全问题出现的直接原因[6]。假设用xi表示软件中的第i个文件失效,那么导致软件发生危险的最小割集为C=∩cixi(2)可以计算出软件出现安全问题的概率为η=∪jn∩Cjixi(3)故障树模型的定量计算是在定性分析的基础上进行的,通过定性分析,确定造成安全问题发生的事件。安全问题出现的概率取决于基本事件,通过对安全问题事件中每个基本事件发生概率的计算,得到安全问题的出现概率,至此完成多媒体后期处理软件安全性能测试建模。

1.2检测恶意代码

恶意代码主要是指在进行软件编程时,设置一些没有作用却具有潜在威胁的代码。恶意代码的检测包括检测新恶意代码和恶意代码变种。代码语义、代码行为和代码结构都是恶意代码的特征,对于软件中的恶意代码,恶意代码变种的比例会远远高于新恶意代码[7-8]。基于这种情况,本文选用逆向工程技术,在二进制机器码中恢复高级语言的结构以及语义。在一般情况下,逆向工程主要分为反编译和反汇编,反编译是利用汇编语言和流图恢复高级语言的过程,反汇编分为静态反汇编和动态反汇编,静态反汇编是指在反汇编过程中代码被分析,但不执行;动态反汇编是指在程序中已经输入与执行了代码。具体过程如图3所示。本文用到的逆向工程技术是静态反汇编过程,原理为:根据对多种流图结构的分析以及对反汇编代码的阅读与理解,充分掌握代码相关功能,并获取其存在的安全缺陷。首先通过函数调用图来对代码结构和行为特性进行静态表示,然后利用二分法计算近似的图编辑距离。图编辑距离主要是指在一个图转换为另一个图过程中所需要的所有编辑操作。将所有图编辑距离构成一个集合,利用集合中的元素来衡量图的相似度[9],检测过程如图4所示。上述过程中的图相似度匹配问题即最小代价的二分图匹配问题,利用匈牙利算法匹配两个规模不等的图,其核心是建立二分图法代价矩阵,矩阵的构造如图5所示。基于上述所构建的二分图匹配的代价矩阵,采用匈牙利算法进行最小代价的二分图匹配,计算实际的图编辑距离:edϕ(g,h)=NodeCost+EdgeCost(4)NodeCost为节点代价,EdgeCost为边代价,其中节点代价为NodeCost=C(σRV)+C(σIV)+C(σR)(5)C(σRV)为插入节点的代价,C(σIV)为连接两个空节点的代价,C(σR)为图形节点重命名代价。边代价可以表示为EdgeCost=||Eg+||Eh-2×CE(6)||Eg为删除边代价,||Eh为添加边代价。匈牙利算法主要用于线性任务分配问题,从二分图匹配的代价矩阵出发,使完全匹配变成最大匹配,满足二分图的最大匹配问题[10-11]。利用构建的故障树模型,叶子节点数量越多,过滤出不相干节点的能力越强,进而提高恶意代码检测效率。

1.3定位漏洞

软件的漏洞主要来源于软件设计缺陷以及编码漏洞,如果软件漏洞遭到恶意代码的攻击,势必会对软件安全造成极大威胁,软件漏洞的定位对于软件修复与升级工作具有重要意义。因此,提出了基于规则网络特征进行补丁比对和漏洞定位方法。以逆向工程得到的软件函数调用图为基础[12-13],将软件看作由多个节点和边构成的规则网络,如图6所示。将待测试软件的函数调用图视为一个规则网络,用该网络的特征量来表示软件的图结构特征[14]。需要提取的规则网络特征量主要包括平均路径长度、节点分布以及网络中的集聚系数、介数以及连通集团,其中平均路径长度的计算式为l=∑i,jSL(Sij)C2n(7)i、j为网络中任意两点,Sij为最短路径集合,SL(Sij)为最短路径的长度,n为节点数量。完成上述特征量计算后,生成并对比结构化签名,根据连通集团递归分裂原理获取两个补丁之间的结构差异,进而定位漏洞产生的粗略函数级位置[15],在此基础上通过对控制流程图级的分析进行漏洞位置的精准定位。漏洞定位流程如图7所示。至此完成了多媒体后期处理软件安全性能测试方法设计。

2实验

2.1实验准备

为了验证本文设计的多媒体后期处理软件安全性能测试方法的有效性,需要进行实验。首先确定实验环境和所用工具,如表1所示。设置实验对象,在某多媒体后期处理软件中设置主要包括以下几种类型的代码:蠕虫、木马、后门等恶意代码和非恶意代码共4510个样本。其中,节点个数区间分布如表2:在上述实验环境下,使用本文方法与传统方法对该软件进行安全性能测试,统计恶意代码的命中率,并将实验结果进行对比。

2.2实验结果与分析

本文实验主要对恶意代码命中率进行对比,命中率为检测样本中K个最近邻居是同类型恶意代码的数量与总数K的比值,从恶意代码库中随机选取8个样本,进行对比测试,结果如表3:统计上述随机选取样本的恶意代码命中率,并计算平均命中率。本文方法的平均命中率为82.4%,传统方法的平均命中率为70.4%,验证了本文设计的多媒体后期处理软件安全性能测试方法的优越性。

3结束语

本文设计的多媒体后期处理软件安全性能测试方法主要是从测试角度出发,发现软件本身或运行环境中的潜在危险,建立安全性能测试的故障树模型,利用该模型对软件工作环境进行定性分析,确定出现安全问题的原因并计算安全问题出现的概率。利用编译逆向工程的静态反编汇过程,解决最小代价的二分图匹配问题,利用二分图法代价矩阵滤出不相干节点,进而提高恶意代码检测效率。基于规则网络特征进行补丁比对,找到补丁之间的结构差异完成漏洞的定位。实验结果表明,本文方法在提高恶意代码的变种检测命中率方面具有有效性。

作者:魏欢 单位:南昌航空大学 安徽工业经济职业技术学院