1.4 本书的组织结构
本书以基于动态规则库的异常检测为主要研究内容。一方面,将离线分析方法和实时检测方法相结合,设计基于动态规则库的大数据平台异常检测系统原型框架;另一方面,对异常检测系统的关键模块进行了详细描述。第一,在离线分析模块,利用Web应用的动态时效性进行数据预处理,利用经过并行化的频繁模式算法挖掘Web应用中的关联行为的频繁模式并作为规则库的规则;第二,在实时检测模块,通过实时Web应用构建Web会话流数据,建立混合生物基因序列比对模型,将Web会话与规则库的规则比对从而得到异常度,建立实时异常检测模型。
第1章是绪论。本章介绍了利用对大数据平台进行异常检测分析的研究背景与意义,并分析了国内外的研究现状,然后阐明了本书面临的主要问题和挑战,详细介绍了本书的主要贡献,最后在此基础上讨论了本书的研究内容并对本书的结构安排进行了说明。
第2章介绍异常检测分析的相关基础。本章为异常检测分析技术的研究做基础知识的概述,主要包括:日志、日志预处理、异常检测、入侵检测Snort系统等,重点介绍了异常检测算法及Snort系统的有关概念,如Snort规则库。同时,介绍了当前适用于应用层异常检测的Web用户行为模式挖掘,为应用层异常检测做理论准备。
第3章研究了基于数据流二重概念漂移检测的增量学习,主要介绍了一种基于数据属性和分类性能的二重概念漂移检测机制,接着给出了基于K-means聚类的概念漂移检测算法和基于伯努利分布的概念漂移检测算法,提出了一种基于二重检测的概念漂移数据流在线分类算法(TDD-ISVM算法),该算法可以有效地检测出不同类型的概念漂移现象,并根据不同问题采取不同的应对措施,对数据流有较强的适应能力。
第4章研究了分布式日志的最大频繁序列模式挖掘算法。本章提出一种SparkMFPs新算法,与现有的研究方法不同。首先,该算法利用Spark分布式架构,通过节点递归并行挖掘局部最大频繁序列模式,其中在构建后缀投影数据库时删除非频繁项,从而减小了投影数据库的规模,同时在递归挖掘时利用向前扩展的一致性检测避免了局部冗余的产生,提高了最大频繁序列模式挖掘的效率;然后,提出了一种对各节点进行结果集成从而获取全局最大频繁序列的算法,利用相邻长度的频繁序列进行超集检测,高效率地提取出所需的序列模式。
第5章研究了基于最大频繁模式的动态规则库构建算法。针对现有的Snort系统的规则库维护成本高及PrefixSpan算法的时间效率低的问题,结合Web用户行为序列,提出一种与已有方法完全不同的基于最大频繁模式挖掘的动态规则库构建方法,使得规则库具有动态性,且无须专家经验就能够产生规则库,更有实际意义。实验结果表明,通过对用户行为设置时间权重,可以从Web流量中提取主要访问数据,既减少计算量,又产生更具时效性的规则。DPS_DWASD算法运用网络流量时间模型与流挖掘模型的混合异常检测技术来建立动态规则库,缓解了智能推理方法需要大量时间且需维护检测模型的问题,同时也为异常检测与定位奠定了知识基础。
第6章研究了基于Web会话流的分布式实时异常定位算法。针对现有异常检测算法在实时异常定位方面成果不多的情况,本章提出基于Web会话流的分布式实时异常定位算法,该方法利用混合生物基因序列比对算法进行相似度度量,将会话序列与规则序列进行比对,通过Spark Streaming对实时Web用户的会话流进行检测和定位。实验表明,该算法通过Web会话流检测,能够较好地检测与定位异常,能够用于大数据平台异常的检测与分析,具有实际意义。
第7章研究了基于最大信息系数的在线异常检测算法。本章首先对网络异常的用户统计特征进行了分析,然后介绍基于相邻时间窗口用户活跃度序列相似度的在线异常检测思路,并引入了最大信息系数的概念,对比其他系数,从而提出了在线异常检测MIC4AD算法,并进行了相应的实验,实验表明MIC4AD算法可以有效检测网络异常,且具备良好的近实时性,实现了RADA系统近实时异常检测的功能。
第8章研究了基于聚类分析的离线异常检测算法。本章首先分析了基于数据挖掘的离线异常检测算法;然后描述了聚类分析领域的K-means聚类算法与Canopy聚类算法,针对K-means聚类算法的不足,提出了优化的CMBK聚类算法,用于异常检测;最后,提出了对聚类簇的异常指数AI的构建方法,结合AI与CMBK聚类算法提出了CMBK4AD离线异常检测算法,旨在实现RADA系统中历史数据异常检测的功能,并进行了相应的实验。实验结果表明,与K-means聚类算法相比,CMBK聚类算法有更快的收敛速度,且聚类效果略有不足,但在实际场景下表现得不明显,且CMBK4AD离线异常检测算法有良好的检测效果。
第9章研究了基于相邻请求的动态时间阈值会话识别算法。首先简单介绍了两种基于时间的会话识别方法,其次介绍了关于页面访问时间阈值、用户访问时间阈值和设置页面时间阈值的概念。通过实验证明,DAITS算法在一定程度上有助于提高会话识别的效率,其核心原理是基于相邻请求来动态调整时间阈值,能在日志的异常检测分析过程中提供可靠的支撑。
第10章研究了基于会话特征相似性模糊聚类的SFAD异常检测算法。通过将PageRank算法和SimHash算法相结合,可以对Web访问信息进行处理,从而得到每个访问序列的签名信息。然后计算每个会话滑动窗口内的签名信息的相似性,通过模糊聚类的λ-截算法来得出嫌疑用户,根据多个会话滑动窗口的综合考虑结果来检测并定位异常用户。实验结果表明,该算法能够获得较高的检测率并减小误报率。该算法的最大优点是基于异常信息和正常信息特征的不同,可以省去大量训练模型的时间,也无须专家进行经验性标识。
第11章研究了基于贝叶斯粒子群的异常检测算法。首先对ADM-NBC异常检测模型中涉及的基本工作进行了介绍,包括整个ADM-NBC异常检测模型中对用户会话特征的提取和构建ADM-NBC异常检测模型的过程。接着对基于ADM-NBC异常检测模型的WNB-PSO算法中的基本算法(加权朴素贝叶斯算法和粒子群优化算法)进行了简要介绍,然后对粒子群优化算法进行改进从而完成对WNB-PSO算法的详细描述。最后对ADM-NBC异常检测模型的可用性进行了实验分析并与其他分类算法进行了对比实验。实验结果表明该模型可以较好地检测日志中的异常会话,并且对WNB-PSO算法进行了实验验证,结果表明WNB-PSO算法具有良好的检测效果。
第12章研究了平台异常时的推测式任务调度策略。首先对公平调度器、计算能力调度器的架构及调度策略进行了详细讲解,随后介绍了Hadoop-Original推测执行调度算法、LATE推测执行调度算法、基于备份任务完成时间的推测执行调度策略,还介绍了在微软的Drayd并行计算框架中的推测执行调度策略。由于LATE推测执行调度算法是后续算法的修改基础,因此重点对其调度流程及优点和缺点进行了详细的分析。
第13章研究了基于实时负载的推测式任务调度算法。首先对Hadoop-Original推测式任务调度算法与LATE推测式任务调度算法的不足进行了详细的分析;然后对其中的任务进度估算方法、慢任务判定方法、慢节点判定方法和对备份任务执行节点的选择条件进行了改进,并详细描述了改进的过程,基于以上改进提出了改进的算法;最后描述了全分布式的Hadoop集群的部署过程并给出了安装步骤,对所提出的改进算法选择了具有针对性的实验方案并进行了实验,并对测试作业的完成时间进行了对比分析,实验结果表明算法具有可行性和高效性。
第14章介绍了大数据Lambda架构与微服务架构技术选型。主要介绍了用于Web应用开发的微服务架构和用于大数据分析的Lambda架构,以及采用两种架构所用到的技术的优点和缺点,为后面的系统原型架构设计进行了技术选型。本系统需要引入Web应用开发,采用Spring Cloud作为微服务架构,采用Spring Boot作为服务的开发架构,采用MyBatis作为ORM(Object Relational Mapping,对象关系映射)架构。大数据分析采用的是Lambda架构,在此架构中采用Flume收集日志数据,采用HDFS存储日志,采用Spark进行离线分析,采用Spark Streaming进行实时流数据分析,采用Kafka进行流式数据的组件处理。
第15章讨论了大数据平台异常检测分析系统的结构化分析的技术层面。从结构化程序设计的角度进行了初步需求分析,为面向对象的系统分析设计奠定重要的基础。重点介绍了RADA系统需求分析,通过对场景描述的研究和解读分析系统中需要解决的问题,从而引出系统中需要完成的内容,进一步提出了系统的功能需求。
第16章介绍了基于融合架构的RADA系统概要设计。本章主要介绍了RADA系统的概要设计,首先对系统的后台部分采用微服务架构进行设计,然后对大数据部分进行设计,最后对交叉部分进行融合设计。根据经过需求分析得出的模块来划分结果,设计了各个模块的类图,类图中的各个实例功能采用活动图进行了描述。
第17章研究了RADA系统的详细设计与实现方法。主要研究了RADA系统的架构实现和子系统实现。RADA系统的架构是由用于Web服务构建的微服务架构和用于分析大数据的Lambda架构融合而成的,所以首先介绍了两种架构的简单版的搭建方式,然后介绍了各个子系统的详细设计及其主要的用例实现,主要涉及两种架构融合技术的实例和基本的增删改查操作。
第18章是总结与展望。本章对研究内容存在的问题及下一步工作进行阐述,首先对研究内容和创新点进行概括,然后总结实验结果,并指出研究的不足之处,对下一步的工作内容进行规划。