Windows是全球最受欢迎的桌面操作系统,与此同时大量的恶意软件在该平台上运行。为了遏制恶意软件的传播,基于机器学习的恶意软件检测技术得到了广泛应用,但是对抗机器学习技术的引入也给恶意软件检测带来了新的挑战。现有对抗性攻击防御的研究主要针对图像和语音识别,而且计算代价大或不适用于恶意软件检测领域的对抗性攻击防御。而一些研究人员尝试提出对基于pe文件末尾和段等一类对抗性攻击的检测方法,但仍存在检测攻击种类少和漏报率高的缺点。本文研究Windows平台恶意软件检测器的对抗性攻击防御,提出了基于规则匹配的防御方法和基于段边界识别的防御方法,设计并实现了防对抗性攻击的恶意软件检测系统,主要工作和成果如下:(1)针对基于pe文件结构的对抗性攻击,为扩大对其检测范围,并降低检测漏报率,提出了基于段边界识别的检测方法和基于规则匹配的检测方法。在现有基于pe文件末尾和段等一类对抗性攻击的检测方法基础上,基于pe文件汇编代码和数据目录项,通过段边界识别实现对Code Cave等新型攻击的检测,并降低对Padding、Section Injection、Filling Slack Space 等攻击的漏报率;基于 pe文件Dos头、Dos存根、pe头等结构,通过制定不同的检测规则,实现对perturb Header Fields、Manipulating Dos Header and Stub、Shift、Extend等新型攻击的检测。在攻击检测的基础上提出对抗性攻击防御方法,防御方法包括攻击检测和攻击复原两部分。在检测到攻击后,通过删除扰动内容,修复pe头和修复段表对扰动进行复原。实验证明,所提出的方法在攻击检测种类和准确度方面均高于其他现有方法。此外,实验还证明在不对恶意软件检测器进行修改的情况下,所提出的方法有助于提高商业恶意软件检测器的鲁棒性。(2)基于上述对抗性攻击防御方法,设计并实现了防对抗性攻击的恶意软件检测系统。系统为普通用户提供恶意软件检测功能,为了消除对抗性攻击对恶意软件检测的影响,在进行恶意软件检测之前对8种结构性对抗性攻击进行检测,在检测到对抗性攻击后对扰动内容进行复原,将复原后的文件进行恶意软件检测。此外,该系统为恶意软件分析人员提供对抗性攻击检测、对抗性攻击分析和对抗性样本生成等功能,为管理员提供系统管理和维护等功能。系统实现时采用前后端分离技术进行开发,使用多种中间件以保证系统的可靠性和易于扩展性,使用Redis作为缓存数据库提高系统响应速度,使用RocketMQ对检测任务下发和执行进行解耦。同时,为了存储用户上传的大量文件,使用MinIO分布式对象存储技术,提高文件存取速度并方便对文件进行管理。系统还为用户提供了友好的Web界面,使其可以轻松使用该系统。
暂无评论