李晶晶
(宁德职业 技术学院信息技术与工程学院 福建省福安市 355000)
近些年来,网络安全事件时有发生,多次出现的网络入侵事件,均显示了确保网络安全的重要性,所以探讨如何发现潜在网络攻击行为,如何对其进行防范,已经成为一项研究热点。目前来看,入侵检测技术手段重点涉及到几个类型,文章的重点方向是针对计算机网络入侵检测进行基于孤立森林算法的研究,该算法的对高维数据检测率低以及精度与稳定性不够理想问题,也同时需要得到有效处理。
入侵检测技术在计算机技术高速发展的时代,逐渐成为大家所共同关注的网络安全研究热点。对于入侵检测而言,工作重点是针对网络数据信息加以监视、分析,找出恶意入侵行为,它的宗旨是构建形成检测模型,让其可以检测得到全部异常行为,并给予相应的有铲处理。[1]在此基础上,入侵检测系统概念顺势产生,一般认为它是一个能够监视网络环境内数据信息,并于发现可疑数据后产生预警行为的系统。入侵检测系统可在工作过程中,监视网络数据,分析系统异常行为特别是被入侵迹象,并自动形成系统日志,将日志发送至管理器,从而达到对入侵行为及时响应效果。
根据入侵检测系统所针对的数据来源,可将其划分为如下类别,其一是基于主机式入侵检测系统,其二是基于网络式入侵检测系统,其三是混合类型的入侵检测系统。参照数据来源,入侵检测方法可分为几个类别,如待检测数据和数据库中数据比对分析的异常检测;系统网络内传递数据包同攻击数据比对的模式匹配检测;观察、扫描内部文件等形式支持下的合理化完整检测。各检测类别特点不同,如异常检测,即以正常行为模式为基准的一种检测方法,它首先构建系统正常模式,再由网络行为同此模式的差异性出发,明确是否有入侵行为出现,若被检测行为偏离于设定阈值范围,则可认为系统发生异常甚至出现被入侵情况。异常检测时,无法获取某类已知入侵行为的特征,其与误用检测有所区别的是,并非所有非正常行为均代表受到网络攻击,而只表现和正常行为模式相偏离而已,因此虽然检测率较高,但是误报率同样较高。
总之,虽然近些年来,很多研究者针对入侵检测问题,给出了不少的改进方法与建议,但依然无法避免方法上的应用局限性,例如整体上对训练数据集的要求比较高,惟有数据集规模足够大的时假,才会更为充分地显现正常行为模式特征,然而这一点在实际运用时,往往会受大量训练集获取困难的限制,再如误报率与漏检率偏高的问题,始终难以得到根本纠正,像入侵检测从已知攻击特征库出发进行研究,而如果系统内发生新型入侵行为,则难以避免会提升漏检率。
孤立森林算法(isolation forest)重点是把异常数据进行容易被孤立离群点的定义,也就是将其视为分布稀疏,且同时与密度较高群体偏远的点。[2]该算法体现出了集成学习检测算法的优势,同时线性复杂度较高,能够在网络安全检测中发现出入侵检测与噪声过滤等方面的作用,对于上面所提及的入侵检测系统可适度纠正,现对其应用原理展开说明。
孤立树这种二叉树节点或者具备两个子节点,或者具备零个子节点,如有两个子节点,那么此节点会再次划分,划分时将包括随机得到的数据特征,以及在此特征上被随机选取的分割值,让特征值小于或者大于分割值的数据分别置于左子节点或者右子节点中。利用该方式不断进行数据集划分,直到同下述几个条件相符,其一:树高不超出阈值;其二数据单独划分;其三,节点数据特征统一。对于孤立森林算法而言,重点借助孤立树得到孤立样本点,所以算法有可能及早地孤立异常值。
因为异常数据分布稀疏,同时和离密度高样本群体有较远距离,因此同正常数据相比较,它们更易于被隔离,所划分次数也趋于减少。为此,可更容易看到孤立森林算法的原理,即根据构建孤立树来计算样本点的深度,在建立多项孤立树后计算得到各数据平均深度,然后以平均深度为基础产生数据异常得分,发现异常数据。[3]具体讲,为发现样本异常分数,应首先做好孤立树深度归一处理,得到异常分数数值,该数值处于0~1之间。若某数据集包括n个样本,按照构建孤立树形式,该值能够被估计,标准化样本x路径长度h(x),并继而产生路径长度异常得分公式。此时可明确:若样本x平均路径长度接近于0时,异常分数有更高表现,也就是x被认为是异常数据有更高的可能性,若样本x平均路径长度接近于n-1时,那么x被认为是正常数据则有更高可能性。同理,若异常分数在0.5附近,那么则无法确认数据是否异常。
孤立森林算法应用于网络潜在攻击检测时,可包括两个环节,第一环节是训练,第二环节是评估。在训练环节,重点是以训练数据集子样本为基础建立孤立树,在评估环节,重点是以孤立树作为测试样本得到异常分数。[4]前期孤立森林算法同随机森林算法有类似之处,均以随机方式得到部分数据,将其视作子训练集,再据此集中构造形成孤立树,直至全部样本被孤立,或者孤立树达到预期高度要求。利用这种形式构建多个孤立树,在训练得到指定数目孤立树之后,便可宣告孤立森林算法的训练环节完成。
全部训练环节构建步骤可如下面所示:首先,给定一个数据集X={x1,x2,…xn},使数据集之中的各具体数据均包括d维特征,在数据集X内随机寻找样本点,构建数据子集,再把数据子集置于树的根节点。其次,从d维度内以随机方式得到维度q,再于维度内以随机方式得到切割值p,同时保证p值处于本维度最小值与最大值之间。接下来于切割点p生成超平面,让现在的数据空间被划分成两个子空间,其中小于或大于切割值p的样本点分别放入左右子节点。在此之后完成步骤2与步骤3的递归,直到孤立树达到理想的高度阈值,完成从步骤1至步骤4的循环,直至t棵孤立树生成。
在训练环节得到t棵孤立树之后,可利用它们所构建形成的孤立森林,对测试数据进行评估。对于某一数据样本x,可使之遍历全部孤立树,直至保证其遍历全部叶子节点,这时x计算数据落于孤立树第几层,便可找到经过路径长度 h(x),再利用x路径长度,得到其高度平均值,最终发现训练数据异常得分情况。
常规异常检测算法重点是对正常样本进行描述,也就是展示正常样本区域范围,若某一样本不属于本区域,便被视作异常。然而这种做法会有很多误报数据出现,而且只能得到极少异常数据情况。所以若数据集内仅存在少量异常数据,同时其与正常数据的差异明显,那么很显然和其他检测算法比较起来,孤立森林算法的应用效果更好。[5]依前所述,可以认为孤立森林算法属于无监督异常检测,它对特征提出了连续的要求,同时在线性时间复杂度方面考虑较多,所以在大容量数据处理方面效果明显。
孤立森林算法在查找孤立点时,应用了比较高效的策略,也就是以随机式的超平面对数据空间加以切割,且切割时把数据空间划分为两个组成部分,再以随机超平面循环切割的形式,最终产生单一的、孤立的点。实践中,若某一簇内密度偏高,便需要多次切割,若某一簇内密度偏低,操作过程便更轻松,更易于使簇内点被切割为孤立点。这种做法使得孤立森林算法能够针对异常样本做进一步的优化,同时可以展现出算法本身的较高检测率优势。与此同时,孤立森林算法线性复杂度值得重视,且其计算量远远不及距离检测、密度检测潜在攻击可能性大,因此可在网络异常攻击检测过程中拥有较好表现。
但是与此同时,仍然要看到孤立森林看法存在的不足之处,比较典型的问题在于:高维数据面前,孤立森林算法的应用存在明显的局限性,这是由于应用孤立森林算法时,每次均需要利用随机选择一个属性对样本空间进行切割,可能会造成相当一部分属性未能被选中的问题,从而造成了算法应用可靠性的降低,而此应当看到:无关维度、噪音维度等的存在与影响,也会导致孤立森林算法检测率的降低。
回顾孤立森林的原理、构造过程及使用优势,可发现该算法的一些不足之处,为此在实际工作中,应当针对此类问题做集中调整与改善。具体讲,在孤立森林算法应用时,实际上存在着适应范围的问题,例如对于存在少量异常样本的情况,同正常样本特征显著不同的情况,该算法具有较强适用性,如果不然,则攻击检测效果便会受到限制。未来可根据它的适用性,进行算法的改善处理,即利用对不同属性值分布差异情况,展开异常样本与正常样本差异的分析判断。在理想状态下,可把样本数据进行正常样本与异常样本的类型划分,让各类型值概率密度值在分布上只存在一个峰值,同时保证属性值概率密度分布的科学性。
人们得到了计算机网络技术的帮助,使工作、学习、生活变得更为便利,但同时也应看到:计算机网络技术存在着威胁隐私信息风险的客观存在,并采取相应的策略对这一问题进行解决。攻击检测技术的产生与发展,正是适应这一需要的努力方向。在对异常检测技术、误用检测技术的认知基础上,文章侧重于强调孤立森林算法在网络攻击检测领域的作用,并针对其性能展开了具体的分析。文章所侧重于探讨的内容是:孤立森林算法在原理上具有较强的实际应用优势,且可根据实际情况做出相应的调整,而针对孤立森林算法在高维数据检测期间准确度不足的问题,特别是对于异常情况的记录失真问题,文章尝试从孤立森林构建过程出发,对训练环节展开改进探索,以期选择最理想的特征方法。