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函数调用;确定是否所述第一日志中的任何签名被储存在第一签名数据库内;如果在所述第一签名数据库内未发现所述第一日志内的签名,则将所述文件归类为非恶意的;如果在第一签名数据库内发现所述第一日志内的至少一个签名,则在所述虚拟机上执行所述文件的第二执行,并且在所述存储器内记录包括在所述文件的第二执行期间检测的至少一个内部事件的第二日志;确定是否所述第二日志中的任何签名被储存在第二签名数据库内;并且如果在所述第二签名数据库内未发现所述第二日志中的签名,则将所述文件归类为非恶意的。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。