CN102799817A - 用于使用虚拟化技术进行恶意软件保护的系统和方法 - Google Patents

用于使用虚拟化技术进行恶意软件保护的系统和方法 Download PDF

Info

Publication number
CN102799817A
CN102799817A CN2012102257232A CN201210225723A CN102799817A CN 102799817 A CN102799817 A CN 102799817A CN 2012102257232 A CN2012102257232 A CN 2012102257232A CN 201210225723 A CN201210225723 A CN 201210225723A CN 102799817 A CN102799817 A CN 102799817A
Authority
CN
China
Prior art keywords
main frame
system call
virtual
application program
call
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.)
Granted
Application number
CN2012102257232A
Other languages
English (en)
Other versions
CN102799817B (zh
Inventor
维亚切斯拉夫·E·卢萨科夫
亚历山大·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 CN102799817A publication Critical patent/CN102799817A/zh
Application granted granted Critical
Publication of CN102799817B publication Critical patent/CN102799817B/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

Abstract

本发明公开了用于使用虚拟化技术来保护部署于主机上的应用程序抵御恶意软件的系统、方法及计算机程序产品。一个示范性恶意软件保护系统可包括内核级驱动程序,其经配置以拦截寻址到受保护应用程序的对象的系统调用。该系统还包括分析引擎,其经配置以确定是否有与以下各项中的一个或多个相关联的安全规则:所拦截的系统调用、受保护应用程序的对象以及在受保护应用程序的对象上所允许的动作。安全规则指示是否允许或不允许所述系统调用在所述主机上执行。如果没有与系统调用相关联的安全规则,则使用受保护应用程序的对象的虚拟副本在主机的安全执行环境中执行系统调用。

Description

用于使用虚拟化技术进行恶意软件保护的系统和方法
技术领域
本发明总体上涉及计算机安全领域,且更具体而言,涉及用于使用虚拟化技术保护部署于主机(host computer)上的应用程序抵御恶意软件的系统、方法及计算机程序产品。
背景技术
由于诸如病毒、蠕虫、木马、和其他类型计算机威胁的恶意软件的快速扩散和演变,计算机安全专家即使使用自动化的恶意软件检测手段也越来越难以跟踪新兴的威胁。当必须保护机密或者秘密的个人或公司信息的安全时,安全方面的考虑甚至更高。某些类型的恶意软件被专门设计以攻击计算机和部署于其上的应用程序,以收集机密或秘密的用户和系统信息。因此,诸如反病毒程序和防火墙的安全应用程序,必须被配置为保护关键的系统和应用程序对象免受未经授权的访问。
一种用于保护系统抵御恶意软件的机制是“沙盒(sandboxing)”,其中,不受信任的程序在安全的虚拟环境中执行。可以限制程序的执行,以排除对主机系统的关键领域或进程或者对部署于其上的应用程序的访问。然而,已知的沙盒技术有局限性。例如,当主机系统已经被恶意软件所感染时,他们可能是无效的。而且,他们不允许基于读/写操作以外的操作类型对不受信任的程序做出的系统调用进行过滤,也不允许使用不同恶意软件检测算法进行请求分析。因此,需要改进沙盒机制,以保护主机和部署于其上的应用程序远离恶意软件。
发明内容
本申请公开了用于使用虚拟化技术保护部署于主机上的应用程序抵御恶意软件的系统、方法及计算机程序产品。在一个示范性实施例中,恶意软件保护系统包括内核级驱动程序,所述内核级驱动程序经配置以拦截寻址到受保护应用程序的对象的系统调用。所述系统进一步包括分析引擎,所述分析引擎经配置以确定是否有与以下各项中的一个或多个相关联的安全规则:所拦截的系统调用、所述受保护应用程序的所述对象以及在所述受保护应用程序的所述对象上所允许的动作,其中所述安全规则至少指示是否允许所述系统调用在所述主机上执行或者不允许所述系统调用在所述主机上执行。如果有安全规则指示允许所述系统调用在所述主机上执行,则所述分析引擎指令所述主机执行所述系统调用。如果有安全规则指示不允许所述系统调用在所述主机上执行,则所述分析引擎指令所述主机阻止所述系统调用的执行。如果没有与所述系统调用相关联的安全规则,则所述分析引擎指令所述主机的安全执行环境的处理程序使用所述受保护应用程序的所述对象的虚拟副本在所述安全执行环境中执行所述系统调用。
在一个示范性实施例中,用于保护部署于主机上的应用程序的方法包括:在所述主机的内核级,拦截寻址到部署于所述主机上受保护应用程序的对象的系统调用;确定是否有与以下各项中的一个或多个相关联的安全规则:所拦截的系统调用、所述受保护应用程序的所述对象以及在所述受保护应用程序的所述对象上所允许的动作,其中所述安全规则至少指示是否允许所述系统调用在所述主机上执行或者不允许所述系统调用在所述主机上执行;如果有安全规则指示允许所述系统调用在所述主机上执行,则在所述主机上执行所述系统调用;如果有安全规则指示不允许所述系统调用在所述主机上执行,则在所述主机上阻止所述系统调用的执行;以及如果没有与所述系统调用相关联的安全规则,则使用所述受保护应用程序的所述对象的虚拟副本在安全执行环境中执行所述系统调用。
以上对本发明示范性实施例的简要概括用于提供对这类实施例的基本理解。此概括并不是本发明设想的所有方面的宽泛概述,并且既不意图确定所有实施例的关键或决定性要素也不意图限制任何或所有实施例的范围。其唯一目的在于简要地提出一个或多个方面的一些构思,作为下面更为详细的描述的前序。为了实现前述的以及相关的目的,一个或多个实施例包括将在下面充分描述且在权利要求书中特别指出的特征。
附图说明
附图包含于说明书中并构成说明书的一部分,示出了本发明的一个或多个示范性实施例,与详细描述一起用于解释本发明实施例的原理和实施方式。
附图中:
图1示出了根据一个示范性实施例的主机的原理图配置;
图2示出了根据一个示范性实施例的部署于主机上的恶意软件保护系统的示范性实施方式;
图3示出了根据一个示范性实施例的虚拟化主机COM子系统的示例;
图4示出了根据一个示范性实施例的恶意软件保护系统的安全执行环境的操作的示意图;
图5示出了根据一个示范性实施例的安全执行环境的虚拟组件的示意图;
图6示出了根据一个示范性实施例的用于由恶意软件保护系统拦截本地过程调用的方法;
图7示出了根据一个示范性实施例的恶意软件保护系统的操作的原理示意图;
图8示出了根据一个示范性实施例的恶意软件保护系统的操作的算法;
图9示出了根据一个示范性实施例的恶意软件保护系统的原理示意图;以及
图10示出了根据一个示范性实施例的主机的原理示意图。
具体实施方式
在本申请中,围绕用于使用虚拟化技术保护部署于主机上的应用程序抵御恶意软件的系统、方法及计算机程序,来描述本发明的示范性实施例。本领域普通技术人员应认识到,下面的描述仅仅是示例性的而并非意图以任何方式进行限定。受益于此公开内容的本领域技术人员将容易获得其他实施例的启示。现在,将更为详细地描述如图所示的示范性实施例的实施方式。贯穿全部附图以及下列描述,相同的附图标记将尽可能用于表示相同或相似的对象。
图1示出了主机的示范性原理图配置,所述主机包括硬件120、操作系统170和应用程序/程序100。更详细的主机配置在本发明下面将更详细的讨论的图10中示出。一般来说,操作系统(OS)支持用于在主机上执行程序和应用程序的几个级别的权限。例如,
Figure BDA00001832285000031
操作系统支持两种安全模式:内核模式110和用户模式115。程序和应用程序100通常部署于用户模式115中,这提高了对于主机抵御严重错误的保护水平,尤其保护了系统服务130、驱动程序(driver)140和操作系统170的硬件抽象层160免受恶意软件的访问/修改。主机还可包括各种用户模式的服务150,如操作系统提供的反病毒和其他安全服务,所述服务150控制用户模式应用程序100的执行,并监视主机的软件和硬件组件的状态。
图2示出了部署于主机上的恶意软件保护系统的示范性实施例。该恶意软件保护系统包括内核级保护驱动程序230、分析引擎210和安全执行环境(secure execution environment,SEE)220。在一个示范性实施例中,内核级保护驱动程序230经配置以拦截指向用户模式应用程序100的系统调用(例如,读、写、加载、创建进程、开放网络连接等)并将它们重定向到安全执行环境(SEE)220。在SEE220中,由分析引擎210分析请求以确定是否阻止系统调用、允许它由主机执行或使用SEE220的虚拟系统组件在SEE220中执行系统调用,而不会对应用程序100或主机造成任何伤害。
在一个示范性实施例中,SEE220可以实施为提供主机的组件的虚拟化的用户模式服务150。图3示出了可以实施于SEE220的主机的COM子系统的虚拟化示例。一般地,该COM提供了用于系统组件的重用的模型,如可执行文件或动态库,它可以由支持该COM模型的任何程序调用。这种程序的示例是Internet
Figure BDA00001832285000041
和其他浏览器。COM提供了对这种应用程序的启动副本的访问和控制。因此,在一个示范性实施例中,当在主机上所启动程序(这可能是恶意软件)寻址СOM服务300时,系统调用可被重定向到SEE220中所创建的COM服务的虚拟副本301。因此,对操作系统的COM对象和其它OS服务的访问不会直接进行。这种COM虚拟服务与原始服务没有区别。例如,当应用程序100做出系统调用时,主机系统启动COM服务器310,它向应用程序100返回所请求的对象。当来自应用程序100的系统调用被重定向到SEE220时,虚拟的COM服务301创建虚拟服务器311并向应用程序100返回虚拟对象。
图4示出了根据一个示范性实施例的恶意软件保护系统的安全执行环境(SEE)的操作的示意图。在主机上执行期间,应用程序100可能会发送系统调用到OS400,在那里该系统调用必须由OS处理程序(handler)405处理。系统调用可以被恶意软件保护系统的内核级保护驱动程序230拦截并且不会到达OS处理程序405。例如,保护驱动程序230可配置为拦截以下系统调用:开放进程/输入;读取进程存储器;对存储器/磁盘的直接访问;对文件系统、注册表和OS内核400的对象的访问;请求获得权限;以及其他系统调用。在该拦截后,保护驱动程序230重定向系统调用到安全执行环境220,在那里系统调用可以由SEE处理程序410使用主机的多个组件的虚拟副本加以执行。
由SEE处理程序410执行系统调用的过程取决于主机在安全执行环境220中虚拟化的详细程度。为了无差错地有效操作,最好但不是必须,创建文件系统、注册表和一些OS服务的虚拟副本。图5示出了再现于SEE220中的主机的虚拟组件的示例。如图所示,SEE220可包括虚拟用户模式服务500和虚拟COM子系统505、虚拟内核对象510(例如,端口、管道、事件、互斥量(mutex)、段(section)、旗语(semaphore))、虚拟注册表520和虚拟文件系统530。系统组件的虚拟化可以即时(on-the-fly)执行而无需重新安装或重加载主机,这是因为主机的操作系统内核中必然没有变化。
虚拟化意味着,应用程序100在主机中所做的改变实际上并没有执行。换句话说,在主机系统(文件或注册表项)中的原始信息没有改变。进程的虚拟化被理解为是其对OS对象的访问的虚拟化,包括其文件和注册表。如果必要的话,对象的虚拟化以其虚拟副本的生成为先决条件(也提供对实际对象的访问)。在一个示范性实施例中,SEE处理程序410确定需要在SEE220中进行虚拟化的软件和硬件组件,并使用这些虚拟化组件执行系统调用。作为一个规则,仅在读取操作期间才将真正的对象返回给应用程序100。虚拟文件可以存储在专门的目录中,以及注册表项可以存储在注册表的专门分支中。其他OS对象可以存储在RAM中。
在一个示范性实施例中,保护驱动程序230还可配置为拦截本地过程调用(local procedure call,LPC)。这使恶意软件保护系统可以通过改变端口名称来隔离应用程序100。图6示出了这种拦截的示例。应用程序100发送创建对象的请求到对象链接和嵌入库600(
Figure BDA00001832285000051
OS中的OLE32.DLL)。这个库调用建立连接到端口的函数NtConnectPort(“\\RPC_Control\epmapper”),其中“\\RPC_Control\epmapper”是该端口的名称。这个请求被保护驱动程序230拦截并且该端口名称被更改。在替代该端口的名称后,请求不会跳转到用于(在OS中的)远程过程调用的服务RPCSS610,而是跳转到由安全执行环境220所提供的用于远程过程调用的虚拟服务即虚拟RPCSS615。虚拟服务615返回epmapper接口到应用程序110,以与安全执行环境220进一步交互。
前面的例子针对应用程序与OS的交互而加以考虑。这样的例子揭示了保护OS抵御部署于主机上的恶意软件的可能性。然而,在计算机上虚拟化所有应用程序是极为资源密集型的任务,这不是解决保护机密资料抵御恶意软件的问题的合宜之计。在计算机上,存储、传输、接收含有应予保护的机密数据的信息的应用程序组是有限的。这些信息包括个人通信、个人数据、密码、口令、信用卡号码和其他数据。在信息安全的风险不断增长的情况下,按照指定规则对应用程序和其与其他程序和OS的交互进行虚拟化,是必要的一层保护。因此,恶意软件保护系统允许在不丧失功能或无需重装的情形下,使包含机密信息的应用程序与恶意软件相隔离。
由于根据本发明的一个示范性实施例的恶意软件保护系统使用对主机的对象和组件及其上所部署的应用程序进行虚拟化的技术,所以,对主机免受由于应用程序中的漏洞和错误所引起的感染的保护可以基于以下原则加以组织:(1)限制对受保护的对象的访问,所述受保护的对象诸如包含用户机密数据的对象;(2)保护主机免遭改变:在试图修改主机上的对象时,创建和制作在安全执行环境中启动的应用程序的对象的可用副本;和(3)保护主机上启动的关键进程和服务免受安全执行环境中启动的应用程序方的访问,以排除恶意进程进入主机的漏洞。
在这种情况下,恶意软件保护系统被配置为,在安全执行环境中分析和过滤从应用程序到主机的对象(例如,存储器区域、文件、进程、执行线程)和部署于主机上的其他应用程序的系统调用。此外,恶意软件保护系统可分析和过滤从主机的对象到在安全执行环境中执行的应用程序的系统调用。
此外,该恶意软件保护系统提供了以下优点:在应用程序访问因特网期间,保护主机免遭恶意软件的侵入;清空临时文件、访问日志、和其他存储应用程序的操作历史的数据;保护由受保护应用程序所处理的用户数据,以免遭来自主机的进程的未经授权的访问;通过在安全执行环境中自动启动程序,确保从受保护应用程序启动这些程序。
图7示出了根据一个示范性实施例的恶意软件保护系统的操作原理示意图。部署于主机700上的恶意软件710执行用于从用户模式应用程序705窃取机密信息的算法,例如从因特网浏览器、银行应用程序、通信应用程序或存储机密的用户或系统信息的其他应用程序。恶意软件710向操作系统发出系统调用,例如请求读取应用程序705的一个或多个对象(例如,存储器区域、文件、进程、执行线程等)的存储器。系统调用可被恶意软件保护系统的内核级保护驱动程序230拦截并重定向到恶意软件保护系统的安全执行环境220。SEE220可收集有关系统调用的所有信息,诸如发出调用的程序的名称、系统调用的类型(例如,读、写、加载、创建进程、开放网络连接等)、被调用的程序的名称、被系统调用所访问的进程和存储器区域以及其他相关信息。SEE220发送收集到的信息到分析引擎210,分析引擎210确定系统调用的性质,并得到是否执行系统调用、阻止系统调用、或使用SEE220中的虚拟系统组件来执行系统调用的结论。
在一个示范性实施例中,分析引擎210是安全规则720的专家系统,它对以下内容进行分析:所拦截的系统调用(例如,系统调用的类型)、系统调用的对象、来自恶意软件710的系统调用的统计数据、恶意软件710的属性和行为以及其他确定是否应由恶意软件保护系统执行或阻止系统调用的信息。安全规则的一个示例是根据由下面的例子中用尖括号所指定的对象类型来排除访问:
lf{access to<object of the OS kernel>},then{block access}
根据结论,系统调用或者被阻止,或者不经修改被发送到OS处理程序405,或者被转发到SEE处理程序410以在SEE220中执行。对进程、数据和应用程序存储器的请求被根据这些规则进行过滤,这加强了对访问用户模式应用程序705的机密数据730的保护。
图8示出了根据一个示范性实施例的恶意软件保护系统的操作的算法。在步骤800,内核级保护驱动程序拦截对(或来自)用户模式应用程序(例如,应用程序的存储器、其进程、应用程序的文件)的系统调用。在步骤810,由SEE的分析引擎检查系统调用是否符合安全规则,并在步骤815决定如何处理该系统调用:如果它不符合安全规则,则在步骤820阻止系统调用(并且可生成表明禁止系统调用的错误消息);如果它不含有任何威胁,则在步骤825执行系统调用(发送到OS处理程序);或者如果没有发现相应的安全规则,则在步骤830在SEE中虚拟化系统调用的执行。特别是,在步骤830,SEE处理程序在SEE中创建系统调用的虚拟执行所必须的系统组件的所有必要虚拟副本,诸如虚拟系统服务、注册表、文件系统等。在SEE中所执行的动作可在步骤840存储在数据结构中,并在步骤845评估它们是否对系统调用所指向的应用程序(或其数据、进程等)的安全有威胁。在一个示范性实施例中,步骤845中的分析可包括对一个或多个所拦截的系统调用的相对于已知的恶意程序行为模式的启发式分析,例如共同所有的、标题为“用于检测多组件恶意软件的系统和方法”的第7,614,084号美国专利中所公开的,以援引的方式将该专利合并到本发明中。在其他的示范性实施例中,步骤845的分析可包括恶意软件签名匹配、行为分析或其他已知的恶意软件检测技术。如果没有检测到威胁,对SEE的对象的变化可在步骤850应用于主机。否则,SEE的变化不会被应用于主机,并且在步骤855终止进程。
图9示出了根据一个示范性实施例的恶意软件保护系统的示意图。内核级保护驱动程序230拦截系统调用。可拦截的请求的示例如上所述。所拦截的系统调用被重定向到SEE 900,在那里对受保护的应用程序对象和主机系统组件进行虚拟化。如果系统调用包括对受限访问的关键对象的请求,则可创建该对象的虚拟副本并返回给发起该请求的程序。如图所示,虚拟化的对象可包括但不限于用户模式服务500、OS内核510、OS注册表520和文件系统530。除了由SEE强加到关键系统对象上的约束以外,SEE还包括分析引擎210,其经配置以如上所述地使用安全规则215分析系统调用是否存在安全威胁。在一个示范性实施例中,分析引擎210可实现安全评级算法,其中安全规则对所拦截的系统调用进行安全评级的评估和分配,如共同所有的、标题为“用于计算机进程安全评级的系统与方法”的第7,530,106号美国专利所具体公开的,该专利以援引的方式合并到本发明中。基于所分配安全评级,分析引擎210可以决定是否如以上参照图7和8所详细描述地那样,执行、阻止或虚拟化所拦截的系统调用。
图10示出了适用于实现主机的诸如个人计算机(PC)或应用程序服务器的计算机系统5的一个示范性实施例。如图所示,计算机系统5可以包括通过系统总线10连接的一个或多个处理器15、存储器20、一个或多个硬盘驱动器30、光驱35、串行端口40、图形卡45、声卡50和网卡55。系统总线10可以为几种类型的总线结构中的任何一种,包括使用各种已知总线架构中的任何一种的存储器总线或存储器控制器、外围总线和局部总线。处理器15可以包括一个或多个
Figure BDA00001832285000081
Core 2Quad 2.33GHz处理器或其他类型的通用微处理器。
系统存储器20可以包括只读存储器(ROM)21和随机存取存储器(RAM)23。存储器20可以实施为DRAM(动态RAM)、EPROM、EEPROM、闪存或其他类型的存储器架构。ROM21存储基本输入/输出系统22(BIOS),该基本输入/输出系统22含有帮助在计算机系统5的组件之间传送信息的基本例程,诸如在启动期间。RAM23存储操作系统24(OS),诸如
Figure BDA00001832285000091
XP Professional或其他类型操作系统,该操作系统24负责在计算机系统5中管理和协调进程以及分配和共享硬件资源。系统存储器20还存储应用程序和程序25,诸如服务306。系统存储器20还存储由程序25使用的各种运行时数据26以及关于已知恶意的和安全的对象的信息的各种数据库。
计算机系统5可以进一步包括诸如SATA磁性硬盘驱动器(HDD)的硬盘驱动器30以及用于读或写诸如CD-ROM、DVD-ROM或其他光学介质的可移动光盘的光盘驱动器35。驱动器30和35及其相关联的计算机可读介质提供了对计算机可读指令、数据结构、数据库、应用程序以及实施本发明所公开的算法和方法的程序模块/子例程的非易失性存储。尽管示例性的计算机系统5采用磁盘和光盘,本领域技术人员应当理解,在计算机系统的替代实施例中,还可以使用可存储计算机系统5可访问数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、数字视频盘、RAM、ROM、EPROM以及其他类型的存储器。
计算机系统5进一步包括用于连接诸如键盘、鼠标、触控板及其它类型的数据输入设备75的多个串行端口40,诸如通用串行总线(USB)。串行端口40还可以用来连接诸如打印机、扫描仪及其它类型的数据输出设备80以及诸如外部数据存储设备等的其它外围设备85。系统5还可以包括诸如GT240M或其他视频卡的图形卡45,用于与监视器60或其他视频再现设备接口。系统5还可以包括声卡50,用于经由内部或外部扬声器65再现声音。此外,系统5可以包括网卡55,诸如以太网、WiFi、GSM、蓝牙或其他有线、无线或蜂窝网络接口,用于将计算机系统5连接至诸如因特网的网络70。
在各种实施例中,本发明所描述的算法和方法可以实现于硬件、软件、固件或者其任意组合中。如果在软件中实现,这些功能可以作为一个或者多个指令或者代码在非暂时性计算机可读介质上存储。计算机可读介质既包括计算机存储介质也包括通信介质,所述通信介质有助于从一个地方向另一个地方传送计算机程序。存储介质可以是能够被计算机访问的任何可用的介质。作为示例而非限制,这种计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、或者任何能够用于以指令或者数据结构的形式承载或者存储所需的程序代码并且可被计算机访问的其它介质。而且,任何连接都可以被称为计算机可读介质。例如,从网站、服务器或者其它远程信源传输软件的同轴电缆、光缆、双绞线、数字用户线(DSL)、或者诸如红外、射频和微波这类无线技术包括在介质的定义中。
为了清楚起见,本发明没有示出并描述实施例的所有常规特征。应该理解的是,在任何这种实际的实施方式的开发中,为了达到开发者的特定目标,必须做出大量特定于实施方式的决定,而且,这些特定目标会因实施方式的不同和开发者的不同而变化。应该理解的是,这种开发工作可能是复杂且费时的,但不论如何,对于受益于本申请的普通技术人员而言,都将是常规的工程任务。
而且,可以理解的是,本发明使用的措辞和术语用于描述而非限制的目的,以使本说明书的术语或者措辞可由本领域技术人员在本发明提出的教导和指导下结合相关领域技术人员的知识做出解释。而且,除非像这样明确地予以阐述,否则说明书中或者权利要求中的任何术语都并非意图表示不常见的或者特殊的意思。
本发明公开的各种实施例包括本发明通过图示方式提到的已知组件的现在和将来已知的等同物。而且,尽管已经示出和说明了实施例和应用程序,但对受益于本发明公开的内容的本领域技术人员来说显而易见的是,在不脱离本发明公开的发明构思的情况下,比上述提及到的更多的修改例都是可能的。

Claims (11)

1.一种用于保护部署于主机上的应用程序的方法,所述方法包括:
在所述主机的内核级,拦截寻址到部署于所述主机上受保护应用程序的对象的系统调用;
确定是否有与以下各项中的一个或多个相关联的安全规则:所拦截的系统调用、所述受保护应用程序的所述对象以及在所述受保护应用程序的所述对象上所允许的动作,其中,所述安全规则至少指示是否允许所述系统调用在所述主机上执行或者不允许所述系统调用在所述主机上执行;
如果有安全规则指示允许所述系统调用在所述主机上执行,则在所述主机上执行所述系统调用;
如果有安全规则指示不允许所述系统调用在所述主机上执行,则在所述主机上阻止所述系统调用的执行;
如果没有与所述系统调用相关联的安全规则,则使用所述受保护应用程序的所述对象的虚拟副本在安全执行环境中执行所述系统调用;
分析对所述受保护应用程序的所述对象的所述虚拟副本的改变是否表现出对所述应用程序、应用程序数据或所述主机的任何安全威胁;
如果对所述对象的所述虚拟副本的所述改变未表现出任何安全威胁,则对所述主机中的真实对象应用所述改变;以及
如果对所述对象的所述虚拟副本的所述改变表现出安全威胁,则在所述主机上阻止所述系统调用的执行。
2.根据权利要求1所述的方法,其中,分析对所述对象的所述虚拟副本的改变是否表现出任何安全威胁包括:执行以下各项中的一个或多个:启发式分析、恶意软件签名匹配以及对所述对象的至少所述虚拟副本的行为分析。
3.根据权利要求1所述的方法,其中,所述安全执行环境实施为所述主机上的用户模式服务。
4.根据权利要求1所述的方法,其中,所述安全执行环境进一步包括:所述主机的一个或多个虚拟用户模式服务,一个或多个虚拟内核对象,虚拟注册表和虚拟文件系统。
5.根据权利要求1所述的方法,其中,拦截系统调用进一步包括:通过内核级驱动程序拦截系统调用。
6.根据权利要求1所述的方法,进一步包括:
拦截来自部署于所述主机上的应用程序的远程过程调用;以及
将被所述远程过程调用所寻址的对象的端口名称用在所述安全执行环境中的所述对象的虚拟副本的端口名称替换,从而将所述远程过程调用重定向到所述安全执行环境。
7.一种用于保护部署于主机上的应用程序的系统,所述系统包括:
内核级驱动程序,存储在所述主机的存储器中并且由所述主机的处理器可执行,所述内核级驱动程序经配置以拦截寻址到受保护应用程序的对象的系统调用;和
分析引擎,由所述处理器可执行,所述分析引擎经配置以:
确定是否有与以下各项中的一个或多个相关联的安全规则:所拦截的系统调用、所述受保护应用程序的所述对象以及在所述受保护应用程序的所述对象上所允许的动作,其中,所述安全规则至少指示是否允许所述系统调用在所述主机上执行或者不允许所述系统调用在所述主机上执行;
如果有安全规则指示允许所述系统调用在所述主机上执行,则指令所述主机执行所述系统调用;
如果有安全规则指示不允许所述系统调用在所述主机上执行,则指令所述主机阻止所述系统调用的执行;
如果没有与所述系统调用相关联的安全规则,则指令所述主机的安全执行环境的处理程序使用所述受保护应用程序的所述对象的虚拟副本在所述安全执行环境中执行所述系统调用;
分析对所述受保护应用程序的所述对象的所述虚拟副本的改变是否表现出对所述应用程序、应用程序数据、或所述主机的任何安全威胁;
如果对所述对象的所述虚拟副本的所述改变未表现出任何安全威胁,则指令所述主机对所述主机中的真实对象应用所述改变;以及
如果对所述对象的所述虚拟副本的所述改变表现出安全威胁,则指令所述主机在所述主机上阻止所述系统调用的执行。
8.根据权利要求7所述的系统,其中,分析对所述对象的所述虚拟副本的改变是否表现出任何安全威胁包括:执行以下各项中的一个或多个:启发式分析、恶意软件签名匹配以及对所述对象的至少所述虚拟副本的行为分析。
9.根据权利要求7所述的系统,其中,所述安全执行环境实施为所述主机上的用户模式服务。
10.根据权利要求7所述的系统,其中,所述安全执行环境进一步包括:所述主机的一个或多个虚拟用户模式服务,一个或多个虚拟内核对象,虚拟注册表和虚拟文件系统。
11.根据权利要求7所述的系统,其中,所述内核级驱动程序进一步经配置以:
拦截来自所述用户模式应用程序的远程过程调用;以及
将被所述远程过程调用所寻址的对象的端口名称用在所述安全执行环境中的所述对象的虚拟副本的端口名称替换,从而将所述远程过程调用重定向到所述安全执行环境。
CN201210225723.2A 2011-06-30 2012-06-29 用于使用虚拟化技术进行恶意软件保护的系统和方法 Active CN102799817B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/174,247 US8099596B1 (en) 2011-06-30 2011-06-30 System and method for malware protection using virtualization
US13/174,247 2011-06-30

Publications (2)

Publication Number Publication Date
CN102799817A true CN102799817A (zh) 2012-11-28
CN102799817B CN102799817B (zh) 2015-08-26

Family

ID=45445182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210225723.2A Active CN102799817B (zh) 2011-06-30 2012-06-29 用于使用虚拟化技术进行恶意软件保护的系统和方法

Country Status (3)

Country Link
US (1) US8099596B1 (zh)
EP (1) EP2541453B1 (zh)
CN (1) CN102799817B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182684A (zh) * 2014-08-15 2014-12-03 浪潮电子信息产业股份有限公司 一种安全进程运行环境的设计解决方法
CN105160243A (zh) * 2015-09-15 2015-12-16 浪潮集团有限公司 一种面向移动智能终端的驱动监控机制实现方法
CN105512550A (zh) * 2015-01-21 2016-04-20 卡巴斯基实验室股份公司 用于活跃的操作系统内核保护的系统和方法
CN106909838A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种拦截系统调用的方法及装置
CN108241801A (zh) * 2016-12-26 2018-07-03 华为技术有限公司 处理系统调用的方法和装置
CN108369625A (zh) * 2015-12-19 2018-08-03 比特梵德知识产权管理有限公司 用于保护多个网络端点的双重存储器内省
CN111343084A (zh) * 2019-02-07 2020-06-26 卡巴斯基实验室股份公司 使用网关保护自动化系统的系统和方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775802B1 (en) 2009-10-23 2014-07-08 Secure Vector Computer security system and method
US10242182B2 (en) 2009-10-23 2019-03-26 Secure Vector, Llc Computer security system and method
US8429429B1 (en) * 2009-10-23 2013-04-23 Secure Vector, Inc. Computer security system and method
US9454652B2 (en) 2009-10-23 2016-09-27 Secure Vector, Llc Computer security system and method
US9331869B2 (en) * 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US8973136B2 (en) * 2011-08-02 2015-03-03 Quick Heal Technologies Private Limited System and method for protecting computer systems from malware attacks
US9219752B2 (en) * 2011-08-26 2015-12-22 Hewlett-Packard Development Company, L.P. Data leak prevention systems and methods
US8402539B1 (en) * 2011-09-08 2013-03-19 Symantec Corporation Systems and methods for detecting malware
RU2472215C1 (ru) 2011-12-28 2013-01-10 Закрытое акционерное общество "Лаборатория Касперского" Способ выявления неизвестных программ с использованием эмуляции процесса загрузки
US9787681B2 (en) 2012-01-06 2017-10-10 Optio Labs, Inc. Systems and methods for enforcing access control policies on privileged accesses for mobile devices
US9712530B2 (en) * 2012-01-06 2017-07-18 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US9609020B2 (en) 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US8844032B2 (en) * 2012-03-02 2014-09-23 Sri International Method and system for application-based policy monitoring and enforcement on a mobile device
US9275229B2 (en) * 2012-03-15 2016-03-01 Mandiant, Llc System to bypass a compromised mass storage device driver stack and method thereof
GB2490431B (en) * 2012-05-15 2014-03-26 F Secure Corp Foiling a document exploit attack
US9363670B2 (en) 2012-08-27 2016-06-07 Optio Labs, Inc. Systems and methods for restricting access to network resources via in-location access point protocol
EP2717516A1 (en) 2012-10-04 2014-04-09 Thomson Licensing Method of protection of data shared between local area network devices and apparatus implementing the method
EP2738709A1 (en) * 2012-11-28 2014-06-04 Alcatel Lucent An improved method and device for enforcing privacy policies
RU2535175C2 (ru) 2012-12-25 2014-12-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного программного обеспечения путем создания изолированной среды
RU2541895C2 (ru) 2012-12-25 2015-02-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ повышения защищенности данных организации путем создания изолированной среды
US9773107B2 (en) 2013-01-07 2017-09-26 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US9372989B2 (en) 2013-02-15 2016-06-21 Systems of Information Security 2012 Robust malware detector
US20140283136A1 (en) 2013-03-13 2014-09-18 Optio Labs, Inc. Systems and methods for securing and locating computing devices
US9230106B2 (en) 2013-06-28 2016-01-05 Kaspersky Lab Ao System and method for detecting malicious software using malware trigger scenarios in a modified computer environment
RU2653985C2 (ru) 2013-06-28 2018-05-15 Закрытое акционерное общество "Лаборатория Касперского" Способ и система обнаружения вредоносного программного обеспечения путем контроля исполнения программного обеспечения запущенного по сценарию
US9117080B2 (en) 2013-07-05 2015-08-25 Bitdefender IPR Management Ltd. Process evaluation for malware detection in virtual machines
US10356047B2 (en) 2013-12-05 2019-07-16 Crowdstrike, Inc. RPC call interception
US9519758B2 (en) * 2014-02-04 2016-12-13 Pegasus Media Security, Llc System and process for monitoring malicious access of protected content
US8938547B1 (en) * 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US11212255B2 (en) 2015-10-30 2021-12-28 Melih Abdulhayoglu System and method of protecting a network
US9852295B2 (en) 2015-07-14 2017-12-26 Bitdefender IPR Management Ltd. Computer security systems and methods using asynchronous introspection exceptions
US10289853B2 (en) * 2016-03-31 2019-05-14 Microsoft Technology Licensing, Llc Secure driver platform
US10140448B2 (en) 2016-07-01 2018-11-27 Bitdefender IPR Management Ltd. Systems and methods of asynchronous analysis of event notifications for computer security applications
US10445257B2 (en) * 2017-04-30 2019-10-15 Microsoft Technology Licensing, Llc Execution of subset of driver code in separate protection domain
US10452838B2 (en) * 2017-07-27 2019-10-22 Symantec Corporation Providing joint access to an isolated computer object by both an isolated computer application and a non-isolated computer application
US10572283B2 (en) 2017-11-16 2020-02-25 International Business Machines Corporation Implementing requests on a model of a system prior to implementing on the system
US11347865B2 (en) * 2019-03-29 2022-05-31 Blackberry Limited Determining security risks in binary software code
US11336684B2 (en) * 2019-06-07 2022-05-17 Lookout, Inc. Mobile device security using a secure execution context

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100175104A1 (en) * 2008-03-03 2010-07-08 Khalid Atm Shafiqul Safe and secure program execution framework with guest application space
CN101872400A (zh) * 2009-04-24 2010-10-27 汪家祥 建立根据计算系统操作请求关联关系判断计算机操作请求安全性的计算机信息安全防护方法
US20110145926A1 (en) * 2009-12-15 2011-06-16 Mcafee, Inc. Systems and methods for behavioral sandboxing

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5899987A (en) * 1995-10-03 1999-05-04 Memco Software Ltd. Apparatus for and method of providing user exits on an operating system platform
IL132916A (en) * 1999-11-14 2004-02-08 Mcafee Inc Method and system for intercepting an application program interface
US6775780B1 (en) 2000-03-16 2004-08-10 Networks Associates Technology, Inc. Detecting malicious software by analyzing patterns of system calls generated during emulation
JP3963385B2 (ja) * 2001-10-30 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション ディジタル・エンコードされた製品の使用を制御する方法およびシステム
US7398389B2 (en) * 2001-12-20 2008-07-08 Coretrace Corporation Kernel-based network security infrastructure
EP1525522A2 (en) * 2002-06-06 2005-04-27 Green Border Technologies Method and system for implementing a secure application execution environment using derived user accounts for internet content
US7103914B2 (en) * 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
US7472272B2 (en) * 2003-01-23 2008-12-30 Verdasys, Inc. Digital asset usage accountability via event journaling
US7591015B2 (en) * 2003-10-23 2009-09-15 Microsoft Corporation Secure kernel transactions
US7487548B1 (en) * 2004-04-21 2009-02-03 Symantec Corporation Granular access control method and system
US7490356B2 (en) * 2004-07-20 2009-02-10 Reflectent Software, Inc. End user risk management
US7765410B2 (en) * 2004-11-08 2010-07-27 Microsoft Corporation System and method of aggregating the knowledge base of antivirus software applications
US7478237B2 (en) * 2004-11-08 2009-01-13 Microsoft Corporation System and method of allowing user mode applications with access to file data
US7587724B2 (en) * 2005-07-13 2009-09-08 Symantec Corporation Kernel validation layer
US7996682B2 (en) * 2005-10-17 2011-08-09 Microsoft Corporation Secure prompting
US7644271B1 (en) * 2005-11-07 2010-01-05 Cisco Technology, Inc. Enforcement of security policies for kernel module loading
US7996836B1 (en) * 2006-12-29 2011-08-09 Symantec Corporation Using a hypervisor to provide computer security
US8769268B2 (en) 2007-07-20 2014-07-01 Check Point Software Technologies, Inc. System and methods providing secure workspace sessions
US7620992B2 (en) 2007-10-02 2009-11-17 Kaspersky Lab Zao System and method for detecting multi-component malware
US20090300307A1 (en) 2008-05-30 2009-12-03 International Business Machines Corporation Protection and security provisioning using on-the-fly virtualization
US7530106B1 (en) 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US20100211663A1 (en) * 2008-07-28 2010-08-19 Viewfinity Inc. Management of pool member configuration
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US20100192224A1 (en) 2009-01-26 2010-07-29 International Business Machines Corporation Sandbox web navigation
US9141412B2 (en) * 2009-06-16 2015-09-22 Microsoft Technology Licensing, Llc Terminal services application virtualization for compatibility

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100175104A1 (en) * 2008-03-03 2010-07-08 Khalid Atm Shafiqul Safe and secure program execution framework with guest application space
CN101872400A (zh) * 2009-04-24 2010-10-27 汪家祥 建立根据计算系统操作请求关联关系判断计算机操作请求安全性的计算机信息安全防护方法
US20110145926A1 (en) * 2009-12-15 2011-06-16 Mcafee, Inc. Systems and methods for behavioral sandboxing

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182684A (zh) * 2014-08-15 2014-12-03 浪潮电子信息产业股份有限公司 一种安全进程运行环境的设计解决方法
CN105512550A (zh) * 2015-01-21 2016-04-20 卡巴斯基实验室股份公司 用于活跃的操作系统内核保护的系统和方法
CN105512550B (zh) * 2015-01-21 2018-10-02 卡巴斯基实验室股份公司 用于活跃的操作系统内核保护的系统和方法
CN105160243A (zh) * 2015-09-15 2015-12-16 浪潮集团有限公司 一种面向移动智能终端的驱动监控机制实现方法
CN108369625A (zh) * 2015-12-19 2018-08-03 比特梵德知识产权管理有限公司 用于保护多个网络端点的双重存储器内省
CN106909838A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种拦截系统调用的方法及装置
CN108241801A (zh) * 2016-12-26 2018-07-03 华为技术有限公司 处理系统调用的方法和装置
CN111343084A (zh) * 2019-02-07 2020-06-26 卡巴斯基实验室股份公司 使用网关保护自动化系统的系统和方法

Also Published As

Publication number Publication date
CN102799817B (zh) 2015-08-26
EP2541453A1 (en) 2013-01-02
US8099596B1 (en) 2012-01-17
EP2541453B1 (en) 2014-12-17

Similar Documents

Publication Publication Date Title
CN102799817B (zh) 用于使用虚拟化技术进行恶意软件保护的系统和方法
JP6317435B2 (ja) マルウェア検出のための複雑なスコアリング
US9117080B2 (en) Process evaluation for malware detection in virtual machines
CN102651061B (zh) 用于检测复杂恶意软件的系统和方法
US9202046B2 (en) Systems and methods for executing arbitrary applications in secure environments
US9009836B1 (en) Security architecture for virtual machines
US9471783B2 (en) Generic unpacking of applications for malware detection
AU2014330136A1 (en) Complex scoring for malware detection
US8910283B1 (en) Firmware-level security agent supporting operating system-level security in computer system
CN105512550B (zh) 用于活跃的操作系统内核保护的系统和方法
US20190286820A1 (en) Apparatus and method for detecting container rootkit
US9202053B1 (en) MBR infection detection using emulation
RU2460133C1 (ru) Система и способ защиты компьютерных приложений
Grace et al. Behaviour analysis of inter-app communication using a lightweight monitoring app for malware detection
EP2881883B1 (en) System and method for reducing load on an operating system when executing antivirus operations
US11263309B2 (en) Block device signature-based integrity protection for containerized applications
Yan et al. MOSKG: countering kernel rootkits with a secure paging mechanism
EP2819055B1 (en) System and method for detecting malicious software using malware trigger scenarios
WO2022031275A1 (en) Detection of memory modification
CN115292708A (zh) 基于字节码的执行权限分析方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant