CN106228069B - 用于检测恶意可执行文件的系统和方法 - Google Patents

用于检测恶意可执行文件的系统和方法 Download PDF

Info

Publication number
CN106228069B
CN106228069B CN201610616785.4A CN201610616785A CN106228069B CN 106228069 B CN106228069 B CN 106228069B CN 201610616785 A CN201610616785 A CN 201610616785A CN 106228069 B CN106228069 B CN 106228069B
Authority
CN
China
Prior art keywords
script
emulator
executable file
pseudocode
realized
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
CN201610616785.4A
Other languages
English (en)
Other versions
CN106228069A (zh
Inventor
维亚切斯拉夫·V·扎科热夫斯基
德米特里·V·维诺格德夫
弗拉季斯拉夫·V·培提斯基
德米特里·A·基尔萨诺夫
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 CN106228069A publication Critical patent/CN106228069A/zh
Application granted granted Critical
Publication of CN106228069B publication Critical patent/CN106228069B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/033Test or assess software

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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

用于通过组合脚本仿真器和机器代码仿真器来检测具有脚本语言解释程序的恶意可执行文件的系统和方法。系统包括分析器,其配置为将脚本转化为伪代码并且监控所述伪代码的仿真过程,脚本仿真器,其配置为顺序仿真所述伪代码并将仿真结果写到仿真器操作日志,以及机器代码仿真器,其配置为如果所述分析器检测到从伪代码到机器代码的转换则仿真所述伪代码,使得所述分析器可分析所述仿真器操作日志以确定所述可执行文件是否是恶意的。

Description

用于检测恶意可执行文件的系统和方法
相关申请
本申请要求于2015年9月15日提交的、申请号为2015141543的俄罗斯联邦专利申请的权益,其通过引用全部并入本文中。
技术领域
本发明一般涉及防病毒解决方案。具体地,本发明涉及利用仿真检测恶意对象。
背景技术
现今的程序的代码(其包括恶意代码)可包括复合指令集:位移、调用、循环等。而且,由于高级编程语言越来越普及以及计算机设备和操作系统越来越精密,可执行文件的复杂性不断增加。这种复杂性同样应用于被信任的应用和恶意应用两者。恶意应用可实施多个负面的和不期望的(从用户的观点)动作。这种动作的示例为:盗取密码和其他机密用户数据,为了使DDoS攻击或发送垃圾邮件而将计算机连接至僵尸网络,或为了敲诈金钱而阻塞系统操作。
AutoIt是Microsoft Windows中用于自动任务的免费软件编程语言。在早期版本中,以AutoIt编写的软件主要用于创建用于Microsoft Windows程序的自动脚本。自动脚本对于实施重复的任务是有用的,如在大量计算机上安装相同的程序集。在后面的AutoIt版本中,语言的功能性大量增加,其使得AutoIt更加接近通用编程语言。以AutoIt语言中编写的脚本可被编译到独立于任何程序库的可执行文件中。病毒作者已可理解地被吸引到AutoIt脚本语言,因为该语言的广阔能力以及作为可执行文件的脚本表示的最终形式,其便于分发。
结果是,检测用AutoIt脚本语言编译的可执行文件中的恶意对象对于计算安全是必要的。在一个示例中,将传统的基于签名的检测恶意对象的方法应用于用AutoIt脚本语言编译的可执行文件是困难的。在这种方法中,脚本是混淆的,并且可执行文件本身反而可通过压缩和/或加密可执行文件以及通过给其附加编码来打包,这需要解包并执行。在另一示例中,用于检测恶意对象的传统启发式方法(具体地,这种可执行文件的仿真)也是无效的。在这种方法中,存在解释程序(任何可执行文件的不可变部分包含AutoIt脚本),包括非常慢的仿真操作。结果是,病毒作者可通过使解释程序实施许多无用动作而轻易地阻止检测。病毒作者还可基于在虚拟机上发起可执行文件而轻易反击用于检测恶意对象的传统系统。例如,为了发布裁定,检测系统不使用执行中的简单暂停(例如,调用睡眠(Sleep)命令)以及脚本代码中的大的无用循环;而是,在恶意对象开始实施恶意动作之前当所分派的时间(操作超时)期满时,系统完成检查。在这种情况下,这样的文件的执行日志的大小可达到十亿字节。
因此,需要具有用于有效检测具有脚本语言解释程序的恶意可执行文件的系统和方法。
发明内容
实施例大体上满足前述的工业需求。根据实施例,本发明的系统和方法配置为通过组合脚本仿真器和机器代码仿真器来检测包括脚本语言解释程序的恶意可执行文件。这种实施例的结果是,计算机系统的安全性增加了。更一般地,计算机安全通过利用仿真器的组合检测恶意可执行文件来实现。
在实施例中,用于检测恶意可执行文件的系统,所述可执行文件包括解释程序,包括计算平台,所述计算平台包括至少一个处理器的计算硬件、数据存储、在计算硬件上实现的操作系统,以及输入/输出设备;指令,其当在计算平台上执行时,使得计算平台实现配置为将脚本转化为伪代码的分析器,该脚本与可执行文件相关,并且监控伪代码的仿真过程,脚本仿真器配置为顺序仿真伪代码并将仿真结果写到仿真器操作日志,以及机器代码仿真器配置为如果分析器检测到从伪代码到机器代码的转换则仿真伪代码,其中分析器进一步配置为分析仿真器操作日志以确定可执行文件是否是恶意的。
在另一实施例中,用于检测计算机系统的恶意可执行文件的机器实现的方法包括利用在至少一个处理器上执行的分析器将脚本转化成伪代码,所述计算系统包括至少一个处理器的计算硬件、数据存储、在计算硬件上实现的操作系统,以及输入/输出设备,所述可执行文件包括解释程序,所述脚本与可执行文件相关;利用在至少一个处理器上执行的脚本仿真器仿真伪代码,所述脚本仿真器配置为处理脚本内的命令;如果检测到从伪代码到机器代码的转换,则利用机器代码仿真器仿真伪代码,所述机器代码仿真器在至少一个处理器上执行;将仿真结果写入存储在数据存储上的仿真器操作日志中。以及用分析器分析仿真器操作日志,以确定可执行文件是否是恶意的。
在另一实施例中,用于检测恶意可执行文件的多线程计算系统,所述可执行文件包括解释程序,所述系统包括至少一个处理器,可操作地耦连至所述至少一个处理器的存储器;由所述至少一个处理器实现的第一执行线程并且其执行配置为将脚本转化为伪代码的分析器,所述脚本包含在所述可执行文件中或配置为由解释程序执行;由至少一个处理器实现的第二执行线程并且其执行配置为顺序仿真伪代码并输出脚本仿真器结果的脚本仿真器;由至少一个处理器实现的第三执行线程并且其执行机器代码仿真器,所述机器代码仿真器配置为如果检测到从伪代码到机器代码的转换则仿真伪代码并输出机器代码仿真器结果,其中分析器进一步配置为分析脚本仿真器结果以及机器代码仿真器结果,以确定可执行文件对多线程计算系统是否是恶意的。
上述发明内容并不意图描述每个说明的实施例或其主题的每个实现方式。附图以及具体地下面的具体实施方式例示了多个实施例。
附图说明
鉴于下面的多个实施例的详细说明连同附图一起,其主题可更加完全理解。
图1是根据实施例的、利用AutoIt编译的可执行文件的结构的框图。。
图2是根据实施例的、用于检测恶意可执行文件的方法的流程图。
图3是根据实施例的、用于检测恶意可执行文件的系统的框图。
图4是根据实施例的、仿真切换子系统的框图。
图5是配置为实现本发明的实施例的计算机系统的框图。
虽然多个实施例可处理为多种修改和可替代形式,其具体细节已经作为示例在附图中示出并将详细描述。然而应理解,本发明并不限制要求保护的发明为所描述的特定实施例。相反,本发明覆盖所有修改、等价和替代,其都落入权利要求所限定的主题的精神和范围内。
具体实施方式
根据实施例,系统和方法配置为实施分析由例如用AutoIt语言所写的脚本所编译的可执行文件。这种可执行文件的必要特征包括解释程序。因此,此后“可执行文件”指的是包括解释程序的可执行文件。为了检测恶意可执行文件,可实施仿真包含在可执行文件中的脚本。这种仿真节约时间,对仿真可执行文件本身来说,所述时间通常是不足的。然而,如果直接仿真脚本,相比于经典的仿真机器代码,更少数目的执行媒介变量被监控。因此,如果仅实施脚本仿真,由于不能够彻底检查脚本的行为,则有机会将可执行文件误解为可信任文件(或“清洁的”或非恶意文件)。由于此原因,本发明的实施例配置为根据较少资源消耗的脚本仿真伴随偶尔较多资源消耗的经典机器代码仿真来检查可执行文件。
仿真是用于检查潜在恶意程序的一种方法,所述恶意程序可包括可执行文件。此检查方法在防病毒产业中用于分析程序行为。可实现多种仿真方法。一种仿真方法包括利用机器代码仿真器的经典仿真。经典仿真包括通过创建处理器和存储器注册表的虚拟副本以及处理器指令集的虚拟副本的处理器、存储器和其他设备的基于软件的模仿。用这种方式,程序指令不在实际物理处理器上执行,而是在虚拟副本上执行,但是调用系统API函数被仿真并且函数的操作的仿真结果作为回复被发送。
应注意,仿真器初始化过程可相当消耗资源。仿真器初始化可不仅包括创建必要硬件(处理器、RAM)的虚拟副本,还包括创建操作系统(OS)的若干关键组件的虚拟副本,在操作系统中应用的执行被仿真。OS的关键组件是:对OS操作的必要特征负责的操作系统核心的部分,诸如处理中断和排除;例如所需要的设备的驱动,以及存储器管理器。因此,正确的工作OS的“回放”(仿真)需要耗费大量的计算机系统资源。由于此原因,除了消耗资源的机器代码仿真器,所提出的发明还使用更轻便的版本,脚本仿真器,其可处理脚本内的命令但不能处理例如调用API函数。在执行实际OS中的应用期间,当发生调用API函数时,由于复杂的内部体系架构,OS要实施大量操作。在实施例中,脚本仿真器并不与任何特定操作系统的体系架构绑定。示意地,调用API函数导致在处理器上执行大量指令,在此之后,所调用的API函数的操作结果返回到应用。采用机器代码仿真器,调用API函数不会导致执行如在实际OS中的相同数目的指令,而是,API函数操作的所仿真的结果返回到应用。例如,当进行尝试创建文件时,仿真器将指针返回到虚拟文件。
脚本仿真器,其不像机器代码仿真器,包括解释程序,并且并不具有操作系统组件的虚拟副本。解释程序可采用原始脚本代码和伪代码两者进行工作。伪代码是对于人类用户而言可方便解读的命令之间的中间表示形式(代码)。例如,伪代码可包括编程语言的命令,其中脚本被写入所述编程语言中(例如,AutoIt编程语言),以及可理解为它们的处理工具的命令,在这种情况下其是脚本仿真器内的解释程序。在编程用语中,伪代码还称为字节码或p码。与原始脚本代码相比,伪代码是脚本的简洁表示,其容易用于人类用户分析和理解,并且可以例如通过反编译获得。从技术上说来,伪代码是由翻译器从原始脚本代码生成的独立于机器的低级代码(在实施例中,此功能由分析器实施,如下所述)。伪代码的使用运行解释程序更容易和更快速操作。伪代码看起来好像机器代码,但其意图由虚拟机执行,不意图由实际处理器执行。根据实施例的虚拟机包括脚本语言的解释程序(例如,AutoIt编程语言)。根据实施例,每个操作代码的长度可以是一个字节。每条指令通常是一个字节操作代码(从0到255),其可具有多个参数,诸如注册表数目或存储器中的地址。伪代码中的单个脚本可由解释程序在不同平台和体系架构上执行,所述解释程序为其被执行或生成。这与机器代码是相反的,所述机器代码是依赖于体系架构的代码。
脚本仿真器的主要操作算法可包括读取伪代码中的命令,利用解释程序确定相关动作;实施相关动作的仿真,并且将仿真的结果写到仿真器操作日志。由此脚本仿真器减少了资源消耗并且加快了对包含脚本语言解释程序的可执行文件和关于其的脚本的检查。然而,在脚本执行仿真期间,从解释程序处理的脚本仿真器中的伪代码到机器代码的转换是可能的,对脚本执行的仿真要求启动机器代码仿真器。如果在仿真过程中检测到与其相关的代码,则可以进行这种转换,例如,调用操作系统的API函数,调用来自动态程序库的函数,访问可执行文件的资源以及不能由脚本仿真器处理的代码。可基于其他情况进行转换成机器代码仿真器,如本领域技术人员将容易理解的。
应注意到,机器代码仿真器可与操作系统中存在的所有程序库和解释程序(例如,.NET,Java,AutoIt等)接口并一起工作。机器代码仿真器还可实施对批处理文件和控制文件的仿真,诸如具有.bat或.cmd扩展名的批处理文件,powershell脚本,AutoIt脚本,用于向注册表中输入数据的reg文件以及其他文件类型,启动仿真导致在用户计算机上执行代码。因此,在实施例中,即使仿真过程在仿真第一脚本期间被切换到机器代码仿真器,并且即使第二脚本开始执行(例如,包含在可执行文件的资源中的脚本),此第二脚本也可由机器代码仿真器处理。接着,仿真可被切换回对包含在可执行文件中的第一脚本的仿真。在另一实施例中,如果仿真过程被切换到机器代码仿真器,并且如果第二脚本在机器代码仿真期间开始执行,则仿真过程可切换回脚本仿真器。还是在另一实施例中,额外的脚本仿真器可同时启动以处理在机器代码仿真器的操作期间开始的第二脚本。主要脚本仿真器、机器代码仿真器和任何额外的脚本仿真器的操作的结果被写入单个公共仿真器操作日志并且由分析器处理,如将在下面进一步描述的。
图1是根据实施例的、利用AutoIt编译的可执行文件100的结构的框图。如所描绘的,可执行文件100可包括两个主要组分。例如,可执行文件100包括脚本102,其被包含在可执行文件100中,以及解释程序101。在实施例中,脚本102可用AutoIt语言编写。解释程序101可在由脚本102编译的任何可执行文件100中建立。如果脚本102未用#NoAutoIt3Execute directive编译(由此阻止解释程序执行外面的方案),解释程序101可用于执行第二脚本103的代码。第二脚本103也可用AutoIt语言编写。有两种方法用于执行代码:
·利用"/AutoIt3ExecuteLine"参数,通过其用AutoIt语言编写的代码被直接送到解释程序用于执行,例如:
"%ProgramFiles%\AutoItFile_PE.exe"/AutoIt3ExecuteLine"MsgBox(0,'Hello','World')"
·利用"/AutoIt3ExecuteScript"参数,通过其用AutoIt语言编写的脚本被送到解释程序用于执行,例如:
"%ProgramFiles%\AutoItFile_PE.exe"/AutoIt3ExecuteScript"C:\Temp\Script.au3"
通过包含脚本102的可执行文件100的解释程序101执行脚本103的可能性允许病毒作者制作多成分恶意对象。因此,在经过防病毒检查后每个组分可分别考虑并信任。例如,可执行文件100可包括位于可执行文件资源中的加密的恶意代码,但在正常开始可执行文件100时,通过解释程序101,脚本102被执行,其不会导致解密及开始执行恶意代码。然而,当可执行文件100用"/AutoIt3ExecuteScript"参数开始执行时,从而命令脚本103被发送到解释程序101用于执行,可执行文件100的资源被访问,并且恶意代码被解密并执行。在这种情况下,可执行文件100可由第三成分开始执行,诸如从因特网加载的脚本103。为了检测多组分恶意可执行文件,仿真过程必须从脚本103开始;例如,在解释程序101外部的脚本。为了检测单成分恶意可执行文件,仿真过程从脚本102开始。因此,在一个实施例中,开始执行可执行文件100的事件可被拦截,并且如果尝试开始执行可执行文件100所利用的参数包括脚本,则仿真过程从参数中传送的脚本开始。如果没有这种参数,则仿真过程从脚本102开始,所述脚本102包含在正在接受检查的可执行文件100中。
图2是根据实施例的、用于检测包含脚本的恶意可执行文件的方法200的流程图。例如,在图2中检查的可执行文件可包括如图1中示出的可执行文件100。参考图2,方法200包括脚本转化201,其将接受检查的脚本转化成伪代码。伪代码的使用辅助并加快在脚本仿真器中所用的解释程序的操作。如上面关于图1所提及的,被检查恶意的脚本可以是包含在可执行文件100中的脚本102,或发送到可执行文件100的解释程序101用于执行的脚本103。
为了被检查,首先包含在可执行文件100中的脚本102从可执行文件100中提取出来。在这种情况下,如果脚本102利用打包器程序被打包,其在其提取期间被解包。所提取的脚本102可经受反编译程序。例如,脚本102的原始代码用编写脚本所用的编程语言恢复。需要脚本102代码的反编译以反混淆原始代码。反混淆是消除复杂化分析但并不改变脚本的功能的代码的过程。这种代码可以是,例如无用计算或个体化循环,其计算结果不是用在任何地方。然而,如果脚本103被检查,则在被转化成伪代码之前,脚本103可经受反混淆过程。
在将脚本转化成伪代码以后,在202,进行利用脚本仿真器仿真伪代码的执行。在203,如果在仿真伪代码执行期间,检测到从伪代码到机器代码的任何转换,则仿真过程被切换到,在204,仿真机器代码执行。如上面所提及的,这种转换可包括调用操作系统API函数、调用来自动态程序库的函数、访问可执行文件的资源或不能由脚本仿真器处理的代码。
一旦完成机器代码执行仿真204,则仿真切换回仿真202正在接受检查的脚本的伪代码的执行。在仿真伪代码和机器代码执行期间,仿真结果被写入仿真器操作日志。在其他实施例中,仿真结果可被暂时存储在存储器中并在仿真末尾被写到仿真器操作日志中。仿真器操作日志在205处被分析以检测恶意行为。由202-205具体化的程序或算法可以重复或迭代直到可执行文件通过在206处检测作为在205处分析仿真器操作日志的结果的恶意行为在207处被发现是恶意的为止。在其他实施例中,一旦根据205处的分析仿真器操作日志并未检测到恶意行为,可退出方法200。
仿真器操作日志包含由可执行文件100在开始处实施的动作,其包括可疑动作,其组合允许描述可执行文件的特征为恶意的。例如,可疑动作可包括但不限于打开并写入文件或拦截中断向量。
在一个实施例中,分析仿真器操作日志包括将仿真器操作日志的内容与恶意行为模板相比较。可执行文件100可基于仿真器操作日志的内容与恶意行为模板的内容相匹配而被发现是恶意的。
在另一实施例中,可执行文件100在分析仿真器操作日志期间通过检测可疑动作来被发现是恶意的。在实施例中,每次在仿真器操作日志中检测到可疑动作,计数器可增加一个计数。例如,可执行文件100的“可疑米(suspicion meter)”计数器每次可在仿真器操作日志中检测到可疑动作时而增加计数。如果这个米计数器的值超过阈值,则可执行文件可被发现是恶意的。
图3是根据实施例的、用于检测恶意可执行文件的系统300的框图。在实施例中,用户计算机可包括可执行文件310,其包括为了确定可执行文件310是否是恶意的而被评估的脚本320。系统300还包括分析器330、脚本仿真器340、机器代码仿真器350和仿真器操作日志360。
由于可执行文件310包含脚本320,用于仿真可执行文件的资源和时间消耗通过提取脚本320并利用脚本仿真器340直接仿真它而显著减少。脚本320通过反编译可执行文件310而提取,并且如必要的话,如果其被利用打包器打包则通过解包脚本320而提取。
在将脚本320发送到脚本仿真器340用于执行之前,分析器330将来自脚本320的命令转化成伪代码—由脚本仿真器340处理的语言。而且,为了帮助后面的仿真过程,来自脚本340的代码可经受反混淆程序,其在将脚本320转化成伪代码之前实施。一旦已经被转化为伪代码的脚本320被发送用于执行,脚本仿真器340顺序仿真伪代码的执行并且将仿真结果写到仿真器操作日志360。分析器330配置为监控由脚本仿真器340实施的仿真过程,并且如果在仿真期间检测到从伪代码到机器代码的转换,则分析器330将仿真过程切换到机器代码仿真器350。如上所描述的,从伪代码到机器代码的转换以执行来自脚本仿真器340的机器代码仿真器350可通过调用操作系统API函数、调用来自动态程序库的函数、访问可执行文件的资源以及不能由脚本仿真器处理的代码而触发。
当仿真过程被切换到机器代码仿真器350时,分析器330暂停脚本仿真器340的操作,并且机器代码仿真器350开始仿真机器代码的执行并将仿真结果写到仿真器操作日志360。一旦完成机器代码执行仿真,利用脚本仿真器340的伪代码执行仿真可由分析器330继续进行。在另一实施例中,切换到机器代码仿真器350可由脚本仿真器340完成。分析器330可实施继续分析仿真器操作日志360,以检测恶意功能(恶意行为),并得出包含脚本320的可执行文件310是恶意的结论。如果在仿真了整个伪代码和机器代码并且随后分析了仿真器操作日志360之后没有检测到恶意功能,则可执行文件310可认为是可信的。而且,如果在所分派的用于检查的时间期间建立的仿真器操作日志360没有包含恶意功能,则可执行文件310可由分析器330认为是可信的。
图4是根据实施例的、仿真切换子系统400的框图。例如,分析器330可包括仿真切换子系统400。仿真切换子系统400通常包括仿真切换器402和多个仿真器404A-404N。
仿真切换器402包括处理器406和配置为由处理器406解释的切换逻辑408。在实施例中,处理器406可以是任何接受数字数据作为输入的可编程装置,配置为根据指令或算法处理该输入,并且提供结果作为输出。在实施例中,处理器406可以是配置为实行计算机程序指令的中央处理器(CPU)。因此,处理器406配置为实施基础的算术、逻辑和输入/输出操作。然而,处理器406具体配置为根据切换逻辑408在仿真器404A-404N之间切换。
切换逻辑408包括用于处理器406的指令以在仿真器404A-404N之间切换。在实施例中,切换逻辑408可包括用于在脚本仿真器和机器代码仿真器之间切换的前述触发。在实施例中,仿真器404之一可包括主仿真器,使得在命令其他仿真器404之一用于具体任务后,切换逻辑408将仿真处理返回到主仿真器。在其他实施例中,切换逻辑408可指示仿真器404同时执行。
仿真器404的每一个包括配置为理解指令集中的一组指令的虚拟环境。如本领域技术人员容易领会的,所有种类的指令可不同地处理。因此仿真器404的每一个重新创建虚拟环境以执行指令。如果具有伪代码指令,虚拟环境可仅由语言的解释程序组成,原始脚本用所述语言编写。在系统400中可实现任何数目的仿真器404。每个仿真器404可包括对一组指令唯一的特定虚拟环境。
例如,在仿真切换子系统400包括仿真器404A和仿真器404B的实施例中,仿真器404A可包括脚本仿真器,并且仿真器404B可包括机器代码或二进制仿真器。切换逻辑408可包括用于处理器406的指令,从而如果满足某些标准以使脚本仿真器404A在仿真时不能处理代码,或如果期望不同的仿真器404B在仿真时处理代码,则在仿真器404A和仿真器404B之间切换。例如,切换逻辑408可包括从仿真器404A到仿真器404B的触发,诸如调用操作系统API函数、调用来自动态程序库的函数、访问可执行文件的资源或脚本仿真器不能处理的代码。
图5是根据多个实施例的、更加详细例示了计算机系统500的示意图,本文所描述的本发明的方面可在该计算机系统上实现。
计算机系统500可包括计算设备,诸如个人计算机520,其包括一个或多个处理单元521,系统存储器522和系统总线523,其包括多个系统组件,所述系统组件包括与一个或多个处理单元521相连接的存储器。在多个实施例中,处理单元521可包括多个逻辑核心,其能够处理存储在计算机可读介质上的信息。系统总线523实现为相关技术水平已知的任何总线结构,其相应地包括总线存储器或总线存储器控制器、外围总线和本地总线,其能够与任何其他总线体系架构相交互。系统存储器可包括非易失性存储器诸如只读存储器(ROM)524,或易失性存储器诸如随机存取存储器(RAM)525。基础的输入/输出系统(BIOS)526包含确保个人计算机520的元件之间的信息转移的基础程序,例如利用ROM 524的操作系统启动(boot)期间。
相应地个人计算机520具有用于数据读取和写入的硬盘驱动527,、用于在可移除磁盘529上读取和写入的磁盘驱动528,以及用于在可移除光盘531上读取和写入的光驱530,所述可移除光盘诸如CD-ROM、DVD-ROM和其他光介质。硬盘驱动527、磁盘驱动528和光驱530分别通过硬盘驱动接口532、磁盘驱动接口533和光驱接口534与系统总线523相连接。驱动以及相应的计算机信息介质表示用于存储个人计算机520上的计算机指令、数据结构、程序模块和其他数据的能量独立装置。
所描绘的系统包括硬盘驱动527、可移除磁盘驱动529和可移除光驱530,但应理解,使用通过控制器555连接至系统总线523的其他类型的计算机介质是可能的,其能够以计算机可读的形式(固态驱动、闪存卡、数字盘、随机存取存储器(RAM)等)存储数据。
计算机520包括文件系统536,所记录的操作系统535以及额外的程序应用537、其他程序引擎538和程序数据539存储在该系统中。用户可利用输入设备(键盘540、鼠标542)将命令和信息输入到个人计算机520。也可以使用其他输入设备(未示出),诸如麦克风、操纵杆、游戏操纵台、扫描仪等。这种输入设备通常通过串行端口546连接至计算机系统520,所述串行端口相应地连接至系统总线,但它们还可用不同的方式连接—例如,利用并行端口、游戏端口或通用串行总线(USB)。监控器547或另一种类型的显示设备也可通过接口诸如视频适配器546连接至系统总线523。除了监控器547,个人计算机520可配备有其他外围输出设备(未示出),诸如扬声器、打印机等。
个人计算机520能够在网络环境中工作;这种情况下,它使用网络与一个或若干其他远程计算机549连接。一个或多个远程计算机549为类似的个人计算机或服务器,其具有多数或所有上述元件,如更早在描述图5所示的个人计算机520的组成时所通知的。计算网络还可具有其他设备,诸如路由器、网络站、对点设备或其他网络节点。
网络连接可构成局域网(LAN)550、世界区域网络(WAN)。这种网络用在公司计算机网络或公司内联网中,并且通常具有连接到因特网的入口。在LAN或WAN网络中,个人计算机520通过网络适配器或网络接口551连接到局域网550。当使用网络时,个人计算机520可使用调制解调器554或其他装置用于连接到世界区域网络,诸如因特网。调制解调器554,其是内部设备或外部设备,通过串行端口546连接至系统总线523。应弄清楚,这些网络连接仅是示例并且不是必然反映精确的网络配置,即现实中具有利用计算机之间的通信技术手段来建立连接的其他装置。
系统、设备和方法的多个实施例已在本文中描述。这些实施例仅以示例的方式给出并且并不意图限制所要求保护的发明的范围。而且应领会,已经描述的实施例的多个特征可以多种方式组合以产生大量额外的实施例。而且,虽然已经描述了所公开的实施例使用了多种材料、尺寸、形状、配置和位置等,但除了所公开的那些以外的其他可以使用而不超过所要求保护的发明的范围。
相关领域的普通技术人员将认识到,其主题可包括比在上述的任何个别实施例中所例示的更少的特征。本文中所描述的实施例并不意味着详尽的呈现方式,其中,其主题的多个特征可以组合。因此,实施例并不是特征的相互排外的组合;而是,多个实施例可包括从不同个体实施例中选择的不同个体特征的组合,如本领域普通技术人员所理解的。而且,即使当除非通知以外并未在这些实施例中描述时,关于一个实施例所描述的元件可在其他实施例中实现。
虽然从属权利要求在权利要求书中可涉及与一个或多个其他权利要求的特定组合,但其他实施例还可包括从属权利要求与每个其他从属权利要求的主题的组合或一个或多个特征与其他从属权利要求或独立权利要求的组合。这种组合在本文中被提议,除非声明并不意图特定组合。
上面通过引用文档的任何合并被限制以使并不合并与本文的明确公开相反的主题。上面通过引用文档的任何合并进一步被限制使得包括在文档中的权利要求不会通过引用并入本文中。上面通过引用文档的任何合并仍然进一步被限制使得文档中提供的任何定义并不通过引用并入本文,除非明确包括在本文中。
为了理解权利要求的目的,明确意图并不引用35U.S.C.§112(f)的规定,除非在权利要求中引用了术语“用于…的装置”或“用于…的步骤”。

Claims (21)

1.一种用于检测恶意的可执行文件的系统,所述可执行文件包括解释程序,所述系统包括:
计算平台,其包括至少一个处理器的计算硬件、其上存储有指令的数据存储、在所述计算硬件上实现的操作系统,以及输入/输出设备;
所述指令,其当在所述计算平台上执行时,使得所述计算平台实现:
分析器,其配置为将脚本转化为伪代码,所述脚本与所述可执行文件相关,并且监控所述伪代码的仿真过程,
脚本仿真器,其配置为顺序仿真所述伪代码并将仿真结果写到仿真器操作日志,以及
机器代码仿真器,其配置为如果所述分析器检测到从伪代码到机器代码的转换,则仿真所述伪代码,
其中所述分析器进一步配置为分析所述仿真器操作日志以确定所述可执行文件是否是恶意的。
2.根据权利要求1所述的系统,其中所述脚本包含在所述可执行文件中。
3.根据权利要求2所述的系统,其中所述分析器进一步配置为:
从所述可执行文件中提取所述脚本;以及
反编译所述脚本,以输出用编写所述脚本所用的编程语言所写的原始代码。
4.根据权利要求1所述的系统,其中所述脚本由所述输入/输出设备所接收,用于由所述解释程序执行。
5.根据权利要求4所述的系统,其中所述分析器进一步配置为在将所述脚本转化成伪代码之前反混淆所述脚本。
6.根据权利要求1所述的系统,其中所述机器代码仿真器进一步配置为利用所述机器代码仿真器仿真在仿真所述伪代码期间所开始执行的第二脚本。
7.根据权利要求1所述的系统,其中所述指令用单个执行线程实现,其中所述单个执行线程配置为在所述机器代码仿真器和所述脚本仿真器之间切换。
8.根据权利要求1所述的系统,其中所述指令用多个执行线程实现,其中执行机器代码仿真器的第一执行线程配置为启动第二执行线程以用于执行脚本仿真器。
9.一种用于检测计算机系统的恶意的可执行文件的机器实现的方法,所述计算机系统包括至少一个处理器的计算硬件、数据存储、在所述计算硬件上实现的操作系统,以及输入/输出设备,所述可执行文件包括解释程序,所述方法包括:
利用在所述至少一个处理器上执行的分析器将脚本转化成伪代码,所述脚本与所述可执行文件相关;
利用在所述至少一个处理器上执行的脚本仿真器仿真所述伪代码,所述脚本仿真器配置为处理所述脚本内的命令;
如果检测到从伪代码到机器代码的转换,则利用机器代码仿真器仿真所述伪代码,所述机器代码仿真器在所述至少一个处理器上执行;
将仿真结果写入存储在所述数据存储上的仿真器操作日志中,以及
用所述分析器分析所述仿真器操作日志,以确定所述可执行文件是否是恶意的。
10.根据权利要求9所述的机器实现的方法,其中所述脚本包含在所述可执行文件中。
11.根据权利要求10所述的机器实现的方法,进一步包括,在将所述脚本转化成伪代码之前:
从所述可执行文件中提取所述脚本;以及
反编译所述脚本以输出用编写所述脚本所用的编程语言所写的原始代码。
12.根据权利要求9所述的机器实现的方法,其中所述脚本配置为由所述解释程序执行。
13.根据权利要求12所述的机器实现的方法,进一步包括在将所述脚本转化成伪代码之前用所述分析器反混淆所述脚本。
14.根据权利要求9所述的机器实现的方法,其中分析所述仿真器操作日志以确定所述可执行文件是否是恶意的包括将所述仿真器操作日志的内容与存储在所述数据存储中的一个或多个恶意行为模板进行比较。
15.根据权利要求9所述的机器实现的方法,其中分析所述仿真器操作日志以确定所述可执行文件是否是恶意的包括对于在所述仿真器操作日志中检测到的每个可疑动作增加可疑计数以及如果所述可疑计数超过阈值数值则确定所述可执行文件是恶意的。
16.根据权利要求9所述的机器实现的方法,其中仿真所述脚本包括:
读取伪代码命令;
利用所述解释程序确定一个或多个相关计算系统资源动作;以及
实施仿真所述一个或多个相关计算系统资源动作。
17.根据权利要求9所述的机器实现的方法,其中当调用所述操作系统的API函数、调用来自存储在所述数据存储上的动态程序库的函数、调用访问所述可执行文件的资源或不能由所述脚本仿真器处理的伪代码命令中的至少之一时,检测到从伪代码到机器代码的转换。
18.根据权利要求9所述的机器实现的方法,其中所述机器代码仿真器进一步配置为利用所述机器代码仿真器仿真在仿真所述伪代码期间所开始执行的第二脚本。
19.根据权利要求9所述的机器实现的方法,其中所述至少一个处理器是实现单个执行线程的单个处理器,其中所述方法用所述单个执行线程执行,并且其中所述单个执行线程配置为在所述机器代码仿真器和所述脚本仿真器之间切换。
20.根据权利要求9所述的机器实现的方法,其中所述方法用所述至少一个处理器上的多个执行线程执行,并且其中执行机器代码仿真器的第一执行线程配置为启动执行脚本仿真器的第二执行线程。
21.一种用于检测恶意的可执行文件的多线程计算系统,所述可执行文件包括解释程序,所述系统包括:
至少一个处理器;
可操作地耦连至所述至少一个处理器的存储器;
由所述至少一个处理器实现的第一执行线程并且其执行配置为将脚本转化为伪代码的分析器,所述脚本包含在所述可执行文件中或配置为由所述解释程序执行;
由所述至少一个处理器实现的第二执行线程并且其执行配置为顺序仿真所述伪代码并输出脚本仿真器结果的脚本仿真器;以及
由所述至少一个处理器实现的第三执行线程并且其执行机器代码仿真器,所述机器代码仿真器配置为如果检测到从伪代码到机器代码的转换则仿真所述伪代码并输出机器代码仿真器结果,
其中所述分析器进一步配置为分析所述脚本仿真器结果以及所述机器代码仿真器结果,以确定所述可执行文件对所述多线程计算系统是否是恶意的。
CN201610616785.4A 2015-09-30 2016-07-29 用于检测恶意可执行文件的系统和方法 Active CN106228069B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2015141543 2015-09-30
RU2015141543A RU2622627C2 (ru) 2015-09-30 2015-09-30 Способ обнаружения вредоносных исполняемых файлов, содержащих интерпретатор, посредством комбинирования эмуляторов

Publications (2)

Publication Number Publication Date
CN106228069A CN106228069A (zh) 2016-12-14
CN106228069B true CN106228069B (zh) 2019-07-05

Family

ID=57287238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610616785.4A Active CN106228069B (zh) 2015-09-30 2016-07-29 用于检测恶意可执行文件的系统和方法

Country Status (5)

Country Link
US (2) US9501643B1 (zh)
EP (1) EP3151151B1 (zh)
JP (1) JP6326103B2 (zh)
CN (1) CN106228069B (zh)
RU (1) RU2622627C2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229268B2 (en) * 2015-03-28 2019-03-12 Leviathan, Inc. System and method for emulation-based detection of malicious code with unmet operating system or architecture dependencies
US10387656B2 (en) 2016-03-21 2019-08-20 Checkmarx Ltd. Integrated interactive application security testing
US10579796B1 (en) * 2016-12-02 2020-03-03 United Services Automobile Association (Usaa) Systems and methods of detecting malicious powershell scripts
IL259201B (en) 2017-05-10 2021-12-01 Checkmarx Ltd Using the same query language for static and dynamic application security testing tools
RU2659742C1 (ru) 2017-08-17 2018-07-03 Акционерное общество "Лаборатория Касперского" Способ эмуляции исполнения файлов, содержащих инструкции, отличные от машинных
EP3444737B1 (en) * 2017-08-17 2022-11-16 AO Kaspersky Lab System and method of emulating execution of files
CN107528571B (zh) * 2017-09-07 2021-01-26 成都航天通信设备有限责任公司 一种fpga仿真器切换装置及方法
US10691800B2 (en) * 2017-09-29 2020-06-23 AO Kaspersky Lab System and method for detection of malicious code in the address space of processes
RU2659738C1 (ru) * 2017-09-29 2018-07-03 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного скрипта
JP6731981B2 (ja) * 2017-10-18 2020-07-29 エーオー カスペルスキー ラボAO Kaspersky Lab 機械学習モデルに基づいた悪意のあるファイルの検出のための計算資源を管理するシステムおよび方法
EP3704616A1 (en) * 2017-10-31 2020-09-09 Bluvector, Inc. Malicious script detection
RU2708355C1 (ru) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде
US10776487B2 (en) 2018-07-12 2020-09-15 Saudi Arabian Oil Company Systems and methods for detecting obfuscated malware in obfuscated just-in-time (JIT) compiled code
US11232198B2 (en) 2020-01-28 2022-01-25 Cyberark Software Ltd. Dynamic visualization of scripts based on centralized security assessments
US11233805B2 (en) * 2020-01-28 2022-01-25 Cyberark Software Ltd. Centralized security assessments of scripts in network environments
RU2757409C1 (ru) * 2020-06-19 2021-10-15 Акционерное общество "Лаборатория Касперского" Эмулятор и способ эмуляции
EP3945441A1 (en) 2020-07-28 2022-02-02 Checkmarx Ltd. Detecting exploitable paths in application software that uses third-party libraries
CN114021125A (zh) * 2021-11-10 2022-02-08 安天科技集团股份有限公司 终端设备异常检测方法、装置、计算设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643775B1 (en) * 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
CN103065094A (zh) * 2011-12-28 2013-04-24 卡巴斯基实验室封闭式股份公司 用于检测目标为计算机引导过程的恶意软件的系统和方法
CN103500308A (zh) * 2012-09-28 2014-01-08 卡巴斯基实验室封闭式股份公司 用于对抗由恶意软件对仿真的检测的系统和方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636945B2 (en) 2000-07-14 2009-12-22 Computer Associates Think, Inc. Detection of polymorphic script language viruses by data driven lexical analysis
US8341743B2 (en) 2000-07-14 2012-12-25 Ca, Inc. Detection of viral code using emulation of operating system functions
US7069583B2 (en) * 2000-07-14 2006-06-27 Computer Associates Think, Inc. Detection of polymorphic virus code using dataflow analysis
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US7013483B2 (en) 2003-01-03 2006-03-14 Aladdin Knowledge Systems Ltd. Method for emulating an executable code in order to detect maliciousness
KR20040080844A (ko) 2003-03-14 2004-09-20 주식회사 안철수연구소 정적 분석을 이용한 악성 스크립트 감지 방법
JP2004303114A (ja) * 2003-04-01 2004-10-28 Hitachi Ltd インタープリタおよびネイティブコード実行方法
US7286076B1 (en) * 2004-02-10 2007-10-23 Zilog, Inc. Generating a mark/space table and a string of timing information on a remote control device
US8037535B2 (en) 2004-08-13 2011-10-11 Georgetown University System and method for detecting malicious executable code
US7636856B2 (en) 2004-12-06 2009-12-22 Microsoft Corporation Proactive computer malware protection through dynamic translation
US7877780B2 (en) * 2005-04-01 2011-01-25 Parasoft Corporation System and method for enforcing functionality in computer software through policies
US7779472B1 (en) 2005-10-11 2010-08-17 Trend Micro, Inc. Application behavior based malware detection
US8365286B2 (en) 2006-06-30 2013-01-29 Sophos Plc Method and system for classification of software using characteristics and combinations of such characteristics
US8151352B1 (en) 2006-07-14 2012-04-03 Bitdefender IPR Managament Ltd. Anti-malware emulation systems and methods
US7620992B2 (en) 2007-10-02 2009-11-17 Kaspersky Lab Zao System and method for detecting multi-component malware
US20090249311A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment
US8484727B2 (en) 2008-11-26 2013-07-09 Kaspersky Lab Zao System and method for computer malware detection
KR101493076B1 (ko) * 2009-04-07 2015-02-12 삼성전자 주식회사 버퍼 오버플로우 관리를 통한 바이러스 코드 실행방지장치 및 그 방법
RU91213U1 (ru) * 2009-10-01 2010-01-27 ЗАО "Лаборатория Касперского" Система автоматического составления описания и кластеризации различных, в том числе и вредоносных, объектов
US8499283B2 (en) * 2010-02-09 2013-07-30 Webroot Inc. Detection of scripting-language-based exploits using parse tree transformation
US9038184B1 (en) 2010-02-17 2015-05-19 Symantec Corporation Detection of malicious script operations using statistical analysis
US8751633B2 (en) * 2010-04-01 2014-06-10 Cloudflare, Inc. Recording internet visitor threat information through an internet-based proxy service
US9049247B2 (en) * 2010-04-01 2015-06-02 Cloudfare, Inc. Internet-based proxy service for responding to server offline errors
TW201227385A (en) * 2010-12-16 2012-07-01 Univ Nat Taiwan Science Tech Method of detecting malicious script and system thereof
US9119017B2 (en) * 2011-03-18 2015-08-25 Zscaler, Inc. Cloud based mobile device security and policy enforcement
US8997233B2 (en) * 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc Detecting script-based malware using emulation and heuristics
US9032526B2 (en) * 2011-05-12 2015-05-12 Microsoft Technology Licensing, Llc Emulating mixed-code programs using a virtual machine instance
US8850581B2 (en) * 2012-11-07 2014-09-30 Microsoft Corporation Identification of malware detection signature candidate code
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643775B1 (en) * 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
CN103065094A (zh) * 2011-12-28 2013-04-24 卡巴斯基实验室封闭式股份公司 用于检测目标为计算机引导过程的恶意软件的系统和方法
CN103500308A (zh) * 2012-09-28 2014-01-08 卡巴斯基实验室封闭式股份公司 用于对抗由恶意软件对仿真的检测的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Survey on Automated Dynamic Malware Analysis Techniques and Tools;MANUEL EGELE,et al;《ACM Computing Surveys》;20120201;第44卷(第2期);第1-42页

Also Published As

Publication number Publication date
EP3151151B1 (en) 2017-11-08
US10127381B2 (en) 2018-11-13
RU2622627C2 (ru) 2017-06-16
US9501643B1 (en) 2016-11-22
JP6326103B2 (ja) 2018-05-16
JP2017107540A (ja) 2017-06-15
RU2015141543A (ru) 2017-04-05
US20170091457A1 (en) 2017-03-30
EP3151151A1 (en) 2017-04-05
CN106228069A (zh) 2016-12-14

Similar Documents

Publication Publication Date Title
CN106228069B (zh) 用于检测恶意可执行文件的系统和方法
CN103500308B (zh) 用于对抗由恶意软件对仿真的检测的系统和方法
CN103678126B (zh) 用于提高应用仿真加速的效率的系统和方法
US7146305B2 (en) Analytical virtual machine
US7657419B2 (en) Analytical virtual machine
Collberg et al. Distributed application tamper detection via continuous software updates
Asvija et al. Security in hardware assisted virtualization for cloud computing—State of the art issues and challenges
JP6588945B2 (ja) 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法
Perez et al. Virtualization and hardware-based security
Brooks Survey of automated vulnerability detection and exploit generation techniques in cyber reasoning systems
JP6791134B2 (ja) 分析システム、分析方法、分析装置及び、コンピュータ・プログラム
Kuang et al. Enhance virtual-machine-based code obfuscation security through dynamic bytecode scheduling
CN108388793A (zh) 一种基于主动防御的虚拟机逃逸防护方法
Kuang et al. Exploiting dynamic scheduling for VM-based code obfuscation
CN106407751B (zh) 对可执行文件进行保护的方法和装置
Leszczyna Agents in simulation of cyberattacks to evaluate security of critical infrastructures
Thompson et al. Cyber Grand Challenge (CGC) monitor: A vetting system for the DARPA cyber grand challenge
WO2022178988A1 (zh) 虚拟机热迁移的方法及其装置
Stuby Applying machine learning techniques for improving test input generation in embedded fuzzers
Forcioli et al. TEE-Time: A Dynamic Cache Timing Analysis Tool for Trusted Execution Environments
Lombardi et al. On Abstract Machines Security and Performance
Canal et al. VITAMIN-V: Virtual Environment and Tool-Boxing for Trustworthy Development of RISC-V Based Cloud Services
Quist et al. Further down the VM spiral
Dai et al. Isolate secure executing environment for a safe cloud
Getu Comparison and benchmarking of automatic malware unpacking techniques

Legal Events

Date Code Title Description
C06 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