1.2 大数据平台异常检测分析技术的国内外相关研究进展
1.2.1 大数据平台异常检测分析技术的国内外研究现状
网络攻击流量异常检测分析技术[11]已经成为大数据平台异常检测的关键技术[12]。异常检测分析技术认为网络攻击流量占总体流量的比例较小,根据正常流量和攻击流量的区别来判断是否存在网络入侵,因此,异常检测分析技术的重点是根据用户访问时的行为轮廓来建立模型。相应的建立模型的方法有很多,较常见的方法大体上分为三类[12]:(1)基于统计分析的流量异常检测;(2)基于时间序列模型的流量异常检测;(3)基于流挖掘的流量异常检测。下面对这三种方法分别阐述。
(1)基于统计分析的流量异常检测。该方法不需要预先了解异常的特征,采用统计分析技术对时间序列进行检测。它按某一时间间隔针对系统或用户的行为来描绘该行为轮廓,再将合并的最终轮廓与正常行为轮廓比较,检测是否存在异常行为[13][14]。文献[15]认为数据偏离单个用户的正常行为超过一定阈值的(标记为异常),该数据会服从正态分布,否则将陷入“告警风暴”,另外采用的特征较少,无法准确地检测异常。文献[16]利用网络流量的多维度特征,将多个独立检测器结果进行模型融合进而联合检测,比单个特征检测器的效果更好,但是该模型需要手动调整多个参数,而且对于不同的数据集,在特征的选择上需要重新考虑。文献[17]首先进行多变量序贯分析,然后将预测行为同真实行为比较,最后通过信息熵来判断异常值,增大了变量之间的相关性,避免陷入对具体成分的细节研究,检测方法更简便。然而该算法的时效性不强,仅用了4个变量作为序贯,不够全面。一般而言,基于统计分析的流量异常检测在选择特征时没有统一标准,而且特征之间不是相互独立的。另外,该方法对事件的顺序不太敏感,可能会漏掉与关联事件有关的异常。
(2)基于时间序列模型的流量异常检测。对某个节点而言,存在差异的数据源之间一般不具有时空相关性,当异常发生时,相邻的数据在时空上有某种相关性,使得时间序列的有关参数发生改变[18]。该方法从全局角度分析,无须拆分数据,将当前时间流量模型与前段时间流量模型的相关参数进行比较,当相差较大时,认为存在异常。该研究方法通过自相似模型判别法计算流量模型的Hurst系数,根据Hurst系数的方差波动来判断异常[19]。自相似模型判别法的优点是事先不需要进行特征匹配,但是当异常流量与正常流量的Hurst系数相近时,将无法准确判断。多分形模型能够在小尺度上观察流量的功率谱,弥补了自相似模型的不足。以多分形小波模型[20]为代表的多分形模型通过将Web日志分为高频和低频,体现了突发性流量在短时间内的较精细的根本特性。但是这类方法是建立在重构相空间(Web日志模型的非线性特征量的提取及分析)的基础上的,其预测结果受相空间形状的影响。若参数值不合适,则会产生较大误差。智能推理模型通过有限状态机、模式匹配等方法来检测异常行为。中国科学院的王焘[21]利用增量式聚类构建模式数据库实现在线识别异常,在一定程度上解决了网络流量的增长导致的异常检测困难的问题,然而该方式主要针对事务型Web流量,并且在维护不断增大的模式库上需要耗费大量精力。基于网络流量模型的流量异常检测方法能够从全局考虑流量的变化,弥补了基于统计分析的流量异常检测方法的不足,但是需要依赖大量正常数据及消耗大量时间来建立初始模型,因此无法实时地定位异常。
(3)基于流挖掘的流量异常检测。数据挖掘技术的逐渐成熟使得数据流挖掘成为研究热点[21][22][23]。为了节省异常检测过程中的专家经验成本,可从网络流量中挖掘具有某种隐含的、有潜在价值的模式、信息、关联等,用来检测异常。其主要特点是可以检测已知或未知的异常流量并确定异常位置,而且能实时检测异常。文献[24]和文献[25]利用隐马尔可夫链模型,根据Web用户的浏览行为组建Web页面链,从而形成访问行为轮廓,如果用户的行为与正常行为轮廓的偏离度超过一定阈值,那么认为该行为属于异常,但是在训练马尔可夫链模型时较为耗时。文献[26]通过挖掘训练数据集的频繁模式来更新行为模型,并通过滑动窗口对实际数据进行分析,以实时检测入侵行为。但是由于前缀树的构造和调整需要较大的开销,因此导致全局频繁模式集无法快速地更新和维护。文献[27]提出数据包分割检测法,利用自适应提升方式对多个检测器进行强化学习,改善检测效果。由于基于流挖掘的流量异常检测方法的检测精度高、善于发现隐藏异常,因此对异常检测有至关重要的作用。然而,随着Web流量的海量化与时效化,如何利用大数据技术提出有效的Web流量分析方法、准确描述用户的行为、找出有效特征,是流挖掘方法的主要问题。
以上国内外相关技术的主要瓶颈表现为:它们往往面向单个主机应用,很少针对分布式集群系统,且很少具有并行处理能力,基本上不能实时检测分析,无法快速定位异常。目前,研究和开发大数据平台的实时异常检测技术已成为学术界与产业界高度关注的主题,但取得的可实用成果还不多。
针对以上问题,本书拟开展在离线环境中学习构建动态规则库,从而在在线环境中检测并定位异常的研究与应用。
首先,以规则库的思想来研究用户正常行为模式数据库。当今主流网络入侵检测系统Snort[28]能把规则库和网络数据进行模式匹配,检测可能存在的入侵行为。文献[28]利用关联规则完善规则库,减少Snort系统规则库的人工干预,提高了异常检测性能,但是关联规则算法在海量Web流量中的效率并不高。文献[29]通过标注正常流量和异常流量的数据集,利用分类算法将数据集按照异常的特征进行分组,以此修正规则库,但缺点是人为标注异常需要大量精力。文献[30]提出构造用户访问有向图,通过剪枝建立用户访问邻接矩阵,根据支持度阈值简化邻接矩阵,从而提取用户最大频繁访问序列。因此,保留Web流量的用户标识、页面标识及访问时间片段而构成的Web访问序列数据库(Web Access Sequence Database,WASD)是规则库的另一种表达形式。WASD是分析Web用户行为的一种重要格式,具有广泛的应用[31][32][33],然而国内外有关迅速有效地挖掘Web用户行为来建立规则库的研究并不多。
其次,以生物基因序列比对的思想来研究Web用户会话与规则库中的规则的异常度。文献[34]提出了通过会话异常度模型来计算会话之间的异常,通过分析Web流量的ON/OFF模式[35]来提取Web对象的主要Web页面(Main Page)、内嵌对象(Embedded Object)和思考时间(Thinking Time)变量,然后根据这三个变量建立6个公式的会话异常度模型,但是该模型涉及的4个权重需要手动进行配置。文献[36]提出一种利用基于降序支持度的上下定向无环图(Up-Down Directed Acyclic Graph approach according to the Support Degree Descending,SDD-UDDAG)[37]算法挖掘Web用户访问序列的最大频繁模式,再用生物基因序列比对算法将最大频繁模式与规则库进行比对。该方法只需要较少的公式和变量就能检测出Web流量的异常信息,但是由于只挖掘一段时间内的最大频繁模式,因此无法定位异常。文献[38]和文献[39]指出单独使用全局比对(Needleman-Wunsch,NW)算法[40]较粗糙,在使用局部比对(Smith-Waterman,SW)算法[41]进行组合比对时具有较好的效果,因此利用NW算法与SW算法进行序列比对。
最后,为了能够迅速而准确地实时定位异常,检测技术需要借助大数据技术。由于Web流量具有海量性与时效性,因此近年来,许多研究者依托大数据技术实现分布式计算,提高了异常检测的速率。文献[11]以UDDAG算法挖掘海量Web流量中的频繁模式,构建Web流量分析系统。文献[42]利用MapReduce完成对大数据的清洗与提取过程,提高了数据转化效率。清华大学的卓安[43]提出了使用各种非关系型数据库构建大数据平台,提高数据索引速度。文献[44]借助共享存储池,提高了海量流量存储的可用性。海南大学的丁洁[45]基于自相关系数提出异常行为自动检测模型,可以自动改进和修正,具有一定的实用性。北京大学的赵冰冰[46]设计了一种集数据分析、人工免疫与信息检索等技术于一体的大数据平台安全日志分析系统,能够有效地辨别用户行为。然而现有工作大多集中于分析Web流量的规律或检测一段时间范围内的Web流量异常,很少运用大数据技术实时定位异常。实现异常检测技术的实时定位对异常Web流量的拦截和及时处理有重要意义,直接关系到大数据平台运营商及Web用户的利益。
1.2.2 大数据平台异常检测分析系统的国内外研究现状
异常检测是入侵检测的一种。入侵检测的提出要追溯到1980年,在James P Anderson Company[47]的技术报告Computer security threat monitoring and surveillance(计算机安全威胁监视与监控)中分析了计算机面临的威胁种类,并开发了一套系统来应对这些威胁。此系统包含两个子系统,即安全监控子系统和安全追踪子系统,其中,安全监控子系统通过数据分析来提供一个异常报告,安全追踪子系统提供异常的详细时序活动日志。这是最早的入侵检测模型,通过分析数据来采取某种策略判断异常,入侵检测模型的结构如图1.1所示。
图1.1 入侵检测模型的结构
Denning D E等人[48]提出一种入侵检测模型,该模型独立于任何系统、应用程序环境、系统漏洞或已知的入侵类型。此模型包含6个重要的组件:正常用户、计算机资源对象、审计数据、知识、异常记录、知识库。此模型对重要组件给出了明确的定义,为入侵检测系统的研究奠定了基础。
Tung Le等人[49]为了应对越来越广泛和复杂的入侵与攻击,提出一种通用的入侵检测框架,可使各种入侵系统和响应系统相互协作。入侵检测框架如图1.2所示,收集的数据被特征提取(或称为事件提取),同时写入数据,然后根据检测结果的历史数据和知识库进行数据检测,将检测结果写入,如果检测到入侵,那么进行入侵响应。
图1.2 入侵检测框架
ACM(Association for Computing Machinery,国际计算机学会)的数据挖掘及知识发现专委会举办了第三届KDD Cup赛事,其主题是“网络侵入侦测及报告”,目标是建立一种识别网络入侵的预测模型。例如,美国哥伦比亚大学Lee W等人[50]通过分析系统审计数据、程序运行日志和用户行为,挖掘出一致性模式,进一步构建出一种分类器,用此分类器能检测未知的异常和已知的入侵。自此赛事以后,对入侵检测的研究开始集中在检测策略上,开启了用数据挖掘和机器学习来进行入侵检测的浪潮。
根据检测策略的不同,可将入侵检测系统分为误用检测系统和异常检测系统[51]。
(1)误用检测(Misuse Detection)是假定入侵事件可以用一种模式进行描述的检测。首先通过已知的攻击等入侵方式构建知识库,然后根据知识库中的具体知识与事件进行匹配,如果匹配成功,那么鉴定为一次入侵事件。此方法的关键是建立一个完善的知识库。误用检测根据构建知识库方式的不同,可分为基于模式匹配分析[52][53]、基于协议分析[54][55]、基于决策树分析[56]、基于专家系统分析[57][58][59]、基于状态转换分析的误用检测[60]。
(2)异常检测(Anomaly Detection)是假定入侵事件与正常事件有偏差的检测。首先建立目标系统及其用户的正常事件的模型,然后基于这个模型对系统和用户的实际活动进行鉴定,通过比较当前事件和正常事件的差异来判定是否有入侵行为发生。此方法的关键是建立有效的区分模型。异常检测根据使用方法的不同,可分为基于统计分析、基于数据挖掘分析、基于机器学习分析、基于神经网络分析的异常检测。
Haystack模型[61]是最早的基于统计分析的异常检测模型之一,该模型采用了基于用户和组的异常检测策略,把系统参数建模成独立的高斯随机变量,并为每个参数定义正常范围。如果在一个会话期间某个行为的参数落在了正常范围之外,那么这个行为的异常度将增大。在各个参数独立的条件下计算异常度的概率分布,若异常度够高,则Haystack模型将产生一个报警。Kruegel C等人[62]把256个扩展ASCII字符分成6组:0,1~3,4~6,7~11,12~15,16~255,并通过统计每组字符的频率来建立一个面向特定网络服务的检测模型。
基于数据挖掘的异常检测是从大量的、有噪声的、随机的数据中,提取出有用的知识和信息的过程。利用数据挖掘可以从大量的日常网络数据中挖掘网络的正常行为轮廓,从而识别用户的异常行为。Mao P P等人[63]提出把关联规则应用于异常检测中,分析了用户行为之间的密切关系,生成了关联规则用于异常检测,并优化了关联规则生成算法,使用模糊逻辑提高了系统性能。Treinen J J等人[64]提出了MSSP(Managed Security Service Provider,安全服务托管提供器)系统,该系统使用一种新的关联规则挖掘的方法,能缩短从异常出现到把异常放入规则库的时间,提高检测效率。
机器学习是专门研究计算机如何模拟或实现人类的学习行为的,目的是获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。Song H等人[65]提出了一种基于FPGA(Field Programmable Gate Array,现场可编程门阵列)技术的分类系统,用于网络异常的检测。该系统通过压缩数据表示和提高输出能力,可在千兆网速链路上同时进行多个匹配,从而实现实时检测。L Portnoy等人[66]提出了一种基于聚类的异常检测模型,该模型的算法不需要已标记的训练数据,采用数理统计的思想对原始数据进行标准化,对标准化后的数据采用单链接算法进行聚类。
神经网络的特点在于它具有学习的能力,这种学习算法允许检测系统紧密地模仿正常行为并且根据最近的变化进行调整。Alrawashdeh K等人[67]采用受限制的玻尔兹曼网络和一个深度信念网络实现了对异常检测的深度学习。Yuan G等人[68]提出了一种深度学习的子空间谱集聚类的方法对网络进行异常检测。李元兵等人[69]提出了一个应用 BP 神经网络检测程序异常行为的入侵检测模型。任勋益等人[70]克服 BP 神经网络速度慢、易陷入局部最小的缺点,利用 GA 的全局搜索能力优化BP 神经网络的权值,提出了遗传 BP 神经网络算法,并将其用于异常检测过程之中。
无论是误用检测还是异常检测,都有其优势与不足。误用检测的依据是已知的入侵模式,所以一般准确率比较高。若检测出入侵,则可以对入侵行为进行描述,且能对入侵的响应给予帮助[71]。此方法的明显缺点是没有检测未知入侵行为的能力[72]。异常检测不受已知入侵行为的限制而能检测到未知的入侵行为,其适应性较好,但此方法的缺点是准确率较低[73]。
随着技术的飞速发展,入侵技术和入侵检测技术也在不断地更新,对入侵检测系统的要求也随之提高。同时,大数据时代的变化对入侵检测系统的检测方法、系统开发、检测时效性提出了更高的要求。从入侵检测的方法上来说,应该使用更加先进的算法来提高检测的准确率。从入侵检测系统的体系架构上来说,应该采用分布式体系架构[74],无论是数据收集还是数据处理,都应该采用分布式体系架构,这样才能更快地处理大量数据。从入侵检测系统检测所需要的时间上来说,应该要求花费的时间更短,这样才能减少损失,也就是说要求入侵检测系统具有实时性[75]。