用于自动确定程序的潜在蠕虫样行为的方法与装置的制作方法

文档序号:6413337阅读:291来源:国知局
专利名称:用于自动确定程序的潜在蠕虫样行为的方法与装置的制作方法
技术领域
本发明总体上涉及用于分析如那些称为蠕虫的不希望的软件实体的方法和装置,更具体而言,涉及用于自动识别软件程序中潜在的蠕虫样行为的方法与装置。
背景技术
计算机病毒可以定义为在计算机上以可能修改的方式而无需人介入地传播的自复制程序或软件例程。计算机蠕虫可以定义为暗中在计算机网络的计算机之间发送其自己的拷贝的程序,而且它利用网络服务进行复制。
在计算机病毒自动检测与分析领域,经常需要预测程序将显示什么类型的行为,由此程序可以在最适合程序的环境中被复制与分析。
软件可以被动态分析,以识别潜在的重要行为(如蠕虫样行为)。这种行为有可能只有当软件在软件能或看起来能访问生产网络和/或全球因特网的环境中执行时才显示。软件可以在实际的或包括监视组件和仿真组件的仿真网络环境中执行。监视组件用于捕捉和/或记录由软件和/或系统其它组件显示的行为,而仿真组件给被分析的软件一种它在访问生产网络和/或全球因特网的情况下执行的印象。被分析的软件被有效地限制于分析网络环境,实际上不能从任何生产网络或全球因特网读信息或改变在任何生产网络或全球因特网上的任何信息。
期望提供一种在这种环境以外指出计算机蠕虫身份的能力。尽管有可能利用这种环境来复制计算机软件病毒与蠕虫,但是由于蠕虫复制环境假定实际或仿真网络的存在,而实际中这实现起来很昂贵,因此是低效的。
因此,在网络环境以外预测软件样本是否是潜在蠕虫的能力将减少发送到蠕虫复制环境的样本数,并导致自动复制与分析系统效率的显著提高。

发明内容
因此,本发明提供用于自动确定怀疑具有蠕虫样特征的程序的行为简档的方法与装置。在第一方面,方法包括分析程序所需的数据处理系统资源,如果所需资源不表示该程序具有蠕虫样特征,则在受控的非网络环境中运行该程序,同时监视并注册对系统资源的访问,以确定程序在非网络环境中的行为。分析所观察行为的注册记录,来确定其行为是否表示程序具有蠕虫样特征。非网络环境可以向程序仿真网络的出现,但不仿真网络的实际操作。


现在参考附图,仅作为例子来描述本发明的优选实施方式,其中图1是本发明优选实施方式中数据处理系统的方框图;图2是本发明优选实施方式中控制器单元的方框图;图3是本发明优选实施方式中说明图2资源分析器组件运行的逻辑流程图;图4A和4B,统称为图4,示出了本发明优选实施方式中说明图2复制器单元运行的逻辑流程图和说明图2行为模式分析器组件运行的逻辑流程图。
具体实施例方式
在此所公开的方法基于蠕虫程序能将其向其它计算机传播的特征。这些特征包括但不限于以下一个或多个特征(a)利用来自动态链接库(dll)的应用程序接口(API)向其它机器发电子邮件;(b)通用邮件程序的自动化,该邮件程序例如但不限于MicrosoftOutlookTM和Outlook ExpressTM;(c)使用地址本、系统注册表和其它系统资源确定蠕虫的潜在接收者和/或邮件程序的位置;(d)用蠕虫代码重写或代替系统库中的网络API,该蠕虫代码如果执行,则将使得在所有从该机器发送的邮件中包含蠕虫代码作为附件或作为单独的邮件消息;(e)企图访问远程驱动器上的资源;及(f)删除将在系统重新启动后运行、并利用前面所述的一种方法使蠕虫代码发送到其它机器的程序。
蠕虫的一种简档是显示那些表示使用了上面提到的一种或多种方法的特征的简档。例如,蠕虫简档可以包括从网络dll导入发送方法或改变网络资源,或企图访问系统注册表来获得描述任何所安装的电子邮件程序的信息。
可疑程序(怀疑具有蠕虫样行为、特征或属性的程序)的行为简档的确定是分两个阶段执行的。
在第一阶段,确定程序所需的资源。表示潜在蠕虫样行为的资源的例子包括但不限于(a)用于网络访问的动态链接库;(b)从这些库导入的表示可能企图发送电子邮件的方法;及(c)表示现有邮件程序自动化的动态链接库和方法,如OLE或DDE。
在第二阶段,可疑程序在受控非网络环境中运行一次或多次,其中对系统资源的访问,有可能是全部访问,被监视并注册。为了缩小结果并减少误检的个数,该非网络环境可以配置成看起来象具有一些网络能力。例如,如果可疑蠕虫企图访问地址本或检查电子邮件程序的存在,那么为了得到更具体的蠕虫样响应,该环境将提供期望的信息。在有些情况下,为了方便对企图访问电子邮件程序的可疑程序的积极响应,在系统上安装电子邮件程序可能是有利的。
在完成一次或多次程序运行后,基于对系统所作的修改,例如但仅仅作为例子,对任何网络dll的修改及访问如包含邮件程序或地址本位置的注册表的特定资源的企图,创建该程序的行为简档。
本发明的一种优选实施方式运行在图1所示的一个或多个计算机系统100上,图1示出了可以实现本发明该优选实施方式的典型计算机系统100的方框图。计算机系统100包括具有硬件单元103的计算机平台102、在此也称为控制器101的实现下面所公开方法的软件分析程序(SAP)101。SAP 101运行在计算机平台102和硬件单元103之上。硬件单元103一般包括一个或多个中央处理单元(CPU)104、可以包括随机访问存储器(RAM)的存储器105及输入/输出(I/O)接口106。微指令码,如精简指令集,也可以包括在平台102中。各种外围组件130可以连接到计算机平台102。一般提供的外围组件130包括显示器109、存储该优选实施方式所使用数据及驻留蠕虫资源简档205(见图2)的外部数据存储设备(如磁带或磁盘)110,还有打印机111。还可以包括链路112,将系统100连接到一个或多个其它简单示为块113的类似计算机系统。链路112用于在计算机100和113之间发送数字信息。链路112还可以提供对全球因特网113a的访问。操作系统(OS)114协调计算机系统100各种组件的运行,还负责管理各种对象和文件、用于记录关于该对象和文件的特定信息,如最后修改日期和时间、文件长度等。以传统方式与OS 114关联的是注册表114A及系统初始化文件(SYS_INIT_FILES)和其它文件,如dll114B,其中注册表114A的使用在下面描述。位于OS 114之上的是包含例如编译器、解释器和其它软件工具的软件工具层114A。层116中的解释器、编译器和其它工具运行在操作系统114之上,并使得可以利用本领域已知的方法执行程序。
计算机系统100一种合适且不限制的例子是IBMIntelliStationTM(国际商用机器公司的商标)。合适的CPU例子是PentiumTMIII处理器(Intel公司的商标);操作系统的例子是微软Windows 2000(微软公司的商标)和GNU/Linux的Redhat build;解释器和编译器的例子是Perl解释器和C++编译器。本领域技术人员应当认识到对于上面提到这些,可以替换成其它计算机系统、操作系统和工具的例子。
SAP或控制器101根据本发明的教义运行,确定从执行可疑的恶意程序或不期望软件实体,在此通称为样本115,得到的可能蠕虫样行为。
SAP或控制器101一种目前优选但不限制的实施方式利用一个或多个计算机用于实现在图2中示出的控制器子系统或单元200和复制器子系统或单元201。构成控制器200一部分的蠕虫样行为分析器202利用一些目前存在的工具114A,以确定可疑程序或样本115使用的dll和导入。
图2是本发明优选实施方式中控制器单元200和复制器单元201的具体方框图,并示出了蠕虫样行为分析器202和该实施方式运行的环境。该环境包括几个计算系统,一个是控制器200,另一个是复制器201。
应当指出,尽管在此单元201称为复制器,但其主要功能不是复制蠕虫,即提供蠕虫另外的实例。相反,其主要目的是创建一种系统环境,更精确地说是仿真系统环境,其中以一种或多种途径演习样本115一次或多次,从而确定样本115适合且使系统环境状态产生变化的行为,并获得样本115在(仿真)系统环境中运行时活动的记录或注册。系统状态的任何变化及所执行样本115的活动注册都同已知的与蠕虫样行为关联的系统状态变化和活动进行比较,如果出现匹配,则认为样本115显示蠕虫样行为。在这一点,可能期望尝试复制该可疑蠕虫以活动其更多实例进行分析及后续识别。
对于本发明,以多种“途径”演习样本115意味着通过不同的系统API(例如,系统和/或创建处理)运行该样本出现一次或几次,如果程序有GUI,还演习GUI。以多种途径演习样本115还可以通过运行该样本程序,然后重新启动系统并再次运行该程序来实现。这些技术并不是可以演习样本115的全部“途径”。
蠕虫样行为分析器202包括在此也称为静态分析器或静态确定单元的资源分析器203,及在此也称为动态分析器或动态确定单元的行为模式分析器204。行为模式分析器204使用分别确定样本115所需的动态链接库114B列表及从动态链接库114B导入的方法的工具206和207。能用于确定哪个动态链接库114B是程序所需的工具206、207的例子被认为是微软DEPENDS.EXE,在微软系统期刊发行的于1997年2月由Matt Pietrek所写的文章“Under the Hood”中描述,可以通过微软开发者网络活动。能用于确定样本程序215导入的工具206、207的例子被认为是DUMPBIN.EXE,它构成微软开发者StudioTM版本6.0的一部分。其它用于执行相同或类似功能的工具可以由本领域技术人员找到或写出。
资源分析器203(静态确定)利用这些工具创建由可疑程序或样本115所使用的资源简档,并将结果与蠕虫资源简档205的内容进行比较。典型的蠕虫资源简档205可以包括网络dll 114B,例如但不限于WSOCK32.DLL、INETMIB1.DLL、WINSOCK.DLL、MSWSOCK.DLL、WININET.DLL、MAPI32.DLL、MAPI.DLL和WS2_32.DLL,及表示使用OLE自动化的DLL,如OLE32.DLL,还有从这些动态链接库导入的方法列表。这些导入的方法包括但不限于从WSOCK32.DLL导入的“send”、“sendto”和WSAsend方法,从OLE32.DLL导入的CoCreateInstance和CoCreateInstanceEx方法,或者从USER32.DLL导入的DDEConnect方法。
行为模式分析器204(动态确定)利用样本115在复制器201上的运行结果创建可疑程序的行为简档,并将这些结果与蠕虫行为简档208进行比较。典型的蠕虫行为简档208包括一系列对系统的改变和/或表示蠕虫样行为的对文件和注册表访问的企图。蠕虫行为简档208列表可以包括但不限于以下元素(a)对一个或多个网络dll的改变,但不改变非网络dll;(b)一个或多个带VBS后缀的文件的创建;(c)任何新文件的创建及将导致任何网络dll被新文件代替的对系统初始化文件114B的相应改变/创建。这后一种情形的例子是Windows系统中Windows目录下文件wininit.ini的创建,其中所创建的wininit.int文件包含如“WSOCK32.DLL=SOME.FILE”的指令,而SOME.FILE是由程序创建的新文件。蠕虫行为简档208列表还可以包括(d)企图访问地址本或/和对应于电子邮件程序位置的注册表键值的记录。
蠕虫资源简档205和蠕虫行为简档208优选地本质上都是静态的,优选地在样本115在复制器201上运行之前创建。
复制器201在上面所讨论的行为模式分析操作之前被控制器200调用。复制器201包括复制控制器(RC)209、行为监视器210及可选的网络行为仿真器211。
网络行为仿真器211与行为监视器210一起运行,创建网络样行为的表象,从而得到样本115确定的蠕虫样行为。例如,当行为监视器210检测到样本115对IP地址的请求时,网络行为仿真器211就运行,向样本215提供错误的网络地址,如错误的IP地址。在这种情况下,样本115可能在显示蠕虫样行为之前请求本地IP地址,以确定该系统是否具有网络能力,因此可以向样本115提供本地IP地址,作为使样本115显示蠕虫样行为的诱饵。
以类似的方式,其中样本115运行的环境可以建成显示实际上不存在的系统资源和/或对象的存在。例如,样本115可能请求关于特定文件的信息,并且然后它可以有利于环境响应请求信息,就好像该文件存在一样,或者在它返回到样本115之前创建该文件作为样本显示蠕虫样行为的诱饵。即,已知的非网络环境可以建成向程序显示至少一种不存在的本地网络相关资源和本地网络相关对象。
图3和图4说明了在控制器200和复制器201执行过程中的总体控制流程。在图3中,样本115首先在步骤301传送到控制器200,然后控制器200在步骤302将样本115传送到资源分析器203。资源分析器203在步骤303确定哪些动态链接库114B是样本115所访问的,并将被访问的dll与蠕虫资源简档205中的那些进行比较(步骤304)。
如果dll的使用与蠕虫资源简档205匹配,则在步骤305确定从这些dll导入的方法。如果这些方法与包含在蠕虫资源简档205中的那些匹配(步骤306),则样本115被归为潜在的蠕虫。如果dll的使用或导入的方法都不与蠕虫资源简档205匹配,如在步骤304和306任一个中由No指示所指示的,则样本被传递到图4A所示的复制器201,用于复制和后续行为模式确定。
图4说明了通过复制器201(图4A)和行为模式分析器(图4B)的控制流程。在复制环境在步骤401初始化以后,样本在步骤402发送到复制器201并在步骤403执行。然后控制传递到行为模式分析器204(图4B),在步骤404检查对系统的任何改变,在步骤405比较检测出的结果和蠕虫行为简档208中的那些。如果存在匹配,则样本115被称为潜在的蠕虫,否则,行为模式分析器204在步骤406分析由行为监视器210报告的活动,并在步骤407试图匹配报告的样本行为与蠕虫行为简档208中列出的活动模式(蠕虫样行为模式)。
如果在步骤404分析的对系统的改变或在步骤406由行为监视器报告的活动包含任何在蠕虫行为简档208中列出的模式,则样本被归为潜在的蠕虫,否则,样本115被归为不是蠕虫。如果在步骤407归为蠕虫,则样本115A可以提供给蠕虫复制与分析系统,用于进一步特征化。
上述方法可以在计算机可读介质,如磁盘110,上体现,用于实现自动确定怀疑具有蠕虫样特征的样本程序115的行为简档。计算机程序的执行使得计算机100、200可以分析样本程序115所需的计算机系统资源,如果所需资源不表示样本程序115具有蠕虫样特征,则计算机程序的进一步执行使得计算机100、200和201在受控的非网络环境中运行程序,同样监视并注册对系统资源的访问,以确定程序在非网络环境中的行为。计算机程序的进一步执行可以使计算机向样本程序仿真网络的出现,而不仿真网络的操作。
应当指出,前面的描述意味着只有如果样本的系统资源需求不表示潜在的蠕虫(静态确定),复制器201才运行(动态确定)。由于静态确定处理一般比动态确定处理在计算方面便宜得多,而且一般执行得更快,因此目前的优选实施方式是这种情况。但是,当潜在的蠕虫由第一处理或子系统表示时,两个处理或子系统都执行也是可能的,第二处理或子系统用于验证第一处理或子系统的结果。还应当指出,在有些情况下,由于可能会产生错误的负面结果,因此不期望需要静态和动态确定处理都得出关于特定样本115蠕虫样本质的相同结论。因此,现在依赖静态或动态处理中的一种宣布特定样本是蠕虫样的是优选的,使得如果没有指明蠕虫样行为,则系统切换到作为潜在病毒来处理该样本。
如上面所指出的,对于由资源分析器203执行的静态确定(在仿真环境之外)通常比由行为模式分析器204执行的动态确定能更快地处理样本115。
权利要求
1.一种用于自动确定程序的潜在蠕虫样行为的方法,包括在不仿真网络操作的环境中确定程序的行为简档;比较所确定的行为简档与表示蠕虫样行为的简档;及基于比较的结果提供潜在蠕虫样行为的指示。
2.如权利要求1所述的方法,其中行为简档是通过确定程序需要什么系统资源来确定的。
3.如权利要求1所述的方法,其中行为简档是通过确定程序引用什么系统资源来确定的。
4.如权利要求1所述的方法,其中行为简档的确定包括在至少一种已知的非网络环境中执行该程序,利用自动化方法检查环境,并且如果有变化的话就确定在环境中出现了什么变化;及记录任何所确定的变化作为所述行为简档。
5.如权利要求4所述的方法,其中已知的非网络环境具有看起来能显示与网络相关的功能的能力。
6.如权利要求5所述的方法,对企图确定环境是否具有网络功能的程序作出响应,向该程序提供网络地址,作为该程序显示蠕虫样行为的诱饵。
7.如权利要求4所述的方法,其中已知的非网络环境向该程序显示不存在的本地与网络相关的资源和本地与网络相关的对象中的至少一种。
8.如权利要求4所述的方法,对企图确定关于文件的信息的程序作出响应,作出该文件好像存在的响应,作为该程序显示蠕虫样行为的诱饵。
9.如权利要求4所述的方法,对企图确定关于文件的信息的程序作出响应,在该文件返回该程序之前创建该文件,作为该程序显示蠕虫样行为的诱饵。
10.如权利要求4所述的方法,对企图确定关于电子邮件程序的信息的程序作出响应,向该程序返回该信息,作为该程序显示蠕虫样行为的诱饵。
11.如权利要求4所述的方法,对企图确定关于电子邮件地址本的信息的程序作出响应,向该程序返回该信息,作为该程序显示蠕虫样行为的诱饵。
12.如权利要求1所述的方法,其中确定程序的行为简档包括以多种方式演习该程序。
13.如权利要求1所述的方法,其中确定程序的行为简档包括确定程序的动态链接库使用。
14.如权利要求1所述的方法,其中确定程序的行为简档包括确定该程序从库中导入的方法的身份。
15.如权利要求1所述的方法,其中确定程序的行为简档包括确定该程序请求什么资源。
16.如权利要求15所述的方法,其中所述资源包括用于网络访问的动态链接库、从表示可能企图发送电子邮件的动态链接库导入的方法及表示电子邮件程序自动化的动态链接库和方法中的至少一种。
17.如权利要求1所述的方法,其中确定程序的行为简档包括确定该程序请求的系统资源是否与特定的预定系统资源匹配,如果匹配,则在受控环境中执行该程序,确定该程序执行过程中作出的系统变化是否与特定的预定系统变化匹配,如果匹配,则宣布该程序是可能的蠕虫,如果不匹配,则确定由程序行为监视器报告的行为是否与特定的预定行为匹配,如果匹配,则宣布该程序是可能的蠕虫。
18.数据处理系统,包括至少一台计算机,该至少一台计算机用于执行所存储的程序,来自动确定一种程序的潜在蠕虫样行为,该系统包括用于在不仿真网络操作的环境中确定程序行为简档的装置;用于比较所确定的行为简档与表示蠕虫样行为的存储简档的装置;及用于基于比较结果提供潜在蠕虫样行为的指示的装置。
19.一种计算机程序产品,包括当在具有非易失性存储设备的数据处理系统上执行时使所述系统执行如权利要求1至17任何一项所述的方法的指令。
全文摘要
用于自动确定怀疑具有蠕虫样特征的程序的行为简档的方法和系统,包括分析该程序所需的数据处理系统资源,如果所需资源不表示该程序具有蠕虫样特征,则在受控的非网络环境中运行该程序,同时监视并注册对系统资源的访问,从而确定该程序在非网络环境中的行为。分析所观察行为的日志记录,确定该行为是否表示程序具有蠕虫样特征。该非网络环境可以向程序仿真网络的表象,但不仿真网络的操作。
文档编号G06F21/22GK1672111SQ03817429
公开日2005年9月21日 申请日期2003年7月17日 优先权日2002年7月23日
发明者威廉·卡里斯利·阿诺尔德, 戴维·迈克尔·切斯, 约翰·弗雷德里克·莫拉尔, 阿拉·西格尔, 伊恩·尼古拉斯·沃利, 斯蒂夫·理查德·怀特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1