一种PE恶意软件对抗样本自动生成方法、系统及设备

文档序号:37182434发布日期:2024-03-01 12:42阅读:32来源:国知局
一种PE恶意软件对抗样本自动生成方法、系统及设备

本发明属于互联网安全,尤其涉及一种pe恶意软件对抗样本自动生成方法、系统及设备。


背景技术:

1、机器学习的引入使恶意软件检测方法的原有技术框架得到改变,其可以充分利用特征之间的关联性,对提取到的恶意软件特征进行训练,使恶意软件检测模型的识别率得到大幅度提高。机器学习算法已经被广泛应用于恶意软件检测并取得了较好的检测效果。然而,基于机器学习的恶意软件检测模型极易受到对抗样本的攻击,几乎所有原始样本的周围都能够找到可以“愚弄”和“欺骗”模型的对抗样本。此外,大部分对抗样本有很强的“移植性”,即针对某一网络模型所构造的对抗样本可以导致不同结构和参数的网络发生相同的错误,甚至连错分类的类别都有很高的一致性。因此,进一步研究恶意软件对抗样本实际上有利于恶意软件智能检测技术以及机器学习、深度学习领域的进步。

2、针对恶意软件智能检测的对抗样本相关工作主要分为两类,即白盒攻击和黑盒攻击。白盒攻击是指攻击者知道检测目标模型的所有信息,随后在此基础上对目标模型进行攻击;而黑盒攻击则意味着攻击者不知道模型内部的任何信息,相比于白盒攻击,黑盒攻击场景更加符合现实。

3、通过上述分析,现有技术存在的问题及缺陷为:

4、(1)现有的黑盒攻击操作生成的对抗性恶意软件质量不高,难以逃过现有的检测器,且生成效率低;

5、(2)大多数恶意软件对抗性攻击先对恶意软件进行特征提取,并将提取的特征组成特征向量。然后,向特征向量中添加或修改与功能无关的特征以逃避机器学习模型的检测,但在特征空间的对抗攻击无法有效映射回问题空间,难以对真实恶意软件进行相应的对抗处理;

6、(3)生成的对抗样本质量差,包括生成的对抗样本不可执行、恶意功能被破坏、检测逃避率低等问题。


技术实现思路

1、针对现有技术存在的问题,本发明提出了一种pe恶意软件对抗样本自动生成方法、系统及设备,实现根据特征空间的修改操作映射回真实样本的修改,并保留样本原始恶意功能,生成的对抗样本能够绕过静态检测器和商业检测器。通过生成高质量对抗性恶意软件,帮助了解恶意软件的结构原理和分析现有检测模型的缺陷,进而提高恶意软件检测模型的鲁棒性。

2、本发明是这样实现的,一种pe恶意软件对抗样本自动生成方法,从良性pe文件中提取二进制函数构建函数库,利用ida pro反编译pe文件并提取函数代码特征,使用shap可解释性技术设计特征选择策略,通过re库方法匹配和插入适合的二进制函数到恶意样本中生成对抗样本,利用静态恶意软件检测模型评估对抗样本的有效性,以及在保证功能完整性的同时,在virustotal检测网站验证对抗样本的逃避率。这一系列操作合在一起,实现了自动化、有效生成能绕过恶意软件检测的对抗样本的目标。

3、进一步,包括:

4、s1,选择pe良性文件,提取pe良性文件中的二进制函数,构建二进制良性函数库;

5、s2,pe恶意/良性文件进行反汇编操作,利用反编译工具ida pro进行pe文件反编译并生成反编译后的asm文件,使用的ida pro版本为7.5;

6、s3,选择pe文件的反汇编asm文件,对反汇编asm文件进行函数代码特征提取操作;

7、s4,利用可解释性技术shap设计特征及值选择策略筛选合适用于函数插入的代码特征,生成候选函数代码特征集合;

8、s5,利用re库方法对候选函数代码特征集合与良性函数库进行匹配,找到符合函数代码特征的二进制函数,生成待插入函数集合;

9、s6,将待插入函数集合中的二进制函数插入至pe恶意样本,生成该pe恶意软件的对抗样本,将生成的对抗样本添加至目标恶意软件对抗样本集合中;

10、s7,将上述两种特征选择和三种值选择策略一一组合,共有6种组合方法,每次使用一种组合方法筛选合适用于函数插入的代码特征,生成新的候选函数代码特征集合,并重复s5、s6,重复此操作6次;

11、s8,利用静态恶意软件检测模型对上述生成的恶意软件对抗样本集合进行评估;

12、s9,对s8中筛选出的能够绕过静态恶意软件检测模型的对抗样本进行功能完整性测试,在windows系统的虚拟机中动态运行原始pe恶意软件样本和目标对抗性pe恶意软件样本,对比检测目标对抗性pe恶意软件样本恶意功能是否完整,输出功能完整的对抗样本;

13、s10,将s9中筛选出的功能完整的对抗样本上传至virustotal恶意软件检测网站进行评估,验证对抗样本的变异逃避率。

14、进一步,s1具体包括:

15、s101,采用lief库方法提取pe良性文件中的二进制函数;

16、s102,检验提取的二进制函数语法是否准确、功能是否完整;

17、s103,将处理后的二进制函数无重复的存储形成二进制良性函数库。

18、进一步,s3具体包括:

19、s301,从反汇编asm文件中提取出操作码信息,并利用n-元操作码方法构建操作码特征序列,具体操作为:

20、(1)从反汇编asm文件的.text节表中按序提取出该pe文件中的全部二进制函数的操作码部分;

21、(2)n-元操作码表示:n-元操作码中的n设置为5,即用5-元语法组合操作码;

22、(3)生成操作码特征序列:操作码特征序列由5-元操作码和5-元操作码在pe文件中出现的频数组成的序列;

23、s302,从反汇编asm文件中提取出操作码-寄存器信息,并构建汇编指令特征序列,具体操作为:

24、(1)从反汇编asm文件的.text节表中按序提取出该pe文件中符合要求的汇编指令,其中,提取汇编指令的要求是汇编指令的操作数部分必须是寄存器,寄存器的类型需是数据寄存器、指针寄存器或者变址寄存器,若汇编指令的操作码是调用函数指令“call”,则无需考虑操作数内容,亦提取该条汇编指令;

25、(2)生成汇编指令特征序列:汇编指令特征序列由汇编指令和汇编指令在pe文件中出现的频数组成的序列。

26、进一步,s4具体包括:

27、s401,特征序列表示pe样本集x,根据训练数据集的函数代码特征序列输入x和静态检测模型训练结果输出,利用可解释性技术shap生成各个样本的各个函数代码特征对检测模型决策的贡献度矩阵shap_values;

28、s402,选取一种特征选择策略,计算得到各个特征f的shap值列表,对sh ap值列表从高到低进行排序,筛选出前m个特征用于后续的对抗攻击;

29、s403,对s402筛选出的m个特征,选取一种值选择策略,筛选出前m个特征对应的合适的特征值;

30、s404,根据s402和s403生成候选函数代码特征集合{f1:v1,f2:v2,...,fm:vm}。

31、进一步,s5具体包括:

32、假设s4生成的候选函数代码特征集合为{(push,mov,mov,mov,call):3},即设置候选函数特征数量m=1;然后,利用re.compile()方法编译用于匹配良性函数的正则表达式,匹配格式为“('.text地址',”,'操作码','操作数')”;打开并读取s1生成的二进制良性函数库文件,将候选函数代码特征集合{(push,mov,mov,mo v,call):3}中的操作码按序与良性函数库中的函数进行匹配,根据设置的匹配格式,函数会以“('00',”,'mov','eax')”这样的元组序列表示,将候选函数代码特征集合中的操作码与函数元组的操作码部分进行匹配,当操作码序列(push,mov,mo v,mov,call)全部被包含时,就将该函数添加至待插入函数集合;待插入函数的个数由函数特征的特征值确定,由于(push,mov,mov,mov,call)该函数特征的特征值为3,所以还需在函数库中查找2个满足条件的函数添加至待插入函数集合,若遍历整个良性函数样本库后满足条件的函数数量小于该函数特征的特征值,则设置该函数特征的insert_func=(特征值-已有满足条件的函数数量);生成待插入函数集合func{(push,mov,mov,mov,call):{满足条件的函数集合:[函数1,函数2],insert_func:1}}。

33、进一步,s6具体包括:

34、s601,在原始pe恶意样本文件的末尾新增一个.text1节表,设置新增节表在的内存偏移地址、文件偏移地址和节表大小,修改该pe恶意样本的节表个数为新增节表后的总个数,修改该pe样本中扩展头中pe的镜像大小,镜像大小=原始镜像大小+新增节表大小;

35、s602,在s601中新增的.text1节表里插入待插入函数集合中的二进制函数,首先,检查插入函数的指令结构,若插入函数包含jmp、jz等跳转指令,则需要重新设置跳转指令的操作数内容,将其修改为后一插入函数的起始地址,若插入的函数是最后一个,并且包含跳转指令,则把跳转指令的操作数内容修改为该样本的起始运行地址;若插入函数包含调用api函数指令call,则需在样本的导入表中查找是否已存在目标api函数,若未找到目标api函数,需进行导入api函数操作,否则会导致插入函数在执行过程中出错;其次,若候选特征的insert_func不为0,则需要重复插入该候选特征的二进制函数;最后,完成所有函数插入操作后,在插入的最后一个二进制函数后面添加一条跳转指令a,并修改样本的起始运行点为新增的.text1节表的起始地址,执行结束后根据添加的跳转指令a返回样本起始运行地址继续执行。

36、本发明的另一目的在于提供一种应用所述pe恶意软件对抗样本自动生成方法的pe恶意软件对抗样本自动生成系统,包括:

37、样本特征提取模块:用于利用ida pro反汇编工具对pe文件进行反汇编操作,提取pe文件的代码段信息并生成asm文件,从asm文件中提取样本的汇编函数代码特征,构建样本的函数代码特征表示序列,用于后续对抗攻击所需函数特征提取;

38、二进制函数库构建模块:利用lief库方法从良性pe文件中提取全部的二进制函数,并对二进制函数进行预处理操作,将处理之后的二进制函数添加至良性二进制函数库中;

39、对抗样本生成模块:利用可解释性技术shap设计特征及值选择策略筛选合适用于函数插入的代码特征,生成候选函数代码特征集合;利用re库方法对候选函数代码特征集合与良性函数库进行匹配,找到符合函数代码特征的二进制函数,生成待插入函数集合;将待插入函数集合中的二进制函数插入至pe恶意样本,生成该pe恶意软件的对抗样本,将生成的对抗样本添加至目标恶意软件对抗样本集合中;

40、对抗样本评估模块:对生成的对抗样本进行学术端检测和商业检测,使用svm、lightgbm、dnn、malconv静态恶意软件检测器和virustotal恶意软件检测网站评估生成的对抗样本集,验证对抗样本的变异逃避率。

41、功能完整性测试模块:在windows系统的虚拟机中动态运行原始pe恶意软件样本和目标对抗性pe恶意软件样本,对比检测目标对抗性pe恶意软件样本恶意功能是否完整,输出功能完整的对抗样本。

42、本发明的另一目的在于提供一种计算机设备,计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行所述的pe恶意软件对抗样本自动生成方法的步骤。

43、本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行所述的pe恶意软件对抗样本自动生成方法的步骤。

44、本发明的另一目的在于提供一种信息数据处理终端,信息数据处理终端用于实现所述的pe恶意软件对抗样本自动生成系统。

45、结合上述的技术方案和解决的技术问题,本发明所要保护的技术方案所具备的优点及积极效果为:

46、第一,针对上述现有技术存在的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:

47、(1)本发明提供的pe恶意软件对抗样本自动生成方法,能有效实现特征空间修改操作和问题空间修改操作的映射,自动生成目标pe恶意软件的对抗样本集。

48、(2)本发明通过二进制函数选择算法高效的筛选出最优的待插入函数,能够最小化待插入函数的数量,提高恶意软件对抗样本生成效率。

49、(3)本发明提供的二进制良性函数插入方法有效的提高了恶意软件对抗样本的生成质量,生成的对抗样本能绕过商业检测引擎高达50个、静态检测模型恶意检测率低至25.49%,并且保证恶意软件的恶意功能完整和恶意软件的可执行性。

50、第二,本发明提供了一种pe恶意软件对抗样本自动生成方法,首先,相比于已有的pe恶意软件对抗样本生成方法,本发明方法可以有效实现特征空间的修改操作映射回问题空间真实样本的修改,降低对抗样本生成的时间成本,提高对抗样本生成效率;其次,相比于已有的插入死代码、无效字节等攻击方法,本发明方法可以实现对pe恶意软件插入可执行的良性函数,生成可以绕过主流恶意软件检测器检测的高质量恶意软件对抗样本,并能保证恶意软件的原始恶意功能的完整性和可执行性;基于本发明方法生成的对抗性恶意软件具有高质量高效率等特点,能够帮助研究人员深入理解恶意软件的结构原理和分析现有检测器的缺陷,此外,生成的对抗性恶意软件可以用于对恶意软件检测器的对抗训练,提高恶意软件检测模型的鲁棒性和抵御对抗攻击的能力,能够为对抗防御研究提供重要的理论依据和技术支持。

51、第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:

52、(1)本发明的技术方案转化后的预期收益和商业价值为:

53、本发明设计的pe恶意软件对抗样本自动生成系统,可以实现在线恶意软件检测、在线生成对抗性恶意软件、在线训练/应用多种类型检测模型、各大恶意软件数据集管理等系统功能。本发明系统可作为大型恶意软件智能对抗与检测平台的原型系统,能够给安全研究人员或安全公司研究恶意软件提供技术支持平台,本发明的技术方案极具商业价值和现实意义。

54、(2)本发明的技术方案填补了国内外业内技术空白:

55、现有的恶意软件对抗攻击技术有:在pe文件尾部进行随机字节填充、在节之间的无效区域内进行良性字节填充、利用api序列生成对抗性api特征序列、利用恶意软件灰度图像进行对抗扰动等方法,但是,通过这些方法生成的pe对抗样本或多或少存在一些问题,比如对抗样本不可执行、原有恶意功能被破坏,生成的对抗样本并不是真实的,而是对抗特征序列,根据图像对抗扰动操作无法还原到样本本身修改。此外,现有的恶意软件对抗技术在对恶意软件样本插入可执行函数这一研究方向上探索的很少,已有的插入函数对抗攻击方法也只是插入死代码或在样本无效区域内插入代码,这些被插入的函数代码都是不会被执行的,故本发明提出的技术方案能够填补恶意软件对抗攻击在插入代码函数这一研究点内的技术缺陷。

56、(3)本发明的技术方案是否解决了人们一直渴望解决、但始终未能获得成功的技术难题:

57、本发明基于可解释性技术shap进行用于对抗攻击的函数代码特征提取,无需知晓检测模型的内部结构和参数、梯度等相关信息,这解决了现实应用场景中因检测模型信息被保护而难以进行对抗攻击的技术难题;由于pe文件是离散的,其包含的信息晦涩难懂,不易于理解,本发明通过利用恶意软件反汇编asm文件的汇编函数信息进行检测和攻击,实现插入函数集的可视化,有利于攻击者更好的理解函数方法含义并实现良性函数插入操作;本发明技术通过对pe恶意软件新建.text代码段存放并执行插入的良性函数,无需破坏恶意软件的原始结构,能够有效保留恶意软件的原始功能,这解决了现有攻击方法中由于插入字节或代码导致恶意软件不可执行或恶意功能被破坏的技术难题。

58、第四,这种pe恶意软件对抗样本自动生成方法带来的显著的技术进步包括:

59、1)良性函数库的构建:通过从pe良性文件中提取二进制函数构建函数库,为后续的对抗样本生成提供了原材料,提高了对抗样本的多样性和随机性。

60、2)反编译和函数代码特征提取:利用ida pro反编译pe文件并提取函数代码特征,使能够更深入地理解和分析pe文件的内部结构和行为。

61、3)shap可解释性技术的应用:通过使用shap可解释性技术设计特征选择策略,可以更好地理解哪些特征对生成有效的对抗样本最重要,从而提高对抗样本的成功率。

62、4)re库方法的应用:通过re库方法,能够有效地将候选函数代码特征集合与良性函数库进行匹配,生成待插入函数集合,提高了对抗样本生成的效率。

63、5)静态恶意软件检测模型的应用:利用静态恶意软件检测模型评估生成的对抗样本的有效性,提供了一个实时和有效的对抗样本评估机制。

64、6)对抗样本的功能完整性测试和逃避率验证:在保证功能完整性的同时,在virustotal检测网站验证对抗样本的逃避率,确保了对抗样本的实用性和有效性,也实现了更精准的恶意软件逃避检测。

65、以上这些技术进步,综合起来,提高了恶意软件对抗样本生成的有效性和效率,为恶意软件防御提供了更高级别的挑战,推动了恶意软件检测和防御技术的发展。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1