CN104751057A - 一种用于增强计算机***安全性的方法及装置 - Google Patents
一种用于增强计算机***安全性的方法及装置 Download PDFInfo
- Publication number
- CN104751057A CN104751057A CN201510111889.5A CN201510111889A CN104751057A CN 104751057 A CN104751057 A CN 104751057A CN 201510111889 A CN201510111889 A CN 201510111889A CN 104751057 A CN104751057 A CN 104751057A
- Authority
- CN
- China
- Prior art keywords
- path
- virtualized environment
- file object
- data structure
- bottom data
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种用于增强计算机***安全性的方法及装置,其中,该方法包括以下步骤:对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构;在所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。本发明使得运行于虚拟化环境中的程序无法根据进程路径或文件路径来判断其自身是否运行于虚拟化环境中,从而有效地避免了恶意软件当感知到其自身运行于虚拟化环境中时隐藏其恶意行为,以逃避安全软件的检测的问题。与现有技术相比,本发明方法彻底解决了上述问题,并对***稳定性和效率影响较小,从而增强了计算机***的安全性。
Description
技术领域
本发明涉及安全领域,尤其涉及一种用于增强计算机***安全性的方法及装置。
背景技术
现有技术中,沙箱是安全软件的动态防护技术的一部分。沙箱主要通过提供一个隔离、虚拟的运行平台,使程序能够正常运行在该虚拟化环境中,而不会对该计算机***的其他部分产生任何影响。运行在沙箱中的程序可以查询其进程路径或其所创建的文件的路径等方式,并通过判断该等路径中是否包括与沙箱虚拟环境相关路径来感知其自身是否运行在虚拟化环境中。对于未知的程序,用户可在虚拟化环境中尝试使用该程序以确定其是否安全,然后在确认该未知程序为安全的程序时,再在真实***环境中运行该程序。然而一些恶意软件可通过上述方法来感知其自身是否运行于虚拟化环境中,从而当运行于虚拟化环境中时隐藏其恶意行为,从而逃避安全软件的检测。为了克服这一问题,现有技术中,可以通过尽可能地拦截获取进程路径或文件路径的操作来阻止对于运行环境的感知。然而,上述方式需要拦截的点过多,无法保证全面和彻底。并且,上述方式还可能影响***的稳定性和效率。因此,如何更有效地阻止程序对于虚拟化运行环境的感知是一个需要解决的问题。
发明内容
本发明的目的是提供一种用于增强计算机***安全性的方法及装置。
根据本发明的一个方面,提供一种增强计算机***安全性的方法,其中,该方法包括以下步骤:
-对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构;
-在所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
根据本发明的另一个方面,提供了一种用于增强计算机***安全性的装置,其中,该装置包括:
-用于对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构的装置;
-用于在所述文件对象的底层数据结构中使用非虚拟化环境路径的装置,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
本发明使得运行于虚拟化环境中的程序无法根据进程路径或文件路径来判断其是否运行于虚拟化环境中,从而有效地避免了恶意软件当感知到其自身运行于虚拟化环境中时隐藏其恶意行为,以逃避安全软件的检测的问题。与现有技术相比,本发明方法彻底解决了上述问题,并对***稳定性和效率影响较小,从而增强了计算机***的安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的实施例的用于增强计算机***安全性的方法的流程图;
图2示出根据本发明另一个方面的实施例的用于增强计算机***安全性的装置的示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
当前在计算机***中,为确定未知的程序是否安全,用户可首先在虚拟化环境中尝试使用该程序,并在确认该未知程序安全时,再在真实计算机***环境中运行该程序。一般地,在虚拟化环境中所运行的程序不应对计算机***的其他部分产生影响。在现有技术中,通常,对于运行在虚拟化环境中的程序,其所创建或修改的文件将被置于虚拟化环境中,并因此该等文件的文件路径将包括虚拟化环境相关路径。并且,当程序映像文件本身被置于虚拟化环境中时,该程序进程路径中也将包括虚拟化环境相关路径。
例如,在Windows***中,沙箱技术可用于提供虚拟化环境。在现有技术中,运行于沙箱中的程序所创建或修改的文件将被置于沙箱环境中,并具有该沙箱环境的路径。并且,当程序映像文件本身被置于沙箱环境中时,该程序进程路径中也将包括该沙箱环境的路径。在Windows***中,程序可通过用户态句柄来获取文件路径或进程路径。该用户态句柄在Windows内核态对象管理器中对应着一个文件对象。该文件对象在文件***中具有对应的底层数据结构。例如,在使用NTFS文件***时,该文件对象的底层数据结构为CCB(Context Control Block,环境控制块)。通常,对于运行在沙箱中的程序,该程序所关联的文件对象的CCB结构中将使用该沙箱环境的路径,也即虚拟化环境路径。因此,现有技术中,程序通过操作用户态句柄可以获得该虚拟化环境路径,从而感知其自身运行于虚拟化环境中。如上文所述,程序对于虚拟化运行环境的感知将可能导致安全问题。本发明解决了这一问题,以增强了计算机***安全性。
并且,本领域技术人员还应理解,此处,对于虚拟化环境的相关描述仅为便于读者理解本发明原理而给出的示例性描述,而非对于本发明适用范围的任何限制。并且,本领技术人员还应理解,虽然下文中将使用Windows操作***、沙箱、CCB结构等来对实施例进行说明,其仅为便于读者理解的目的,而非对于本发明的任何限制。本发明的范围由所附权利要求而非上述说明限定。
图1示出根据本发明一个方面的实施例的用于增强计算机***安全性的方法的流程图。
本发明方法通过计算机设备实现。所述计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
在根据本发明的一个实施例中,所述计算机***基于Windows操作***,所述虚拟化环境为沙箱环境,所述底层数据结构为CCB数据结构。为便于理解,如无特别另有说明,下文中的计算机***为基于Windows操作***,使用NTFS(New Technology File System,新技术文件***)文件***,并在该Windows操作***上利用沙箱技术来提供虚拟化环境。本领域技术人员应理解,本发明原理也可适用于基于使用FAT(File Allocation Table,文件分配表)文件***的Windows操作***或其他类似操作***的计算机***。
首先,在步骤S11中,对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构。
此处,文件对象意指与运行的程序相关联的文件在操作***中的表示。文件对象的底层数据结构意指该文件对象在文件***中的底层数据结构,例如上文所述的CCB结构。
与程序相关联的文件对象指该程序运行所涉及的文件对象。例如,对于运行Windows操作***上的程序,其相关联的文件对象可以包括该程序的用户态文件句柄所对应的内核态的文件对象,其中,该程序的用户态文件句柄可以为与该程序所使用的文件相关的文件句柄、与该程序所使用的命名管道相关的文件句柄等任何Windows操作***所支持的文件句柄。特别地,该程序相关联的文件对象可以为与该程序的映像文件相关联的文件对象。该程序的进程对象将所述文件对象的底层数据结构中的路径作为所述程序进程的进程路径。
具体地,在步骤S11中,对于与运行于虚拟化环境中的程序相关联的文件对象,可以例如通过与操作***交互或通过与文件***交互等方式来获取该文件对象的底层数据结构。
接着,在步骤S12中,在所述文件对象的底层数据结构中使用非虚拟化环境路径,以用于指示与所述文件对象相关联的路径。如上文所述,虚拟化环境路径意指与虚拟化环境,例如沙箱环境相关的路径,例如沙箱路径。相应地,非虚拟化环境路径意指该计算机***的真实环境路径。为便于描述和理解,在下文中,将以路径名中包括“sandbox”的路径作为虚拟化环境路径,并以路径名中不包括“sandbox”的路径作为非虚拟化环境路径。
具体地,在步骤S12中,可通过与操作***交互,或直接操作相应内存地址中的数据等方式,来在所述文件对象的底层数据结构中使用非虚拟化环境路径,以用于指示与所述文件对象相关联的路径。如上文所述,当通过操作用户态句柄来获取文件对象的底层数据结构中所包括的路径时,所获取到的路径将为非虚拟化环境路径。应注意的是,当文件物理存储于虚拟化环境中,例如沙箱中时,其实际文件路径为沙箱路径。因此,在步骤S12中所使用的非虚拟化环境路径与该文件的实际文件路径不同。
在一个优选实施例中,在步骤S12中,可根据虚拟化环境路径与非虚拟化环境路径之间的映射关系,在所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。例如,当文件物理存储于虚拟化环境中,例如沙箱中时,其实际文件路径应包括该虚拟化环境路径,例如沙箱路径c:\sandbox。假定该沙箱路径c:\sandbox映射到非虚拟化环境路径c:\,则可根据该映射关系,在该文件对应的文件对象的CCB结构中使用非虚拟化环境路径c:\以指示该文件的路径。
在一个实施例中,可以配置虚拟化环境路径与非虚拟化环境路径之间的映射关系。例如,接上例,可以根据实际需要来配置沙箱路径c:\sandbox映射到非虚拟化环境路径c:\。此外,还可以根据实际需要来调整虚拟化环境路径与非虚拟化环境路径之间的映射关系,例如将c:\sandbox调整为映射到非虚拟化环境路径d:\。
在一个实施例中,在步骤S11中,对于与运行于虚拟化环境中的程序相关联的文件对象,将创建所述文件对象的底层数据结构。例如,对于运行于沙箱中的程序P1,该程序P1将创建文件F1,该文件F1将被置于沙箱环境中,其实际存储在c:\sandbox目录下。对于该文件F1所对应的文件对象FO1,可以通过调用Windows操作***所提供驱动库函数来创建该文件对象FO1的底层数据结构,例如NTFS文件***的CCB结构。接着,在步骤S12中,在所创建的所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。具体地,可以例如通过修改操作***的驱动库函数来在所创建的文件对象的底层数据结构中使用非虚拟化环境路径,而不再使用虚拟化环境路径。接上例,对于文件对象FO1的CCB结构,将使用非虚拟化环境路径c:\来指示与所述文件对象FO1相关联的路径,也即文件F1的路径。或者,当虚拟化环境路径c:\sandbox映射到非虚拟化环境路径d:\时,对于文件对象FO1的CCB结构,可使用非虚拟化环境路径d:\来指示文件F1的路径。
在另一个实施例中,在步骤S11中,对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的已有的底层数据结构。例如,对于运行于沙箱中的程序P1,该程序P1创建了文件F1,该文件F1位于沙箱环境中,其实际存储在c:\sandbox目录下。相应地,操作***为该文件F1创建了文件对象为FO1,并为该文件对象FO1创建了底层数据结构CCB结构,其中该CCB结构中包括沙箱环境路径c:\sandbox,其为虚拟化环境路径。可以例如通过与操作***交互来获取该文件对象FO1的CCB结构。或者可以修改操作***的驱动库函数来在创建CCB结构时发送消息,当接收到该创建CCB结构的消息后,可基于该消息来获取该CCB结构。接着,在步骤S12中,可以将所述文件对象的所述底层数据结构中的虚拟化环境路径修改为非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。接上例,可以通过对相应内存地址的内容直接进行操作来将该文件对象FO1的CCB结构中的虚拟化环境路径c:\sandbox修改为非虚拟化环境路径c:\以指示该文件对象FO1所对应的文件F1的路径。或者,当虚拟化环境路径c:\sandbox映射到非虚拟化环境路径d:\时,可以将该文件对象FO1的CCB结构中的虚拟化环境路径c:\sandbox修改为非虚拟化环境路径d:\。
本领域技术人员应理解,此处,对于将虚拟化路径修改为非虚拟化路径的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个实施例中,所述与运行于虚拟化环境中的程序相关联的文件对象为与所述程序的映像文件相关联的文件对象。该程序的进程对象将所述文件对象的底层数据结构中的非虚拟化环境路径作为所述程序进程的进程路径。此处,程序的进程对象指该运行的程序的进程在计算机***的操作***中的表示。例如,假设程序的映像文件为P1.exe,其存放于沙箱环境目录c:\sandbox中,也即该映像文件P1.exe的实际路径为虚拟环境路径c:\sandbox。假定c:\sandbox映射到非虚拟化环境路径d:\。按照上文所述的方法,可在该映像文件P1.exe相关联的文件对象FO1的底层数据结构CCB结构中使用非虚拟化环境路径d:\。则对于该程序的进程对象,其将该映像文件P1.exe所对应的文件对象FO1的该CCB结构中的非虚拟化环境路径d:\做为该程序进程的进程路径。也即,该程序将认为其进程路径为非虚拟化环境路径d:\,从而不会感知到其自身运行于虚拟化环境中。
在一个实施例中,所述计算机***基于Windows操作***,所述虚拟化环境为沙箱环境,所述底层数据结构为CCB数据结构。
图2示出根据本发明另一个方面的实施例的用于增强计算机***安全性的装置的示意图。
本发明方法通过计算机设备实现。所述计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
在根据本发明的一个实施例中,所述计算机***基于Windows操作***,所述虚拟化环境为沙箱环境,所述底层数据结构为CCB数据结构。为便于理解,如无特别另有说明,下文中的计算机***为基于Windows操作***,使用NTFS(New Technology File System,新技术文件***)文件***,并在该Windows操作***上利用沙箱技术来提供虚拟化环境。本领域技术人员应理解,本发明原理也可适用于基于使用FAT(File Allocation Table,文件分配表)文件***的Windows操作***或其他类似操作***的计算机***。
如图2所示,该用于增强计算机***安全性的装置包括用于对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构的装置21,以下简称获取装置21;以及用于在所述文件对象的底层数据结构中使用非虚拟化环境路径的装置22,以下简称非虚拟化环境路径使用装置22,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径
首先,获取装置21对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构。
此处,文件对象意指与运行的程序相关联的文件在操作***中的表示。文件对象的底层数据结构意指该文件对象在文件***中的底层数据结构,例如上文所述的CCB结构。
与程序相关联的文件对象指该程序运行所涉及的文件对象。例如,对于运行Windows操作***上的程序,其相关联的文件对象可以包括该程序的用户态文件句柄所对应的内核态的文件对象,其中,该程序的用户态文件句柄可以为与该程序所使用的文件相关的文件句柄、与该程序所使用的命名管道相关的文件句柄等任何Windows操作***所支持的文件句柄。特别地,该程序相关联的文件对象可以为与该程序的映像文件相关联的文件对象。该程序的进程对象将所述文件对象的底层数据结构中的路径作为所述程序进程的进程路径。
具体地,获取装置21对于与运行于虚拟化环境中的程序相关联的文件对象,可以例如通过与操作***交互或通过与文件***交互等方式来获取该文件对象的底层数据结构。
接着,非虚拟化环境路径使用装置22在所述文件对象的底层数据结构中使用非虚拟化环境路径,以用于指示与所述文件对象相关联的路径。如上文所述,虚拟化环境路径意指与虚拟化环境,例如沙箱环境相关的路径,例如沙箱路径。相应地,非虚拟化环境路径意指该计算机***的真实环境路径。为便于描述和理解,在下文中,将以路径名中包括“sandbox”的路径作为虚拟化环境路径,并以路径名中不包括“sandbox”的路径作为非虚拟化环境路径。
具体地,非虚拟化环境路径使用装置22可通过与操作***交互,或直接操作相应内存地址中的数据等方式,来在所述文件对象的底层数据结构中使用非虚拟化环境路径,以用于指示与所述文件对象相关联的路径。如上文所述,当通过操作用户态句柄来获取文件对象的底层数据结构中所包括的路径时,所获取到的路径将为非虚拟化环境路径。应注意的是,当文件物理存储于虚拟化环境中,例如沙箱中时,其实际文件路径为沙箱路径。因此,非虚拟化环境路径使用装置22所使用的非虚拟化环境路径与该文件的实际文件路径不同。
在一个优选实施例中,非虚拟化环境路径使用装置22可根据虚拟化环境路径与非虚拟化环境路径之间的映射关系,在所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。例如,当文件物理存储于虚拟化环境中,例如沙箱中时,其实际文件路径应包括该虚拟化环境路径,例如沙箱路径c:\sandbox。假定该沙箱路径c:\sandbox映射到非虚拟化环境路径c:\,则非虚拟化环境路径使用装置22可根据该映射关系,在该文件对应的文件对象的CCB结构中使用非虚拟化环境路径c:\以指示该文件的路径。
在一个实施例中,所述用于增强计算机***安全性的装置还包括用于配置虚拟化环境路径与非虚拟化环境路径之间的映射关系的装置,以下简称配置装置23(未示出)。配置装置23可以配置虚拟化环境路径与非虚拟化环境路径之间的映射关系。例如,接上例,配置装置23可以根据实际需要来配置沙箱路径c:\sandbox映射到非虚拟化环境路径c:\。此外,配置装置23还可以根据实际需要来调整虚拟化环境路径与非虚拟化环境路径之间的映射关系,例如将c:\sandbox调整为映射到非虚拟化环境路径d:\。
在一个实施例中,获取装置21对于与运行于虚拟化环境中的程序相关联的文件对象,将创建所述文件对象的底层数据结构。例如,对于运行于沙箱中的程序P1,该程序P1将创建文件F1,该文件F1将被置于沙箱环境中,其实际存储在c:\sandbox目录下。对于该文件F1所对应的文件对象FO1,获取装置21可以通过调用Windows操作***所提供驱动库函数来创建该文件对象FO1的底层数据结构,例如NTFS文件***的CCB结构。接着,非虚拟化环境路径使用装置22在所创建的所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。具体地,非虚拟化环境路径使用装置22可以例如通过修改操作***的驱动库函数来在所创建的文件对象的底层数据结构中使用非虚拟化环境路径,而不再使用虚拟化环境路径。接上例,对于文件对象FO1的CCB结构,非虚拟化环境路径使用装置22将使用非虚拟化环境路径c:\来指示与所述文件对象FO1相关联的路径,也即文件F1的路径。或者,当虚拟化环境路径c:\sandbox映射到非虚拟化环境路径d:\时,对于文件对象FO1的CCB结构,非虚拟化环境路径使用装置22可使用非虚拟化环境路径d:\来指示文件F1的路径。
在另一个实施例中,获取装置21对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的已有的底层数据结构。例如,对于运行于沙箱中的程序P1,该程序P1创建了文件F1,该文件F1位于沙箱环境中,其实际存储在c:\sandbox目录下。相应地,操作***为该文件F1创建了文件对象为FO1,并为该文件对象FO1创建了底层数据结构CCB结构,其中该CCB结构中包括沙箱环境路径c:\sandbox,其为虚拟化环境路径。获取装置21可以例如通过与操作***交互来获取该文件对象FO1的CCB结构。或者获取装置21可以修改操作***的驱动库函数来在创建CCB结构时发送消息,当接收到该创建CCB结构的消息后,可基于该消息来获取该CCB结构。接着,非虚拟化环境路径使用装置22可以将所述文件对象的所述底层数据结构中的虚拟化环境路径修改为非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。接上例,非虚拟化环境路径使用装置22可以通过对相应内存地址的内容直接进行操作来将该文件对象FO1的CCB结构中的虚拟化环境路径c:\sandbox修改为非虚拟化环境路径c:\以指示该文件对象FO1所对应的文件F1的路径。或者,当虚拟化环境路径c:\sandbox映射到非虚拟化环境路径d:\时,非虚拟化环境路径使用装置22可以将该文件对象FO1的CCB结构中的虚拟化环境路径c:\sandbox修改为非虚拟化环境路径d:\。
本领域技术人员应理解,此处,对于将虚拟化路径修改为非虚拟化路径的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个实施例中,所述与运行于虚拟化环境中的程序相关联的文件对象为与所述程序的映像文件相关联的文件对象。该程序的进程对象将所述文件对象的底层数据结构中的非虚拟化环境路径作为所述程序进程的进程路径。此处,程序的进程对象指该运行的程序的进程在计算机***的操作***中的表示。例如,假设程序的映像文件为P1.exe,其存放于沙箱环境目录c:\sandbox中,也即该映像文件P1.exe的实际路径为虚拟环境路径c:\sandbox。假定c:\sandbox映射到非虚拟化环境路径d:\。按照上文所述的方法,非虚拟化环境路径使用装置22可在该映像文件P1.exe相关联的文件对象FO1的底层数据结构CCB结构中使用非虚拟化环境路径d:\。则对于该程序的进程对象,其将该映像文件P1.exe所对应的文件对象FO1的该CCB结构中的非虚拟化环境路径d:\做为该程序进程的进程路径。也即,该程序将认为其进程路径为非虚拟化环境路径d:\,从而不会感知到其自身运行于虚拟化环境中。
在一个实施例中,所述计算机***基于Windows操作***,所述虚拟化环境为沙箱环境,所述底层数据结构为CCB数据结构。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
虽然前面特别示出并且描述了示例性实施例,但是本领域技术人员将会理解的是,在不背离权利要求书的精神和范围的情况下,在其形式和细节方面可以有所变化。这里所寻求的保护在所附权利要求书中做了阐述。
Claims (14)
1.一种用于增强计算机***安全性的方法,其中,该方法包括:
-对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构;
-在所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
2.根据权利要求1所述的方法,其中,所述对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构的步骤包括:
-对于与运行于虚拟化环境中的程序相关联的文件对象,创建所述文件对象的底层数据结构;
其中,所述在所述文件对象的底层数据结构中使用非虚拟化环境路径的步骤包括:
-在所创建的所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
3.根据权利要求1所述的方法,其中,所述对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构的步骤包括:
-对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的已有的底层数据结构;
其中,所述在所述文件对象的底层数据结构中使用非虚拟化环境路径的步骤包括:
-将所述文件对象的所述底层数据结构中的虚拟化环境路径修改为非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
4.根据权利要求1至3中任一项所述的方法,其中,所述在所述文件对象的底层数据结构中使用非虚拟化环境路径的步骤包括:
-根据虚拟化环境路径与非虚拟化环境路径之间的映射关系,在所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
5.根据权利要求4所述的方法,其中,还包括:
-配置虚拟化环境路径与非虚拟化环境路径之间的映射关系。
6.根据权利要求1至5中任一项所述的方法,其中,所述计算机***基于Windows操作***,所述虚拟化环境为沙箱环境,所述底层数据结构为CCB数据结构。
7.根据权利要求1至6中任一项所述的方法,其中,所述与运行于虚拟化环境中的程序相关联的文件对象为与所述程序的映像文件相关联的文件对象,所述程序的进程对象将所述文件对象的底层数据结构中的非虚拟化环境路径作为所述程序进程的进程路径。
8.一种用于增强计算机***安全性的装置,其中,该装置包括:
-用于对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构的装置;
-用于在所述文件对象的底层数据结构中使用非虚拟化环境路径的装置,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
9.根据权利要求8所述的装置,其中,所述用于对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构的装置用于:
-对于与运行于虚拟化环境中的程序相关联的文件对象,创建所述文件对象的底层数据结构;
其中,所述用于在所述文件对象的底层数据结构中使用非虚拟化环境路径的装置用于:
-在所创建的所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
10.根据权利要求8所述的装置,其中,所述用于对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的底层数据结构的装置用于:
-对于与运行于虚拟化环境中的程序相关联的文件对象,获取所述文件对象的已有的底层数据结构;
其中,所述用于在所述文件对象的底层数据结构中使用非虚拟化环境路径的装置用于:
-将所述文件对象的所述底层数据结构中的虚拟化环境路径修改为非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
11.根据权利要求8至10中任一项所述的装置,其中,所述用于在所述文件对象的底层数据结构中使用非虚拟化环境路径的装置用于:
-根据虚拟化环境路径与非虚拟化环境路径之间的映射关系,在所述文件对象的底层数据结构中使用非虚拟化环境路径,所述非虚拟化环境路径用于指示与所述文件对象相关联的路径。
12.根据权利要求11所述的装置,其中,还包括:
-用于配置虚拟化环境路径与非虚拟化环境路径之间的映射关系的装置。
13.根据权利要求8至12中任一项所述的装置,其中,所述计算机***基于Windows操作***,所述虚拟化环境为沙箱环境,所述底层数据结构为CCB数据结构。
14.根据权利要求8至13中任一项所述的装置,其中,所述与运行于虚拟化环境中的程序相关联的文件对象为与所述程序的映像文件相关联的文件对象,所述程序的进程对象将所述文件对象的底层数据结构中的非虚拟化环境路径作为所述程序进程的进程路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510111889.5A CN104751057B (zh) | 2015-03-13 | 2015-03-13 | 一种用于增强计算机***安全性的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510111889.5A CN104751057B (zh) | 2015-03-13 | 2015-03-13 | 一种用于增强计算机***安全性的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104751057A true CN104751057A (zh) | 2015-07-01 |
CN104751057B CN104751057B (zh) | 2018-08-24 |
Family
ID=53590729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510111889.5A Active CN104751057B (zh) | 2015-03-13 | 2015-03-13 | 一种用于增强计算机***安全性的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104751057B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488414A (zh) * | 2015-09-25 | 2016-04-13 | 深圳市安之天信息技术有限公司 | 一种防止恶意代码探测虚拟环境的方法及*** |
CN105718793A (zh) * | 2015-09-25 | 2016-06-29 | 哈尔滨安天科技股份有限公司 | 基于修改沙箱环境防止恶意代码识别沙箱的方法及*** |
CN106709352A (zh) * | 2015-11-12 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 样本处理方法、装置及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307414A1 (en) * | 2007-06-05 | 2008-12-11 | International Business Machines Corporation | Creating a virtual machine image with a software deployment system |
CN101373502A (zh) * | 2008-05-12 | 2009-02-25 | 公安部第三研究所 | 基于Win32平台下病毒行为的自动化分析*** |
CN101593259A (zh) * | 2009-06-29 | 2009-12-02 | 北京航空航天大学 | 软件完整性验证方法及*** |
CN102609649A (zh) * | 2012-02-06 | 2012-07-25 | 北京百度网讯科技有限公司 | 一种自动采集恶意软件的方法和装置 |
CN103020525A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 虚拟机***的反检测方法和装置 |
US20140317745A1 (en) * | 2013-04-19 | 2014-10-23 | Lastline, Inc. | Methods and systems for malware detection based on environment-dependent behavior |
-
2015
- 2015-03-13 CN CN201510111889.5A patent/CN104751057B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307414A1 (en) * | 2007-06-05 | 2008-12-11 | International Business Machines Corporation | Creating a virtual machine image with a software deployment system |
CN101373502A (zh) * | 2008-05-12 | 2009-02-25 | 公安部第三研究所 | 基于Win32平台下病毒行为的自动化分析*** |
CN101593259A (zh) * | 2009-06-29 | 2009-12-02 | 北京航空航天大学 | 软件完整性验证方法及*** |
CN102609649A (zh) * | 2012-02-06 | 2012-07-25 | 北京百度网讯科技有限公司 | 一种自动采集恶意软件的方法和装置 |
CN103020525A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 虚拟机***的反检测方法和装置 |
US20140317745A1 (en) * | 2013-04-19 | 2014-10-23 | Lastline, Inc. | Methods and systems for malware detection based on environment-dependent behavior |
Non-Patent Citations (1)
Title |
---|
彭晓曦 等: "Windows可安装文件***应用研究", 《微计算机信息》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488414A (zh) * | 2015-09-25 | 2016-04-13 | 深圳市安之天信息技术有限公司 | 一种防止恶意代码探测虚拟环境的方法及*** |
CN105718793A (zh) * | 2015-09-25 | 2016-06-29 | 哈尔滨安天科技股份有限公司 | 基于修改沙箱环境防止恶意代码识别沙箱的方法及*** |
CN106709352A (zh) * | 2015-11-12 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 样本处理方法、装置及*** |
CN106709352B (zh) * | 2015-11-12 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 样本处理方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104751057B (zh) | 2018-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10025615B2 (en) | Dynamic guest virtual machine identifier allocation | |
US20200401698A1 (en) | Analysis system, analysis method, analysis device, and storage medium | |
CN104392175A (zh) | 一种云计算***中云应用攻击行为处理方法、装置及*** | |
CN107807839B (zh) | 一种修改虚拟机内存数据的方法、装置及电子设备 | |
US20170097837A1 (en) | Binary editing of applications executed by virtual machines | |
CN103530167A (zh) | 一种虚拟机内存数据的迁移方法及相关装置和集群*** | |
US10031817B2 (en) | Checkpoint mechanism in a compute embedded object storage infrastructure | |
WO2014004554A1 (en) | Method and apparatus for virtual machine interoperability | |
CN104239122A (zh) | 一种虚拟机迁移方法和装置 | |
CN107977256A (zh) | 一种对fpga加速卡的访问方法、装置及介质 | |
CN105989252A (zh) | 一种针对函数级别加壳的脱壳方法及*** | |
CN104883384A (zh) | 一种为轻应用提供客户端的端能力的方法与装置 | |
CN111459609B (zh) | 虚拟机安全防护方法、装置及电子设备 | |
CN104751057A (zh) | 一种用于增强计算机***安全性的方法及装置 | |
CN105488415A (zh) | 扫描***进程的方法和装置 | |
US10467078B2 (en) | Crash dump extraction of guest failure | |
US10146569B2 (en) | Template based software scans | |
CN105335203A (zh) | 共享库的二进制翻译执行方法和装置 | |
US9304874B2 (en) | Virtual machine-guest driven state restoring by hypervisor | |
WO2019022871A1 (en) | JOINT ACCESS TO AN ISOLATED COMPUTER OBJECT | |
CN104765680A (zh) | 一种用于软件自动测试的方法及装置 | |
US10102007B2 (en) | Simultaneously capturing status information for multiple operating modes | |
RU2013146656A (ru) | Способ и система одновременной установки множества приложений с помощью восстановления ложного резервного архива | |
US20200153797A1 (en) | Secure Use of Dual Networks | |
WO2021096399A1 (en) | Secure system virtual machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190814 Address after: 100085 Beijing, Haidian District, No. ten on the ground floor, No. 10 Baidu building, layer 2 Patentee after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. Address before: 100091 C, block, building No. 4, Zhongguancun Software Park, No. 8, West flourishing West Road, Beijing, China 1-03 Patentee before: Pacify a Heng Tong (Beijing) Science and Technology Ltd. |
|
TR01 | Transfer of patent right |