在虚拟机上执行文件的防病毒扫描的系统和方法技术方案

技术编号:16288020 阅读:126 留言:0更新日期:2017-09-26 04:01
提供了一种用于在虚拟机上执行文件的防病毒扫描的方法和系统。示例方法包括在所述虚拟机上执行文件的第一执行,记录包括API函数调用和在执行期间检测的内部事件的第一日志;并且确定是否在签名数据库内储存在所述日志中的任何签名。而且,如果在第一签名数据库内未发现在所述第一日志内的签名,则所述文件被归类为非恶意的。相反,如果发现至少一个签名,则执行文件的第二执行,并且记录包括已检测的内部事件的第二日志。而且,所述方法包括确定是否在第二签名数据库内储存在所述第二日志中的任何签名;并且如果未发现签名,则将所述文件归类为非恶意的。

System and method for antivirus scanning of files on a virtual machine

A method and system for antivirus scanning of files on a virtual machine is provided. Exemplary method includes executing the first executable file in the virtual machine, the first log records including API function calls and detected during execution of internal events; and to determine whether any signature in a signature database stored in the log. Further, if the signature in the first log is not found in the first signature database, the document is classified as non malicious. Conversely, if at least one signature is found, the second execution of the executable file is recorded and the second log including the detected internal event is recorded. Further, the method includes determining whether any signature in the second log is stored in the second signature database; and if the signature is not found, the file is classified as non malicious.

【技术实现步骤摘要】

本公开在本文中总体上涉及防病毒技术,并且更具体而言,涉及在虚拟机上执行文件的防病毒扫描的系统和方法
技术介绍
传统的签名分析并非始终能够检测恶意文件(尤其是多态的病毒)以及已修改版本的恶意文件。因此,现代防病毒应用(application:应用程序)另外利用使用虚拟机的扫描。在虚拟机上执行正在扫描的文件。通过拦截由过程和操作系统(OS)执行的各种程序的方式,将由于执行从文件中发起的过程从而发生的事件保存在日志内。然后,防病毒应用分析所产生的日志。该日志通常在其执行期间保存由所述过程执行的API(应用程序编程接口)函数的调用,并且还从被调用的API函数返回(通过返回地址传输控制)。通常在有限的时间间隔(高达几十秒)内,发生在虚拟机上执行文件,这是因为在虚拟机上执行文件并且由防病毒应用拦截API函数调用,明显降低文件执行速度。同时,为了防止防病毒应用检测恶意文件,黑客开始给恶意文件增加不包含任何恶意活动的代码,但是该代码具有包括需要很长时间来拦截其调用的大量API函数的循环。因此,甚至在开始执行文件代码的恶意部分之前,用于在虚拟机上执行文件的时间流逝。
技术实现思路
分析先有技术,得出以下结论:使用先前技术是无效的,有时甚至是不可能的,本公开(即,在虚拟机上执行文件的防病毒扫描的系统和方法)弥补了先前技术的不足。因此,根据一个方面,一种方法包括:在所述虚拟机上执行文件的第一执行(execution);在存储器内记录包括在文件的第一执行期间检测的至少一个内部事件和至少一个API函数调用的第一日志;确定是否在第一签名数据库内储存在所述第一日志中的任何签名;如果在第一签名数据库内未发现在所述第一日志内的签名,则将所述文件归类为非恶意的;如果在第一签名数据库内发现在所述第一日志内的至少一个签名,则在所述虚拟机上执行文件的第二执行,并且在存储器内记录包括在所述文件的第二执行期间检测的至少一个内部事件的第二日志;确定是否在第二签名数据库内储存在所述第二日志中的任何签名;并且如果在第二签名数据库内未发现在所述第二日志内的签名,则将所述文件归类为非恶意的。根据另一个方面,所述方法进一步包括:如果在第二签名数据库内发现在所述第二日志内的至少一个签名,则基于所述第一日志和所述第二日志,确定做出关于API函数调用的记录的标准;在所述虚拟机上执行文件的第三执行,直到满足所确定的标准的条件;在存储器内记录包括在所述文件的第三执行期间检测的至少一个内部事件的第三日志;确定是否在恶意签名数据库内储存在所述第三日志中的任何签名;并且如果在所述恶意签名数据库内未发现在所述第三日志内的签名,则将所述文件归类为非恶意的。根据另一个方面,做出关于API函数调用的记录的标准包括以下中的至少一个:在所述第二日志内发生具有记录序号的内部事件,用于在所述第二签名数据库内的已识别的签名的第一记录之前,在所述第二日志内发现的记录;并且在所述第二签名数据库中在所述第一日志和所述第二日志中检测签名之后,做出关于API函数调用的记录。根据另一个方面,在所述虚拟机上执行文件的第一执行,包括执行所述第一执行一个时间段或者直到完成执行所述文件的程序代码。根据另一个方面,所述方法包括根据由所述文件执行的指令,在所述虚拟机上的文件的第一执行期间,动态改变所述时间段。根据另一个方面,储存在所述第一日志和所述第二日志内的所述至少一个内部事件中的每个包括内部事件的名称、系统调用的类型、以及从所述文件中发起的过程的唯一标识符。根据另一个方面,储存在所述第一日志和所述第二日志内的所述至少一个内部事件中的每个包括从所述过程中发起的线程的唯一标识符、由所述系统调用寻址的OS内核的对象的过程的唯一标识符、所述OS内核的对象的线程的唯一标识符、以及通向所述OS内核的对象的路径。根据一个方面,提供了一种用于在虚拟机上执行文件的防病毒扫描的系统。根据该方面,所述系统包括:第一签名数据库;第二签名数据库;存储器;以及处理器,其被配置成:在所述虚拟机上执行文件的第一执行;在存储器内储存包括在文件的第一执行期间检测的至少一个内部事件和至少一个API函数调用的第一日志;确定是否在第一签名数据库内储存在所述第一日志中的任何签名;如果在第一签名数据库内未发现在所述第一日志内的签名,则将所述文件归类为非恶意的;如果在第一签名数据库内发现在所述第一日志内的至少一个签名,则在所述虚拟机上执行文件的第二执行,并且在存储器内储存包括在所述文件的第二执行期间检测的至少一个内部事件的第二日志;确定是否在第二签名数据库内储存在所述第二日志中的任何签名;并且如果在第二签名数据库内未发现在所述第二日志内的签名,则将所述文件归类为非恶意的。示例方面的以上简化的
技术实现思路
用于提供本公开的基本理解。该
技术实现思路
并非所有预期方面的广泛概述,并且旨在不识别所有方面的关键或重要元件,也不描述本公开的任何或所有方面的范围。其唯一目的在于,通过简单的形式呈现一个或多个方面,作为对以下公开内容的更详细描述的序言。为了实现以上目的,本公开的一个或多个方面包括在权利要求中描述并且示例性指出的特征。附图说明包含在本说明书内并且构成本说明书的一部分的附图示出了本公开的一个或多个示例方面,并且与详细描述一起用于解释其原理和实现方式。图1示出了根据一个示例性方面的用于在虚拟机上执行文件的防病毒扫描的系统的方框图;图2示出了根据一个示例性方面的用于在虚拟机上执行文件的防病毒扫描的方法的流程图;图3示出了通过第一日志的记录补充第二日志的一个示例;图4示出了组合这三个日志的一个示例;图5示出了可以在其上实现所公开的系统和方法的通用计算机系统的一个示例;图6示出了呈现可疑活动的示例的表2。具体实施方式在系统、方法以及计算机程序产品的背景下,在本文中描述示例方面,用于在虚拟机上执行文件的防病毒扫描的系统和方法。技术成果为检测包含恶意文件的程序代码做好了准备,在虚拟机上执行该文件时,该程序代码损害所述恶意文件的检测。本领域的技术人员会认识到,以下描述仅仅是说明性的,在任何情况下并非旨在具有限制性。受益于本公开的利益的本领域中的技术人员容易想到其他方面。现在,详细参考在附图中示出的示例方面的实现方式。相同的参考标号在整个附图和以下描述中可能的程度上用于表示相同或相似的项目。图1示出了根据一个示例性方面的用于在虚拟机上执行文件的防病毒扫描的系统的方框图。如图所示,系统包括防病毒应用101,其被设计成在虚拟机102上执行文件104。在一个示例性方面,在虚拟机102上执行操作系统(OS)103,其中,轮流发生文件104的执行。在虚拟机102上执行文件104期间,连接至防病毒应用101的日志模块105输入在API函数调用上的记录(在日志内保存这些记录)以及在第一日志110、第二日志111以及第三日志112中的内部事件。下面更详细地描述在日志110-112之间的差异。根据示例性方面,内部事件是在执行过程中从文件104向OS内核103发起的过程的系统调用。在一个示例性方面,通过拦截系统调用,并且还通过使用OS内核通知机构,并且通过将防病毒应用的驱动器嵌入OS驱动器堆栈(例如,文件系统堆栈或网络驱动器堆栈)内,可以获得关于内部事件的信息。通过从先有技术已知的技术(例如,欺本文档来自技高网
...
在虚拟机上执行文件的防病毒扫描的系统和方法

【技术保护点】
一种用于在虚拟机上执行文件的防病毒扫描的方法,所述方法包括:在所述虚拟机上执行文件的第一执行;在存储器内记录第一日志,所述第一日志包括在所述文件的第一执行期间检测的至少一个内部事件和至少一个API函数调用;确定是否所述第一日志中的任何签名被储存在第一签名数据库内;如果在所述第一签名数据库内未发现所述第一日志内的签名,则将所述文件归类为非恶意的;如果在第一签名数据库内发现所述第一日志内的至少一个签名,则在所述虚拟机上执行所述文件的第二执行,并且在所述存储器内记录包括在所述文件的第二执行期间检测的至少一个内部事件的第二日志;确定是否所述第二日志中的任何签名被储存在第二签名数据库内;并且如果在所述第二签名数据库内未发现所述第二日志中的签名,则将所述文件归类为非恶意的。

【技术特征摘要】
2016.03.18 RU 2016109928;2016.05.31 US 15/168,7941.一种用于在虚拟机上执行文件的防病毒扫描的方法,所述方法包括:在所述虚拟机上执行文件的第一执行;在存储器内记录第一日志,所述第一日志包括在所述文件的第一执行期间检测的至少一个内部事件和至少一个API函数调用;确定是否所述第一日志中的任何签名被储存在第一签名数据库内;如果在所述第一签名数据库内未发现所述第一日志内的签名,则将所述文件归类为非恶意的;如果在第一签名数据库内发现所述第一日志内的至少一个签名,则在所述虚拟机上执行所述文件的第二执行,并且在所述存储器内记录包括在所述文件的第二执行期间检测的至少一个内部事件的第二日志;确定是否所述第二日志中的任何签名被储存在第二签名数据库内;并且如果在所述第二签名数据库内未发现所述第二日志中的签名,则将所述文件归类为非恶意的。2.根据权利要求1所述的方法,进一步包括:如果在所述第二签名数据库内发现所述第二日志内的至少一个签名,则基于所述第一日志和所述第二日志,确定做出关于API函数调用的记录的标准;在所述虚拟机上执行所述文件的第三执行,直到满足所确定的标准的条件;在所述存储器内记录包括在所述文件的第三执行期间检测的至少一个内部事件的第三日志;确定是否所述第三日志中的任何签名被储存在恶意签名数据库内;并且如果在所述恶意签名数据库内未发现所述第三日志中的签名,则将所述文件归类为非恶意的。3.根据权利要求2所述的方法,其中,做出关于API函数调用的记录的标准包括以下中的至少一个:在所述第二日志内发生具有记录序号的内部事件,用于在所述第二签名数据库内的已识别的签名的第一记录之前,在所述第二日志内发现的记录;以及在所述第二签名数据库中在所述第一日志和所述第二日志中检测签名之后,做出关于API函数调用的记录。4.根据权利要求1所述的方法,其中,在所述虚拟机上执行所述文件的第一执行包括:执行所述第一执行一个时间段或者直到完成所述文件的程序代码的执行。5.根据权利要求4所述的方法,进一步包括根据由所述文件执行的指令,在所述虚拟机上的文件的第一执行期间,动态改变所述时间段。6.根据权利要求1所述的方法,其中,储存在所述第一日志和所述第二日志内的所述至少一个内部事件中的每个包括所述内部事件的名称、系统调用的类型、以及从所述文件中发起的过程的唯一标识符。7.根据权利要求6所述的方法,其中,储存在所述第一日志和所述第二日志内的所述至少一个内部事件中的每个包括从所述过程中发起的线程的唯一标识符、由所述系统调用寻址的OS内核的对象的过程的唯一标识符、所述OS内核的对象的线程的唯一标识符、以及...

【专利技术属性】
技术研发人员:阿列克谢·V·马纳斯特尔斯基维塔利·V·布图佐夫马克西姆·Y·戈洛夫金德米特里·V·卡拉索夫斯基弗拉季斯拉夫·V·平蒂斯基丹尼斯·Y·科比切夫
申请(专利权)人:卡巴斯基实验室股份制公司
类型:发明
国别省市:俄罗斯;RU

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1