一种恶意软件的检测方法及装置的制作方法

文档序号:6464353阅读:146来源:国知局
专利名称:一种恶意软件的检测方法及装置的制作方法
技术领域
本发明涉及信息安全领域,具体地说涉及恶意软件的检测。
技术背景现今,随着信息化程度的提高及各种适用性技术的不断推出,用 户进行各种与数字信息相关的活动也越发便利,而且不可否认的是, 用户与信息化、数字化的关联也越发紧密。然而与此相随,数字信息 犯罪诸如攻击(尤其是通过互联网)个人电脑、服务器、或者其他计 算机化装置的事件却频繁发生。显然的是,目前地下数字经济已曰益 产业化、规模化,而且其相应的犯罪行为也越趋隐蔽化,恶意软件的攻 击手段得到了极大的发展。诸如由以前的单个文件发展为多模块、多 组件化的攻击的形式,更甚至多数恶意软件均具有较强的伪装能力。另外,随着互联网的飞速发展,整个互联网已经成为个人桌面系 统的一个自然延展。自然,恶意软件也充分利用这样的技术便利性来 为其恶意行为服务,这样就出现了 一些系列型的攻击如木马下载器等。一般来讲,计算机恶意软件(包括病毒、蠕虫、木马、流氓软件 等)的查杀工具或软件均是针对单个文件或某段内存,利用事先准备 好的特征码进行匹配或比对。这种现有的查杀方法对于伪装巧妙的恶 意软件而言可以轻松避开,更无法清除之。此外,现有的查杀工具或 软件识别出某一病毒文件后,但在面对恶意软件的变形或多模块、多 组件的攻击形式时,也往往只能发现、解决其表面上的问题,无法起 到全面查杀、根治病毒的作用。这显然不能满足用户对于信息安全的 需求。发明内容本发明的目的在于提供能够解决以上问题的恶意软件检测机制。 为此,本发明针对上述这些恶意软件的发展趋势提出了一种利用 溯源分析及关联分析的恶意软件检测机制,利用该机制能够对病毒从 根源上全面关联,避免查杀不彻底或漏网,让用户的信息安全得到充分保障。在第一方面,本发明提供一种恶意软件的检测方法,其包括记录步骤,记录系统中的载体之间的关系;溯源步骤,当确定一载体为恶意软件后,基于所述记录步骤记录 的载体关系,追溯其根载体及原始根载体,并获得与确定的作为恶意 软件的所述载体相关的所有载体的集合。在第二方面,本发明还提供一种恶意软件的检测装置,其包括记录系统中的载体之间的关系的记录模块;确定一个载体为恶意软件的模块;以及溯源模块,用于当确定一载体为恶意软件后,基于所述记录模块 记录的载体关系,追溯其根载体及原始根载体,获取与确定的作为恶 意软件的所述载体相关的所有载体的集合。与现有技术相比,本发明通过上述机制能够发现恶意软件变形、 伪装或多组件、多模块的协同,从根源上监控并记录恶意软件的发展 变化,在出现问题时,能够及时、彻底地将恶意软件连根拔起。在关 注表象的同时更注重其实质,从而为用户系统的信息安全提供充分的 保障。


下面将参照附图对本发明的具体实施方案进行更详细的说明,其中图1为恶意软件演变示意图;图2为本发明的恶意软件处理流程示意图;图3为载体关系示意图;图4为病毒实例的分析示意图;图5为本发明的恶意软件处理系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚,以下结合附图 以及实施例对本发明的恶意软件才全测机制进行详细说明。应当理解, 此处所描述的具体实施方式
仅仅是用以解释本发明的恶意软件检测5机制的发明构思,并不用于限定本发明。图1为恶意软件演变示意图。如图1所示,恶意软件初始时表现 为原始根载体M,具有较强的伪装能力,并且能在用户系统中运行而 产生或释放(但不仅仅限于这两种关系,后文会有详细的描述)至少 一个或多个子载体C ...Cln,所产生或释放的至少一个子载体Cij又分 别可以作为根载体而产生或释放一个或多个子载体,依次类推。其中,i, j, k,n均为大于等于1的正整数。对于一些恶意软件而言,由于其原始根载体M本身具有较强的隐 蔽性、伪装性,现有的计算机恶意软件查杀工具或软件很难发现其为 病毒的本质。此外,恶意软件的原始根载体M本身也可构成为安全的文件,因 而其可不受查杀工具或软件的限制。 一旦在系统中运行,原始根载体 M将产生、释放或下载一个或多个安全的或不安全的载体。查杀工具或软件可能发现其中某一个或几个载体,如"为不安全 的文件,即相应杀除Cij本身。但显然,其忽视了这一原始根载体M 及其产生、释放或下载的其他各载体,从而给恶意软件留有了或潜伏 或继续侵袭的余地。这也正是恶意软件伪装/变形技术多样化的写照。图2为本发明的恶意软件处理流程示意图。如图2所示,在步骤200中,自系统运行之初,即对系统中存在 的各种载体进行监控,并记录载体间可能出现/存在的各种关系,诸 如,当一载体M释放/创建载体Cu后,即相应记录二者之间的创建关系。当步骤202中发现某一载体,如Cij为病毒文件后,于步骤2(H 中进行溯源分析,其根据记录的载体之间的关系向上追溯其各级根载 体直至找到原始根载体M。至此,本发明的溯源分析机制结束。对于单线繁衍的恶意软件而 言,通过这种追溯根源的方式,即能够获得与Cij相关的全部载体的 集合R。流程直接转入步骤210而结束。但对于多线繁衍的恶意软件而言,其产生/释放的载体可能有多 个和/或多级分支。此时单靠溯源分析机制,可能无法找出其相关的 全部载体。因此,本发明进一步提出与溯源分析机制相应的关联分析机制。在步骤206中,针对多线繁衍的恶意软件,基于原始根载体M, 进行关联分析,其利用步骤200中的载体关系记录,开始向下关联查 找由原始根载体M直接/间接释放的所有子载体。此时,我们便能于 步骤210中得到该系统中与发病病毒载体Cij相关联的所有载体的集 合R,即如图l所示的(M, Cu…,ClnCu,Cik)。由此,当用户系统中某个载体被确认为病毒文件后,本发明所做 的不仅是针对该病毒文件本身,而且还能进一步查找并过滤与该病毒 文件关联的所有文件。这样,即便恶意软件千变万化,也能追根溯源 并关联到其所有的变形或组件,从而从根本上保障了用户的信息安 全、彻底杜绝了恶意软件通过伪装或变形躲避查杀的企图。这里,恶意软件的载体可以是系统中运行的文件、进程、线程, 注册表,网址等所有内容。在一个例子中,本发明在找到与该病毒文件关联的所有文件之 后,除了立即对集合中的所有载体进行杀除的方式之外,还可进一步 进行过滤操作。在步骤208,过滤上述找到的集合R中的各载体M, Cn…Cik,放 行已知的正常软件。由此,于步骤210中得到均为恶意软件的载体的 集合。过滤的优势在于,当集合中某些载体为安全的或有益的文件时, 可以通过过滤的方式得以保存。诸如,某一载体本身为安全载体或者 其与系统的运行密切相关,此时若贸然进行删除操作,容易引起正常 程序中断或系统崩溃。因此,通过过滤操作可以使本发明的优势得以 进一步的体现。过滤操作可以是通过白名单或数字签名的方式进行安全载体的 放行,也可以是基于人工分析后预定义的安全载体集合R,对安全载体 进行放行。本发明中,针对载体进行监控并记录载体之间的关系的方式可以 是任意的已知方式,诸如以记录表单或集合的形式分别记录各原始根 载体及其繁衍的各级载体。在此,为便于理解记录载体关系的方式及其相应的溯源、关联分析机制,优选的,以有向边构建的载体关系为示例进行说明,但应明 了这并非对本发明的限制。图3为载体关系示意图。如图3所示,在载体I创建了载体J之 后,建立有向边(I, J)来表示I, J之间的有向载体关系,其中I指 向J。这样从操作系统开始运行起,我们就能构建出一张载体的载体 关系有向图。其后,相应于有向边形式的载体关系记录,按照以下方式进行溯 源分析及关耳关分析1、 某一个载体J被确认为恶意软件或恶意软件载体;2、 溯源及关联a) 将J加入集合Rb) 对集合R中的每一个载体J,遍历所有已记录 的载体关系(1, J)和(J,I)(如果有的话)c) 当I不在R中,则将载体I加入集合Rd) 循环b),直到没有新的J。3、 过滤并放行R中的已知安全载体(例如,通过预先定义的 白名单或数字签名或人工分析定义的安全载体集合R,等手段进行过 滤并放行)。4、 集合R中均为恶意载体,删除或清除集合R中的恶意载体。在一个例子中,过滤并放行R中的已知安全载体的操作可以在上 述溯源分析的c)步骤中先行进行,即在c)中,当I不在如已知的预定义的安全载体集合R,内且I 不在R中,则将载体I加入集合R。如此,在经过溯源和/或关联分析后,其集合R中包含的载体即 均为恶意软件等。需要指出的是,上述的循环流程中,因载体关系是基于具有指向 特性的有向边构建的,因而,当以J为基础循环遍历载体关系(I, J) 或(J, I),即由J寻找I时,前者是依据指向关系反向寻找,后者 则是正向寻找。这种循环遍历的方式是由有向边的特性(I指向J) 决定的。此外,优选的,为抓住病毒入侵系统的入口或源头,以便后续统计分析恶意软件入侵的手段及特点,可以在最后得到的恶意载体集合 R及各载体关系(I,J)组成的有向图中计算相关有向图结点的入度,入 度为零的一个或多个结点载体就是相关感染或攻击的根源,即原始根 载体。由此,可以在包含所有载体的集合R中寻找到并突出原始根载 体,也就是恶意软件进入系统的入口 ,为根绝病毒、屏蔽恶意软件提 供技术支持。相应的,本发明还可以具有一显示手段,如显示模块等,其可根 据用户的需求,向用户展现与感染载体有关的载体关系图(如有向图),并可向用户展现获得的集合R中的所有载体,尤其是原始根载体。载体的展现可以包括载体名称、路径、大小、创建时间、修改记 录、载体本身等。由此,通过显示手段可以以感观的形式向用户表述 感染载体及病毒发展历程,并能为恶意软件的分析及查杀提供便利。 应理解的是,当以记录表单、集合等其他方式记录载体关系时, 前述的针对有向边进行的循环流程并不是必须的溯源及关联手段,而 是可以根据各记录方式本身的特性/优点相应调整或设置恰当的溯源 及关联手段。也就是说,当发现某一载体为病毒文件后,只要能追溯 其根源和/或能关联所有其直接或间接繁衍的载体即应被认为属于本 发明的溯源分析及关联分析机制的范畴之内。图4为病毒实例的分析示意图。结合图4,利用一病毒实例对本 发明的恶意软件检测机制做一整体解释说明。如图4所示,文件012. exe作为原始根载体在执行以后,会在磁 盘上写入2个文件,即其一级子载体sys.exe、 host.exe: C:\Documents and SeUingsV..\Temp\sys.exe C:\Documents and Settings\…\Temp\host.exe 在012. exe进禾呈结束的时l夷会启动进禾呈sys. exe, sys. exe又写 入以下7个文件(即,二级子载体,以此类推)tmpl. tmp、 tmp2. tmp、 tmpl.CAB、 tmp2.CAB、 vngwpa61.dll、 vngwpa61. sys、 fn00321.log。 其中前4个文件图示为(*.tmp) x2、 (*.CAB) x 2,下同。具体为 C:\Documents and Sett ings\.,. \Temp\tmpl. tmp C:\Documents and Sett ings\... \Temp\tmp2. tmp C:\Documents and Sett ingsV.. \Temp\tmpl. CAB9C:\Documents and Sett ings\... \Temp\tmp2. CAB C: \WIN,S\system32\vngwpa61. dll C: \WIND0WS\system32\...\vngwpa61. sys C: \WINDOWS\fn00321.log之后通过rundl132. exe激活vngwpa61. dll, vngwpa61. dll会释 放文件ogzpitcx而ee. t j。随后sys. exe启动host, exe, host, exe又 写入以下3个文件tmp3. tmp、 tmp4. tmp、 11778-7686:C:\Documents and Sett ings\... \Temp\tmp3. tmpC:\Documents and Sett ings\... \Temp\tmp4. tmpC:\WINDOWS\system32\-11778-7686其中tmp3. tmp是一个PE文件,host, exe启动4. tmp进程,4. tmp 又会写入以下7个文件b791.dll、 2bl.dll、 uninstall、 f91. bmp、 lbl. job、 91bl.exe、 lb601,txt,具体为C: \WINDOWS\system32\b791.dllC:\WINDOWS\system32\2bl.dllC:\Documents and Settings\... \Temp\f 4km0\ — uninstal 1C:\WIND0WS\f91. bmpC:\WINDOWS\Tasks\lbl. jobC:\WIND0WS\91bl. exeC:\WINDOWS\lb601. txt之后2bl. dll、 b791. dll又被激活,写入以下多个文件(*.dat) x 3、 10178—8676、 51ce、 ( *. dat) x 7、以及79e71. exe。其中 10178-8676、 51ce图示为(、)x2,具体为C:\Documents and Sett ings\... \Content. IE5\index. dat C:\Documents and Sett ings\... \Cookies\index, dat C:\Documents and SettingsV..\History.IE5\index.dat C: \WINDOWS\system32\-10178-8676 C: \WINDOWS\system32\51ceC:\Documents and SettingsV" \Cookies\index. dat C:\Documents and Settings\Fel ix\... \History. IE5\index. dat C:\Documents and SettingsV..\t\rl701.datC:\Documents and Settings\."\t\bl701. dat C:\Documents and Settings\."\t\kl701. dat C:\Documents and Settings\."\t\al701.dat C:\Documents and Settings\-..\t\pl701.dat C:\WINDOWS\system32\79e71. exe系统记录上述载体之间的关联关系。按照有向边的方式记录上述 载体之间的写入关系为(012.exe, sys.exe) 、 (012.exe, host.exe)……(b791.dll, 79e71.exe)。之后,在被012.exe病毒感染的系统上安装了查杀工具,如瑞星 杀毒软件下载版2008 V20. 40. 30,然后进行全盘病毒扫描,瑞星杀 毒软件检测出vngwpa61.dll、 vngwpa61. sys为恶意软件,其病毒名 分别为Trojan. Win32. Undef.bfd、 Trojan. Win32. Undef. bfd。jt匕时,利用上述i己录的载体关系,由vngwpa61. dll、 vngwpa61. sys 分另寸进4亍溯源分一斤,追^宗vngwpa61. dll、 vngwpa61. sys的才艮载体, 得到sys. exe,将其加入集合R中后,进一步追踪sys. exe的根载体 得到012.exe,将其加入集合R中后。再进一步追踪012. exe的根载 体,但并未发现新的根载体,由此确定012. exe为原始根载体。在找到原始根载体012. exe后,结合已记录的载体之间的关系, 关联分析查找由原始根载体012. exe而产生、释放或下载的所有子载 体,4戈至U sys. exe, host, exe, 因sys. exe已^f立于集合R内,因jt匕3夺 host, exe力口入R中。jt匕后,由sys. exe, hos t. exe作为才艮载体继续向 下关联二者产生的所有子载体。如此循环,直至没有新的载体被发现。由此,经过上述溯源分析及关联分析后,我们得到与病毒载体 vngwpa61.dll、 vngwpa61. sys相关联的所有载体的集合R,如图4所 示。利用白名单等手段进行过滤后,放行已知的确定为安全文件的载 体,从而得到以下文件,并认为所有这些文件存在安全问题,应予以 删除^口 012. exe、 tmpl. tmp、 tmp2. tmp、 vngwpa61.dll、 ogzpitcxuwee. tj、 vngwpa61. sys、 fn00321.log、 11778-8676、 index, dat等。由上述示例即可以看出本发明相对于现有查杀工具或软件的优 点。此外,本发明进一步的优势还可以在下述的说明中得以体现。》口图4中划叉的图才示戶斤示,载体sys.exe, host. exe在释》文/写 入多个载体后,被其它载体做了删除操作。同样随系统运行被删除的 还可能有图4中其它划叉的载体,如3. tmp等。也就是说,该恶意软 件在繁衍出后代之后,做出了自杀行为,造成此时用户系统中并不存 在sys.exe, host, exe等纟皮删除的载体的情况。这也是某些新型恶意 软件躲避查杀的另一种手段。然而,尽管这种病毒技术的手段高超,但利用本发明提出的溯源 分析及关联分析机制同样能够识破并捕获其所有的相关载体。如前文所述,本发明自系统运行之初即已记录载体之间的关系。 特别的,这些载体的关系可以是以下各种关系的至少一种(但不仅限 于这些关系)1、 文件创建关系。例如,恶意代码可以通过在磁盘上写入另外一个 文件的方式把新的恶意代码载体写入主机中去。2、 进程线程创建关系。例如,恶意代码在写入其它病毒后可能会以 创建进程的形式使之运行起来。3、 模块的加载关系。例如,恶意代码可能加载其它恶意代码载体模 块到其它进程来进一步控制系统。4、 注册表写入关系。例如,恶意代码可能通过写入某些注册表项来 使某些恶意代码载体在操作系统启动的时候被激活。5、 其它通讯关系。例如,恶意代码可能通过其它方式与其它恶 意代码载体进行通讯,等等。对于具有自杀行为的恶意软件,本发明通过记录上述至少 一 种的 载体关系,可以绕开其载体本身,而关注于其载体间的诸如创建、调 用、加载等等的各种关系或其各种可能出现的关系组合。由此,即便 此时这些载体于系统中不存在(已被删除),因本发明不需关心载体 本身的存在与否,故而同样可以基于上述记录的一种或多种载体关系 利用溯源分析机制找出其各根载体以及原始根载体,也同样可以利用 关联分析机制找出其繁衍的各子载体。应理解的是,虽然以上列举了本发明可适用的各种载体和载体关 系,但是本发明不应限于此,它同样适用于未来可能发展出的其它载 体和/或载体关系。应理解的是,本发明的上述各具体实施例中涉及的各处理流程可以构建为相应的装置或模块。图5为本发明的恶意软件处理系统结构示意图。如图5所示,恶 意软件处理系统500包括记录模块502,用于记录载体之间的关系; 溯源模块504,用于追溯分析载体的根载体直至原始根载体;关联模 块506,用于关联分析载体的各级子载体;过滤模块508,用于通过 白名单等的方式放行已知的安全载体;显示模块510,用于向用户显 示载体关系(如有向图)、集合R、原始根载体等内容。上述各模块显而易见,在此描述的本发明可以有许多变化,这种变化不能认 为偏离本发明的精神和范围。因此,所有对本领域技术人员显而易见 的改变,都包括在本权利要求书的涵盖范围之内。
权利要求
1、一种恶意软件的检测方法,其特征在于包括以下步骤记录步骤,记录系统中的载体之间的关系;溯源步骤,当确定一载体为恶意软件后,基于所述记录步骤记录的载体关系,追溯其根载体及原始根载体,并获得与确定作为恶意软件的所述载体相关的所有载体的集合。
2、 根据权利要求l的方法,其特征在于还包括基于所述原始根载体获取其各子载体的关联步骤。
3、 根据权利要求l的方法,其特征在于,所述载体为系统中运行的文件,进程,线程,注册表,和网址中的一个或多个。
4、 根据权利要求l的方法,其特征在于,所述的载体关系为以下至少一种文件创建关系,进程线程创建关系,模块的加载关系,注册表写入关系,和其它通讯关系。
5、 根据权利要求1-4之一的方法,其特征在于还包括过滤集合内的所有载体,并放行其中的安全载体的过滤步骤。
6、 根据权利要求5的方法,其特征在于,所述过滤步骤是基于白名单、数字签名或人工分析后预定义的安全载体集合进行放行。
7、 根据权利要求6的方法,其特征在于,所述过滤步骤在获得与确定的作为恶意软件的所述载体相关的所有载体的集合之前进行。
8、 根据权利要求1或2的方法,其特征在于所述载体之间的关系的记录为有向图,记录表,或数据集合。
9、 根据权利要求8的方法,其特征在于包括计算所述有向图的结点的入度的步骤,其中入度为零的一个或多个结点的载体为所述原始根载体。
10、 根据权利要求l的方法,其特征在于,所述溯源步骤包括a)将作为恶意软件的载体加入集合;b)对集合中的每一个载体,寻找已记录的载体关系;c)当载体关系中的另一载体不在集合中,则将载体加入集合;d)重复b)步骤,直到各载体关系中的载体均在集合中。
11、 根据权利要求1的方法,其特征在于还包括显示与确定作为恶意软件的所述载体相关的载体、和/或所述载体之间的关系的步骤。
12、 一种恶意软件的检测装置,其特征在于包括记录系统中的载体之间的关系的记录模块;确定一个载体为恶意软件的模块;以及溯源模块,用于当确定一载体为恶意软件后,基于所述记录模块记录的载体关系,追溯其根载体及原始根载体,获取与确定的作为恶意软件的所述载体相关的所有载体的集合。
13、 根据权利要求12的装置,其特征在于还包括基于所述原始根载体获取其各子载体的关联模块。
14、 根据权利要求12的装置,其特征在于,所述载体为系统中运行的各种载体,包括进程,线程,注册表,和/或网址。
15、 根据权利要求12的装置,其特征在于,所述的载体关系为以下全部或至少一种文件创建关系,进程线程创建关系,模块的加载关系,注册表写入关系,和其它通讯关系。
16、 根据权利要求12-15之一的装置,其特征在于还包括过滤集合内的所有载体并放行其中的安全载体的过滤模块。
17、 根据权利要求16的装置,其特征在于,所述过滤模块是基于白名单、数字签名或人工分析后预定义的安全载体集合进行放行。
18、 根据权利要求17的装置,其特征在于,所述过滤模块在获得与确定的作为恶意软件的所述载体相关的所有载体的集合之前进行。
19、 根据权利要求12或13的装置,其特征在于,所述载体之间关系的记录为有向图,记录表,或数据集合。
20、 根据权利要求19的装置,其特征在于还包括,计算所述有向图的结点的入度,将入度为零的一个或多个结点的载体定为所述原始根载体的模块。
21、 根据权利要求12的装置,其特征在于所述溯源模块以下述方式工作a)将作为恶意软件的载体加入集合;b )对集合中的每一个载体,寻找已记录的载体关系;c)当载体关系中的另一载体不在集合中,则将载体加入集合;d)重复b),直到各载体关系中的载体均在集合中。
22、 根据权利要求12的装置,其特征在于还包括,显示与确定作为恶意软件的所述载体相关的载体、和/或所述载体之间的关系的模块。
全文摘要
本发明涉及一种恶意软件的检测方法及装置,用于恶意软件的检测。利用本发明能够监控并记录恶意软件的发展变化,在出现问题时,能追溯病毒的根源并能相应检测出与该恶意软件相关联的变形或所有组件。本发明在关注恶意软件伪装表象的同时,更注重其内在变化与联系,从而为用户系统的信息安全提供了充分的保障。
文档编号G06F21/00GK101604361SQ200810114709
公开日2009年12月16日 申请日期2008年6月11日 优先权日2008年6月11日
发明者曹家鑫, 李子拓, 健 武, 潘剑锋, 翔 袁, 邹贵强, 陆剑锋 申请人:北京奇虎科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1