论文部分内容阅读
近年来,网络攻击急速增长,木马作为一种持续、隐蔽盗窃数据的恶意软件,在攻击者中收到了广泛欢迎。一旦在系统中完成安装,木马很难被发现。几乎每年都有隐蔽多年的新木马变种曝光。为了预防这种攻击,入侵检测系统和其改进版本被提出,但现有系统多使用基于特征的检测技术,恶意软件可以通过混淆、变形来规避检测。近年来,基于网络流量的分析技术显示出高效性和低占用率,机器学习的算法在其中发挥着重要的作用。然而针对木马网络行为识别这一应用,目前的研究较少考虑流量的时间序列性,且样本不平衡对分类有一定影响,对于木马的识别率较低,较少用于工业部署。本文从流量的时序进行分析,发现具有通用性的木马外部控制特性,从而据此提出基于时间序列分析的木马网络会话检测模型。通过时间聚合分离出应用程序的交互行为,将频繁序列挖掘算法应用于心跳检测,最后通过朴素贝叶斯分析验证交互序列是否属于木马或正常应用。该方法在一定的时间尺度内具有稳定性,可检测处于交互行为初期的木马。将该方法应用于现实网络数据集,可有效检测木马的外部控制行为,且具有较低的误报。本文完成的主要工作如下:首先,剖析木马的网络会话过程,分析了木马检测的研究现状,研究现有针对木马隐蔽特性的网络流量检测的方法,说明现阶段研究中主要使用的机器学习的方法的局限性。对于网络会话过程,重点研究交互操作阶段和连接维持阶段,从序列性角度直观说明木马与正常通信的区别。其次,提出基于时间序列切片的上传下载序列模式分析方法。将会话流按时间序列聚合切片,统计切片上传下载序列模式,统计结果随时间收敛。应用机器学习中的贝叶斯分析,切片序列的宏观特性可有效表征其外部控制特点。该方法充分考虑了流量的相关性和时间序列特性,具有时间稳定性,不需要采集完整流量,流量的截断对结果影响较小。然后,将频繁序列挖掘算法应用于心跳检测。在经过时间聚合切片处理的切片序列中搜索重复出现的包序列模式,可有效检测应用程序心跳。心跳机制是木马和正常应用程序都可能具有的网络行为。过滤流量序列中的心跳噪声,然后对所得序列切片进行贝叶斯分析,可有效区分木马通信和正常通信。最后,设计实现了木马网络会话行为检测系统,并测试了系统的准确性和时间稳定性。将系统应用于网络公开流量数据集,测试结果显示该系统可有效的检测出具有外部控制行为的木马,且具有较低误报。使用现实网络关口截获的流量数据进行测试,验证方法具有可行性,可确实捕获木马通信流量。所得数据可直观反映木马操作行为特征,实用性较好。