CN107808094B - 检测文件中的恶意代码的***和方法 - Google Patents

检测文件中的恶意代码的***和方法 Download PDF

Info

Publication number
CN107808094B
CN107808094B CN201710452788.3A CN201710452788A CN107808094B CN 107808094 B CN107808094 B CN 107808094B CN 201710452788 A CN201710452788 A CN 201710452788A CN 107808094 B CN107808094 B CN 107808094B
Authority
CN
China
Prior art keywords
processor
computing device
file
api function
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710452788.3A
Other languages
English (en)
Other versions
CN107808094A (zh
Inventor
马克西姆·Y·戈洛夫金
阿列克谢·V·莫纳斯蒂尔斯基
弗拉季斯拉夫·V·皮恩提斯基
米哈伊尔·A·帕夫尤什切克
维塔利·V·布图佐夫
德米特里·V·卡拉索夫斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of CN107808094A publication Critical patent/CN107808094A/zh
Application granted granted Critical
Publication of CN107808094B publication Critical patent/CN107808094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种检测文件中的恶意代码的***和方法。一个示例性方法包括:在执行从计算设备的文件启动的进程期间,通过处理器拦截一个或多个应用程序接口(API)调用;通过处理器确定和检测进程的退出条件的存在;响应于检测到退出条件,识别一个或多个第一类型的签名以及将计算设备的一个或多个保存的存储器信息转储转移到模拟器用于执行;以及至少基于所转移的计算设备的存储器信息转储的执行结果,响应于检测一个或多个第二类型的签名,确定和识别文件中的恶意代码。

Description

检测文件中的恶意代码的***和方法
技术领域
本发明总体涉及数据安全性领域,更具体地涉及检测文件中的恶意代码的***和方法。
背景技术
传统的签名分析并不总是能够检测恶意文件,尤其是多形态病毒、恶意文件的变型版本、以及溢出代码。因此,现代防病毒应用程序另外使用所谓的“沙盒”-用于安全执行进程的计算机环境进行扫描。例如,基于文件***和注册表的部分虚拟化、基于文件***和注册表的访问规则、或者基于混合方法,沙盒能够以虚拟机的形式实现。在沙盒中执行正被扫描的文件。作为从文件启动的进程执行的结果而发生的事件可通过拦截由该进程和操作***(OS)两者所执行的各种程序而保存在日志中。防病毒应用程序然后可分析所生成的日志。该日志通常保存API(应用程序接口)函数调用,其已经在执行期间被所提到的进程进行;以及保存来自所调用的API函数的返回(在返回地址处的控制权转移)。在沙盒中执行文件通常发生在限制的时段内(高达几十秒),这是因为在沙盒中执行文件和通过防病毒应用程序拦截API函数调用明显地减缓了文件的执行速度。同时,当在沙盒中执行包含溢出代码的文件时,其通过分析API函数调用日志的检测可能是困难的。这是因为溢出代码可被加载到进程的存储器中,但是与应被转移到包含溢出代码的存储器区段的控制相比,在沙盒中执行进程被更早地终止。在这种情况下,需要保存和分析存储器信息转储。
现有技术的分析得出如下结论:采用先前的技术可能是无效的且在一些情况下是不可行的,该先前的技术的缺陷可通过本发明、即用于检测文件中的恶意代码的***和方法得以解决。
发明内容
公开了用于检测文件中的恶意代码的***和方法。在一个示例性方面中,一种用于检测文件中的恶意代码的计算机实施的方法,所述方法包括:在执行从计算设备的文件启动的进程期间,通过处理器拦截一个或多个应用程序接口(API)调用;通过所述处理器确定和检测所述进程的退出条件的存在;响应于检测所述退出条件,识别一个或多个第一类型的签名以及将所述计算设备的一个或多个保存的存储器信息转储转移到模拟器用于执行;以及至少基于所转移的所述计算设备的所述存储器信息转储的执行结果,响应于检测一个或多个第二类型的签名,确定和识别所述文件中的恶意代码。
在另一示例性方面中,所述方法还包括:经由在所述计算设备上安装的防病毒应用程序的控制,在所述计算设备的虚拟机中执行从所述文件启动的所述进程;和确定拦截的所述API调用的连续记录并且将其存储在所述计算设备的所述虚拟机的第一日志中。通过所述处理器确定和检测所述进程的所述退出条件的存在包括检测以下项中的至少一者:所述进程已经完成的指示;指定的时段已经过去;由所述进程执行的指令的数目已经超过选择的阈值;或者检测到的可疑事件的数目已经超过选择的阈值。
在又一示例性方面中,所述方法还包括:基于拦截的所述API调用,检测在执行所述进程期间发生的一个或多个可疑事件;以及响应于检测所述一个或多个可疑事件和将拦截的所述API调用的连续记录存储到所述第一日志中,将所述进程的存储器信息转储存储在所述计算设备的所述虚拟机的数据库中。至少基于在所述第一日志中的所述连续记录,执行识别所述一个或多个第一类型的签名,各个所述第一类型的签名包括数据结构,所述数据结构包含具有与拦截的所述API调用或者检测的所述一个或多个可疑事件有关的信息的至少一个记录。
在另一示例性方面中,在所述模拟器中执行转移的所述计算设备的一个或多个保存的存储器信息转储包括:反汇编在所述一个或多个保存的存储器信息转储中包含的一个或多个可执行代码;在所述模拟器的虚拟环境中执行所述一个或多个可执行代码;在执行所述一个或多个可执行代码期间确定到一个或多个所述API调用的地址的跳转;以及将一个或多个所述API调用的记录相继保持在第二日志中。
在所述第二日志中的各个记录包含与以下项有关的信息:被调用的API函数的名称;从对应的文件启动的进程的唯一标识符(PID);执行所述进程的地址空间的指令的线程的唯一标识符(TID);以及所述API函数的参数的集合。所述第二日志配置成保持和记录所述模拟器的执行轨迹,所述执行轨迹包括正在所述处理器上执行的不间断的指令序列以及所述处理器在执行各个指令时的内部状态的快照。所述一个或多个第二类型的签名包括包含所述第二日志中的以下所述记录的至少一者的数据结构:关于一个或多个所述API调用的信息、处理器指令、以及所述处理器的内部状态的快照的记录。
根据另一示例性方面,一种用于检测文件中的恶意代码的***,包括:至少一个处理器,所述处理器配置成:在执行从计算设备的文件启动的进程期间,拦截一个或多个应用程序接口(API)调用;确定和检测所述进程的退出条件的存在;响应于检测所述退出条件,识别一个或多个第一类型的签名以及将所述计算设备的一个或多个保存的存储器信息转储转移到模拟器用于执行;以及至少基于所转移的所述计算设备的所述存储器信息转储的执行结果,响应于检测一个或多个第二类型的签名,确定和识别所述文件中的恶意代码。
此外,根据又一示例性方面,一种在其上存储用于检测文件中的恶意代码的计算机可执行指令的非暂时性计算机可读介质,包括用于进行以下操作的指令:在执行从计算设备的文件启动的进程期间,通过处理器拦截一个或多个应用程序接口(API)调用;通过所述处理器确定和检测所述进程的退出条件的存在;响应于检测所述退出条件,识别一个或多个第一类型的签名以及将所述计算设备的一个或多个保存的存储器信息转储转移到模拟器用于执行;以及至少基于所转移的所述计算设备的所述存储器信息转储的执行结果,响应于检测一个或多个第二类型的签名,确定和识别所述文件中的恶意代码。
以上对本发明的示例方面的简要概述用来提供对本发明的基本理解。该概述并不是对所有预期方面的广泛综述,并且既不旨在识别所有方面的关键要素或重要要素,也不旨在描绘本发明的任何方面或所有方面的范围。为了实现前述内容,本发明的一个或多个方面包括权利要求中所描述和特别指出的特征。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
图1示出根据本发明的方面的用于检测文件中的恶意代码的示例性***。
图2示出根据本发明的方面的用于检测文件中的恶意代码的示例性方法。
图3示出根据本发明的方面的用于在模拟器上执行进程的更为具体的示例性方法。
图4示出可在其上实施检测文件中的恶意代码的***和方法的方面的通用计算机***的示例。
具体实施方式
本文中在用于检测文件中的恶意代码的***、方法和计算机程序产品的背景中描述了示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将容易地将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。
图1示出根据本发明的方面的用于检测文件中的恶意代码的示例性计算机***。在一个示例中,恶意代码可包括溢出代码。溢出代码通常嵌入在从文件加载的进程的存储器中,在嵌入之后,例如通过缓冲区溢出(包括在堆栈上的缓冲区溢出)将控制权转移到溢出代码。由于执行溢出代码,黑客能够在计算机上执行恶意动作,例如从网络加载可执行恶意文件且将其保存在受害者的计算机上。沙盒130可为用于进程的安全执行的计算机环境。沙盒可例如基于文件***和注册表的部分虚拟化、基于文件***和注册表的访问规则、或者基于混合方法以虚拟机的形式实现。图1显示了以虚拟机形式的沙盒的范例实现,操作***(Operating System,OS)131已经安装在沙盒上。沙盒130可配置成在防病毒应用程序110的控制下执行从文件134启动的进程。应注意到,文件134可以是任何给定的数据格式的文件并且可以包含任何给定的数据。例如,文件134可为办公室应用程序的文件(诸如Microsoft Word、Excel、PowerPoint、Access;Adobe Acrobat等),其最易于受到攻击。因此,在这种情况下,从文件134启动的进程将为对应的应用程序的进程(诸如用于MicrosoftWord应用程序的进程WINWORD.EXE)。在另一示例中,文件134可以是可执行文件,诸如PE(可移植可执行)文件。
在沙盒内包含有与记录模块133连接的扫描模块132。在进程执行期间,记录模块133可拦截API函数调用且相继地将API函数调用的记录输入到同样位于沙盒130内的第一日志137中。在通过记录模块133拦截API函数调用的时候,扫描模块132可将该进程的存储器信息转储保存在转储数据库136中。
在示例中,第一日志137的关于API函数调用的各个记录可包含至少以下信息:被调用的函数的名称;从所提到的文件134启动的进程的唯一标识符(Unique Identifier ofProcess,PID);执行该进程的地址空间的指令的线程的唯一标识符(Unique Identifierof Thread,TID);和所提到的函数的参数的集合。
记录模块133还可将所拦截的API函数调用发送至扫描模块132,扫描模块132基于API函数调用确定在进程执行期间发生的来自可疑事件名单的可疑事件,该可疑事件被存储在可疑事件数据库135中。可疑事件可包括由于API函数的进程调用而发生的且对于正被执行的恶意代码是特有的事件。因此,可疑事件可以基于API函数调用、处理器的内部状态的快照、处理器的注册表、以及堆栈内容进行确定。例如,可疑事件可以为来自可疑的API函数的名单的API函数调用,诸如WinExec、CreateProcess、GetFileSize等。该可疑事件的名单可由防病毒分析师预先编制且放置在可疑事件的数据库135中。可疑事件的其它详细示例可在下文中进行考虑。
扫描模块132还可用于将关于可疑事件的记录输入到第一日志137中,并且用于在检测可疑事件的时候或者在通过记录模块133拦截API函数调用的时候将该进程的存储器信息转储保存在转储数据库136中。在一个示例中,在检测到可疑事件或者在拦截API函数调用时,扫描模块132可保存从起始地址开始至结束地址的进程的存储器信息转储,在该起始地址处发生可疑事件或者API函数调用、该起始地址利用底部页面边界而平均,且该结束地址相对于起始地址增加了指定的数量。例如,存储器信息转储从发生可疑事件或API函数调用的地址开始可包含16页。在另一示例中,起始存储地址可另外地减小指定的数量。在又一示例中,为了起始地址和结束地址的更为精确的计算,程序ZwQueryVirtualMemory可被调用,其可返回关于存储区域的信息,尤其是如果该程序顺利地完成,则可获得该区域的基地址以及该区域的尺寸。在这种情况下,存储器信息转储的起始地址将被作为来自存储区域的基地址和存储器信息转储的先前确定的起始地址的最大值。存储器信息转储的结束地址可被确定为且计算为来自存储器信息转储的结束地址的先前计算值和存储区域的基地址的最小值(增加了存储区域的尺寸)。
根据本发明的一些方面,扫描模块132还可配置成当在沙盒130中完成进程的执行时保存该进程的存储器信息转储。在又一示例中,扫描模块132还可配置成当在沙盒中完成进程的执行时保存该进程的上下文,防病毒应用程序在模拟器111上执行进程的存储器信息转储期间使用所保存的进程的上下文。扫描模块132还可另外地配置成在检测到可疑事件时保存进程的上下文,在模拟器111上执行与进程的上下文对应的进程的存储器信息转储期间,防病毒应用程序使用所保存的进程的上下文。
扫描模块132可配置成在执行前一步骤(保存存储器信息转储)之后检查退出条件。在一个示例中,退出条件可包括以下项中的至少一者:进程已经完成;指定的时段已经过去;先前的步骤已经被执行达指定的重复次数(诸如3次);由该进程执行的指令的数目已经超出指令数目的指定阈值(诸如100000个指令);或者如通过扫描模块确定的可疑事件的数目已经超过可疑事件的数目的指定阈值(诸如3个可疑事件)。
如果不满足退出条件,则扫描模块132可配置成启动先前步骤的重复(参见对于图2的描述中的更多细节)。
如果满足退出条件,即从文件134启动的进程的执行在沙盒130中完成,则防病毒应用程序110可将在沙盒中包含的第一日志137的记录保存到在操作***中包含的第一日志122内,防病毒应用程序110正在该操作***中运行。转储数据库136的记录可被保存在转储数据库121中。
在又一示例中,记录模块133可执行拦截包含关于***调用的信息的记录并且将该记录输入到第一日志137中,该***调用负责与网络、注册表、文件***、RAM、进程和线程的工作。
应注意到,当记录模块133可以拦截API函数调用时,记录模块133可以获取调用的堆栈以及正在处理器上执行的指令。在一示例中,记录模块133可将关于异常状况的记录以及正在处理器上执行的指令保存在第一日志137中且将其发送至扫描模块132。
可疑事件可包括例如以下项中的至少一者:
●调用来自可疑API函数的名单的API函数(例如,该名单可包含以下API函数:WinExec、CreateProcess、GetFileSize);
●在执行进程的过程中发生异常状况;
●由进程重复(达指定的次数)分配动态存储器(诸如200次);
●由进程执行堆栈上的程序代码;
●在ret指令之前缺乏调用指令;
●通过进程改变异常处理程序;
●当执行调用指令时违反访问权限;或者
●进程的堆栈指针已经超出如在TEB(线程环境块)中指示的区域的边界。
例如,事件“在ret指令之前缺乏调用指令”可以为可疑事件,因为在每一次调用指令之后(随着将返回点的地址保存在堆栈中将控制权转移至程序)应出现ret指令(将控制权返回至在堆栈中保存的返回地址处的调用程序)。
在又一示例中,记录模块133可配置成识别以下的异常状况:
●当执行调用指令时违反访问权限;
●当写入存储器时违反访问权限;
●当在程序计数器地址处以及在给定精确度内匹配该程序计数器地址的地址处从存储器读取时违反访问权限;
●违反阻止数据执行的政策;
●堆栈上的缓冲区溢出;
●堆损害(堆损毁);
●尝试执行被禁止的、不正确的或者有特权的指令。
例如,当分析注册表的内容、***结构、在拦截API函数调用(KiUserExceptionDispatcher)后的调用的堆栈时,记录模块133可识别异常状况“当写入存储器时违反访问权限”。
防病毒应用程序110可在其构成中包含模拟器111,且防病毒应用程序110被配置成在第一日志122中识别来自许多第一类型的签名的一个或多个第一类型的签名,该第一类型的签名的名单被包含在第一类型的签名的数据库123中。第一类型的签名可包括数据结构,其可包含以下记录的至少一者:关于API函数调用的信息、关于可疑事件的信息。
在另一示例中,第一类型的签名可还包含强加在该同一签名-API函数调用以及关于可疑事件的信息的其它记录上的条件。这种条件可包括例如:检查签名的记录的数目、检查签名的记录的序列等。
在识别第一类型的签名之后,防病毒应用程序110可将至少一个所保存的用于执行的存储器信息转储转移到模拟器111。模拟器111可反汇编包含在存储器信息转储中的可执行代码且在其虚拟环境下执行该可执行代码。在执行期间,模拟器111可确定到API函数调用的地址的跳转(例如CreateFile调用运算符,将控制权转移至CreateFile API函数)。接下来,模拟器111可将关于API函数调用的记录相继输入到第二日志125中。
在一个示例性方面,第二日志125的关于API函数调用的各个记录可包含下面的信息:被调用的函数的名称;从提到的文件134启动的进程的唯一标识符(Unique Identifierof Process,PID);执行该进程的地址空间的指令的线程的唯一标识符(UniqueIdentifier of Thread,TID);所提到的函数的参数的集合。
在一个示例性方面,防病毒应用程序110还可配置成:在模拟器111上执行进程期间,将该进程的执行轨迹写入到第二日志125中。进程的执行轨迹可包含正在处理器上执行的指令的不间断序列以及处理器在执行各个指令时的内部状态的快照。
在又一示例中,只有与从正被检查的文件134启动的进程有关的指令可选自执行轨迹。与操作***的进程的执行有关的指令可从该进程的执行轨迹中去除。
当在第二日志125中识别出来自第二类型的签名的数据库124的一个或多个第二类型的签名时,防病毒应用程序110可确定文件134中的恶意代码(诸如溢出代码)。第二类型的签名可包括包含以下记录中的至少一者的数据结构:关于API函数调用的信息、处理器指令、以及处理器的内部状态的快照的记录。在另一示例中,第二类型的签名可包括以下事件中的一者或多者:获得***程序库的描述符的地址(诸如kernel32.dll、ntdll.dll);分配存储器;读取***结构(进程环境块-PEB);和相继获得文件描述符。
访问存储器的进程的事件可从该进程的执行轨迹来确定:如果该执行轨迹包含“mov eax,[ebx]”类型的指令,例如:
Figure BDA0001322922290000091
在又一示例中,第二类型的签名可包含下面的进程的执行轨迹的记录:
#ReadModuleMemory(0->"USER32.dll",77d83452,"UserRegisterWowHandlers"+0x2,accessor eip-10002315);
>[0x77d83452]=0x00005068
10002315 66 3B 10cmp dx,[eax]
EAX:77D83452EBX:00000000ECX:77D836A0EDX:000040C7ESI:77D51324
EDI:77D5025E EBP:00624FB8ESP:00624F5C EIP:10002318EFLAGS:
00000297
CS:001B DS:0023ES:0023SS:0023FS:003B GS:0000标记:.......I.S..A.P.C
堆栈:
00624F5C CB 1C 00 10-01 00 00 00|B0 4F 62 00-30 00 00 00
Figure BDA0001322922290000101
.......°Ob.0...
00624F6C 23 00 00 00-20 22 00 10|00 00 00 00-00 00 0000#..."..........
FS:[0]:
00625000EC 4F 62 00
以上指示的进程的执行轨迹的记录可表示在地址USER32.dll处已经发生存储器的读取(注册表EAX包含程序库的地址USER32.dll)。
在其它的示例性方面中,第二类型的签名可同时包含含有关于API函数调用的信息和处理器指令的记录以及处理器的内部状态的快照的记录。
在又一示例性方面中,第二类型的签名还可包含强加在该同一签名-API函数调用、处理器指令的其它记录上的以及处理器的内部状态的快照的记录上的条件。这种条件可包括例如:检查签名的记录的数目、检查签名的记录的序列等。
这种包含上述条件的第二类型的签名的示例可以是以下的签名:API函数GetFileSize的调用被执行10次;在调用API函数WriteFile(写入到文件)之后将出现API函数WinExec的调用(启动用于执行的文件);在地址user32.dll处从存储器读取,之后在地址kernel32.dll处从存储器读取;由从文件134启动的进程创建恶意文件且将其添加到启动程序;以及可执行进程已经拷贝文件134,该进程从该文件134启动。
除了API函数调用之外,记录模块133还可执行拦截包含关于以下对象的信息的记录并随后将其保存在第一日志137中:用于在从API函数的返回地址处转移控制权的程序;Windows NT Native API函数的直接调用;从Windows NTNative API函数的返回;关闭或者重启计算机***的事件;以及在进程中发生的异常状况。
在一个示例性方面中,模拟器111可配置成将包含关于读取***结构(进程环境块-PEB)以及获取***程序库的描述符的地址(诸如kernel32.dll、ntdll.dll)的信息的一个或多个记录输入到第二日志125中。
在另一示例性方面中,模拟器111可配置成将包含关于***调用的信息的记录输入到第二日志125中,该***调用负责与以下对象中的一者或多者的工作的操作:网络;注册表;文件***(诸如fopen()、create());RAM;以及进程和线程。
在上文描述的示例中,记录模块133可配置成以以下方式中的一者获取关于***调用的信息:通过拦截***调用;利用OS内核通知机制;和通过将驱动器嵌入到OS驱动器的堆栈中。
模拟器111可包含关于在控制权转移地址处的***调用的信息。
图2示出用于检测文件中的恶意代码(诸如溢出代码)的示例性方法。在步骤201,从文件134启动的进程可在防病毒应用程序110的控制下利用沙盒130来执行。然后,在步骤202,记录模块133可配置成在该进程执行期间拦截API函数调用。在步骤203,记录模块133可配置成将关于所拦截的API函数调用的记录相继输入到第一日志137中。
然后,在步骤204,扫描模块132可配置成:基于通过记录模块133拦截的API函数调用,确定在进程执行期间发生的可疑事件并且将关于该可疑事件的记录输入到第一日志137中。
在步骤205,扫描模块132可配置成:在步骤203保存关于所拦截的API函数调用的记录之后以及在步骤204确定可疑事件之后,将进程的存储器信息转储保存在转储数据库136中。
在一个示例性方面中,在步骤203之后,可跳过步骤204-205而跟随有步骤206。在这种情况下,可仅仅将包含关于API函数调用的信息的记录保存在第一日志137中。在另一示例中,可以省略步骤203,例如在步骤202之后为步骤204。在该同一情况下,仅仅可将包含关于所识别的可疑事件的信息的记录保存在第一日志137中。
因此,在步骤206,扫描模块132可配置成验证退出条件,并且如果未满足该退出条件,则启动步骤201-205的重复。但是如果已经满足退出条件,则在步骤207继续该方法的执行。退出条件可包括以下条件中的至少一者:
i.已经完成进程;
ii.指定的时段已经过去;
iii.步骤201-205已经被执行达指定的重复数目;
iv.由该进程执行的指令的数目已经超过指令数目的指定阈值;或者
v.如通过扫描模块确定的可疑事件的数目已经超过可疑事件的数目的指定阈值。
在一个示例性方面中,在步骤206,当满足编号为ii.-v.的退出条件中的一者时,防病毒应用程序110可保存沙盒130的状态。如果退出条件i.已经发生,则不需要保存沙盒130的状态,因为已经完成进程。关于虚拟机的示例,虚拟机的瞬时快照将被保存,包括虚拟机的存储器的内容、处理器的注册表等。如果在步骤209防病毒应用程序110还未识别出第二类型的签名,则文件134将再次被发送以在使用所保存的状态的沙盒130中执行,即步骤201-205将被实施直到在步骤206出现退出条件。例如,步骤201-205将被再次实施直到检测到第一可疑事件,然后在沙盒130中的执行被停止,以在模拟器111中另外分析文件134。然而,如果模拟器111不能够在文件134中发现恶意代码,则文件134在沙盒130中的执行可继续直到出现以下的退出条件(例如,下一个可疑事件被确定或者进程完成)。因此,可以增加防病毒扫描的执行速度,因为在步骤204退出条件是确定第一可疑事件,而不用等待进程的执行被完成或者等待指定的时段过去。同时,文件134中的恶意代码的确定质量并未降低,因为如果需要,将重复步骤201-205。
在又一示例性方面中,可疑事件可具有不同的权重,其可通过扫描模块132进行分配。例如,异常状况可具有权重1,然而来自可疑API函数的名单的API函数调用的权重为2。在这种情况下,可疑事件的权重可被使用例如以确定退出条件。因此,退出条件可包括以下情况:已经检测到具有权重为2的可疑事件或者具有组合权重为2的数个可疑事件,即如通过扫描模块132确定的可疑事件的组合权重超过指定值。
在另一示例性方面中,在沙盒130中完成进程的执行之后,扫描模块132还可保存在进程执行完成时的进程的存储器信息转储。扫描模块132还可在已经在沙盒130中完成进程的执行之后保存在进程执行完成时的进程的上下文。防病毒应用程序110可配置成在步骤208中在模拟器上执行进程的存储器信息转储期间使用所保存的进程的上下文,其将在下文中描述。
在又一示例性方面中,当检测到可疑事件时,进程的上下文(在检测到可疑事件时)可被另外保存,在步骤208,在模拟器111上执行进程的对应于进程的上下文的存储器信息转储期间,防病毒应用程序110使用所保存的进程的上下文。
在满足退出条件之后,即在沙盒中完成进程执行之后,第一日志137可被转移至计算机上的第一日志122,并且转储数据库136可被转移至转储数据库121。在步骤207,防病毒应用程序110可在第一日志122中识别一个或多个第一类型的签名。第一类型的各个签名可包括包含至少一个记录的数据结构,该记录反过来包含关于API函数调用的信息或者关于可疑事件的信息。
在识别第一类型的签名之后,在步骤208,防病毒应用程序110可将一个或多个所保存的存储器信息转储发送至模拟器111用于执行,并且在模拟器111中执行期间,可存在关于API函数调用的多个记录的或者进程的执行轨迹的记录到第二日志125中的连续输入。进程的执行轨迹可包含正在处理器上执行的不间断的指令序列以及在执行各个指令期间处理器的内部状态的快照。
模拟器111可反汇编在存储器信息转储中包含的可执行代码并且在可执行代码的虚拟环境中执行该可执行代码。
第二类型的签名可包括包含以下记录中的至少一者的数据结构:关于API函数调用的信息、处理器指令、和处理器的内部状态的快照的记录。
因此,在步骤209,防病毒应用程序110可配置成当在第二日志125中识别出一个或多个第二类型的签名时确定文件中的恶意代码。第二类型的签名可包括包含以下记录中的至少一者的数据结构:关于API函数调用的信息、处理器指令、和处理器的内部状态的快照的记录。
基于上文,所公开的***和方法使得能够检测在那些文件中的恶意代码,其中,现有的检测方法并不总是能够检测到恶意代码。
图3显示了根据本发明的方面的用于在模拟器上(在步骤208)执行进程的详细方法。在进程执行期间,在步骤301,模拟器111可确定在API函数调用的地址处的跳转(诸如调用CreateFile运算符、转移控制权至API函数CreateFile)。在一个示例中,在步骤302,模拟器111可将关于API函数调用的记录相继输入到第二日志125中。
在又一示例性方面中,在步骤301之后进行步骤303,在步骤303期间,防病毒应用程序可确定进程的执行轨迹并且在模拟器111上执行进程期间将其写入到第二日志125中。进程的执行轨迹可包含正在处理器上执行的不间断的指令序列以及处理器在执行各个指令时的内部状态的快照。在这种情况下,第二类型的签名可包含处理器指令和处理器的内部状态的快照的记录。
在又一示例性方面中,只有与从正被检查的文件134启动的进程有关的指令可选自进程的执行轨迹。与操作***的进程执行有关的指令可从进程的执行轨迹中去除。
因此,在步骤302或者步骤303之后,在步骤209,防病毒应用程序110可当在第二日志125中识别出一个或多个第二类型的签名时确定文件134中的恶意代码。第二类型的签名可包括包含以下记录中的至少一者的数据结构:关于API函数调用的信息、处理器指令、以及处理器的内部状态的快照的记录。
在一个示例性方面中,第二类型的签名可同时包含含有关于API函数调用的信息以及处理器指令的记录以及处理器的内部状态的快照的记录。
在又一示例性方面中,第二类型的签名可还包含强加在该同一签名-API函数调用、处理器指令的其它记录上的以及处理器的内部状态的快照的记录上的条件。这种条件可包括例如:检查签名的记录的数目、检查签名的记录的序列等。第二类型的签名的更为详细的描述已经在以上图1的描述中给出。
图4为示出了通用计算机***的图示,根据示例性方面,用于检测文件中的恶意代码的***的***方面和方法的方法方面可以在该通用该计算机***上实施。如图所示,该计算机***20(其可以是个人计算机或者服务器)可以包括中央处理单元21、***存储器22和连接各种***部件的***总线23,各种***部件包括与中央处理单元21相关联的存储器。如本领域普通技术人员将认识到的,***总线23可包括总线存储器或总线存储器控制器、***总线和能够与任何其它的总线架构交互的本地总线。***存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出***(basic input/output system,BIOS)26包括存储用于在计算机***20的元件之间的信息传输的基本程序,例如在使用ROM24加载操作***时的那些基本程序。
个人计算机20还可包括用于数据的读取和写入的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28和用于读取和写入可移动光盘31(例如CD-ROM、DVD-ROM和其它的光学媒介)的光盘驱动器30。硬盘27、磁盘驱动器28、和光盘驱动器30分别经过硬盘接口32、磁盘接口33和光盘驱动器接口34而连接到***总线23。驱动器和对应的计算机信息介质为用于存储计算机***20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。
示例性方面包括借助控制器55使用连接至***总线23的硬盘27、可移动磁盘29和可移动光盘31的***。将由本领域普通技术人员理解的是,也可以利用能够以计算机可读的形式存储数据的任何类型的媒介56(固态驱动器、闪存卡、数字盘、随机存取存储器(RAM)等)。
计算机***20具有可以存储操作***35的文件***36、以及额外的程序应用37、其它程序模块38和程序数据39。计算机***20的用户可以使用键盘40、鼠标42、或本领域的普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描器等)输入命令和信息。这些输入设备通常通过串行端口46***到计算机***20中,串行端口46转而连接到***总线,但是本领域的普通技术人员将领会,输入设备也可以以其它方式来连接,诸如但不限于借助并行端口、游戏端口、或通用串行总线(Universal SerialBus,USB)来连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到***总线23。除了监控器47,个人计算机还可以装备有其它的***输出设备(未示出),例如扬声器、打印机等。
计算机***20可以使用与一个或多个远程计算机49的网络连接而在网络环境中操作。一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括在描述计算机***20的性质时的上述元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(Local-Area computer Network,LAN)50和广域计算机网络(Wide-Area computer Network,WAN)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机20***可以采用调制解调器54或本领域的普通技术人员所熟知的、实现与广域计算机网络(诸如因特网)的通信的其它模块。调制解调器54可以是内部设备或外部设备,可以通过串行端口46连接到***总线23。本领域的普通技术人员将领会,所述网络连接是使用通信模块建立一个计算机与另一个计算机的连接的许多熟知方式的非限制性示例。
在各个方面中,本文中所描述的***和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非易失性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM,ROM,EEPROM,CD-ROM,闪存或其它类型的电存储介质、磁存储介质或光存储介质,或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。
在各个方面中,本发明中所描述的***和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、组件、或使用硬件(例如通过专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA))实现的组件的布置,或者指的是硬件和软件的组合,例如通过微处理器***和实现模块功能的指令集(该指令集在被执行时将微处理器***转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以被执行在通用计算机(例如上文在图4中更详细描述的通用计算机)的处理器上。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。

Claims (20)

1.一种用于检测文件中的恶意代码的计算机实施的方法,所述方法包括:
在执行从计算设备的文件启动的进程期间,通过处理器拦截一个或多个应用程序接口API函数调用;
通过所述处理器检测所述进程的退出条件的满足,其中,所述退出条件是基于分配给多个类型的可疑事件的权重;
响应于检测所述退出条件,识别一个或多个第一类型的签名以及将所述计算设备的一个或多个保存的存储器信息转储转移到模拟器用于执行,其中,所述一个或多个第一类型的签名中的签名包括用于包含关于以下项的信息的至少一个记录的数据结构:所拦截的API函数调用,可疑事件或对所述至少一个记录强加的条件;以及
至少基于所转移的所述计算设备的所述存储器信息转储的执行结果,响应于检测一个或多个第二类型的签名,识别所述文件中的恶意代码,其中,所述一个或多个第二类型的签名中的签名包括用于包含关于以下项的信息的至少一个记录的数据结构:所拦截的API函数调用,处理器指令,所述处理器的内部状态的快照,可疑事件,或对所述至少一个记录强加的条件。
2.根据权利要求1所述的计算机实施的方法,还包括:经由在所述计算设备上安装的防病毒应用程序的控制,在所述计算设备的虚拟机中执行从所述文件启动的所述进程。
3.根据权利要求2所述的计算机实施的方法,还包括:确定拦截的所述API函数调用的连续记录并且将其存储在所述计算设备的所述虚拟机的第一日志中。
4.根据权利要求1所述的计算机实施的方法,其中,通过所述处理器确定和检测所述进程的所述退出条件的存在包括检测以下项中的至少一者:所述进程已经完成的指示;指定的时段已经过去;由所述进程执行的指令的数目已经超过选择的阈值;或者检测到的可疑事件的数目已经超过选择的阈值。
5.根据权利要求3所述的计算机实施的方法,还包括:
基于拦截的所述API函数调用,检测在执行所述进程期间发生的一个或多个可疑事件;以及
响应于检测所述一个或多个可疑事件和将拦截的所述API函数调用的连续记录存储到所述第一日志中,将所述进程的存储器信息转储存储在所述计算设备的所述虚拟机的数据库中。
6.根据权利要求5所述的计算机实施的方法,其中,至少基于在所述第一日志中的所述连续记录,执行识别所述一个或多个第一类型的签名,各个所述第一类型的签名包括用于包含针对关于拦截的所述API函数调用或者检测的所述一个或多个可疑事件的信息的所述至少一个记录的所述数据结构。
7.根据权利要求1所述的计算机实施的方法,其中,在所述模拟器中执行转移的所述计算设备的一个或多个保存的存储器信息转储包括:
反汇编在所述一个或多个保存的存储器信息转储中包含的一个或多个可执行代码;
在所述模拟器的虚拟环境中执行所述一个或多个可执行代码;
在执行所述一个或多个可执行代码期间确定到所述一个或多个API函数调用的地址的跳转;以及
将所述一个或多个API函数调用的记录相继保持在第二日志中。
8.根据权利要求7所述的计算机实施的方法,其中,在所述第二日志中的各个记录包含与以下项有关的信息:被调用的API函数的名称;从对应的文件启动的所述进程的唯一标识符PID;执行所述进程的地址空间的指令的线程的唯一标识符TID;以及所述API函数的参数的集合。
9.根据权利要求7所述的计算机实施的方法,其中,所述第二日志配置成保持和记录所述模拟器的执行轨迹,所述执行轨迹包括正在所述处理器上执行的不间断的指令序列以及所述处理器在执行各个指令时的内部状态的快照。
10.根据权利要求9所述的计算机实施的方法,其中,所述一个或多个第二类型的签名包括包含所述第二日志中的所述记录的至少一者的所述数据结构。
11.一种用于检测文件中的恶意代码的***,包括:
至少一个处理器,所述处理器配置成:
在执行从计算设备的文件启动的进程期间,拦截一个或多个应用程序接口API函数调用;
确定和检测所述进程的退出条件的满足,其中,所述退出条件是基于分配给多个类型的可疑事件的权重;
响应于检测所述退出条件,识别一个或多个第一类型的签名以及将所述计算设备的一个或多个保存的存储器信息转储转移到模拟器用于执行,其中,所述一个或多个第一类型的签名中的签名包括用于包含关于以下项的信息的至少一个记录的数据结构:所拦截的API函数调用,可疑事件,或对所述至少一个记录强加的条件;以及
至少基于所转移的所述计算设备的所述存储器信息转储的执行结果,响应于检测一个或多个第二类型的签名,确定和识别所述文件中的恶意代码,其中,所述一个或多个第二类型的签名中的签名包括用于包含关于以下项的信息的至少一个记录的数据结构:所拦截的API函数调用,处理器指令,所述处理器的内部状态的快照,可疑事件,或对所述至少一个记录强加的条件。
12.根据权利要求11所述的***,其中,所述处理器还配置成:
经由在所述计算设备上安装的防病毒应用程序的控制,在所述计算设备的虚拟机中执行从所述文件启动的所述进程;以及
确定拦截的所述API函数调用的连续记录并且将其存储在所述计算设备的所述虚拟机的第一日志中。
13.根据权利要求11所述的***,其中,为了确定和检测所述进程的所述退出条件的存在,所述处理器配置成检测以下项中的至少一者:所述进程已经完成的指示;指定的时段已经过去;由所述进程执行的指令的数目已经超过选择的阈值;或者检测到的可疑事件的数目已经超过选择的阈值。
14.根据权利要求12所述的***,其中,所述处理器还配置成:
基于拦截的所述API函数调用,检测在执行所述进程期间发生的一个或多个可疑事件;以及
响应于检测所述一个或多个可疑事件和将拦截的所述API函数调用的连续记录存储到所述第一日志中,将所述进程的存储器信息转储存储在所述计算设备的所述虚拟机的数据库中。
15.根据权利要求14所述的***,其中,所述处理器配置成:至少基于在所述第一日志中的所述连续记录,识别所述一个或多个第一类型的签名,各个所述第一类型的签名包括用于包含针对关于拦截的所述API函数调用或者检测的所述一个或多个可疑事件的信息的所述至少一个记录的所述数据结构。
16.根据权利要求11所述的***,其中,为了在所述模拟器中执行转移的所述计算设备的一个或多个保存的存储器信息转储,所述处理器配置成:
反汇编在所述一个或多个保存的存储器信息转储中包含的一个或多个可执行代码;
在所述模拟器的虚拟环境中执行所述一个或多个可执行代码;
在执行所述一个或多个可执行代码期间确定到所述一个或多个API函数调用的地址的跳转;以及
将所述一个或多个API函数调用的记录相继保持在第二日志中。
17.根据权利要求16所述的***,其中,在所述第二日志中的各个记录包含与以下项有关的信息:被调用的API函数的名称;从对应的文件启动的所述进程的唯一标识符PID;执行所述进程的地址空间的指令的线程的唯一标识符TID;以及所述API函数的参数的集合。
18.根据权利要求17所述的***,其中,所述第二日志配置成保持和记录所述模拟器的执行轨迹,所述执行轨迹包括正在所述处理器上执行的不间断的指令序列以及所述处理器在执行各个指令时的内部状态的快照,并且,所述一个或多个第二类型的签名包括包含所述第二日志中的所述记录的至少一者的所述数据结构。
19.一种在其上存储用于检测文件中的恶意代码的计算机可执行指令的非暂时性计算机可读介质,包括用于进行以下操作的指令:
在执行从计算设备的文件启动的进程期间,通过处理器拦截一个或多个应用程序接口API函数调用;
通过所述处理器确定和检测所述进程的退出条件的满足,其中,所述退出条件是基于分配给多个类型的可疑事件的权重;
响应于检测所述退出条件,识别一个或多个第一类型的签名以及将所述计算设备的一个或多个保存的存储器信息转储转移到模拟器用于执行,其中,所述一个或多个第一类型的签名中的签名包括用于包含关于以下项的信息的至少一个记录的数据结构:所拦截的API函数调用,可疑事件,或对所述至少一个记录强加的条件;以及
至少基于所转移的所述计算设备的所述存储器信息转储的执行结果,响应于检测一个或多个第二类型的签名,确定和识别所述文件中的恶意代码,其中,所述一个或多个第二类型的签名中的签名包括用于包含关于以下项的信息的至少一个记录的数据结构:所拦截的API函数调用,处理器指令,所述处理器的内部状态的快照,可疑事件,或对所述至少一个记录强加的条件。
20.根据权利要求19所述的计算机可读介质,还包括用于执行以下操作的指令:
经由在所述计算设备上安装的防病毒应用程序的控制,在所述计算设备的虚拟机中执行从所述文件启动的所述进程;和
确定拦截的所述API函数调用的连续记录并且将其存储在所述计算设备的所述虚拟机的第一日志中。
CN201710452788.3A 2016-09-08 2017-06-15 检测文件中的恶意代码的***和方法 Active CN107808094B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2016136224 2016-09-08
RU2016136224A RU2637997C1 (ru) 2016-09-08 2016-09-08 Система и способ обнаружения вредоносного кода в файле
US15/431,162 US10460099B2 (en) 2016-09-08 2017-02-13 System and method of detecting malicious code in files
US15/431,162 2017-02-13

Publications (2)

Publication Number Publication Date
CN107808094A CN107808094A (zh) 2018-03-16
CN107808094B true CN107808094B (zh) 2021-06-04

Family

ID=60581263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710452788.3A Active CN107808094B (zh) 2016-09-08 2017-06-15 检测文件中的恶意代码的***和方法

Country Status (4)

Country Link
US (1) US10460099B2 (zh)
JP (1) JP6842367B2 (zh)
CN (1) CN107808094B (zh)
RU (1) RU2637997C1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3070076B1 (fr) * 2017-08-09 2019-08-09 Idemia Identity And Security Procede de protection d'un dispositif electronique contre des attaques par injection de faute
US10810099B2 (en) 2017-09-11 2020-10-20 Internatinal Business Machines Corporation Cognitive in-memory API logging
KR101976992B1 (ko) * 2017-11-16 2019-05-10 숭실대학교산학협력단 시그니처 추출을 이용한 분석회피기법 자동 인식 장치 및 그 방법
US11250123B2 (en) * 2018-02-28 2022-02-15 Red Hat, Inc. Labeled security for control flow inside executable program code
US10922409B2 (en) * 2018-04-10 2021-02-16 Microsoft Technology Licensing, Llc Deep reinforcement learning technologies for detecting malware
US10965444B2 (en) * 2018-04-24 2021-03-30 Microsoft Technology Licensing, Llc Mitigating timing attacks via dynamically triggered time dilation
US11017078B2 (en) 2018-04-24 2021-05-25 Microsoft Technology Licensing, Llc Environmentally-trained time dilation
CN110717180B (zh) * 2018-07-13 2021-09-28 北京安天网络安全技术有限公司 基于自定位行为的恶意文档检测方法、***及存储介质
CN109492391B (zh) * 2018-11-05 2023-02-28 腾讯科技(深圳)有限公司 一种应用程序的防御方法、装置和可读介质
RU2724790C1 (ru) * 2018-12-28 2020-06-25 Акционерное общество "Лаборатория Касперского" Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
EP3674940B1 (en) * 2018-12-28 2024-05-29 AO Kaspersky Lab System and method of forming a log when executing a file with vulnerabilities in a virtual machine
WO2020180298A1 (en) * 2019-03-05 2020-09-10 Intel Corporation Deterministic trusted executed container through managed runtime language metadata
CN113268726B (zh) * 2020-02-17 2023-10-20 华为技术有限公司 程序代码执行行为的监控方法、计算机设备
US11775640B1 (en) * 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
CN111506437A (zh) * 2020-03-31 2020-08-07 北京安码科技有限公司 基于windows原始调用接口的靶场应用程序调用方法、***、电子设备及存储介质
EP3926470B1 (en) * 2020-06-19 2023-08-16 AO Kaspersky Lab Emulator and emulation method
US11880461B2 (en) 2020-06-22 2024-01-23 Bank Of America Corporation Application interface based system for isolated access and analysis of suspicious code in a computing environment
US11269991B2 (en) 2020-06-22 2022-03-08 Bank Of America Corporation System for identifying suspicious code in an isolated computing environment based on code characteristics
US11636203B2 (en) * 2020-06-22 2023-04-25 Bank Of America Corporation System for isolated access and analysis of suspicious code in a disposable computing environment
US11797669B2 (en) * 2020-06-22 2023-10-24 Bank Of America Corporation System for isolated access and analysis of suspicious code in a computing environment
US11574056B2 (en) 2020-06-26 2023-02-07 Bank Of America Corporation System for identifying suspicious code embedded in a file in an isolated computing environment
RU2757807C1 (ru) * 2020-08-24 2021-10-21 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного кода в исполняемом файле
US20230315855A1 (en) * 2022-03-29 2023-10-05 Acronis International Gmbh Exact restoration of a computing system to the state prior to infection
US20230350782A1 (en) * 2022-04-28 2023-11-02 Twilio Inc. Data logging for api usage analytics

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102272771A (zh) * 2008-12-31 2011-12-07 微软公司 恶意软件数据的共享储存库
CN103065094A (zh) * 2011-12-28 2013-04-24 卡巴斯基实验室封闭式股份公司 用于检测目标为计算机引导过程的恶意软件的***和方法
CN103065088A (zh) * 2011-09-20 2013-04-24 卡巴斯基实验室封闭式股份公司 基于计算机用户的裁决检测计算机安全威胁的***和方法
CN104021346A (zh) * 2014-06-06 2014-09-03 东南大学 基于程序流程图的Android恶意软件检测方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7568233B1 (en) * 2005-04-01 2009-07-28 Symantec Corporation Detecting malicious software through process dump scanning
US7779472B1 (en) 2005-10-11 2010-08-17 Trend Micro, Inc. Application behavior based malware detection
US7664626B1 (en) * 2006-03-24 2010-02-16 Symantec Corporation Ambiguous-state support in virtual machine emulators
US7814544B1 (en) * 2006-06-22 2010-10-12 Symantec Corporation API-profile guided unpacking
US20100031353A1 (en) * 2008-02-04 2010-02-04 Microsoft Corporation Malware Detection Using Code Analysis and Behavior Monitoring
US20160012223A1 (en) * 2010-10-19 2016-01-14 Cyveillance, Inc. Social engineering protection appliance
US20110041179A1 (en) * 2009-08-11 2011-02-17 F-Secure Oyj Malware detection
US9213838B2 (en) * 2011-05-13 2015-12-15 Mcafee Ireland Holdings Limited Systems and methods of processing data associated with detection and/or handling of malware
EP2609537A1 (en) 2010-08-26 2013-07-03 Verisign, Inc. Method and system for automatic detection and analysis of malware
RU2491615C1 (ru) 2012-02-24 2013-08-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ формирования записей для обнаружения программного обеспечения
US9223962B1 (en) * 2012-07-03 2015-12-29 Bromium, Inc. Micro-virtual machine forensics and detection
US9355247B1 (en) * 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9471783B2 (en) * 2013-03-15 2016-10-18 Mcafee, Inc. Generic unpacking of applications for malware detection
KR101477050B1 (ko) * 2014-05-28 2015-01-08 충남대학교산학협력단 메모리 덤프 기법을 이용한 어플리케이션의 실행코드 추출 방법
WO2016093182A1 (ja) 2014-12-09 2016-06-16 日本電信電話株式会社 特定装置、特定方法および特定プログラム
US10341355B1 (en) * 2015-06-23 2019-07-02 Amazon Technologies, Inc. Confidential malicious behavior analysis for virtual computing resources
CN105760787B (zh) * 2015-06-30 2019-05-31 卡巴斯基实验室股份制公司 用于检测随机存取存储器中的恶意代码的***及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102272771A (zh) * 2008-12-31 2011-12-07 微软公司 恶意软件数据的共享储存库
CN103065088A (zh) * 2011-09-20 2013-04-24 卡巴斯基实验室封闭式股份公司 基于计算机用户的裁决检测计算机安全威胁的***和方法
CN103065094A (zh) * 2011-12-28 2013-04-24 卡巴斯基实验室封闭式股份公司 用于检测目标为计算机引导过程的恶意软件的***和方法
CN104021346A (zh) * 2014-06-06 2014-09-03 东南大学 基于程序流程图的Android恶意软件检测方法

Also Published As

Publication number Publication date
RU2637997C1 (ru) 2017-12-08
JP6842367B2 (ja) 2021-03-17
US10460099B2 (en) 2019-10-29
US20180068115A1 (en) 2018-03-08
CN107808094A (zh) 2018-03-16
JP2018041438A (ja) 2018-03-15

Similar Documents

Publication Publication Date Title
CN107808094B (zh) 检测文件中的恶意代码的***和方法
JP2018041438A5 (zh)
US10242186B2 (en) System and method for detecting malicious code in address space of a process
US11416612B2 (en) Protecting against malware code injections in trusted processes
US7620992B2 (en) System and method for detecting multi-component malware
US8763128B2 (en) Apparatus and method for detecting malicious files
EP2237186B1 (en) Method for accelerating hardware emulator used for malware detection and analysis
US8904537B2 (en) Malware detection
US10691800B2 (en) System and method for detection of malicious code in the address space of processes
US20160021142A1 (en) Automatic content inspection system for exploit detection
US7251735B2 (en) Buffer overflow protection and prevention
US9740864B2 (en) System and method for emulation of files using multiple images of the emulator state
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
US11971986B2 (en) Self-protection of anti-malware tool and critical system resources protection
Sun et al. API monitoring system for defeating worms and exploits in MS-Windows system
Roney et al. Identifying valuable pointers in heap data
US9342694B2 (en) Security method and apparatus
JP4643201B2 (ja) バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム
EP3293660A1 (en) System and method of detecting malicious code in files
US11170112B2 (en) Exploit detection via induced exceptions
EP2866167A1 (en) System and method for preserving and subsequently restoring emulator state
Hodosh Learning malicious activity using virtual machine introspection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant