Using IRP and local alignment method to detect distributed malware
分布式恶意软件注入:新型的规避技术,通过将恶意软件分成块,然后将块注入到良性进程中,每个块相互通信,可以依次实现出完整的恶意行为(2016年提出,一种新型的代码注入
方法:用I/O请求包序列特征结合生物信息学中的局部对齐算法
规避技术:环境监察,模拟攻击,代码重用,代码注入
解决:基于特征(API序列、恶意行为、整体学习)的动态检测
仿真(模拟)器:为了使得恶意软件分成的块的顺序执行,当运行其的进程或者代码块关闭的是偶,由该模拟器运行的数据会被传输到其他模拟器,然后恶意程序又会生成新的模拟器(确保在系统中模拟器的数量
拆分方法:
1.BBS(基本块分割)
根据IDA中识别的基本块分割恶意代码,是以控制流指令结束的完整代码块
2.BAST(低于AV签名阈值)
其分块大小小于第一种大于第三种,大小可以根据配置选择
3.偏执型分块
每个基本块仅仅包含一条指令
局部对齐算法
原理是基于最长公共序列和动态编程,其并不是要在两个序列之间执行完整的序列对其,而是在序列上的高度相似度
在这篇文章中,字母代替特定的驱动与IRP请求,类似于生物学上地蛋白序列,采用的是属于某个驱动器地IRPs,这样在执行特征向量化地时候,IRP序列地鉴别可以变得更高
本文将一个完整的系统IRP序列设置为一个可疑序列,并将恶意软件IRP序列作为一个样本序列。将可疑序列与样本序列进行了比较。如果样本序列按可疑序列顺序一致,且匹配字符超过样本序列本身的80%,则标记为“检测到”
局限
正常下载器的IRP序列在模式方面与恶意软件下载器的IRP序列非常相似。在实验中,无法有效区分下载软件与正常下载软件的区别。下载器的行为也类似于一些后门恶意软件和木马恶意软件,这在识别过程中很容易产生假阳性。行为类似的恶意软件,或一些行为类似于恶意软件的良性软件,可能会导致误报,这也是基于IRP序列的检测方法的一个缺点。此外,使用本地对齐来检测分布式恶意软件也没有弹性。当恶意软件的行为与原始观察结果不匹配或出现未知恶意软件时,无法有效检测到。
通过实验验证,本文提出的IRP序列特征可以使恶意软件的检测准确率达到93.4%。同时,利用沙盒检测被真实恶意软件修改的分布式恶意软件,证实了该方法可以有效地检测大多数类型的分布式恶意软件,使分布式恶意软件的检测准确率达到93%。检测性能优于最近的类似研究。由于本文提出的检测方法对具有类似行为的恶意软件有较高的误报率,并且需要提高检测精度,我们将尝试在今后的工作中加以解决。