用于恶意软件检测的系统和方法

xiaoxiao2020-7-22  8


专利名称::用于恶意软件检测的系统和方法用于恶意软件检测的系统和方法相关申请的交叉引用本申请要求2009年8月28日递交的美国专利申请No.12/550,025的递交日的权益,该美国专利申请No.12/550,025要求2008年8月四日递交的美国临时专利申请No.61/092,848的优先权。二进制文件时常在很多计算设备之间进行传送。接收二进制文件的计算设备通常不知道该文件的来源或者其接收的代码是否安全。为了确保计算设备的安全性,可以对二进制文件进行反汇编来确定该文件是否包含诸如病毒、蠕虫、特洛伊木马和/或类似的恶意软件。通常,反汇编器将二进制文件从机器语言翻译为汇编语言。一些反汇编器是交互式的,并且允许熟练程序员对于反汇编器如何分析文件做出注解、修正、阐述或者决定。例如,反汇编器可以在出现新的函数或者特定代码段时发出信号。当所标识的动作发生时,可以对该代码的特定段加标签以供今后参考。然而,对未知的可执行文件(executable)进行分析可能是一个耗时的过程,其通常是由特殊训练的人员来手动进行的,或者通过使用统计方法自动进行。
发明内容在描述本方法之前,应当理解本发明并不限于所描述的特定系统、方法或协议,因为它们可以改变。本文所使用的术语仅用于描述特定实施方案的目的,并且其并不意图限制本公开的范围。必须注意,如本文及所附权利要求书中所使用的,除非上下文另外明确指出,否则单数形式“一”(“a”和“an”)和“所述”包括复数指称。除非另外定义,否则本文使用的所有技术和科学术语具有本领域普通技术人员所普遍理解的含义。使用在这里,术语“包括”意味着“包括但不限于”。在一实施方案中,一种自动识别恶意软件的方法可以包括通过专家系统知识库接收来自二进制文件的汇编语言序列;识别来自所述接收的汇编语言序列的指令序列;以及通过所述专家系统知识库将所述指令序列归类为有威胁的、无威胁的或不可归类的,所述归类操作通过应用所述专家系统知识库中的一个或更多个规则到所述指令序列来进行。如果所述指令序列被归类为有威胁的,可以发送信息到代码分析部件并可以通知使用者所述二进制文件包含恶意软件。所述信息可以包括以下内容中的一项或更多项所述指令序列;标签,所述标签包括这样的指示,即所述指令序列是有威胁的;以及针对所述指令序列的至少一部分对来自所述二进制文件中的一个或更多个其他汇编语言序列进行搜索的请求。在一实施方案中,一种自动识别恶意软件的方法可以包括通过专家系统知识库接收来自二进制文件的汇编语言序列;识别来自所述接收的汇编语言序列的指令序列;以及通过所述专家系统知识库将所述指令序列归类为有威胁的、无威胁的或不可归类的,所述归类操作通过应用所述专家系统知识库中的一个或更多个规则到所述指令序列来进行。如果所述指令序列被归类为无威胁的,可以发送信息到代码分析部件并可以请求第二指令序列。所述信息可以包括以下内容中的一项或更多项所述指令序列;以及标签,所述标签包括这样的指示,即所述指令序列是无威胁的。在一实施方案中,一种自动识别恶意软件的方法可以包括通过专家系统知识库接收来自二进制文件的汇编语言序列;识别来自所述接收的汇编语言序列的指令序列;以及通过所述专家系统知识库将所述指令序列归类为有威胁的、无威胁的或不可归类的,所述归类操作通过应用所述专家系统知识库中的一个或更多个规则到所述指令序列来进行。如果所述指令序列被归类为不可归类的,所述方法可以包括发送重新分析所述汇编语言序列的请求到代码分析部件请求;接收新指令序列,所述新指令序列对应于所述重新分析的汇编语言序列;以及归类所述新指令序列为有威胁的、无威胁的或不可归类的。在一实施方案中,一种自动识别恶意软件的方法可以包括通过代码分析部件分析二进制文件来生成汇编语言序列和相应的指令序列;发送所述指令序列到专家系统知识库;以及从所述专家系统知识库接收与所述指令序列相关联的归类信息。如果所述归类信息将所述指令序列标识为有威胁的,所述方法可以包括从所述二进制文件识别一个或更多个其他汇编语言序列,所示二进制文件包括所述指令序列的至少一部分,以及发送所述已识别的汇编语言序列的至少一个到所述专家系统知识库。如果所述归类信息将所述指令序列识别为无威胁的,所述方法可以包括发送第二指令序列到所述专家系统知识库。如果所述归类信息将所述指令序列识别为不可归类的,所述方法可以包括重新分析所述汇编语言序列来产生新指令序列,以及发送所述新指令序列到所述专家系统知识库。在一实施方案中,一种用于自动识别恶意软件的系统可以包括代码分析部件,所述代码分析部件被配置为从二进制文件识别汇编语言序列,其中所述汇编语言序列包括一个或更多个指令序列;以及专家系统知识库,所述专家系统知识库与所述代码分析部件通信。所述专家系统知识库可以被配置为使用一个或更多个规则来归类所述指令序列为有威胁的、无威胁的或不可归类的。参照以下描述和附图,将清楚本发明的方面、特征、益处和优点,在附图中图1图示根据一实施方案的示例性恶意软件检测系统。图2图示根据一实施方案的示例性专家系统知识库。图3图示根据一实施方案的用于检测和分析恶意软件的示例性方法的流程图。图4图示根据一实施方案、可以用于包含或实现程序指令的示例性系统的框图。图5和图6图示根据一实施方案的示例性指令序列。具体实施例方式在描述本方法之前,应当理解本发明并不限于所描述的特定系统、方法或协议,因为它们可以改变。本文所使用的术语仅用于描述特定实施方案的目的,并且其并不意图限制本公开的范围。如本文及所附权利要求书中所使用的,除非上下文另外明确指出,否则单数形式“一”(“a”和“an”)和“所述”包括复数指称。除非另外定义,否则本文使用的所有技术和科学术语具有本领域普通技术人员所普遍理解的含义。使用在这里,术语“包括”意味着“包括但不限于”。为了以下描述的目的,“节点”指汇编语言序列内处理器所执行的指令序列。“汇编语言”指一种计算机编程语言,其实现数字机器码的符号表示。“汇编语言序列”指以汇编语言所编写的节点序列。“二进制文件”指包括以二进制格式编码的数据的计算机文件。可执行文件是一类二进制文件。“恶意软件”是设计来干扰、潜入或损害计算机系统的有恶意的软件。恶意软件的例子包括病毒、蠕虫、特洛伊木马、广告软件、间谍软件、后门和/或类似软件。“专家系统”是一种人工智能软件和/或固件,其被设计来在特定问题领域模拟人们的决策过程。图1图示根据一实施方案的恶意软件检测系统。恶意软件检测系统可以包括代码分析部件100、专家系统知识库200和/或连接器逻辑部件150。在一实施方案中,代码分析部件100、专家系统知识库200和/或连接器逻辑部件150可以使用软件、硬件或软件和硬件的组合来实现。在一实施方案中,代码分析部件100、专家系统知识库200和/或连接器逻辑部件150可以驻留在同一计算设备上。可替换地,代码分析部件100、专家系统知识库200和/或连接器逻辑部件150可以以彼此通信的方式驻留在不同计算设备上。在一实施方案中,代码分析部件100可以分析例如但不限于可执行文件的二进制文件。在一实施方案中,代码分析部件100可以以静态或者动态方式分析二进制文件。静态分析可以包括分析并非当前正在执行的二进制文件。相比之下,动态分析可以包括在二进制文件正在执行时分析该二进制文件。在一实施方案中,代码分析部件可以使用硬件、软件或硬件和软件的组合来实现。在一实施方案中,代码分析部件100可以包括反汇编器、调试器、解编译器和/或类似部件。例如,代码分析部件100可以是诸如IDAPro的反汇编器。代码分析部件可以分析二进制文件来创建一汇编语言序列。在一实施方案中,汇编语言序列可以包括二进制文件的人类可读表示。代码分析部件100可以包括可以用来从二进制文件创建汇编语言序列的内部规则和/或操作。代码分析部件100可以分析汇编语言序列来确定一指令序列。在一实施方案中,代码分析部件100可以与外部设备交互来分析二进制文件。例如,如下讨论的,代码分析部件100可以与专家系统知识库200通信。如图1所图示的,恶意软件检测系统可以包括专家系统知识库200。在一实施方案中,专家系统知识库200可以包括人类在特定领域中的专业知识的表征。例如,专家系统知识库200可以包括信息、数据、规则等来对经验丰富的计算机分析师的知识和实践进行建模。在一实施方案中,专家系统知识库200可以使用C语言集成生产系统(“CLIPS”)来实现——CLIPS是一种可以用于创建专家系统的编程语言和软件工具。图2图示根据一实施方案的专家系统知识库。专家系统知识库200可以包括内部规则和/或操作。在一实施方案中,这些内部规则和/或操作可以被应用到来自汇编语言序列的指令序列,以确定所述汇编语言序列是否包含恶意软件。在一实施方案中,所述内部规则和/或操作可以表示人类专业知识的编码。在一实施方案中,领域专家205可以填入到(populate)专家系统知识库200。领域专家可以为,但不限于,具有分析恶意软件的专业知识的人。在一实施方案中,领域专家205可以是这样的计算设备,其被配置来为专家系统知识库200提供可以表示人类专业知识的编码的内部规则和/或操作。例如,一计算设备可以自动地为专家系统知识库200提供对一条或更多条内部规则和/或操作的更新、改进等。在一实施方案中,专家系统知识库200可以填入有二进制文件结构210。二进制文件结构可以是这样的模板,其描绘二进制文件的一个或更多个部分,,和/或描绘二进制文件中多个部分的序列。二进制文件结构210可以用于分析文件结构是否恰当。例如,可以分析二进制文件结构210来确定该文件上的头部是否符合一协议。在一实施方案中,专家系统知识库200可以填入有蠕虫界定操作215。蠕虫界定操作215可以识别这样的指令序列所述指令序列复制汇编语言序列。在一实施方案中,专家系统知识库200可以填入有特洛伊木马界定操作220。特洛伊木马界定操作220可以识别汇编语言序列中这样的指令序列所述指令序列与一个或更多个特洛伊木马相关联。在一实施方案中,专家系统知识库可以填入有病毒界定操作225。病毒界定操作225可以识别汇编语言序列中的自我复制的指令序列。专家系统知识库200可以包括可附加和/或可替换的操作。回头参照图1,恶意软件检测系统可以包括连接器逻辑部件150。连接器逻辑部件150可以使能(enable)代码分析部件100和专家系统知识库200之间的通信。在一实施方案中,从代码分析部件100发送的汇编语言序列可以呈专家系统知识库200不能直接处理的格式。代码分析部件100可以将该汇编语言序列传送到连接器逻辑部件150。连接器逻辑部件150可以将指令序列转换为专家系统知识库200可以处理的格式。连接器逻辑部件150可以将新近转换的指令序列发送到专家系统知识库200。类似地,连接器逻辑部件可以从专家系统知识库200获得信息。连接器逻辑部件可以将来自专家系统知识库200的信息转换为代码分析部件100可读的格式,并且将经转换的信息传输到代码分析部件。图3描绘根据一实施方案、用于检测和分析恶意软件的方法的流程图。二进制文件可以被代码分析部件接收。代码分析部件可以分析该文件来获得汇编语言序列和指令序列。代码分析部件可以经由连接器逻辑部件将所述汇编语言序列连同所述指令序列发送到专家系统知识库。专家系统知识库可以接收300所述汇编语言序列。在一实施方案中,专家系统知识库可以从所述汇编语言序列识别305所述指令序列。专家系统知识库可以应用内部操作和/或规则来对所述指令序列进行归类315。在一实施方案中,归类可以被用来确定该指令序列是否包含恶意软件。例如,在一实施方案中,专家系统知识库可以将所述指令序列归类为无威胁的315、有威胁的330或者不可归类的345。在本公开的范围内可以使用附加和/或可替换的归类。在一实施方案中,专家系统知识库可以使用一条或更多条内部规则和/或操作来遍历所接收指令序列的节点和分支。在一实施方案中,专家系统知识库向所接收的指令序列应用一组优先规则(precedentialrule)。优先规则集中的每条规则可以具有相对于该集合中其他优先规则的排序。在一实施方案中,所述规则可以基于每条规则与指令序列之间的匹配次数来排序。例如,与一规则的匹配准则最类似的指令序列可以导致该规则被赋予针对给定遍历的最高优先级(priority)。可替换地,与一规则的匹配准则最不类似的指令序列可以导致该规则被赋予针对给定遍历的最低优先级。CLIPS提供诸如复杂度策略和简单度策略的冲突解决策略,所述复杂度策略和简单度策略分别向最多和最少次特定匹配赋予优先权(precedence)。在一实施方案中,这样的策略可以被采用来对与指令序列最特定匹配的那些规则进行排序。在一实施方案中,专家系统知识库可以向指令序列应用与最高优先权相关联的规则。在一实施方案中,来自所述规则组的一条或更多条额外的优先规则可以按照它们的优先权次序应用到指令序列,直到所述指令序列被归类或者直到已经应用了所有优先规则。在应用一条或多条规则时,如果专家系统知识库从头到尾遍历指令序列,则该指令序列可以被归类为无威胁的315。例如,图5图示根据一实施方案的示例性指令序列。如果专家系统知识库能够从头(指令1505)到尾(指令8510)遍历整个指令序列500,则该指令序列500可以被归类为无威胁的。在一实施方案中,专家系统知识库可以向代码分析部件传输320信息,所述信息表明所述指令序列是无威胁的。在一实施方案中,所述信息可以包括附于所述指令序列、指示所述指令序列为无威胁的标签。在一实施方案中,响应于将指令序列归类为无威胁的,专家系统知识库可以从代码分析部件请求325具有新指令序列的新汇编序列来进行分析。在一实施方案中,如果专家系统知识库不能遍历指令序列的每条指令,则专家系统知识库可以将该指令序列归类为有威胁的330。例如,专家系统知识库可以通过遍历指令序列的指令来分析该指令序列,以确定是否存在恶意软件。例如,循环可能是恶意软件的指示标志(indicator)。如果在遍历期间专家系统知识库到达一其已经分析过的指令,则专家系统知识库可以确定该指令序列形成循环。在一实施方案中,专家系统知识库可以将具有一个或更多个循环的指令序列归类为有威胁的。图6图示出根据一实施方案的示例性指令序列。如图6所图示的,指令序列600可以被归类为有威胁的,因为它包括从指令6605到指令4610的循环。在一实施方案中,可以指示恶意软件或其他恶性行为的其他活动可以包括加密/解密例程、复制代码、按键记录、独立发起网络通信、与已知恶意方或可疑网络主机通信等等。这样,包括这些活动之一或更多的指令序列可以被归类为有威胁的。在本公开的范围内,附加和/或可替换的活动可以来指示恶意软件。在一实施方案中,专家系统知识库可以向代码分析部件传输335信息,所述信息表明所述指令序列是有威胁的。所述信息可以经由连接器逻辑部件发送到代码分析部件,所述连接器逻辑部件可以将所述信息翻译为代码分析部件可读的形式。在一实施方案中,所述信息可以包括附于所述指令序列、指示所述指令序列为有威胁的标签。在一实施方案中,所述信息可以包括对其他汇编语言序列进行搜索来查找之前曾分析340过的指令序列的至少一部分的请求。例如,代码分析部件可以对其他汇编语言序列进行搜索来查找在前一实施例中讨论的循环。在一实施方案中,代码分析部件可以使用其内部操作和/或规则来翻译和/或分析所述信息,以确定指令序列的至少一部分是否存在于汇编语言序列内部。如果代码分析部件找到相同的指令序列或者指令序列的一部分,则代码分析部件可以将相关的汇编语言序列和指令序列发送给专家系统知识库。在一实施方案中,专家系统知识库可以确定345指令序列是否是不可归类的。如果专家系统知识库不能确定指令序列是否是有威胁的,则该指令序列可以被标识为不可归类的。例如,创建了二进制文件的程序员可能曾故意使用方法来模糊该文件的功用,妨碍代码分析部件发出正确的指令序列。这样,代码分析部件可能经由连接器逻辑部件向专家系统知识库发送非完整或者荒谬的指令序列。专家系统知识库可以使用其内部规则和/或操作分析指令序列的每个节点。基于其分析,专家系统知识库可以向代码分析部件传输350请求来重新解释特定节点或者一系列节点。例如,专家系统知识库可以请求代码分析部件针对特定节点生成新的指令序列。在一实施方案中,所述请求可以包括针对代码分析部件的在分析汇编序列时可替换的考量因素。例如,在某些情况下,代码分析部件可能不能够恰当地分析汇编序列。这样,专家系统知识库可能有必要向代码分析部件提供允许分析继续下去的信息。例如,专家系统知识库可以检测出一非正确的指令序列应当被更改或忽略以允许分析继续下去。在一实施方案中,该信息可以被包括在给代码分析部件的请求中。在一实施方案中,代码分析部件可以使用其内部规则和/或操作来分析汇编语言序列和指令序列。专家系统知识库可以经由连接器逻辑部件从代码分析部件接收345经分析的汇编语言序列和新的指令序列。专家系统知识库可以遍历该新的指令序列来确定其归类。图4描绘根据一实施方案、可以用于包含或者实现程序指令的示例性系统的框图。参照图4,总线400充当将硬件其他图示组件进行互连的主信息通道。CPU405可以是系统的中央处理单元,进行执行程序所需的运算和逻辑操作。只读存储器(R0M)410和随机访问存储器(RAM)415可以构成示例性存储器设备或储存介质。控制器420将一个或更多个可选的盘驱动接口到系统总线400。这些盘驱动可以包括例如外部或内部DVD驱动425、⑶ROM驱动430或硬盘驱动435。如之前指示的,这些各种盘驱动和盘控制器是可选的设备。程序指令可以储存在ROM410和/或RAM415中。可选地,程序指令可以储存在例如应驱动、致密盘、数字盘、存储器的计算机可读储存介质或任何其他实体记录介质上。可选显示接口面440可以允许来自总线400的信息以音频、图形或者字母数字形式显示在显示器445上。可以使用各种通信端口450进行与外部设备的通信。除了标准的计算机型部件外,所述硬件还可以包括接口455,该接口455允许从诸如键盘460的输入设备或者诸如鼠标、遥控器、触摸板或触摸屏、指点设备和/或游戏杆的其他输入设备465接收数据。应当意识到,上述公开的各种和其他特征以及功能或者其替换方案可以合乎期望地组合成很多其他不同的系统或应用。还有,本领域技术人员可以后续作出各种当前未预见或者未料想到的替换方案、修改、改动或其改进,所附实施方案也意图包括这些替换方案、修改、改动或其改进。权利要求1.一种自动识别恶意软件的方法,所述方法包括通过专家系统知识库接收来自二进制文件的汇编语言序列;识别来自所述接收的汇编语言序列的指令序列;通过所述专家系统知识库将所述指令序列归类为有威胁的、无威胁的或不可归类的,所述归类操作通过应用所述专家系统知识库中的一个或更多个规则到所述指令序列来进行;如果所述指令序列被归类为有威胁的,发送信息到代码分析部件,其中所述信息包括以下内容中的一项或更多项所述指令序列;标签,所述标签包括这样的指示,即所述指令序列是有威胁的;以及针对所述指令序列的至少一部分对来自所述二进制文件中的一个或更多个其他汇编语言序列进行搜索的请求;以及通知使用者所述二进制文件包含恶意软件。2.如权利要求1的方法,其中应用一个或更多个规则的操作包括应用由C语言集成生产系统语言写成的一个或更多个规则。3.如权利要求1的方法,其中归类所述指令序列的操作包括以下内容中的一项或更多项应用一个或更多个规则到所述指令序列来判定所述二进制文件的二进制文件结构是否恰当;应用一个或更多个蠕虫界定操作来判定所述指令序列是否包括复制所述汇编语言序列中的一个或更多个指令;应用一个或更多个特洛伊木马界定操作来判定所述指令序列是否包括与一个或更多个特洛伊木马相关联的一个或更多个指令;以及应用一个或更多个病毒界定操作来判定所述指令序列是否包括一个或更多个自我复制指令。4.如权利要求1的方法,其中应用一个或更多个规则的操作包括应用优先规则的集合到所述指令序列,其中所述优先规则的集合包括多个优先规则,其中每个优先规则与相对于所述集合中其他优先规则的优先权相关联。5.如权利要求4的方法,其中应用优先规则的集合的操作包括按优先权顺序应用所述优先规则到所述指令序列,直至所述指令序列被归类或每个优先规则都已经被应用。6.如权利要求4的方法,其中应用优先规则的集合的操作包括通过将优先权给予具有匹配于所述指令序列的更高次数的规则,来排序所述优先规则。7.如权利要求1的方法,其中归类所述指令序列的操作包括如果所述指令序列不能被从头到尾遍历,则归类所述指令序列为有威胁的。8.如权利要求1的方法,其中,针对所述指令序列中每个节点,归类所述指令序列的操作包括遍历所述节点;判定所述节点是否在先前已经被遍历;以及如果所述节点在先前已被遍历,归类所述指令序列为有威胁的。9.如权利要求1的方法,其中归类所述指令序列的操作包括如果所述指令序列包含以下内容中的一项或更多项,归类所述指令序列为有威胁的加密例程;解密例程;以及用于复制所述指令序列的至少一部分的一个或更多个指令。10.一种自动识别恶意软件的方法,所述方法包括通过专家系统知识库接收来自二进制文件的汇编语言序列;识别来自所述接收的汇编语言序列的指令序列;通过所述专家系统知识库将所述指令序列归类为有威胁的、无威胁的或不可归类的,所述归类操作通过应用所述专家系统知识库中的一个或更多个规则到所述指令序列来进行;如果所述指令序列被归类为无威胁的,发送信息到代码分析部件,其中所述信息包括以下内容中的一项或更多项所述指令序列;以及标签,所述标签包括这样的指示,即所述指令序列是无威胁的;以及请求第二指令序列。11.如权利要求10的方法,其中归类所述指令序列的操作包括如果所述专家系统遍历所述指令序列全体,则归类所述指令序列为无威胁的。12.一种自动识别恶意软件的方法,所述方法包括通过专家系统知识库接收来自二进制文件的汇编语言序列;识别来自所述接收的汇编语言序列的指令序列;通过所述专家系统知识库将所述指令序列归类为有威胁的、无威胁的或不可归类的,所述归类操作通过应用所述专家系统知识库中的一个或更多个规则到所述指令序列来进行;以及,如果所述指令序列被归类为不可归类的发送重新分析所述汇编语言序列的请求到代码分析部件请求;接收新指令序列,所述新指令序列对应于所述重新分析的汇编语言序列;以及归类所述新指令序列为有威胁的、无威胁的或不可归类的。13.一种自动识别恶意软件的方法,所述方法包括通过代码分析部件分析二进制文件来生成汇编语言序列和相应的指令序列;发送所述指令序列到专家系统知识库;从所述专家系统知识库接收与所述指令序列相关联的归类信息;如果所述归类信息将所述指令序列标识为有威胁的从所述二进制文件识别一个或更多个其他汇编语言序列,所示二进制文件包括所述指令序列的至少一部分,以及发送所述已识别的汇编语言序列的至少一个到所述专家系统知识库;如果所述归类信息将所述指令序列识别为无威胁的,发送第二指令序列到所述专家系统知识库;以及如果所述归类信息将所述指令序列识别为不可归类的重新分析所述汇编语言序列来产生新指令序列,以及发送所述新指令序列到所述专家系统知识库。14.如权利要求13的系统,其中分析二进制文件的操作包括静态分析所述二进制文件和动态分析所述二进制文件中的一个或更多个。15.一种用于自动识别恶意软件的系统,所述系统包括代码分析部件,所述代码分析部件被配置为从二进制文件识别汇编语言序列,其中所述汇编语言序列包括一个或更多个指令序列;以及专家系统知识库,所述专家系统知识库与所述代码分析部件通信,其中所述专家系统知识库被配置为使用一个或更多个规则来归类所述指令序列为有威胁的、无威胁的或不可归类的。16.如权利要求15的系统,进一步包括连接器逻辑部件,所述连接器逻辑部件与所述代码分析部件和所述专家系统知识库通信,其中所述连接器逻辑部件被配置来使所述代码分析部件和所述专家系统知识库之间能够通信。17.如权利要求16的系统,其中所述连接器逻辑部件被配置为实现以下内容中的一项或更多项转换所述指令序列到所述专家系统知识库可处理的格式;以及转换从所述专家系统知识库接收的信息到所述代码分析部件可处理的格式。18.如权利要求14的系统,其中所述专家系统知识库被填入以下内容中的一项或更多项C语言集成生产系统规则;二进制文件结构;蠕虫界定操作;特洛伊木马界定操作;以及病毒界定操作。19.如权利要求14的系统,其中所述专家系统知识库被配置来通过以下内容中的一项或更多项来归类所述指令序列应用一个或更多个规则到所述指令序列来判定所述二进制文件的二进制文件结构是否恰当;应用一个或更多个蠕虫界定操作来判定所述指令序列是否包括复制所述汇编语言序列中的一个或更多个指令;应用一个或更多个特洛伊木马界定操作来判定所述指令序列是否包括与一个或更多个特洛伊木马相关的一个或更多个指令;以及应用一个或更多个病毒界定操作来判定所述指令序列是否包括一个或更多个自我复制指令。20.如权利要求14的系统,其中所述专家系统知识库被配置为应用优先规则的集合到所述指令序列,其中所述优先规则的集合包括多个优先规则,其中每个优先规则与相对于所述集合中其他优先规则的优先权相关联。21.如权利要求20的系统,其中所述专家系统知识库进一步被配置为按优先权顺序应用所述优先规则到所述指令序列,直至所述指令序列被归类或每个优先规则都已经被应用。22.如权利要求20的系统,其中所述专家系统知识库进一步被配置为通过将优先权给予具有匹配于所述指令序列的更高次数的规则,来排序所述优先规则。全文摘要一种自动识别恶意软件的方法可以包括通过专家系统知识库接收来自二进制文件的汇编语言序列;识别来自所述接收的汇编语言序列的指令序列;以及通过所述专家系统知识库将所述指令序列归类为有威胁的、无威胁的或不可归类的,所述归类操作通过应用所述专家系统知识库中的一个或更多个规则到所述指令序列来进行。如果所述指令序列被归类为有威胁的,可以发送信息到代码分析部件并可以通知使用者所述二进制文件包含恶意软件。所述信息可以包括以下内容中的一项或更多项所述指令序列;标签,所述标签包括这样的指示,即所述指令序列是有威胁的;以及针对所述指令序列的至少一部分对来自所述二进制文件中的一个或更多个其他汇编语言序列进行搜索的请求。文档编号G06F21/00GK102203791SQ200980142930公开日2011年9月28日申请日期2009年8月31日优先权日2008年8月29日发明者R·希克斯申请人:Avg技术捷克有限责任公司

最新回复(0)