基于专家系统的主机恶意代码行为检测系统的利记博彩app

文档序号:6480918阅读:346来源:国知局
专利名称:基于专家系统的主机恶意代码行为检测系统的利记博彩app
技术领域
本发明属于信息安全领域,涉及一种基于专家系统的主机恶意代码行为 检测系统。
背景技术
恶意代码是指有恶意企图的程序,它可能会损害执行的机器或者它传播 的网络。恶意代码造成的损害近几年来急剧增加。因此,恶意代码检测是软 件安全的一个重要方面。
传统的恶意代码检测主要是基于特征码扫描的检测技术。它使用从特定 恶意代码中提取出的特征字节序列进行检测。该方法只处理程序的字节码, 而不关心它的行为。但是随着恶意代码种类和数量的迅速增长,提取恶意代 码的特征所消耗的人力、物力也急剧增长。更重要的是其只能检测已知恶意 代码,对未知病毒的检测能力极弱。
启发式检测方法是特征码方法之后发展起来的一种恶意代码检测方法。 该方法利用规则和模式相结合的方式来检测未知恶意代码。到目前为止,启 发式检测方法主要有静态启发式检测方法、基于代码仿真的启发式检测方法 和基于神经网络的启发式分析方法等。静态启发式检测方法是通过简单的反 编译,在不运行恶意程序的情况下,核对程序入口点等特定位置的静态指令 从而确定恶意代码的一种技术。但是这种静态方法很容易被绕过,如通过入 口点混淆技术等方法绕过。基于代码仿真的启发式检测方法通过一个虚拟机来仿真CPU和内存管理系统,进而模拟代码执行过程,从而判断该程序是否 为恶意代码。代码仿真的关键思想就是其"试验及错误"检测法。在检测一 个计算机文件是否是恶意代码时,可能要从100多个可能的入口点进行逐一
仿真,需要占用大量的资源;而且要想仿真运行Windows,难度非常大。尽 管有VMWare这样的软件可以解决多数难题,但是仍有很多问题需要解决, 如何仿真执行第三方DLL就是问题之一。这类DLL不属于VM,只要病毒代 码依赖于这些DLL中的API,则病毒的仿真运行可能中止。IBMWATSON病 毒研究中心,成功地将神经网络应用到了引导型病毒和Win32病毒的启发式 检测中。事实证明,神经网络作为一种对数据进行分析的工具可以成功地应 用于恶意代码检测,然而神经网络本身存在的问题限制了它的使用(1)神 经网络执行的是经验最小化原则,这可能会导致较为糟糕的结果;(2)由于 它的固有算法设计,神经网络很难产生一个全局性的结果;(3)在神经网络 模型建立时,需要选择多个参数,如隐藏层个数、隐藏节点个数、传递函数 等等,不正当的参数选择会导致过拟合(over-fitting)问题。

发明内容
本发明的目的是提供一种基于专家系统的主机恶意代码行为检测系统, 以弥补目前主流恶意代码检测技术的下列不足1、静态特征码扫描方法的滞 后问题和不能对抗加壳变形;2、启发式检测容易被绕过且占用过多资源。
为实现上述目的,本发明的基于专家系统的主机恶意代码行为检测系统 包括行为捕获模块、输出规格化处理模块、推理机和行为知识库。行为捕获 模块捕获系统服务调用及参数信息、驱动间通讯信息、遗留行为痕迹信息和系统关键内核数据;输出规格化处理模块将捕获到的原始数据转换为事实; 行为知识库以规则的形式存储不同种类的恶意代码的主要可疑行为的专家知 识;推理机根据输出规格化处理模块得到的"事实",以及行为知识库中的恶 意代码的可疑行为的知识,采用专家系统推理引擎进行推理,并给出推理结 果以判断被检程序是否是恶意代码。
本发明与现有恶意代码检测系统相比,具有以下优点
1、 本发明采用行为检测方法,能够检测具有特定行为的特征码已知或未 知的恶意代码不管它是不是隐藏的。
2、 本发明能够检测采用了一些诸如多态、变形、混淆、加壳等规避技术 来改变自身特征码的恶意代码,检测率高且资源占用低。
3、 本发明专家系统推理引擎自动推理,无需用户干预。


图1为本发明基于专家系统的主机恶意代码行为检测系统示意图; 图2为CLIPS的工作原理。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步详细的说明。 本发明的基于专家系统的主机恶意代码行为检测系统,如图1所示,包括 以下模块行为捕获模块、输出规格化处理模块、推理机和行为知识库。
其中,行为捕获模块,能够捕获系统服务调用及参数信息,驱动间通讯 信息,内核模式或用户模式的inline hook、 IAT hook、 EAT hook以及内核模 式的Driver dispatch hook、 NDIS hook等痕迹信息,以及进程控制块、内核线程控制块、内核模块等系统关键内核数据。截获的原始行为数据以结构体 的形式存储,每类行为均包括行为名称和一个以上的参数项,每个参数项对 应一个属性。
1) 截获系统服务调用可以捕获存在用户模式代码的恶意软件行为,也能
截获纯核心态恶意软件部分行为。行为捕获模块通过HOOK来获取所有的系统 服务调用并收集所有相关感兴趣的信息。
2) 驱动间通讯截获内核驱动间的数据流,主要包括(a)钩挂驱动对象 的分派例程,NT架构系统通常在加载一个驱动后为其分配一个驱动对象结构, 驱动程序初始化时填充对象结构中的多个分派例程,之后操作系统和其他驱 动程序就可以使用这些分派例程与之通讯。因此,替换这些分派例程就可以 截获驱动间通讯,如截获文件、磁盘等的访问请求;(b)钩挂系统内核的驱 动通讯有关函数, 一般上层驱动向下层驱动发出请求使用一些系统提供的内 核函数,因此可以替换函数指针或直接Inline钩挂相关函数截获通讯;(c) NDIS钩挂截获网络的访问请求数据。
3) 扫描HOOK的种类包括内核模式或用户模式的inline hook、 IAT hook、 EAT hook以及内核模式的Driver dispatch hook、 NDIS hook等。H00K是很多 恶意软件实现其功能的重要手段之一,扫描H00K的结果中就包含了大量关于 恶意软件的行为遗留痕迹,从中分析即可获得恶意软件的行为特征。
4) 关键操作系统内核结构的内存扫描,这些关键内核结构包括进程控 制块、内核线程控制块、内核模块等等。通过此类扫描能更有效地发现恶意 软件遗留行为痕迹。输出规格化处理模块,将捕获到的原始数据转换成专家系统推理机识别
的规格化数据——事实(fact)。事实由事实名、若干属性槽及其相关取值组
成。可以用自定义模板和自定义事实结构来定义事实, 一般格式为
(deftemplate <模板名>
(slot <槽名1 > ) ( slot <槽名2 > )…(slot <槽名11 > )) (deffacts <事实组名>
(<模板名>(槽名1槽值l));事实l
(<模板名>(槽名1槽值l));事实2
)
其中,deftemplate、 slot和deffacts均为关键字,从而可以建立起一组指定 模板的n槽事实。
输出规格化处理流程如下
当行为捕获模块截获到某条行为后,首先提取出该行为的行为名称,然 后查找自定义模板库中是否存在与该行为名称相同的自定义模板结构,如果 不存在,则忽略该行为;如果存在,则生成一个事实,同时,将该自定义模 板结构的各个槽名与该行为的各个参数项名称进行比较,如果名称相同,则 将该行为的此项参数值赋给该事实的对应槽值。
下面是截获的行为数据的例子
Create process:
C :\hxdef 100r\hxdef 100 .exe
7C:\WINDOWS\system32\smss.exe
Allocate memory: 10000 C:\hxdefl 00r\hxdef 1 OO.exe C:\WINDOWS\system32\smss.exe
Write memory: 10000
C :Mixdef 100r\hxdef 1 OO.exe
C:\WINDOWS\system32\smss.exe
上述例子经过预处理后可以表示成 (create-process
(srcPrc "C:\WINDOWS\system32\services.exe") (dstPrc "C:\hxdefl00r\hxdeflOO.exe"))
(allocate-memory (baseaddr 10000)
(srcPrc "C:\hxdefl00r\hxdef 1 OO.exe") (dstPrc "C:\WINDOWS\system32\smss.exe"))
(write-memory(baseaddr 10000)
(srcPrc "C:\hxdefl00r\hxdefl 00.exe") (dstPrc "C:\WINDOWS\system32\smss.exe"))
行为知识库存储不同种类的恶意代码的主要可疑行为的专家知识,包括
领域知识和以推理规则形式表示的行为知识。上述知识以规则的形式存储在
行为知识库中,规则由前件和后件组成,前件是零个或多个条件(conditions)
(或条件元素),后件表示条件对应的结论。规则的一般格式可表示为
(defrule <规则名>
<条件模式> 二 >
<结论动作> )
defrule为关键字,符号"=> "表示由条件可推导出结论的动作。 一条 规则可以包括多个条件和结论,且条件和结论均允许嵌套。
以内存驻留型恶意代码和木马为例,其工作过程主要包括以下几个步骤: 获得系统的控制权、为恶意代码自身分配一块内存空间、将恶意代码拷贝到 新分配的内存空间中、激活刚刚拷贝的恶意程序体、通过钩挂(Hook)方式 接管代码执行流程、感染新的文件或者系统。上述步骤是内存驻留型恶意代 码最典型的工作模式,但是还有一些其它的工作方式,可能并不需要完成上 述所有步骤。这类恶意代码的主要恶意行为是在其它进程的内存空间中分 配一块内存、向该块内存中写入数据、进行一些钩挂等。将这些行为特征知识表示为规则的形式
(defrule check-malicious-process
allocate -memory <- (allocate-memory
(srcPrc srcprc)(dstPrc dstprc& ?srcprc)) write -memory <画(write-memory
(srcPrc srcprc)(dstPrc dstprc& ?srcprc)) 7inline-hook <- (inline-hook
OcrAddr srcAddr)(dstAddr dstAddr)
(dstName dstName)(modName modName)) (test (= (length$ (find-all-instances (( p SYS-PROCESS》
(eq p:name srcprc)》0))
(not (malicious-process (process srcprc)》 =>
(printout t srcprc " is malicious..." crlf) (assert (malicious-process (process srcprc))))
推理机以CLIPS的推理引擎为基础开发。CLIPS (C Language Integrated Production System)是美国航天局(NASA)所属约翰逊太空中心人工智能部80年 代末开发的通用专家系统工具,是典型的高效正向推理的产生式系统,可在 PC或大型机上运行的非商业化软件。CLIPS的工作原理见图2所示。
推理机模块采用正向推理,根据已有的事实集合和行为知识库规则进行 匹配检查,将符合匹配条件的规则依次放入待议事件表后,再执行这些规则
10生成新的事实,添加到事实列表中,然后进行新一轮的匹配检査,直至得到 最终的事实结果,并完成输出配置要求的动作。 推理机的推理循环可分为4个阶段
1) 模式匹配从行为知识库中第一条规则开始,依次扫描知识库中所有规 贝'J,把规则的前件与动态存储器中的当前事实相匹配,以搜索满足条件 的规则;
2) 冲突消解在发生冲突,即多条规则同时被匹配时,根据预先确定的冲 突消解策略,确定触发规则;
3) 激活规则调用匹配所触发规则的所有子目标的事实;
4) 动作把所触发规则的结论添加到动态存储器。
权利要求
1. 一种基于专家系统的主机恶意代码行为检测系统,其特征在于,该系统包括行为捕获模块、输出规格化处理模块、推理机和行为知识库;所述行为捕获模块捕获系统服务调用及参数信息、驱动间通讯信息、遗留行为痕迹信息和系统关键内核数据;所述输出规格化处理模块将捕获到的原始数据转换为专家系统推理机识别的规格化数据——事实;所述行为知识库以规则的形式存储不同种类的恶意代码的主要可疑行为的专家知识;所述推理机根据输出规格化处理模块得到的“事实”,以及行为知识库中的恶意代码的可疑行为的知识,采用专家系统推理引擎进行推理,并给出推理结果以判断被检程序是否为恶意代码。
2. 根据权利要求l所述的主机恶意代码行为检测系统,其特征在于,所 述事实由事实名、若干属性槽及其相关取值组成。
3. 根据权利要求l所述的主机恶意代码行为检测系统,其特征在于,所 述专家系统推理引擎为CLIPS推理引擎。
全文摘要
本发明公开了一种基于专家系统的主机恶意代码行为检测系统,包括行为捕获模块、输出规格化处理模块、推理机和行为知识库;行为捕获模块捕获系统服务调用及参数信息、驱动间通讯信息、遗留行为痕迹信息和系统关键内核数据;输出规格化处理模块将捕获到的原始数据转换为事实;行为知识库以规则的形式存储不同种类的恶意代码的主要可疑行为的专家知识;推理机接受事实,并从行为知识库中搜取匹配的知识,从而推理得出检测结果。应用本发明,能够检测具有特定行为的特征码已知或未知的恶意代码,以及采用了一些诸如多态、变形、混淆、加壳等规避技术来改变自身特征码的恶意代码,且检测率高、资源占用低、无需用户干预。
文档编号G06F21/00GK101482907SQ200910008998
公开日2009年7月15日 申请日期2009年2月18日 优先权日2009年2月18日
发明者周瑞丽, 奚宏生, 帅建梅, 潘剑锋, 谭小彬 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1