因果关联分析法

2024-05-28

因果关联分析法(精选四篇)

因果关联分析法 篇1

随着计算机信息技术的飞速发展和普及,计算机和计算机网络已经渗入到人们的工作学习和生活中。在计算机和网络带给人们巨大的方便与快捷的同时,同样也带来了各种负面的计算机安全隐患。在各种安全威胁下,恶意代码是较为常见的一种入侵方式。恶意代码对计算机安全的破坏有小有大, 小则计算机中数据丢失、被篡改,大则系统硬件可能被破坏。由于每种恶意代码在网络传播中的特点各不相同, 攻击阶段也各不相同, 如果采用传统的针对内容的检测分析无法高效识别与普通代码很相似的恶意代码。

本文提出了一种基于因果关联分析的方法来检测恶意代码, 通过研究恶意代码在网络传播中的攻击模型,以因果关联分析方法为理论依据,来检测恶意代码, 这种方式提高了对恶意代码的检测效率,降低了检测的误报率,并且能够兼容传统的数据包特征匹配算法。

2简介

2.1 何为恶意代码

Malware是恶意代 码的专业 术语。恶 意代码Malware本质是一段代码,只是这段代码含有一定的对计算机破坏的功能。恶意代码一般是运用计算机系统或者软件的各种漏洞进行破坏。 一般表现形式是二进制文件、脚本或者宏。

恶意代码主要包括计算机后门、计算机病毒、特洛伊木马、恶意移动代码、蠕虫、内核套件和僵尸网络等。

计算机后门是一种通过使用后门工具对目标机器进行控制的恶意代码程序,它能够绕开正常的安全控制机制。

计算机病毒的最大特点就是可以自我复制,具有一定感染性的一段病毒代码。

特洛伊木马: 正如特洛伊历史事件所描述的类似, 该段代码能够伪装成正常有用的软件博取用户信任,一旦用户点击打开,则暴露出恶意行径的代码。

恶意移动代码:一般情况下,恶意移动代码是部署在Web服务器端的, 所以它基本不需要过多的人工干预。一旦访问已经部署恶意代码的Web服务器,则本机就有可能被感染。

蠕虫:和计算机病毒一样具有自我复制性,将自身嵌套进宿主程序中运行的恶意代码。

内核套件:氛围用户态和内核态两种。一般通过替换或者修改系统中关键文件,获取最高控制权的一类程序代码。

僵尸网络:具有网络传播性和恶意性,危害较大。中毒的计算机不是一台,而是网络上的多台,感染范围较大,该恶意代码控制多台网络中的计算机,使其被感染的计算机如同僵尸一般受控制。

2.2 恶意代码工作原理

恶意代码一般通过四种方式运行: 利用系统漏洞、嵌入其他文件、伪装成有用文件和欺骗。恶意代码可以通过自我复制传染更多的主机文件或者网络上的不同 主机。传播的介质有网络电子邮件、计算机中的网络共享、移动介质(U盘、移动硬盘等)、P2P共享、系统本身漏洞等。恶意代码入侵主机后,可以通过修改系统设置成为系统开机自启动项目中的其中一项,当用户每次开机时,就启动恶意代码进行非法操作,如发起非法攻击、记录键盘和鼠标事件、获取用户隐私等等。

电子邮件传播的原理: 电子邮件中HTML正文可能被嵌入恶意脚本;邮件附件携带病毒压缩文件或者可执行文件。

P2P共享 :感染P2P共享文件夹 ,当用户在P2P文件夹中下 载文件时 , 可能被感 染。如WORM、PEERCOPY.A等恶意代码。

网络共享:恶意代码程序中会存在自身的口令猜测逻辑进行口令猜测, 试图访问网络共享中存在的文件夹,当获取到用户名和密码后,将自身恶意代码拷贝到网络共享中, 并将自身命名为游戏等名称吸引眼球,诱导用户点击触发。

系统漏洞:由于操作系统本身有一些设计缺陷,导致被非法用户通过非法方式利用,执行恶意代码,恶意代码通过系统漏洞进入系统, 达到感染目的。如Web DAV漏洞、Local Security Authority Subsystem Service漏洞、RPC-DCOM缓冲区溢出漏洞等是经常被利用的漏洞。

3因果关联分析

3.1 因果关联分析法

因果联系即有因必有果,万事万物都是存在因果联系的。任何结果的产生都是由因导致的。因果联系中的 事物是一种引起与被引起的关系。因果联系理论目前应用到很多领域,本文就是将因果联系理论应用到计算机恶意代码的分析检测中。

3.2 因果关联应用到恶意代码检测

关联特征过滤器的确定。将每个阶段恶意代码攻击的数据包特征进行正则描述,定义成关联特征过滤器集合T={t1,t2,t3,……,tn}。

M个n维的向量表集合的确定。每个向量分量为8的倍数的二进制码, 每个向量对于一个IP地址,n维代表共记录了n种恶意攻击。每个内网IP地址对应一个哈希值,恶意代码对应向量表中的其中一维,向量表中的一个单元表示与该内网IP相关的数据包对恶意代码的过滤情况。状态向量集合表的某个位置被更新时,应该判断与状态向量表位置相对于的因果关联特征过滤器的某个位置是否相等,如果两个值相等,则表明此时更新的是最终的状态,如果两个值不相等,则表明此时更新的不是最终的状态。

数据包进入n维度的关联特征过滤器后进行匹配分析,如果匹配则进一步表名该恶意代码具有因果关联特征。

在因果关联分析中,需要用到一种结构,该结构记录了源IP地址, 目的IP地址, 恶意代码第一次生成时间,最近一次清理的时间,恶意代码编号,所处的攻击阶段等内容信息。需要定期清理可疑IP组,每次清理后将剩下的IP组中的结构更新, 同时将状态向量表对应的二进制码归零。这样可以节省部分内存空间,减少恶意代码的误报率。

需要注意的是, 只需要存在一个n维的状态向量表, 就可以对应n个因果关联特征过滤器T1,T2,T3, ……,Tn。

因果关联分析法的恶意代码检测流程是:在网络中读取需要检测的数据包, 将数据包的来源IP与高度可疑的IP组相比较, 如果发现该IP在高度可疑IP组中, 则进入关联特征匹配,如果匹配结果为是,则进一步处理数据包。处理数据包主要是判断是否更新向量表,若内网地址的数据分组与关联特征过滤器中的成员特征成功匹配,那么内网地址对应的向量序号与对应的恶意代码进行哈希计算。匹配结果放置到向量表中的条件是,检测的数据包需要和一个关联特征相匹配。具体流程如图1所示。

4结束语

为了保障联入网络中的企业和个人能够安全地进行各项日常工作和活动,计算机安全技术,特别是计算机网络安全技术正在飞速的发展。由于其互联网本身的开发特性, 当今恶意代码流行的趋势是全球范围的,攻击速度越来越快,几乎为零日攻击,一般是几种网络攻击方式联合, 对计算机网络用户造成了严重的安全威胁。针对恶意代码的攻击原理,联入网络中的企业、个人等组织应该提高对恶意代码等网络攻击的安全防范意识,网络管理员应该及时更新操作系统发布的最新安全漏洞补丁,修补操作系统安全漏洞,加强网络共享管理, 强化密码设置,增强安全策略,加强密码强度。

摘要:文章针对恶意代码的攻击原理,介绍了对恶意代码的检测。通过因果关联的分析原理检测恶意代码,提高对恶意代码等网络攻击的安全防范意识,更新操作系统发布的最新安全漏洞补丁,修补操作系统安全漏洞;加强网络共享管理;强化密码设置,增强安全策略,加强密码强度。

探讨刑法中因果关系的认定出路分析 篇2

关键词:刑法;因果关系;认定;出路

当前不同法系的国家,其思维模式与实践手段都不同,然而不同法系国家在认识因果关系规则方面都比较统一。然而,当前各个法律体系的理论研究还不够确切,而且不同体系理论在发展过程中都存在着一定的问题,而且并没有形成比较完整的理论。尤其是我国的因果关系的认定受到哲学理论的影响,不利于解决刑法中的归责问题。所以,笔者主要针对于此进行合理地分析与研究,以此能够积极帮助我国构建科学的因果关系理论体系。

一、当前我国因果关系发展的背景分析

作为刑法归责中重要的内容,因果关系的认定在不同的国家有着不同的方式,然而每个国家对因果关系的归责都有着统一的认识,至今也没有完全统一的出路,而且每个国家的体系理论也存在着一定的问题,而且还没有型圈完整的通用理论。而对于我国来说,因果关系的解决长期以来被哲学命题所约束,而且渐渐步入误区。由于哲学观点下因果关系的处理与刑法中存在着一定的误区,不利于刑法中解决归责问题。所以,对于我国来说,应该研究新的理论体系内容。在建构因果关系体系前,应该对各个法律体系的理论发展以及优缺点进行合理分析与探讨,并且合理完善我国法律体系中的缺陷,对缺陷与弊端进行合理分析与比较,然后合理结合我国的现实发展情况,从而能够为我国重构心的因果关系理论体系提供积极的帮助[1]。

二、我国刑法中因果关系认定的司法现状

我国的司法实践过程中,因果关系有必然因果关系与偶然因果关系。在我国五十年代时期,有人提出了偶然因果关系,但是并没有得到较大的影响。而在八十年代初期,这一观点又被提出来,而且在刑法学界造成一定的影响,而且对其的支持者也越来越多。在司法实践过程中,对于必然因果关系来说,很多做到公平处理,这也对偶然因果关系的积极发展带来了机会,而且必然因果关系的地位受到了一定的冲击。而当前,对刑法中因果关系的认定具有一定的重视,对其的研究与发展能够促进我国法律规范的不断完善,促进我国法律体系的积极发展。

三、刑法中因果关系的认定出路研究

对于法律上的因果关系来说,主要是社会危害性的行为,与刑法规定产生的非难间的引起,或者被引起的关系,也就是说,社会危害性行为触及了刑法规范,而且已经触及到了刑法规范禁止的底线。而对于法律因果关系来说,主要包括两方面的内容,首先就是因果关系的法律否定性。对法律上的因果关系研究需要合理结合刑法的目的、任务等。因为保护权益是刑法的目的。比如,在刑法中规定了自身的任务,是要对一些犯罪行为作斗争,而且需要积极保卫人民民主专政政权,保卫国家安全以及公民的合法权益与财产等等。如果有不法行为对这些法益造成实质性的伤害过程中,那么刑法就会发挥自身的作用,而且刑法还会借助自身的标准对其进行因果评价,以此将刑事责任确定下来[2]。所以,刑法自身具有价值取向,而且将其作为自身的尺度,对行为造成的结果进行评判。另外,对于行为以及造成的不良后果,还有两者间的因果关系都有相应的刑事违法性,而且也触及了刑法,并且是刑法中不允许的内容。因此,一方面,行为应该具备社会危害性,而且分析其是否是刑法不允许的行为内容。而在实际生活中,并不是一切可以造成危害的行为都是刑法所要打击的对象。比如,在《刑法》中,第十六条规定了不属于犯罪的情况,这些情形尽管都造成了一定的损害,然而不属于触犯刑法的内容,而且可以不进行刑事责任的追究。另一方面,受到某种行为的影响,造成的结果伤害了刑法所要保护的法益。而符合伤害的标准主要是,遭到的伤害与致害的先行行为具有一定的联系,而且这种牵连性主要有直接的与法拟的。所谓直接牵连性来说,主要是发生的损害是通过危害行为的实施造成的,具有直接性的关系,在这一关系中,危害行為目的、目标是一致的,而且被损害的主体也与其一致。而对于法拟的牵连性来说,主要是受到受损害主体的作用,其偶然介入的关系,造成并非危害行为的目的,但是其损害效果具有相同的性质,而且也受到刑法的制约,也就是犯罪行为。因此,在分析刑法中的因果关系过程中,应该注重这两个牵连性的关系,从而更好地对案件进行合理分析,保护受害者的权益。

另外,刑法中因果关系具有适格性的特征。对于某一行为以及造成的危害结构,应该到达一定的程度,也就是不属于刑法规范之内的内容,能够纳入到刑法的调整范围,而且行为以及结果间的因果行为才有一定的意义,不然对其无法进行定罪量刑,并且对其进行追究形式方面的责任。比如,在《刑法》中13条规定的内容,情节比较轻,而且造成的危害不大,并不是所谓的犯罪,而在这一情况下,也需要承担相应的法律责任,以此对民事、行政责任等进行处理。所以,并不是所有的危害性行为与结果都需要借助刑法来对其进行调整,而是分析其危害性。如果危害性到达了一定的程度,刑法才能介入并发挥自身的作用。

四、结语

综上,对于刑法中因果关系的认定来说,需要经过漫长的过程,而且应该积极借鉴国外英美法系国家的研究成果,并且从我国的实际情况出发,为我国刑法法律规范与制度的完善做出合理的贡献。另外,应该积极抛弃哲学层面的因果关系理论,并且合理借鉴英美法系国家的相关实践理论,能够为我国刑事因果关系的认定寻找合理的出路,有助于我国法律体系的积极完善,促进我国经济社会的健康发展。

参考文献:

[1]温建辉.刑法因果关系新思考[J].理论探索,2014,(01):102-103.

[2]郭自力.论英美刑法中的因果关系[J].法治研究,2014,(06):66-68.

[3]劳东燕.刑法中目的解释的方法论反思[J].政法论坛,2014,(03):43-45.

作者简介:

因果关联分析法 篇3

在信息化社会中, 网络应用的深入发展和技术进步的同时, 非法访问、恶意攻击、病毒传播等网络安全威胁也越来越严重。当前的安全综合管理系统的目标是希望能把各种安全技术、安全产品、安全策略、安全措施等各种目标结合在一起, 共同形成一个坚实的木桶, 保护里面的水资源。在网络安全管理平台当中, 关联是核心和重要的一环, 如何统一监控、处理这些不同类型的安全信息, 在大量不完整、模糊的安全事件中准确地定位潜在的安全威胁, 对态势和威胁及其重要程度进行全面及时的评估, 是当前安全管理的一个技术难题[1]。

Peng Ning等人[2]提出了通过事件的前因和后果进行事件关联的方法。由于只指出单独事件的前因后果, 不必事先知道整个事件过程, 所以不必手工产生大量的关联规则, 只要指出一个已知事件的前提条件和可能造成的后果就足够了。同时, 这种方法还可以识别和报告不同攻击组合形成的新事件过程。

然而, Ning指出该文献所使用的因果关联算法存在下列问题: (1) 对于具有因果关系但有部分属性值不匹配的两个安全事件, 比如由分布式攻击触发的两个事件, 是否应该进行关联; (2) 对于分布式压力攻击所产生的大量安全事件, 该算法会产生数量巨大的因果关联规则, 从而给安全威胁的进一步分析工作带来了极大的困难。

本文提出了一种基于时间关联窗口的安全事件模糊关联算法, 能够较好地解决上述的问题。

1安全事件的因果关系建模

通过对实验数据中安全事件类型的研究表明, 78%以上的安全事件为告警事件, 其余的22%为故障事件。其中, 告警事件中数量最多的是关于非法入侵行为的报告。以入侵行为作为研究的切入点, 大量的案例表明入侵行为通常分为前后关联的若干个阶段[3,4,5]:

(1) 收集信息

收集目标系统信息 (包括有效的IP地址、活跃的端口、主机操作系统的类型、已知漏洞等等) 并试图闯入系统;

(2) 提升权限

在收集了目的主机的信息并成功闯入后, 寻找系统的安全漏洞并试图利用相关漏洞获取更高的权限, 甚至root权限;

(3) 窃取信息

非法访问目的主机或目标网络上的敏感信息, 窃取数据;

(4) 放置后门

利用在目的主机上获得的权限, 安装木马程序以便日后还能再次侵入;

(5) 发动攻击

利用被入侵的主机, 对其他主机发起攻击;

(6) 清理日志

掩盖入侵足迹, 消灭罪证。

由入侵行为的典型步骤可以发现:一般情况下, 任何一个步骤都不是孤立存在的, 它的执行总是在为后面的步骤作准备, 直到达到最终的恶意目的为止。

通过分析安全事件的因果关系, 可以使用三元组来描述一个安全事件, 即 (A, P, C) , 其中A为安全事件名, P为安全事件发生所需前提条件集合, 记为P (A) , C为安全事件发生后可能产生的结果集合, 记为C (A) 。由于安全管理代理不可能获得足够的信息来判断一个安全事件的发生是否造成了实际后果, 同时要想准确地判断出安全事件导致的后果, 还必须与受监控的安全节点的其他信息如网络拓扑结构、配置情况、OS的类型和版本、运行在本系统的服务等结合起来。故本文使用了“安全事件可能产生的结果”这一概念来简化安全事件结果的处理。上述前提条件和结果可以用单个原子谓词来表示, 也可以是若干原子谓词的逻辑连接 (使用连接词、和¬) 形式 (成为逻辑公式) 。原子谓词是基于英语的语义表示的, 是本文使用的一个基本结构, 谓词中的参数变量来自集合O, O为与攻击相关的一组属性集合, 可以表示为:O={srcIp, sPort, dstIp, dPort}, 每一个属性都有一个对应的论域。属性的不同取值, 同一事件类别具有不同的实例。为此本文引入安全事件分类的概念, 来表示具有相同安全事件名称的不同实例的集合, 记为CA= (A, P, C, O) 。

2持续时间关联窗口确定

针对传统安全事件因果关联方法所存在的对于具有因果关系但有部分属性值不匹配的两个安全事件, 是否应该进行关联的问题, 本文引入了基于持续时间关联窗口进行因果关联的思想, 只针对落入特定长度时间区间的两个事件进行关联, 以增加计算的合理性以及降低计算的复杂度。

定义1 持续时间关联窗口CWd:有时一个安全事件的发生是下一个安全事件的前奏, 考虑到实际情况和获得较好的关联性能, 必须对安全事件持续时间作一下限制, 只有时间落在该限制范围内的攻击才可能被关联。令安全事件集为E, 处于该集合内的安全事件可以考虑被关联的前提条件是:

Max{e.end_detectTime|∀eE}-

Min{e.begin_detectTime|∀eE}<CWd (1)

假设CWd = T秒, 如果两个高级安全事件的检测时间参数不接近, 但均落在长度为T的时间区间内, 则可以考虑使用因果分析对事件进行关联。

CWd的确定, 也即持续时间关联窗口T的确定, 可以采用经验值或者用不同的数学方法取得, 比如小波分析。

3基于模糊等量约束的因果关联算法

针对安全事件集的不完备性, 可以引入基于领域知识的假设条件作为纽带, 从而将存在间接因果关联的安全事件进行正确关联, 从而较为准确地构建安全威胁场景, 为系统管理员对安全形势的了解与响应提供有力的依据。

定义2 对于任意的两个安全事件e1和e2, 如果存在pP (e2) , cC (e1) , 有e1.end_detectTime < e2.begin_detectTime, 并且chp, 则e1和e2可以进行因果关联, 这里h指的是基于领域知识的假设条件。

通过进一步研究表明, 定义2的因果关联方法[2]会产生海量的安全事件关联结果, 为安全威胁场景的理解以及进一步的分析带来了极大的困难。因此, 本文借鉴定义2的思想并予以改进, 通过引入等量约束条件, 以求合理地降低因果关联的结果数量。首先, 本文给出基于严格等量约束的安全事件因果关联定义3。

定义3 对于高级安全事件e1和e2, 设u1, u2, …, un是事件e1的属性, v1, v2, …, vm是事件e2的属性, 如果e1.end_detectTime < e2.begin_detectTime, n=m且存在e1.u1=e2.v1∧, …, ∧e1.un=e2.vm, 则称事件e1和e2满足严格等量约束, 也即存在谓词pred, 对于cC (e1) , pP (e2) , c=pred (u1, u2, …, un) , p=pred (v1, v2, …, vm) , 有 (c, p) ⊆ C (e1) ⊆ P (e2) , 因而称事件e1和e2具有因果关系, 集合C (e1) ⊆ P (e2) 上存在严格的二元因果关系R

同理, 依定义2和定义3, 对于假设条件h的引入, 设w1, w2, …, wl是假设条件h的属性, 如果e1.end_detectTime < e2.begin_detectTime, n+l=m且存在e1.u1=e2.v1∧, …, ∧e1.un=e2.vnh.w1=e2.vn+1∧, …, ∧h.wl=e2.vm, 则称e1∧he2满足等量约束, 也即存在谓词pred, 对于C (e1∧h) , P (e2) , 有pred (u1, u2, …, un, w1, w2, …, wl) = pred (v1, v2, …, vm) , 则e1∧he2具有因果关联关系, 集合 (C (e1) ∪H) ⊆ P (e2) 上存在二元因果关系R, H为假设条件h的集合, 且可以为空。

由于安全设备或软件本身的不完善, 安全事件的漏报和误报现象普遍存在, 从而导致了安全事件集存在不完备性。另一方面, 当前黑客的攻击手段千变万化、日新月异, 特别是从多个源地址发起的分布式协同攻击, 为安全事件的因果关联提出了新的挑战。通过实验表明, 在安全事件的因果关联计算过程中, 要保证待关联事件的属性严格满足定义3的等量约束条件, 从而生成正确的关联结果是非常困难的:依据定义3的严格等量约束所生成的因果关联结果数目将大大低于实际数目。我们提出了基于模糊等量约束的因果关联算法, 在安全事件集的不完备性与安全威胁的多样化的条件下, 以改进安全事件的因果关联计算的性能, 运用模糊理论较好地解决上述问题, 从而发现安全事件之间潜在的因果关联关系。

对于任意安全事件e1与e2, 根据模糊理论, 可以引入C (e1) ⊆ P (e2) 上的二元模糊因果关系R˜来描述时间e1与e2之间是否具有因果关联关系:R˜C (e1) ⊆ P (e2) 的模糊集合, 即C˜ (a1) ×Ρ˜ (a2) , 其隶属度用函数μR˜ (c, p) 表示。隶属度函数μR˜ (c, p) 在实轴闭区间[0, 1]取值, 其大小表示了序偶 (c, p) 在模糊集合R˜上的隶属度, 也即c, p具有模糊因果关系的程度。

定义4 对于高级安全事件e1和e2, 设A1={u1, u2, …, un}是事件e1的属性集, A2={v1, v2, …, vm}是事件e2的属性集, B1={u1, u2, …, uq}和B2={v1, v2, …, vq}分别是e1和e2的基本属性集, 其中qnqm B1⊆ A1, B2⊆ A2, 如果e1.end_detectTime < e2.begin_detectTime, 且存在e1.u1=e2.v1∧, …, ∧e1.uk=e2.vk, knkm, 其中B1⊆{u1, u2, …, uk}, B2⊆{v1, v2, …, vk}, 则称事件e1和e2满足模糊等量约束;也即存在谓词pred, 对于cC (e1) , pP (e2) , c=pred (u1, u2, …, un) , p=pred (v1, v2, …, vm) , 有 (c, p) C˜ (e1) ×Ρ˜ (e2) , 因而称事件e1和e2具有模糊因果关系, 集合C (e1) ⊆ P (e2) 上存在模糊二元因果关系R˜

根据定义4, 给出隶属度函数μR˜ (c, p) 的定义如下:

μR˜ (c, p) =i=1qW (ui, vi) ×j=1kW (uj, vj) i=1ΜtWi0<qkmin (n, m) (2)

其中, uivic=pred (u1, u2, …, uk) , p=pred (v1, v2, …, vk) 中对应的属性。mt=Mat (c, p) , 表示cp中相匹配的属性的个数。W (ui, vi) 属性uivi的权值且W (ui, vi) ∈[0, 1]:

对于基本属性uivi, W (ui, vi) ∈{0, 1};对于非基本属性uivi, W (uivi) 的取值wi由领域知识确定, wi∈[0, 1]。则集合C (e1) ⊆ P (e2) 的二元模糊关系R˜的支持度函数SupR˜ (C, Ρ) 可以定义为:

SupR˜ (C, Ρ) =k=1min (n, m) μR˜ (ck, pk) mt (4)

其中, piP (B) , cjC (A) , i∈[1, m], j∈[1, n], 支持度函数SupR˜ (C, Ρ) 在实轴开区间 (0, 1) 取值。当SupR˜ (C, Ρ) 的值大于支持度阈值Tsup时, 则认为集合C (e1) ⊆ P (e2) 存在二元模糊关系R˜其中Tsup∈ (0, 1) 。

定义5 通过对项进行代换, 使两个谓词公式一致的过程, 称为合一代换[3] (unify) 。设公式F1, F2, 代换φ, 使得F1//φ=F2//φ。

定义6 最通用的合一代换mgu (most general unifier) :若ψ是公式集F={F1, F2, …, Fn}的一个代换, 且对F中的任一合一代换φ都存在一个代换Ω, 使φ=ψΩ (⊙表示复合代换) , 则ψF的一个mgu。

根据定义5和定义6, 在已知领域知识的前提下, 找出具有等价关系或蕴含关系的谓词公式对, 进而运用代换法则, 可以定义相应的合一代换。表1给出了部分具有等价关系或蕴含关系谓词公式对的合一代换。

根据定义4→定义6, 可以给出基于模糊等量约束的高级安全事件因果关联定义7。

定义7 假设有高级安全事件e1和e2, 存在piP (e2) , cjC (e1) , i∈[1, m], j∈[1, n]。假设有领域知识r1, …, rq, 其中领域知识rl的前提为Prl, 结果为Qrl, 它们之间的蕴涵关系表示为PrlQrl, l=1, 2, …, q

如果满足下列条件之一, 则认为e1和e2具有因果关系, 可以进行因果关联。

(1) 存在一个mguθ, 并且存在i∈[1, m], j∈[1, n], 使得pi//θ=cj//θSupR˜ (C, Ρ) Τsup;

(2) 存在q+1个mguθ0, …, θq, 使得C (e1) //θ0=Pr1//θ0;对于k∈[1, q-1], 有Qrkθk= Pr (k+1) //θk;P (e2) //θq=Qrq//θq且满足SupR˜ (C, Ρr1) ΤsupSupR˜ (Ρr (k+1) , Qrk) ΤsupSupR˜ (Qrk, Ρ) Τsup

根据定义7, 可以得出高级安全事件的模糊因果关联算法:

假设由聚类合并算法生成的高级安全事件构成算法输入集合E, 将算法输出结果集合S及缓存集合RQ初始化为空。集合E中的安全事件在时间轴上是有序的, 设eiejE中的高级安全事件, 有ei.end_detectTimeej.begin_detectTimeei.begin_detectTimeej.end_detectTime。设e0为集合E中检测时间最早的安全事件, 则∀eiEe0.end_detectTimeei.begin_detectTime。根据定义4, 设Ai={ui1, ui2, …, uin}是事件ei的属性集, A2={vj1, vj2, …, vjm}是事件ej的属性集, Bi={ui1, ui2, …, uiq}和B2={vj1, vj2, …, vjq}分别是eiej的基本属性集。取持续时间关联窗口宽度为CWd=T。输出结果集合S中的序偶{ei, ej}表示eiej具有模糊因果关联关系。

Step1 令S=Φ, R=Φ。从E中取出事件e0, 令ei = e0。搜索E, 对∀ejE, 若满足ei.end_detectTimeej.begin_detectTimeei.end_detectTime - ej.begin_detectTimeT, 则将ej存入R, 转Step2;否则, 将{ei, ej}加入S, 转Step7;

Step2 对于∀ejR, 首先计算eiejC (ei) 和P (ej) ;任取pP (ej) , cC (ei) , 分别计算μR˜ (c, p) SupR˜ (C, Ρ) 。若SupR˜ (C, Ρ) Τsup, 则eiej具有模糊因果关联关系, 转Step5;否则, 转Step3;

Step3 扫描合一代换表, 若存在一个mguθ, 并且存在i∈[1, m], j∈[1, n], 使得pi//θ=cj//θSupR˜ (C, Ρ) Τsup, 则eiej具有模糊因果关联关系, 转Step5;否则, 转Step4;

Step4 扫描合一代换表, 若存在q+1个mguθ0, …, θq, 使得C (ei) //θ0=Pr1//θ0;对于k∈[1, q-1], 有Qrk//θk= Pr (k+1) //θk;P (ej) //θq=Qrq//θq且满足SupR˜ (C, Ρr1) ΤsupSupR˜ (Ρr (k+1) , Qrk) ΤsupSupR˜ (Qrk, Ρ) Τsup, 则eiej具有模糊因果关联关系, 转Step5;否则, eiej不具有因果关联关系, 转Step6;

Step5eiej具有模糊因果关联关系, 将{ei, ej}加入S, 将ejR中删除;若R=Φ, 将eiE中删除, 转Step7;否则转Step1;

Step6eiej不具有因果关联关系, 将ejR中删除;若R=Φ, 将eiE中删除, 转Step7;否则, 转Step1;

Step7 输出结果集合S

最后实时接受安全事件数据 (classification事实和event_schema事实格式) , 对于发生时间落入CWd时间窗口的安全事件数据通过规则匹配输出关联安全事件, 通过分析链接形成安全事件的触发场景。

4实验与分析

为了验证安全事件模糊等量约束的因果关联算法的有效性, 我们在华南理工大学的动态自治安全事件管理系统中对算法进行了实验和测试, 集成测试的系统部署实例示意如图1所示。

管理中心服务端运行安全事件管理的核心引擎部分、事件分析部分及Web JSP/Servlet/JavaBean后台管理部分程序;管理代理端运行安全监控系统和事件采集代理;管理中心客户端为普通PC机。

在上述实验环境下, 采用的系统测试方案如下:管理中心服务器1台, 位于192.168.71.30上;监测代理有两个, 分别在两台服务器上, 其中一台装snort IDS代理, 位于192.168.73.5, 另一台装Matrix邮件监控代理, 位于192.168.73.4;数据源采用实际环境下的安全事件数据, 分历史数据和实时数据, 其中历史数据共13819条, 时间跨度为两年, 里面IDS事件数据和Matrix垃圾邮件日志数据各有6125条和7694条, 实时数据主要是IDS事件数据。

关联分析包括基于源/目的IP地址、基于事件类型、基于源/目的协议、基于源/目的端口等的关联分析, 这里选取基于源IP地址关联, 原始数据=13819条, 关联时间=1天, 事件测试后生成关联事件结果222条。结果表明, 关联分析算法能对安全事件进行较为有效的聚类合并, 继而进行较为准确的因果关联分析, 从而取得了较好的聚类关联结果, 不但使安全事件得到很大程度的精简, 正确重构出攻击场景, 同时也更方便管理员发现真正的安全问题。

在实践中, 我们还采用LLDOS2.0.2数据集对系统的事件聚类及关联算法进行测试, 主要考察算法的事件关联的完备性和正确性测度。

完备性测度=正确被关联的事件数/总的相关事件数

正确性测度=正确被关联的事件数/被关联的事件数

完备性测度主要用来评估关联相关事件的程度, 正确性测度主要用来检查事件被正确关联的程度。

实验中本文采用的策略为:凡是与LLDOS2.0.2给出的攻击场景描述不一致的事件均视为误告警事件。如果误告警事件被关联, 则视为不正确事件关联。由于与关联相关的事件的丢失将导致事件关联的丢失, 视为丢失的事件关联。

安全事件模糊等量约束的因果关联算法的完备性测度为82.75%, 正确性测度为86.95%, 关联性能比较满意。

5结论

本文对异构网络的安全事件特点进行了深入分析, 提出了基于模糊等量约束的因果关联算法, 能够基于领域知识对安全事件的因果关系进行分析;引入基于模糊等量约束的分析方法, 能够在一定程度上解决安全事件的漏报与领域知识的不完备性问题;在实验分析中, 该算法取得了较好的效果。

参考文献

[1]刘兰, 李之棠, 李家春, 等.基于异构系统的统一网络安全监控体系模型[J].小型微型计算机系统, 2006, 27 (9) :1682-1686.

[2]Ning P, Cui Y, Reeves D S, et al.Techniques and tools for analyzingintrusion alerts[C].ACM Transactions on Information and System Se-curity (TISSEC) .New York, NY, USA:ACMPress, 2004:274-318.

[3]李家春.入侵检测的分级告警关联理论和技术研究[D].华中科技大学, 2003.

[4]Fredrik Valeur, Giovanni Vigna, Christopher Kruegel, et al.Acompre-hensive approach to intrusion detection alert correlation IEEE Trans[J].Dependable and Secure Computing, 2004, 1 (3) :146-169.

因果图分析法研究与实现 篇4

随着软件质量受重视程度的日益增加, 软件测试在国内软件项目开发中也越来越受重视, 并得以迅速发展, 而测试用例是软件测试全部过程的核心, 是测试执行环节的基本依据。因果图分析法是设计测试用例的重要方法之一, 它属于黑盒测试的范畴。因果图分析法原理简单, 步骤明确, 但由于目前诸多参考教材对于该方法的介绍基本都采用了相对复杂实例, 特别当把因果图转换成判定表这一步骤, 目前还没有提出过明确性的方法, 所有的实例都是直接给出答案, 而没有解释方法, 这样就给学习者在理解上造成一定的困难, 本文在教学实践前提下, 就因果图如何转换为判定表提出了一种简易可行的方法, 并结合实例加以实现。

2 方法介绍

2.1 因果图定义

因果图 (cause effect graphics) 是一种形式化语言, 是一种组合逻辑网络图。它是把输入条件视为“因”, 把输出或程序状态的改变视为“果”, 将黑盒看成是从因到果的网络图, 采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。因果图法的基本原理是通过因果图, 把用自然语言描述的功能说明转换为判定表, 然后为判定表的每一列设计一个测试用例。

2.2 产生背景

等价类划分法和边界值分析方法都是着重考虑输入条件, 但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了, 但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件的各种组合, 则可能的组合数目将是天文数字, 因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计, 这就需要利用因果图。因果图法是一种帮助人们系统地选择一组高效率测试用例的方法。

2.3 因果图基本符号和条件约束

(1) 4种符号分别表示了规格说明中4种因果关系, 如图所示:

①恒等:

若a=1, 则b=1;若a=0, 则b=0;

②非:

若a=1, 则b=0, 若a=0, 则b=1;

③或 (∨) :

若a=1或b=1或c=1, 则d=1;若a=b=c=0, 则d=0;

④与 (∧) :

若a=b=c=1, 则d=1;若a=0或b=0或c=0, 则d=0。

(2) 因果图中使用了简单的逻辑符号, 以直线联接左右结点。

左结点表示输入状态 (或称原因) , 右结点表示输出状态 (或称结果) 。

(3) Ci表示原因, 通常置于图的左部;ei表示结果, 通常在图的右部。

Ci和ei均可取值0或1, 0表示某状态不出现, 1表示某状态出现。

(4) 约束:

是指输入状态相互之间还可能存在某些依赖关系。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中, 用特定的符号标明这些约束。

输入条件的约束有以下4类:

①E约束 (异) :

a和b中至多有一个可能为1, 即a和b不能同时为1。

②I约束 (或) :

a、b和c中至少有一个必须是1, 即a、b和c不能同时为0。

③O约束 (唯一) :

a和b必须有一个, 且仅有1个为1。

④R约束 (要求) :

a是1时, b必须是1, 即不可能a是1时b是0。

输出条件约束类型:只有M约束 (强制) :若结果a是1, 则结果b强制为0。

2.4 利用因果图生成测试用例的基本步骤 (如图2)

(1) 分析软件规格说明描述中, 哪些是原因 (即输入条件或输入条件的等级类) , 哪些是结果 (即输出条件) , 并给每个原因和结果赋予一个标识符。

(2) 分析软件规格说明描述中的语义, 找出原因与结果之间, 原因与原因之间对应的关系, 根据这些关系, 画出因果图。

(3) 由于语法或环境限制, 有些原因与原因之间, 原因与结果之间的组合情况不可能出现, 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件 (可略) 。

(4) 把因果图转换为判定表。 (重点改进之处)

按照由上至下, 从左往右的顺序依次转换各关系, 具体方法如下:

①恒等:原因为真 (1) |结果为真 (1) , 原因为假 (0) |结果为假 (0) ;

②非:原因为真 (1) |结果为假 (0) |原因为假 (0) , 结果为真 (1) ;

③或 (∨) :原因分别取真一次, 结果为真;

④与 (∧) :原因同时取真一次, 结果为真。

(5) 把判定表的每一列拿出来作为依据, 设计测试用例 (测试用例在判定表中) 。

3 因果图实例推导

某软件规格说明书包含“订货单处理程序”的处理逻辑描述为:如果订货金额不足500元且未过期, 则向顾客发出批准单和提货单, 已过期的什么通知也不发;如果订货金额超过500但不足1000, 则发出批准单和提货单, 对已经过期的发过期通知单;如果订货金额超过1000, 不论是否过期, 都要发出批准单和提货单。

第一步:对说明进行分析, 得到原因和结果:

原因:1——订货金额不足500;

2——订货金额超过500但不足1000;

3——订货金额超过1000;

4——已过期;

5——未过期。

结果:21——发批准单和提货单;

22——发过期通知单;

23——什么通知也不发。

第二步:画出因果图。

画因果图时, 原因在左, 结果在右, 由上而下排列, 并根据功能说明书中规定的原因和结果之间的关系, 用上述基本符号连接起来。在因果图中还可以引入一些中间节点。

将原因和结果用因果图的逻辑符号连接起来, 其中编号为11的中间结点是导出结果的进一步原因。

第三步:转换成判定表。

判定表 (DecisionTable) 是分析和表达多逻辑条件下执行不同操作的情况下的工具。判定表通常由四部分组成:

(1) 条件桩 (ConditionStub) :

列出了问题的所有条件。

(2) 动作桩 (ActionStub) :

列出了问题规定可能采取的操作。

(3) 条件项 (ConditionEntry) :

列出针对它左列条件的取值。

(4) 动作项 (ActionEntry) :

列出了在条件项的各种取值情况下应该采取的动作。

4 结语

通过以上介绍, 可以得到一个快捷而简单的利用因果图设计测试用例的办法, 尤其在将因果图转换成判定表时, 已经变得有章可循, 实际上这个办法是通用的, 对于所有的实例都是可以实现的, 学习者可以尝试。

参考文献

[1]徐芳.软件测试技术[M].北京:机械工业出版社, 2007.

上一篇:互补发展下一篇:《环境》理事会