avatar

目录
机器学习在网络攻击检测中的应用

机器学习在网络攻击检测中的应用

研究现状

研究现状:针对当前入侵检测系统的不足,许多专家学者提出了将数据挖掘技术与机器学习算法融入到入侵检测系统中的方案

主要有:1.利用聚类技术减少支持向量的入侵检测系统

使用支持向量机一个很严重的问题就是极低的分类速度,分类速度是由支持向量的数量决定的。基于经过聚类的SVM是一种新的减少支持向量的方法。此方法利用k-means聚类技术将所有的数据聚成K类,然后利用SVM对每一类分别进行训练。K值为此类中支持向量数量的上界。

2.无监督的异常检测系统

在实际应用中,大部分原始的网络数据没有经过标注的。通过人工方式进行海量数据标注过于耗费人力。无监督的异常检测系统近些年已经成为研究的热点,他们不需要任何标注好的数据,大大降低了对训练数据集的要求,聚类算法是一种电行的无监督异常检测方法,这种方法通常假设数据集包含大量的正常数据和少量的异常数据,并且正常数据与异常数据存在本质的不同,

目前存在的问题

1.高速环境下的检测问题

对于入侵检测而言,对网络数据包进行重组可以保证必须的检测能力,比如对网络中的IP碎片包进行重组并加以分析可以避免IP碎片欺骗。但是这需要耗费更多的计算能力。

2.交换式网络环境下的检测问题

传统的网络入侵检测技术必须要添加一些硬件措施才能监控交换式网络,这回产生性能和通用性的实际问题。

3.加密的问题

如果网络中的数据包或者特征字符串没有经过加密,通过与知识库中的特征进行匹配,网络入侵检测技术可以发现入侵活动,但是如果网络上传输的数据呗加密,网络入侵检测系统无法正常工作。

此外还有虚假报警问题,误报、漏报率高(阈值确定),欠缺主动防御能力

入侵检测系统

入侵检测系统的基本组成

1.数据收集器

主要负责收集数据。探测器将网络数据包,日志文件等这些关键的网络数据收集起来发送至检测器进行处理

2.检测器

3.知识库

将审计数据的数据特征存放在知识库中,入侵检测系统将网络中新的审计数据的数据特征与知识库中的已知数据特征进行匹配分析从而判断此审计数据是否属于入侵行为

4.控制器

根据报警信号,人工活自动做出反映动作。

入侵检测系统的原理及作用

入侵检测系统主要工作包括监视,分析用户以及系统活动,对系统构造和弱点进行审计,识别反应已知攻击的活动模式并进行报警,对异常行为模式进行统计分析,评估重要系统和数据文件的完整性,以及审计跟踪管理操作系统并违法安全策略的用户行为,通过完成这些主要工作,可以实现对计算机系统的实时保护。

入侵检测利用模式匹配算法将当前待检测的网络数据同系统的知识库进行比较,根据匹配的结果来判断当前数据是否属于入侵行为。然后根据检测结果作出响应。8

扩展: KMP匹配算法

一个基本事实是,当空格与 D 不匹配时,你其实是已经知道前面六个字符是 “ABCDAB”。KMP 算法的想法是,设法利用这个已知信息,不要把 “搜索位置” 移回已经比较过的位置,而是继续把它向后移,这样就提高了效率。怎么做到这一点呢?可以针对模式串,设置一个跳转数组int next[]

python
def kmp_match(s, p):
m = len(s)
n = len(p)
cur = 0 # 起始指针cur
table = partial_table(p)
while cur <= m - n:
for i in range(n):
if s[i + cur] != p[i]:
cur += max(i - table[i - 1], 1) # 有了部分匹配表,我们不只是单纯的1位1位往右移,可以一次移动多位
break
else:
return True
return False


# 部分匹配表
def partial_table(p):
'''partial_table("ABCDABD") -> [0, 0, 0, 0, 1, 2, 0]'''
prefix = set()
postfix = set()
ret = [0]
for i in range(1, len(p)):
prefix.add(p[:i])
print(prefix)
postfix = {p[j:i + 1] for j in range(1, i + 1)}
ret.append(len((prefix & postfix or {''}).pop()))
return ret

聚类分析概述

**在入侵检测中使用无监督聚类算法可以使系统训练未经标注的数据从而检测出更多从未出现过的入侵。**数据聚类现在已广泛应用于各个领域,由于数据库中收集了大量的数据,聚类分析已称为数据挖掘研究领域中一个非常活跃的研究课题。目前,将聚类分析方法应用于入侵检测系统,已成为研究的一大热点。

特征选择

每一种网络攻击数据都有某些特定的“身份”,即人们所说的“特征”,入侵检测系统就是通过提取这些攻击特征与规则库中已有的特征进行匹配,从而确定这条数据是否为攻击数据,然而并非每条网络数据都是攻击数据。即使某种数据是攻击数据,由于其含有许多不同的特征,并非每种特征都会对最终入侵检测系统对入侵的判别起关键作用,并且某些特征属于重复特征。上述都会造成入侵检测系统做无用功导致效率低下,同时某些特征甚至会干扰系统做出判断。因此需要对特征进行筛选和删减。进过特征选择后,入侵检测系统的工作量会有所减少,工作精度会大大提高,从而提高整个检测系统的效率与性能。

可通过计算特征的信息增益来判断系统的重要性,信息增益大的其对应的特征也重要。

通过以下几种方式实现数据的约减:

数据过滤

数据过滤的目的是直接减少入侵检测系统需要处理的数据的数量,一些对于入侵检测系统来说无用的数据可以在处理之前直接删除。有利用降低对存储空间的需求,减少处理时间提高系统的效率和检测率,然而,数据过滤可能删除某些有用的数据,谨慎使用。

特征选择

在复杂的分类领域中,某些能包含错误的联系的特征会阻碍检测进程。此外某些特征向系统加入的信息可能被其他特征所包含着,通常称这些特征为冗余特征。额外的冗余特征会增加运算时间,会影响入侵检测系统的检测率。特征的选择依赖于入侵检测系统的类型,比如,基于网络的入侵检测系统需要分析诸如数据包的目的IP地址,协议类型,链接时间等于网络相关的数据。

数据聚类

聚类可以被迎来寻找入侵检测中数据的隐藏模式以及重要特征。因为聚类存储的是类的特征而不是单个数据的特征,所以可以呗用做数据约减。

特征选择的必要性

在很多实际问题中,往往不容易找到那些最重要的特征,或者由于客观条件的限制无法对其进行有效的测量。另外人们在测量重要特征时,只要条件允许,总希望把特征选的尽可能的多一些,全面一些。另一方面,由于客观的需要,为了突出某些有用的信息抑制无用信息,有意加上一些比值、指数、或对数等综合计算特征。如果将数目很大的测量值全部直接用作分类特征,不但会印象分类效果,而且会消耗大量的计算时间,从而引发维数灾难问题。

**经过选择或变换处理,得到有效的分类特征;同时还要再确保一定的分类精度的前提之下,进行降维处理,**这两个方面对于提高真个入侵检测系统来说缺一不可。

基于

特征选择在入侵检测中的应用

入侵检测系统的首要要求是正确性,其次是实时性。随着网络高速发展,检测速度低、符合大、来不及处理网络中传输的海量数据以及对数据处理的效果不理想已经成为入侵检测系统急需解决的主要问题。检测速度和低检测率已成为入侵检测系统设置中的重要指标,如何开发出检测速度快、检测准确度高的轻量级入侵检测系统以确保检测的正确性,成为当前研究的特点。

对于入侵检测系统来说,提取和处理特征输出过多是导致速度以及检测质量下降的主要原因之一。所以在尽量保证分类精确度的前提下,利用特征选择来去除冗余特征并将能够明确反映系统状态信息特征的保留从而实现降维。

特征选择算法

信息增益是一种构建决策树的方法,因为他是可以决定决策树中属性的优先顺序,通过计算信息增益来决定在分类过程中起最重要作用的特征,对于每一个特定的攻击类型,拥有最高信息增益的特征被认为是与此功绩类型最相关的特征。

高维特征向量的处理

在实际的入侵检测系统中,大部分数据都具有高纬特性,在高维情况下,数据之间相似性的概念是不复存在的(欧氏距离计算量太大)

在特征空间中,任意数据点可以与两个聚类中心构成一个三角形区域,计算这个三角形区域的面积,将此面积作为数据点的新的特征向量的一个分量,这个可以有效提高分类器的性能,

融合无监督学习与有监督学习

以往的入侵检测系统通常只采用两种机器学习方法中的一种,近些年混合两种机器学习方法的入侵检测系统已经逐渐成为研究的特点,融合两种机器学习算法对入侵检测系统性能的提升是非常有好处的。比如,人们经常先使用某种聚类方法对训练数据提前进行聚类预处理,这样往往会减少支持向量的个数,有利于支持向量机的性能提升。所以可以采用将K-means聚类算法与SVM支持向量机融合在一起,以使整个检测系统打到理想检测效果

基于三角形面积的支持向量机算法(TASVM)

1.提取聚类中心。

2.利用三角形区域形成新特征向量。

3.利用欧几里得距离计算三角形周长。

4.利用Heron公式计算三角形面试

新特征的形成

根据前面的分析,由信息增益得到10个与最最终的分类结果最相关的特征,接着利用k-means聚类算法对这些经过处理的数据惊醒聚类再由数据点和聚类组合成一个三角形区域,将10个不同的三角形面积计算出后作为新的特征向量。9

支持向量机

利用分类算法SVM对得到的新特征数据进行分类和测试。

SVM的特点就是他是一种基于结构风险最小化准则的学习方法。SVN算法分类的准确性在众多领域都得到了很好的验证。在解决小样本、非线性及高维模式识别问题中SVM表现出许多特有优势。

数据集

KDD Cup 1999 数据集一共包括4种不同类型的攻击,按照攻击方式及目的可以分为四大类: DoS–拒绝服务攻击类型,Probing–扫描或者对其他系统漏洞的探测、U2R–非授权得到超级用户权限或者运行超级用户函数、R2L–从远程计算机惊醒非授权访问。

10

总结

1.通过计算10%的所用数据集中所有特征的信息增益,得到了与最终分类与检测最为相关的10个特征,并将其他冗余特征删除,从而进一步提高分类的精确性。通过这一步,可以将原来的41维特征向量降至10维。

2.利用线性缩放统一连续型变量与离散型变量的取值范围,以便建立最终的特征向量。

3.使用K-means聚类算法将数据集聚成五类,提取出5个聚类中心。

4.对于每一个样本,从5个聚类中心中任意选出2个与此样本点构成一个三角形,这样会有10种不同的组合方式,计算这10个三角形的面积,将10个三角形面积作为这个样本点的新的特征向量,有利于提高分类器的性能。

5.利用十倍交叉验证在SVM中对实验数据进行训练与测试。

该文的入侵检测系统融合了无监督学习与有监督学习的机器学习算法,并对特征进行了选择,删除冗余特征,保存有用的特征,对特征向量进行降维,并对特征向量进行了新特征的表示。

文章作者: Eckle
文章链接: https://wowli-up.github.io/2020/04/19/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%9C%A8%E7%BD%91%E7%BB%9C%E6%94%BB%E5%87%BB%E6%A3%80%E6%B5%8B%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Eckle的个人网站
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论