基于隐马尔可夫模型的动态调用序列分析入侵检测系统

来源 :苏州大学 | 被引量 : 0次 | 上传用户:angelasun
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
入侵检测(Intrusion Detection)通过对计算机主机或网络系统中的关键点收集信息并对其进行分析,从中发现主机或网络中是否有违反安全策略的行为和被攻击的迹象。异常检测(Anomaly Detection)是入侵检测的方式之一,它假设入侵者的活动异常于正常主体的活动。该方法的难题在于如何建立正常行为画像库以及如何设计统计算法,从而可以有效发现异常行为。程序执行路径可以用一个调用序列来表示,我们可以通过分析调用序列来进行入侵检测:当一个调用序列表现异常时即有可能存在恶意入侵。调用序列分析可分为静态分析和动态分析两种。静态分析方法直接分析被监控程序源代码的模型,而动态分析在不考虑程序内部结构和内部特性的情况下监控分析程序动态运行时产生的现象以构建模型。本文旨在设计并实现了一个基于程序动态调用序列异常检测的脱机入侵检测系统,用于检测利用在Linux系统下运行应用程序的漏洞的入侵行为。该系统结合静态分析与动态分析,训练得到一个可以表征程序正常行为的高阶隐马尔可夫模型(Hidden Markov Model,HMM)。其中静态分析结果用于对高阶HMM进行初始化,而动态调用序列用于对该模型进行训练。静态源代码分析模块是用于从待检测程序的源代码中抽取信息,并分析可能的审计事件序列。该模块包含了函数CFG(Control Flow Graph,控制流图)提取模块、分支预测模块、调用统计模块、聚合模块等四个子模块。根据被检测程序的源代码,依靠编译器的词法分析、语法分析、语义分析和分支预测等工具,可以静态分析获取程序的函数调用关系,并精准定位函数包含的所有系统调用/库函数调用,以及系统调用/库调用的所有可能的转移关系,并依据分支预测的结果对转移关系的可能性做量化评估,最终得到审计事件的转移关系。此模块的输出将作为训练模块的输入参数,用于对隐马尔可夫模型做初始化。在应用程序运行过程中,我们可以得到程序运行的系统调用/库函数调用序列。由于每一个观测状态代表一个调用,那么这个调用序列恰好就构成了模型的观测序列。本文采用经典的Baum-Welch参数估计算法,对初始的模型参数做修正,从而实现模型的学习过程。在学习结束后,我们将得到一个新的隐马尔可夫模型,从而更为精确地描述正常用户的行为。在实际应用过程中,通过训练得到的数学模型来量化函数调用/系统调用序列和该模型的偏差,再根据偏差的程度对行为进行辨别,偏差较大的行为将被判定为异常行为。对比现有的入侵检测系统,该系统具有以下特点:(1)改进了静态分析方法的难以量化、可扩展性低的问题。(2)改进了动态分析的正常行为样本描述偏差的问题,避免构建模型时完全依赖于训练样本。(3)使用了隐马尔可夫模型状态转移概率的有关性质,采用改进的高阶隐马尔可夫模型,兼顾了效率和精度。(4)充分利用了分析过程中的中间结果,扩展了检测的维度,提升了检测可靠性。
其他文献
本试验旨在研究吸附剂对饲喂AFB1处理饲粮肉鸡生长性能和免疫功能的影响。试验选取576羽1日龄AA肉鸡随机分为6个处理,每个处理8个重复,每个重复12羽。试验采取3×2因子,肉鸡
目的:十二指肠残端瘘是胃癌术后最严重并发症之一,通过病例回顾性研究,探索胃癌术后十二指肠残端瘘的相关危险因素,作为预防十二指肠残端瘘相关危险指标,为临床预防十二指肠残端瘘提供理论依据。方法:通过收集2013年5月至2017年12月期间在大连医科大学附属大连市中心医院完成胃癌根治术并保留十二指肠残端共521患者的临床资料,术后均经病理诊断确认,其中术后出现十二指肠残端瘘患者29例。收集临床资料包括基
2010年高考广东卷英语基础写作是关于禁烟的报道,该话题是前段时间社会的热点,为考生所熟悉,但根据今年高考考场评卷反馈,今年的零分卷占考生人数的8.4%,高于去年的7.5%。笔者参加了今年的高考评卷,对在今年高考中考生减少的情况下,零分卷的人数反而增多的情况做了个分析,希望能对同学们提高英语的作文成绩有些许的启发和帮助作用。下面请先看以下各种类型的零分卷。  一、零分卷解读  1. 完全抄袭阅读理