论文部分内容阅读
0-day多态蠕虫针对还未发布补丁的软件漏洞进行攻击,且每次攻击时在网络上呈现出不同的字节序列,因而破坏性强,检测难度大,成为目前Internet的主要安全威胁之一。本文对基于网络的0-day多态蠕虫检测问题进行了研究。本研究通过分析0-day多态蠕虫的技术特点,基于三种不同思路(端口扫描分析,蠕虫特征生成,shellcode行为检测),分别提出相应的分析模型与检测算法,并通过实验予以验证。具体的研究工作和成果如下。端口扫描分析。现有的端口扫描检测方法很难有效地从大量扫描记录中识别新的蠕虫。本文根据同一蠕虫的攻击应具有相似的扫描行为的特点,提出基于聚类的扫描分析方法。该方法包括通过建立“扫描向量模型”,将任一扫描源的行为抽象为随时间变化的向量;以及提出一个基于中心的聚类算法,对动态变化的向量进行聚类。实验结果表明,此方法能够有效识别不同的蠕虫扫描活动。蠕虫特征生成。利用少量样本自动生成的蠕虫特征,可用于对蠕虫进行检测,但现有的基于内容的特征能够被多态蠕虫躲避。本文根据缓冲区溢出攻击的特点,将协议域的长度作为特征。通过建立流的域层级模型,形式化地定义了“长度特征”。在此基础上提出长度特征的生成算法,并证明算法在被攻击情况下的误警率和漏警率上限。实验结果验证了算法的各方面性能,特别是在最坏攻击下,算法仍有较高的准确性。Shellcode行为检测。多态shellcode是多态蠕虫的必要组成部分。为提高现有多态shellcode检测算法的速度和抗攻击性,本文提出了一个新的检测算法。作为算法的基础,本文首先对多态shellcode行为检测问题进行了形式化定义和分析,并提出代码的“行为描述模型”,其中通过“行为模式”对可执行行为进行描述和识别。算法利用CPU模拟技术,并设计、运用了多项创新性的技术。实验验证了本文算法在速度和抗攻击性方面,相对于现有方法的显著优势。在上述三方面的研究中,都实现了相应的原型系统,相关实验均基于原型系统完成。实验数据均源于真实的网络环境,包括网络流量数据和蠕虫攻击代码。