CN101482907A - 基于专家系统的主机恶意代码行为检测系统 - Google Patents
基于专家系统的主机恶意代码行为检测系统 Download PDFInfo
- Publication number
- CN101482907A CN101482907A CNA2009100089989A CN200910008998A CN101482907A CN 101482907 A CN101482907 A CN 101482907A CN A2009100089989 A CNA2009100089989 A CN A2009100089989A CN 200910008998 A CN200910008998 A CN 200910008998A CN 101482907 A CN101482907 A CN 101482907A
- Authority
- CN
- China
- Prior art keywords
- behavior
- knowledge base
- fact
- code
- malicious code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种基于专家系统的主机恶意代码行为检测系统,包括行为捕获模块、输出规格化处理模块、推理机和行为知识库;行为捕获模块捕获系统服务调用及参数信息、驱动间通讯信息、遗留行为痕迹信息和系统关键内核数据;输出规格化处理模块将捕获到的原始数据转换为事实;行为知识库以规则的形式存储不同种类的恶意代码的主要可疑行为的专家知识;推理机接受事实,并从行为知识库中搜取匹配的知识,从而推理得出检测结果。应用本发明,能够检测具有特定行为的特征码已知或未知的恶意代码,以及采用了一些诸如多态、变形、混淆、加壳等规避技术来改变自身特征码的恶意代码,且检测率高、资源占用低、无需用户干预。
Description
技术领域
本发明属于信息安全领域,涉及一种基于专家系统的主机恶意代码行为检测系统。
背景技术
恶意代码是指有恶意企图的程序,它可能会损害执行的机器或者它传播的网络。恶意代码造成的损害近几年来急剧增加。因此,恶意代码检测是软件安全的一个重要方面。
传统的恶意代码检测主要是基于特征码扫描的检测技术。它使用从特定恶意代码中提取出的特征字节序列进行检测。该方法只处理程序的字节码,而不关心它的行为。但是随着恶意代码种类和数量的迅速增长,提取恶意代码的特征所消耗的人力、物力也急剧增长。更重要的是其只能检测已知恶意代码,对未知病毒的检测能力极弱。
启发式检测方法是特征码方法之后发展起来的一种恶意代码检测方法。该方法利用规则和模式相结合的方式来检测未知恶意代码。到目前为止,启发式检测方法主要有静态启发式检测方法、基于代码仿真的启发式检测方法和基于神经网络的启发式分析方法等。静态启发式检测方法是通过简单的反编译,在不运行恶意程序的情况下,核对程序入口点等特定位置的静态指令从而确定恶意代码的一种技术。但是这种静态方法很容易被绕过,如通过入口点混淆技术等方法绕过。基于代码仿真的启发式检测方法通过一个虚拟机来仿真CPU和内存管理系统,进而模拟代码执行过程,从而判断该程序是否为恶意代码。代码仿真的关键思想就是其“试验及错误”检测法。在检测一个计算机文件是否是恶意代码时,可能要从100多个可能的入口点进行逐一仿真,需要占用大量的资源;而且要想仿真运行Windows,难度非常大。尽管有VMWare这样的软件可以解决多数难题,但是仍有很多问题需要解决,如何仿真执行第三方DLL就是问题之一。这类DLL不属于VM,只要病毒代码依赖于这些DLL中的API,则病毒的仿真运行可能中止。IBM WATSON病毒研究中心,成功地将神经网络应用到了引导型病毒和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等。HOOK是很多恶意软件实现其功能的重要手段之一,扫描HOOK的结果中就包含了大量关于恶意软件的行为遗留痕迹,从中分析即可获得恶意软件的行为特征。
4)关键操作系统内核结构的内存扫描,这些关键内核结构包括:进程控制块、内核线程控制块、内核模块等等。通过此类扫描能更有效地发现恶意软件遗留行为痕迹。
输出规格化处理模块,将捕获到的原始数据转换成专家系统推理机识别的规格化数据——事实(fact)。事实由事实名、若干属性槽及其相关取值组成。可以用自定义模板和自定义事实结构来定义事实,一般格式为:
(deftemplate<模板名>
(slot<槽名1>)(slot<槽名2>)…(slot<槽名n>))
(deffacts<事实组名>
(<模板名>(槽名1槽值1)…);事实1
(<模板名>(槽名1槽值1)…);事实2
)
其中,deftemp late、slot和deffacts均为关键字,从而可以建立起一组指定模板的n槽事实。
输出规格化处理流程如下:
当行为捕获模块截获到某条行为后,首先提取出该行为的行为名称,然后查找自定义模板库中是否存在与该行为名称相同的自定义模板结构,如果不存在,则忽略该行为;如果存在,则生成一个事实,同时,将该自定义模板结构的各个槽名与该行为的各个参数项名称进行比较,如果名称相同,则将该行为的此项参数值赋给该事实的对应槽值。
下面是截获的行为数据的例子:
----------------------------------------
Create process:
C:\hxdef100r\hxdef100.exe
C:\WINDOWS\system32\smss.exe
----------------------------------------
Allocate memory:10000
C:\hxdef100r\hxdef100.exe
C:\WINDOWS\system32\smss.exe
----------------------------------------
Write memory:10000
C:\hxdef100r\hxdef100.exe
C:\WINDOWS\system32\smss.exe
----------------------------------------
上述例子经过预处理后可以表示成:
(create-process
(srcPrc"C:\WINDOWS\system32\services.exe")
(dstPrc"C:\hxdef100r\hxdef100.exe"))
(allocate-memory
(baseaddr10000)
(srcPrc"C:\hxdef100r\hxdef100.exe")
(dstPrc"C:\WINDOWS\system32\smss.exe"))
(write-memory
(baseaddr 10000)
(srcPrc"C:\hxdef100r\hxdef100.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))
?inline-hook<-(inline-hook
(scrAddr?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 IntegratedProduction System)是美国航天局(NASA)所属约翰逊太空中心人工智能部80年代末开发的通用专家系统工具,是典型的高效正向推理的产生式系统,可在PC或大型机上运行的非商业化软件。CLIPS的工作原理见图2所示。
推理机模块采用正向推理,根据已有的事实集合和行为知识库规则进行匹配检查,将符合匹配条件的规则依次放入待议事件表后,再执行这些规则生成新的事实,添加到事实列表中,然后进行新一轮的匹配检查,直至得到最终的事实结果,并完成输出配置要求的动作。
推理机的推理循环可分为4个阶段:
1)模式匹配:从行为知识库中第一条规则开始,依次扫描知识库中所有规则,把规则的前件与动态存储器中的当前事实相匹配,以搜索满足条件的规则;
2)冲突消解:在发生冲突,即多条规则同时被匹配时,根据预先确定的冲突消解策略,确定触发规则;
3)激活规则:调用匹配所触发规则的所有子目标的事实;
4)动作:把所触发规则的结论添加到动态存储器。
Claims (3)
1.一种基于专家系统的主机恶意代码行为检测系统,其特征在于,该系统包括行为捕获模块、输出规格化处理模块、推理机和行为知识库;所述行为捕获模块捕获系统服务调用及参数信息、驱动间通讯信息、遗留行为痕迹信息和系统关键内核数据;所述输出规格化处理模块将捕获到的原始数据转换为专家系统推理机识别的规格化数据——事实;所述行为知识库以规则的形式存储不同种类的恶意代码的主要可疑行为的专家知识;所述推理机根据输出规格化处理模块得到的“事实”,以及行为知识库中的恶意代码的可疑行为的知识,采用专家系统推理引擎进行推理,并给出推理结果以判断被检程序是否为恶意代码。
2.根据权利要求1所述的主机恶意代码行为检测系统,其特征在于,所述事实由事实名、若干属性槽及其相关取值组成。
3.根据权利要求1所述的主机恶意代码行为检测系统,其特征在于,所述专家系统推理引擎为CLIPS推理引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100089989A CN101482907A (zh) | 2009-02-18 | 2009-02-18 | 基于专家系统的主机恶意代码行为检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100089989A CN101482907A (zh) | 2009-02-18 | 2009-02-18 | 基于专家系统的主机恶意代码行为检测系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101482907A true CN101482907A (zh) | 2009-07-15 |
Family
ID=40880010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100089989A Pending CN101482907A (zh) | 2009-02-18 | 2009-02-18 | 基于专家系统的主机恶意代码行为检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101482907A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306254A (zh) * | 2011-08-29 | 2012-01-04 | 奇智软件(北京)有限公司 | 一种病毒或恶意程序的防御方法和系统 |
CN102682230A (zh) * | 2011-03-18 | 2012-09-19 | 中国电信股份有限公司 | 针对互联网远程控制的安全防护方法和装置 |
WO2014089744A1 (zh) * | 2012-12-10 | 2014-06-19 | 华为技术有限公司 | 恶意代码的检测方法及装置 |
CN103902897A (zh) * | 2012-12-26 | 2014-07-02 | 腾讯科技(深圳)有限公司 | 计算机病毒的判别方法及系统 |
WO2014169677A1 (en) * | 2013-04-15 | 2014-10-23 | Tencent Technology (Shenzhen) Company Limited | Method and device for extracting message format |
CN105912932A (zh) * | 2016-04-08 | 2016-08-31 | 周宏斌 | 一种威胁行为检测系统和方法 |
CN102306254B (zh) * | 2011-08-29 | 2016-12-14 | 北京奇虎科技有限公司 | 一种病毒或恶意程序的防御方法和系统 |
CN103778355B (zh) * | 2014-01-15 | 2017-02-15 | 西北大学 | 一种基于代码变形的二进制代码混淆方法 |
CN107943793A (zh) * | 2018-01-10 | 2018-04-20 | 威盛电子股份有限公司 | 自然语言的语义解析方法 |
CN109635523A (zh) * | 2018-11-29 | 2019-04-16 | 北京奇虎科技有限公司 | 应用程序检测方法、装置及计算机可读存储介质 |
CN107808096B (zh) * | 2017-11-23 | 2019-12-17 | 厦门安胜网络科技有限公司 | 检测apk运行时被注入恶意代码的方法、终端设备及存储介质 |
-
2009
- 2009-02-18 CN CNA2009100089989A patent/CN101482907A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682230A (zh) * | 2011-03-18 | 2012-09-19 | 中国电信股份有限公司 | 针对互联网远程控制的安全防护方法和装置 |
CN102682230B (zh) * | 2011-03-18 | 2016-04-27 | 中国电信股份有限公司 | 针对互联网远程控制的安全防护方法和装置 |
CN102306254B (zh) * | 2011-08-29 | 2016-12-14 | 北京奇虎科技有限公司 | 一种病毒或恶意程序的防御方法和系统 |
CN102306254A (zh) * | 2011-08-29 | 2012-01-04 | 奇智软件(北京)有限公司 | 一种病毒或恶意程序的防御方法和系统 |
WO2014089744A1 (zh) * | 2012-12-10 | 2014-06-19 | 华为技术有限公司 | 恶意代码的检测方法及装置 |
CN103902897A (zh) * | 2012-12-26 | 2014-07-02 | 腾讯科技(深圳)有限公司 | 计算机病毒的判别方法及系统 |
US9589136B2 (en) | 2013-04-15 | 2017-03-07 | Tencent Technology (Shenzhen) Company Limited | Method and device for extracting message format |
WO2014169677A1 (en) * | 2013-04-15 | 2014-10-23 | Tencent Technology (Shenzhen) Company Limited | Method and device for extracting message format |
CN103778355B (zh) * | 2014-01-15 | 2017-02-15 | 西北大学 | 一种基于代码变形的二进制代码混淆方法 |
CN105912932A (zh) * | 2016-04-08 | 2016-08-31 | 周宏斌 | 一种威胁行为检测系统和方法 |
CN107808096B (zh) * | 2017-11-23 | 2019-12-17 | 厦门安胜网络科技有限公司 | 检测apk运行时被注入恶意代码的方法、终端设备及存储介质 |
CN107943793A (zh) * | 2018-01-10 | 2018-04-20 | 威盛电子股份有限公司 | 自然语言的语义解析方法 |
CN109635523A (zh) * | 2018-11-29 | 2019-04-16 | 北京奇虎科技有限公司 | 应用程序检测方法、装置及计算机可读存储介质 |
CN109635523B (zh) * | 2018-11-29 | 2024-04-16 | 北京奇虎科技有限公司 | 应用程序检测方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101482907A (zh) | 基于专家系统的主机恶意代码行为检测系统 | |
Gibert et al. | The rise of machine learning for detection and classification of malware: Research developments, trends and challenges | |
CN108304720B (zh) | 一种基于机器学习的安卓恶意程序检测方法 | |
Lin et al. | Identifying android malicious repackaged applications by thread-grained system call sequences | |
CN102567661B (zh) | 基于机器学习的程序识别方法及装置 | |
CN106503558B (zh) | 一种基于社团结构分析的Android恶意代码检测方法 | |
Canfora et al. | Acquiring and analyzing app metrics for effective mobile malware detection | |
Wu et al. | A survey of android malware static detection technology based on machine learning | |
CN103853979B (zh) | 基于机器学习的程序识别方法及装置 | |
CN109145600A (zh) | 使用静态分析元素检测恶意文件的系统和方法 | |
CN104680065A (zh) | 病毒检测方法、装置及设备 | |
CN111639337A (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
CN107368856A (zh) | 恶意软件的聚类方法及装置、计算机装置及可读存储介质 | |
Wang et al. | LSCDroid: Malware detection based on local sensitive API invocation sequences | |
CN101183414A (zh) | 一种程序检测的方法、装置及程序分析的方法 | |
CN109614795A (zh) | 一种事件感知的安卓恶意软件检测方法 | |
Zhong et al. | Malware-on-the-brain: Illuminating malware byte codes with images for malware classification | |
KR102151318B1 (ko) | 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치 | |
Zhao et al. | Android malware identification through visual exploration of disassembly files | |
Sanz et al. | Instance-based anomaly method for Android malware detection | |
He et al. | Msdroid: Identifying malicious snippets for android malware detection | |
Abdullah et al. | Empirical study on intelligent android malware detection based on supervised machine learning | |
CN110069927A (zh) | 恶意apk检测方法、系统、数据存储设备和检测程序 | |
Zhang et al. | A multiclass detection system for android malicious apps based on color image features | |
Chen et al. | Android malware classification using XGBoost based on images patterns |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090715 |