System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 针对Windows恶意软件检测器的对抗样本生成方法及装置制造方法及图纸_技高网
当前位置: 首页 > 专利查询>广州大学专利>正文

针对Windows恶意软件检测器的对抗样本生成方法及装置制造方法及图纸

技术编号:42143150 阅读:17 留言:0更新日期:2024-07-26 23:59
本发明专利技术公开了一种针对Windows恶意软件检测器的对抗样本生成方法及装置,包括:向良性软件中添加恶意代码,具体为:读取良性软件的PE结构,获取填充区间的地址与大小;在恶意代码中添加跳转命令和可扰动字节形成注入代码,并计算注入代码的长度;根据所述注入代码的长度和填充区间的大小,选择是否扩大填充区间;选择其中一个填充区间填充注入代码,当无法利用当前填充区间生成对抗样本时,进行添加扰动;所述添加扰动,具体为:利用遗传算法对可扰动字节进行更新;并检查对抗样本是否造成误分类时。本发明专利技术通过向良性软件中添加代码,由此产生对抗样本;并使用遗传算法添加扰动,使得算法能够适当地探索可行解的空间。

【技术实现步骤摘要】

本专利技术属于网络安全的,具体涉及一种针对windows恶意软件检测器的对抗样本生成方法及装置。


技术介绍

1、恶意软件的数量随着互联网的发展大幅增加,而且windows恶意软件在所有的恶意软件中占有很大的比例。为了应对海量恶意软件的威胁,并节省时间、金钱和人力资源,越来越多的研究者将目光放到基于机器学习的恶意软件检测上。但是对抗样本对基于机器学习的恶意软件检测器产生严重威胁,为了评估恶意软件检测器的抗攻击能力,研究对抗样本的生成方式变得尤为重要。

2、目前,针对恶意软件检测器对抗样本的生成方法,有基于梯度下降算法生成对抗样本、基于无梯度转移攻击生成对抗样本、基于无梯度查询攻击生成对抗样本。这些生成方法都是对一个恶意样本添加扰动,使恶意软件检测器将他们识别为良性样本。本专利技术从良性软件开始,对良性软件添加代码,在保持良性软件在功能不变的情况下具有恶意功能,使恶意软件检测器将添加代码后的样本仍识别为良性样本,由此产生对抗样本。


技术实现思路

1、本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种针对windows恶意软件检测器的对抗样本生成方法及装置,通过向良性软件中添加代码,由此产生对抗样本;并使用遗传算法添加扰动,使得算法能够适当地探索可行解的空间。

2、为了达到上述目的,本专利技术采用以下技术方案:

3、本专利技术一方面提供了一种针对windows恶意软件检测器的对抗样本生成方法,包括下述步骤:

4、向良性软件中添加恶意代码,以使得良性软件既能正常运行又具有恶意功能,具体为:

5、读取良性软件的pe结构,获取填充区间的地址与大小,所述填充区间为多个;

6、在恶意代码中添加跳转命令和扰动字节形成注入代码,并计算注入代码的长度;

7、根据所述注入代码的长度和填充区间的大小,选择是否扩大填充区间;

8、选择其中一个填充区间注入代码,当无法利用当前填充区间生成对抗样本时,进行添加扰动;

9、所述添加扰动,具体为:

10、利用遗传算法对扰动字节进行更新;当对抗样本无法造成误分类时,在预定的轮数内,对注入代码的扰动字节添加扰动,直至生成误分类的对抗样本,若在预定的论述内无法生成对抗样本,则更换填充区间,直至遍历完填充区间。

11、作为优选的技术方案,所述读取良性软件的pe结构,获取填充区间的地址与大小,具体为:

12、记录良性软件中image_dos_header的e_lfanew字段,image_file_header的numberofsections、numberofsection字段,image_optional_header的addressofentrypoint、filealignment和sizeofheaders字段,section table中各个节区的pointertorawdata、sizeofrawdata和virtualsize字段。

13、作为优选的技术方案,所述在恶意代码中添加跳转命令和扰动字节形成注入代码,并计算注入代码的长度,具体为:

14、首先,在恶意代码后添加跳转命令push addressofentrypoint;retn,使程序执行完恶意代码后跳转到良性软件自身的入口点;

15、其次,在跳转命令后添加指定长度的零字节,用于后续添加扰动;

16、最后,计算注入代码的整体长度,公式如下:

17、lengthinject_code=lengthmalicious_code+lengthjmp_code+lengthperturbation

18、其中,lengthinject_code是注入代码的整体长度,lengthmalicious_code是添加的恶意代码长度,lengthjmp_code是添加的跳转语句长度,lengthperturbation是添加的扰动字节长度。

19、作为优选的技术方案,所述根据所述注入代码的长度和填充区间的大小,选择是否扩大填充区间,具体为:

20、首先,分别计算良性软件本身的多个填充区间大小,所述多个填充区间包括良性软件末尾、dos_stub区域和第一个section与第二个section之间的填充区间,具体公式如下:

21、lengthfirst_region=llong_max

22、lengthsecond_region=e_lfanew-0x3c

23、lengththird_region=sizeofrawdatafirst_section-virtualsizefirst_section

24、其中,lengthfirst_region是第一个填充区间的长度,被初始化为llong_max;lengthsecond_region是第二个填充区间的长度,e_lfanew指向pe文件的开头,0x3c为e_lfanew相对于文件开头的偏移是一个固定值;lengththird_region是第三个填充区间的长度,sizeofrawdatafirst_section是良性软件第一个节区在磁盘中的大小,virtualsizefirst_section是良性软件第一个节区中有效代码的大小;

25、其次,分别比较lengthinject_code与lengthfirst_region、lengthsecond_region、lengththird_region的大小,如果lengthinject_code小于或等于三个候选的填充区间的长度,则将注入代码先插入到第一个候选的填充区间,并将良性软件的入口点修改为注入代码所在的位置对应内存的相对虚拟地址;并根据相对文件偏移地址计算相对虚拟地址的公式如下:

26、rva=raw-pointertorawdatafirst_section+virtualaddressfirst_section

27、其中,rva为代码对应内存的相对虚拟地址,raw为代码相对于文件开头的相对偏移地址,pointertorawdatafirst_section为良性软件在磁盘中第一个节区起始位置,virtualaddressfirst_section为良性软件在内存中第一个节区起始位置;

28、如果第二个候选区间或第三个候选区间的长度小于注入代码的长度,则需要扩大对应区间的大小。

29、作为优选的技术方案,所述扩大对应区间的大小为:扩大第二个节区大小是先把e_lfanew增加offset,并确保增加offset以后ms-dos头部、pe文件头、节区表的总大小是filealignment的整数倍,然后将sizeofheaders字段更新为修改后的总大小,接着将原本的pe文件头及后面的代码往后移动offset个字节,最后将每个节区对应的pointertorawdata增大offset个字节;

30本文档来自技高网...

【技术保护点】

1.一种针对Windows恶意软件检测器的对抗样本生成方法,其特征在于,包括下述步骤:

2.根据权利要求1所述一种针对Windows恶意软件检测器的对抗样本生成方法,其特征在于,所述读取良性软件的PE结构,获取填充区间的地址与大小,具体为:

3.根据权利要求1所述一种针对Windows恶意软件检测器的对抗样本生成方法,其特征在于,所述在恶意代码中添加跳转命令和扰动字节形成注入代码,并计算注入代码的长度,具体为:

4.根据权利要求1所述一种针对Windows恶意软件检测器的对抗样本生成方法,其特征在于,所述根据所述注入代码的长度和填充区间的大小,选择是否扩大填充区间,具体为:

5.根据权利要求4所述一种针对Windows恶意软件检测器的对抗样本生成方法,其特征在于,所述扩大对应区间的大小为:扩大第二个节区大小是先把e_lfanew增加offset,并确保增加offset以后MS-DOS头部、PE文件头、节区表的总大小是FileAlignment的整数倍,然后将SizeOfHeaders字段更新为修改后的总大小,接着将原本的PE文件头及后面的代码往后移动offset个字节,最后将每个节区对应的PointerToRawData增大offset个字节;

6.根据权利要求1所述一种针对Windows恶意软件检测器的对抗样本生成方法,其特征在于,所述选择其中一个填充区间注入代码,当无法利用当前填充区间生成对抗样本时,进行添加扰动是将添加注入代码后的良性软件交给恶意软件检测器进行检测,若检测为良性软件,则输出为对抗样本,若检测为恶意软件,则对注入代码中的扰动字节添加扰动。

7.根据权利要求1所述一种针对Windows恶意软件检测器的对抗样本生成方法,其特征在于,所述利用遗传算法对扰动字节进行更新,包括以下步骤:

8.一种针对Windows恶意软件检测器的对抗样本生成系统,其特征在于,应用于权利要求1-7中任一项所述的一种针对Windows恶意软件检测器的对抗样本生成方法,包括添加代码模块和添加扰动模块;

9.一种电子设备,其特征在于,所述电子设备包括:

10.一种计算机可读存储介质,存储有程序,其特征在于,所述程序被处理器执行时,实现权利要求1-7任一项所述的一种针对Windows恶意软件检测器的对抗样本生成方法。

...

【技术特征摘要】

1.一种针对windows恶意软件检测器的对抗样本生成方法,其特征在于,包括下述步骤:

2.根据权利要求1所述一种针对windows恶意软件检测器的对抗样本生成方法,其特征在于,所述读取良性软件的pe结构,获取填充区间的地址与大小,具体为:

3.根据权利要求1所述一种针对windows恶意软件检测器的对抗样本生成方法,其特征在于,所述在恶意代码中添加跳转命令和扰动字节形成注入代码,并计算注入代码的长度,具体为:

4.根据权利要求1所述一种针对windows恶意软件检测器的对抗样本生成方法,其特征在于,所述根据所述注入代码的长度和填充区间的大小,选择是否扩大填充区间,具体为:

5.根据权利要求4所述一种针对windows恶意软件检测器的对抗样本生成方法,其特征在于,所述扩大对应区间的大小为:扩大第二个节区大小是先把e_lfanew增加offset,并确保增加offset以后ms-dos头部、pe文件头、节区表的总大小是filealignment的整数倍,然后将sizeofheaders字段更新为修改后的总大小,接着将原本的pe文件头及后面的代码往后移动offse...

【专利技术属性】
技术研发人员:李树栋安琪吴晓波朱子枫吕洋喻卓成贾焰方滨兴唐可可张登辉韩伟红田志宏
申请(专利权)人:广州大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1