对一些质量要求和可靠性要求较高的模块,一般要满足所需条件的组合覆盖或者路径覆盖标准。[2]软件测试方法集成测试集成测试是软件测试的第二阶段,在这个阶段,通常要对已经严格按照程序设计要求和标准组装起来的模块同时进行测试,明确该程序结构组装的正确性,发现和接口有关的问题,比如模块接口的数据是否会在穿越接口时发生丢失;各个模块之间因某种疏忽而产生不利的影响;将模块各个子功能组合起来后产生的功能要求达不到预期的功能要求;一些在误差范围内且可接受的误差由于长时间的积累进而到达了不能接受的程度;数据库因单个模块发生错误造成自身出现错误等等。同时因集成测试是界于单元测试和系统测试之间的,所以,集成测试具有承上启下的作用。因此有关测试人员必须做好集成测试工作。在这一阶段,一般采用的是白盒和黑盒结合的方法进行测试,验证这一阶段设计的合理性以及需求功能的实现性。[2]软件测试方法系统测试一般情况下,系统测试采用黑盒法来进行测试的,以此来检查该系统是否符合软件需求。本阶段的主要测试内容包括健壮性测试、性能测试、功能测试、安装或反安装测试、用户界面测试、压力测试、可靠性及安全性测试等。代码审计发现2处潜在内存泄漏风险,建议版本迭代修复。软件测试 安全测试公司
此外格式结构信息具有明显的语义信息,但基于格式结构信息的检测方法没有提取决定软件行为的代码节和数据节信息作为特征。某一种类型的特征都从不同的视角反映刻画了可执行文件的一些性质,字节码n-grams、dll和api信息、格式结构信息都部分捕捉到了恶意软件和良性软件间的可区分信息,但都存在着一定的局限性,不能充分、综合、整体的表示可执行文件的本质,使得检测结果准确率不高、可靠性低、泛化性和鲁棒性不佳。此外,恶意软件通常伪造出和良性软件相似的特征,逃避反**软件的检测。技术实现要素:本发明实施例的目的在于提供一种基于多模态深度学习的恶意软件检测方法,以解决现有采用二进制可执行文件的单一特征类型进行恶意软件检测的检测方法检测准确率不高、检测可靠性低、泛化性和鲁棒性不佳的问题,以及其难以检测出伪造良性软件特征的恶意软件的问题。本发明实施例所采用的技术方案是,基于多模态深度学习的恶意软件检测方法,按照以下步骤进行:步骤s1、提取软件样本的二进制可执行文件的dll和api信息、pe格式结构信息以及字节码n-grams的特征表示,生成软件样本的dll和api信息特征视图、格式信息特征视图以及字节码n-grams特征视图。贵阳第三方软件检测机构漏洞扫描报告显示依赖库存在5个已知CVE漏洞。
这种传统方式几乎不能检测未知的新的恶意软件种类,能检测的已知恶意软件经过简单加壳或混淆后又不能检测,且使用多态变形技术的恶意软件在传播过程中不断随机的改变着二进制文件内容,没有固定的特征,使用该方法也不能检测。新出现的恶意软件,特别是zero-day恶意软件,在释放到互联网前,都使用主流的反**软件测试,确保主流的反**软件无法识别这些恶意软件,使得当前的反**软件通常对它们无能为力,只有在恶意软件大规模传染后,捕获到这些恶意软件样本,提取签名和更新签名库,才能检测这些恶意软件。基于数据挖掘和机器学习的恶意软件检测方法将可执行文件表示成不同抽象层次的特征,使用这些特征来训练分类模型,可实现恶意软件的智能检测,基于这些特征的检测方法也取得了较高的准确率。受文本分类方法的启发,研究人员提出了基于二进制可执行文件字节码n-grams的恶意软件检测方法,这类方法提取的特征覆盖了整个二进制可执行文件,包括pe文件头、代码节、数据节、导入节、资源节等信息,但字节码n-grams特征通常没有明显的语义信息,大量具有语义的信息丢失,很多语义信息提取不完整。此外,基于字节码n-grams的检测方法提取代码节信息考虑了机器指令的操作数。
将训练样本的dll和api信息特征视图、格式信息特征视图以及字节码n-grams特征视图输入深度神经网络,训练多模态深度集成模型;(1)方案一:采用前端融合(early-fusion)方法,首先合并训练样本的dll和api信息特征视图、格式信息特征视图以及字节码n-grams特征视图的特征,融合成一个单一的特征向量空间,然后将其作为深度神经网络模型的输入,训练多模态深度集成模型;(2)方案二:首先利用训练样本的dll和api信息特征视图、格式信息特征视图以及字节码n-grams特征视图分别训练深度神经网络模型,合并训练的三个深度神经网络模型的决策输出,并将其作为感知机的输入,训练得到**终的多模态深度集成模型;(3)方案三:采用中间融合(intermediate-fusion)方法,首先使用三个深度神经网络分别学习训练样本的dll和api信息特征视图、格式信息特征视图以及字节码n-grams特征视图的高等特征表示,并合并学习得到的训练样本的dll和api信息特征视图、格式信息特征视图以及字节码n-grams特征视图的高等特征表示融合成一个单一的特征向量空间,然后将其作为下一个深度神经网络的输入,训练得到多模态深度神经网络模型。步骤s3、将软件样本中的类别未知的软件样本作为测试样本。第三方测评显示软件运行稳定性达99.8%,未发现重大系统崩溃隐患。
之所以被称为黑盒测试是因为可以将被测程序看成是一个无法打开的黑盒,而工作人员在不软件测试方法考虑任何程序内部结构和特性的条件下,根据需求规格说明书设计测试实例,并检查程序的功能是否能够按照规范说明准确无误的运行。其主要是对软件界面和软件功能进行测试。对于黑盒测试行为必须加以量化才能够有效的保证软件的质量。[5](2)白盒测试。其与黑盒测试不同,它主要是借助程序内部的逻辑和相关信息,通过检测内部动作是否按照设计规格说明书的设定进行,检查每一条通路能否正常工作。白盒测试是从程序结构方面出发对测试用例进行设计。其主要用于检查各个逻辑结构是否合理,对应的模块**路径是否正常以及内部结构是否有效。常用的白盒测试法有控制流分析、数据流分析、路径分析、程序变异等,其中逻辑覆盖法是主要的测试方法。[5](3)灰盒测试。灰盒测试则介于黑盒测试和白盒测试之间。灰盒测试除了重视输出相对于出入的正确性,也看重其内部表现。但是它不可能像白盒测试那样详细和完整。它只是简单的靠一些象征性的现象或标志来判断其内部的运行情况,因此在内部结果出现错误,但输出结果正确的情况下可以采取灰盒测试方法。因为在此情况下灰盒比白盒**。5G 与物联网:深圳艾策的下一个技术前沿。全国软件测评中心
兼容性测试涵盖35款设备,通过率91.4%。软件测试 安全测试公司
保留了较多信息,同时由于操作数比较随机,某种程度上又没有抓住主要矛盾,干扰了主要语义信息的提取。pe文件即可移植文件导入节中的动态链接库(dll)和应用程序接口(api)信息能大致反映软件的功能和性质,通过一个可执行程序引用的dll和api信息可以粗略的预测该程序的功能和行为。belaoued和mazouzi应用统计khi2检验分析了pe格式的恶意软件和良性软件的导入节中的dll和api信息,分析显示恶意软件和良性软件使用的dll和api信息统计上有明显的区别。后续的研究人员提出了挖掘dll和api信息的恶意软件检测方法,该类方法提取的特征语义信息丰富,但*从二进制可执行文件的导入节提取特征,忽略了整个可执行文件的大量信息。恶意软件和被***二进制可执行文件格式信息上存在一些异常,这些异常是检测恶意软件的关键。研究人员提出了基于二进制可执行文件格式结构信息的恶意软件检测方法,这类方法从二进制可执行文件的pe文件头、节头部、资源节等提取特征,基于这些特征使用机器学习分类算法处理,取得了较高的检测准确率。这类方法通常不受变形或多态等混淆技术影响,提取特征只需要对pe文件进行格式解析,无需遍历整个可执行文件,提取特征速度较快。软件测试 安全测试公司