实时模块保护的制作方法_4

文档序号:8449222阅读:来源:国知局
部或部分由图1中的Ο/S下层捕获代理104或触发事件处理器108、图2中的SVMM 216或SVMM安全代理217、和/或其任意组合的功能实现,或被配置为实现图1中的Ο/S下层捕获代理104或触发事件处理器108、图2中的SVMM 216或SVMM安全代理217、和/或其任意组合的功能。
[0097]安全规则408可由图1中的安全规则114、图2中的安全规则222和/或其任意组合的功能实现,或被配置为实现图1中的安全规则114、图2中的安全规则222和/或其任意组合的功能。安全规则421可由图2中的安全规则220的功能实现,或被配置为实现图2中的安全规则220的功能。
[0098]Ο/S下层安全代理420可被配置为截获对电子设备401的存储器的访问。这种存储器可包括,例如,对物理存储器403的地址的尝试访问或对虚拟存储器404的页的尝试访问。这种尝试访问可源自操作系统413或利用操作系统413而在电子设备401上运行的实体,例如应用程序410或驱动程序411。
[0099]在一个实施例中,由Ο/S下层安全代理420保护的存储器可包括虚拟存储器404。虚拟存储器404可包括从物理存储器和/或存储设备抽象(abstract)出来的对实体(例如,操作系统413、应用程序410或驱动程序411)可用的存储器。尽管所使用的实际空间可跨越例如物理存储器403和/或例如盘上的存储等实际物理存储器而离散地分布,但是对诸如操作系统413、应用程序410或驱动程序411这样的实体来说,虚拟存储器404可表现为连续的存储器块。虚拟存储器404可根据处理器402的扩展被虚拟化。虚拟存储器404的地址空间可被分成存储器页。每个存储器页可尺寸相同,例如为四千字节。电子设备401可被配置为使用页表而将虚拟存储器404的虚拟地址转换成诸如物理存储器403的存储器的物理地址或存储设备的地址。电子设备401可包括存储器管理单元414 ( “MMU”),存储器管理单元414被配置为将虚拟存储器404的虚拟地址转换为诸如物理存储器403的存储器的物理地址和/或存储设备的地址。虚拟存储器404的页可被索引。对虚拟存储器404页的尝试访问可包括对页的尝试读取、写入或执行,并且Ο/S下层安全代理420可被配置为捕获所述尝试。在一个实施例中,虚拟存储器404的页可与物理存储器地址或存储设备的地址相对应。在另一实施例中,每个虚拟存储器404的页可对应于物理存储器地址。在又一实施例中,包含某些内容的页(例如,操作系统413的特定部分)可在电子设备401的操作期间被固定(Pin)并且可不改变。
[0100]在另一实施例中,由Ο/S下层安全代理420保护的存储器可包括物理存储器403。可通过物理存储器的地址访问物理存储器403,所述地址如标记(A)、(B)、(C)、(D)、(E)、(F)、(G)、⑶、(I)、(J)和⑷所示出的,其表示物理存储器403中的特定地址,所述特定地址可以是包含已定义元素的存储器范围的基地址。可通过对特定的存储器地址尝试的读取、写入或执行来访问物理存储器403,并且Ο/S下层安全代理420可被配置为捕获所述尝试。例如,所尝试的写入可采取指令“MOV Addrl,Value(移动地址1,值)”的形式,其中,由变量“Value (值)”表示的值被写入到由“Addrl (地址I) ”表示的特定存储器地址。可使用写入到物理存储器403地址的任何指令。所尝试的读取可采取例如“MOV Value,Addrl (移动值,地址I) ”的指令的形式,其中,从由“Addrl”表示的特定存储器地址读取由变量“Value (值)”表示的值。可使用从物理存储器403地址读取的任何指令。所尝试的执行可采取在给定地址(例如,“Addrl”)处的指令的形式。可使用用于执行存储器中地址的任何指令。
[0101 ] Ο/S下层安全代理420可被配置为截获对虚拟存储器404的尝试访问。此外,下层Ο/S安全代理420可是被配置为截获对物理存储器403的尝试访问。在一个实施例中,可不截获对虚拟存储器404的请求,但截获在MMU已经把虚拟存储器404页转换成物理存储器403地址之后的对物理存储器403的随后的相对应的尝试访问,Ο/S下层安全代理420可被配置为截获对物理存储器的尝试访问。在另一实施例中,可直接做出对物理存储器403的尝试访问而不需要通过虚拟存储器404转换,并且Ο/S下层安全代理420可被配置为截获所尝试的访问。在又一实施例中,可截获对虚拟存储器404做出的尝试访问,但Ο/S下层安全代理420可不被配置为截获随后对物理存储器403地址的访问。
[0102]Ο/S下层安全代理420可通信地耦合到Ο/S内安全代理419。Ο/S下层安全代理420可被配置为从Ο/S内安全代理419接收关于对电子设备401的存储器的尝试访问的上下文信息。由Ο/S内安全代理419提供的上下文信息可包括已经尝试对电子设备401的存储器特定访问的实体的标识。
[0103]Ο/S下层安全代理420可通信地耦合到或包括存储器映射406。存储器映射406可在文件、记录、数据结构或其他合适的实体中实现。存储器映射406可包括关于电子设备401的各种实体在存储器中的位置的信息。例如,如果进程被加载到电子设备401的存储器中以供执行,则存储器映射406可以包括与虚拟存储器404中的哪些存储器页或物理存储器403中哪些的地址范围包含所述进程有关的信息。根据电子设备401中的存储器的虚拟化的实现,所述进程的所有内容可以或者可以不被加载到物理存储器403中,这是因为一些内容可被加载到诸如盘的存储设备中。对于这种要访问的内容,它们可被加载到物理存储器403中。在这种情况下,存储器映射406可包含关于内容所存储的地址是在物理存储器403中还是在诸如盘的存储设备中的信息。Ο/S下层安全代理420可被配置为使用存储器映射406来确定虚拟存储器404页或物理存储器403地址中的任何给定内容的标识或所有者。例如,Ο/S下层安全代理420可通过剖析(profile)操作系统413的操作并随后确定各种敏感的组件在存储器中的位置,来构建存储器映射406?当做出对存储器的尝试访问时(例如,加载操作系统413内核,或执行内核模式指令),0/S下层安全代理420可被配置为与Ο/S内安全代理419进行通信以确定正在加载或执行操作系统413的什么部分。在另一示例中,Ο/S下层安全代理420可被配置为确定这样的虚拟存储器404页的存储器范围的内容的散列或数字签名。可将散列或数字签名与可在安全规则408中所包含的或从保护服务器202获得的已知值进行比较。已知值可以是先前的特性化(characterizat1n)的结果,其中例如已经标识操作系统413的一些部分。要映射的元素可由安全规则408确定。Ο/S下层安全代理420可被配置为在将元素从电子设备401中的存储器的一个位置复制到另一位置时,追踪该元素在存储器映射406中的移动。
[0104]图5示出了存储器映射的示例实施例。在一个实施例中,虚拟存储器映射502可包括要通过元素在虚拟存储器中的位置而被追踪的这些元素的映射。在另一实施例中,物理存储器映射504可包括要通过元素在物理存储器中的位置而被追踪的这些元素的映射。在各种实施例中,虚拟存储器映射502和物理存储器映射504可被映射到一起,从而可在两种映射中追踪元素。
[0105]虚拟存储器映射502可反映十个不同的虚拟存储器页。例如,虚拟存储器映射502可示出可在存储器页一和存储器页二中找到内核操作系统数据结构(例如,页目录)。在另一示例中,可在存储器页四到六中找到被称为“Fnl”的特定的进程、函数或例程的元素。在又一示例中,可在页八中找到针对系统服务调度表(“SSDT”)的权限(permiss1n)的数据结构。在再一示例中,可在存储器页八和存储器页九中找到被称为“Fn2”的特定的进程、函数或例程的元素。
[0106]物理存储器映射504可用物理存储器反映元素的位置。物理存储器中的元素的一些部分可跨存储器分布在不邻近的片段或块中。此外,物理存储器中元素的一些部分可跨存储器以任意的顺序分布。每一片段的尺寸可改变。片段可在偏移于基地址的地址处开始。图5中示出的示例基地址是00x000,终止于地址FFxFFF处。表示物理存储器各片段开始的地址用(A)-(O)表示。对于被包含在物理存储器的多个片段内的元素,可记录元素的次序。在物理存储器中,元素的多个片段可由指针链接在一起,其中元素的一个片段的结束可指向元素的下一片段。
[0107]例如,Fnl可被映射到在(A)和(B)、(J)和(K)以及(M)和(N)之间的片段。在另一示例中,SSDT权限可被映射到在(G)和(H)之间的片段。在又一示例中,页目录数据结构可被映射到在(O)和FFxFFF、(F)和(G)、以及⑴和(J)之间的片段。在又一示例中,Fn2可被映射到在⑶和⑴、以及⑶和(C)之间的片段。
[0108]返回到图4,0/S下层安全代理420可被配置为查询安全规则408以确定要保护存储器的哪些部分、以及如何保护它们。例如,安全规则408可被配置为表明页目录数据结构仅可由电子设备401的某些特权实体写入。因而,可捕获对写入页目录数据结构的尝试,并可检查尝试该写入的元素以确定它们是安全的、未知的还是已知是不安全的。0/S下层安全代理420可被配置为查询存储器映射406以确定页目录数据结构在存储器中的位置。如果0/S下层安全代理420例如完全地或部分地在虚拟机监视器中实现,则0/S下层安全代理420可被配置为在控制结构中设置标志以捕获对虚拟存储器404的存储器页I和/或2的任何尝试写入。在另一示例中,如果下层0/S安全代理420完全地或部分地以微代码实现,则0/S下层安全代理420可被配置为在控制结构中设置标志以捕获对在物理存储器403的地址(O)和FFxFFF、(F)和(G)、以及⑴和(J)之间的地址范围内的存储器地址的任何尝试写入。
[0109]在另一示例中,安全规则408可被配置为表明Fnl仅可由电子设备的某些特权实体调用。因而,可捕获对执行Fnl的尝试,并可检查调用Fnl的元素以确定它们是安全的、未知的还是已知为不安全的。0/S下层安全代理420可被配置为查询存储器映射406以确定Fnl在存储器中驻留的位置。如果0/S下层安全代理420例如完全地或部分地在虚拟机监视器中实现,则0/S下层安全代理420可被配置为在控制结构中设置标志以捕获对虚拟存储器404的存储器页4、5和/或6的尝试执行。在另一示例中,如果下层0/S安全代理420完全地或部分地以微代码实现,则0/S下层安全代理420可被配置为在控制结构中设置标志以捕获对物理存储器403的存储器地址(A)的任何尝试执行。在一些情况下,其中Fnl的不同部分可被分离地执行,0/S下层安全代理420可被配置为捕获对在物理存储器403的
(A)和(B)、(M)和(N)、地址(O)和 FFxFFF, (F)和(G)、(J)和(K)或(I)和(J)之间的范围内的任何存储器地址的任何的尝试执行。
[0110]在一个实施例中,Ο/S下层安全代理420可被配置为查询Ο/S内安全代理419以确定哪个实体已经做出了调用以写入到存储器,随后这被用来确定该实体是否被授权而进行写入。在另一实施例中,Ο/s下层安全代理420可被配置为确定请求所来自的虚拟存储器404的存储器页、并查询存储器映射406以确定这样的存储器页是否与其中所映射的任何元素相关联。在又一实施例中,Ο/S下层安全代理420可被配置为确定请求元素的存储器页的散列或签名并将其与已知实体的散列和签名进行比较。
[0111]如果Ο/S下层安全代理420全部或部分地由微代码实现,则下层Ο/S安全代理420可被配置为确定尝试进行写入的指令的地址。在一个实施例中,Ο/s下层安全代理420可被配置为通过检查指令指针以确定在物理存储器403中的何处做出所述指令来做出这种确定。在另一实施例中,通过访问存储器映射406,Ο/S下层安全代理420可被配置为从存储器映射406确定与该地址相关联的元素。在又一实施例中,Ο/S下层安全代理420可被配置为确定请求元素的散列或签名并将其与已知实体的散列和签名进行比较。
[0112]一旦捕获了对存储器的尝试访问,则Ο/S下层安全代理420可被配置为访问安全规则408,以基于所标识的请求实体而确定如何处理所捕获的尝试。例如,安全规则408可定义仅操作系统413的某些指定的内核部分可调用和执行Fnl,或者仅已知为安全的且在白名单上的实体可写入SSDT的权限。Ο/S下层安全代理420随后可被配置为采取任何适当的动作,例如允许请求进行、拒绝请求、欺骗响应或所写的值、或执行校正进程。
[0113]在操作中,Ο/S下层安全代理420可在电子设备401的操作系统(例如,操作系统413)的层级以下运行。Ο/S下层安全代理420可访问安全规则408以确定要保护的电子设备401的哪些存储器资源。Ο/S下层安全代理420可确定、开发和/或填充存储器映射406的内容。为此,Ο/S下层安全代理420可访问安全规则408、保护服务器202或任何其他合适的信息源以在存储器映射406中填充信息。Ο/S下层安全代理420可截获来自处于操作系统层级的实体(例如,操作系统413、应用查询410或驱动程序411)的对物理存储器403或虚拟存储器404的请求,以在存储器映射406中映射存储器的所有权和内容。Ο/S下层安全代理420可访问Ο/S内安全代理419以确定什么实体被加载到存储器中从而使得可填充存储器映射406。存储器映射406可包含用于物理存储器403、虚拟存储器404和/或在两者之间的映射的存储器映射。
[0114]Ο/S下层安全代理420可查询安全规则408以确定要保护虚拟存储器404和/或物理存储器403的哪些部分。安全规则408可指定在动态的基础上保护存储器的一些部分,其中,可由Ο/S下层安全代理420根据各种考虑而启用或禁用对存储器的保护。这种考虑可包括例如管理员设置、恶意行为或可疑行为的检测、时间、先前所检测到的对存储器的访问或任何其他合适的准则。如果保护电子设备401的存储器在计算资源方面是昂贵的,则这种动态启用和禁用可允许Ο/S下层安全代理420更好地保护电子设备401的存储器的关键部分,同时减少对电子设备401执行其他任务的能力的副作用。例如,包含操作系统413的内核代码的内容的存储器可一直受到Ο/S下层安全代理420的保护,同时包含第三方应用410的代码的内容的存储器恶意软件存在或可影响第三方应用程序410的可仅在其他指示时受到保护。
[0115]Ο/S下层安全代理420可在控制结构中设置标志以捕获对物理存储器403和/或虚拟存储器404的尝试访问。在一个实施例中,当从操作系统413中的实体做出对被指定为要被捕获的虚拟存储器404中的存储器页的请求时,Ο/S下层安全代理420可截获所尝试的请求。在另一实施例中,当做出对虚拟存储器404中的存储器页的请求时,Ο/S下层安全代理可允许由MMU 414将该请求转换成对物理存储器403中的地址的请求,于是Ο/S下层安全代理可截获所尝试的请求。在又一实施例中,当从操作系统413中的实体直接请求物理存储器403中的地址时,Ο/S下层安全代理420可截获所尝试的请求。
[0116]—旦截获了请求,Ο/S下层安全代理420就可使用任何合适的机制来评估所截获的对存储器的请求。安全规则408可被用来确定所述尝试是否可疑,表明由恶意软件对使用电子设备401的资源的恶意尝试。安全规则408可包括以下考虑:例如,是否尝试读取、写入或执行;什么实体做出尝试;所访问的存储器地址或页;由同一请求者的先前的尝试或动作;电子由设备401的管理员进行的安全设置,例如基于电子设备401的用户的或多或少限制性的规则;或如由存储器位置和/或数字签名或散列确定的、或根据相关的页或存储器地址确定的请求者的标识。
[0117]例如,可由Ο/S下层安全代理420截获对虚拟存储器404的页2中的或在物理存储器403的地址(J)处的页目录数据结构的尝试写入。如果写入是来自未知进程的存储器的部分,则可由Ο/S下层安全代理420确定所述写入是可疑的。然而,如果所述尝试写入来自操作系统413内核中已知的经验证的部分,则可确定所述尝试不是可疑的。同样地,可截获对在虚拟存储器404的页八处的或在物理存储器403的地址(H)处的Fn2的尝试执行。如果所述尝试执行是从用户输入做出的,则可确定所述执行不是可疑的。如果尝试执行是从另一程序的存储器做出的,并且所述程序不在经核准的列表上,则可确定所述尝试是恶意的。
[0118]在另一示例中,如果Fnl通常是出于互操作性的目的而向其他应用程序暴露其高速缓存的网络浏览器,则Ο/s下层安全代理420可允许Fnl的存储器页或存储器地址的指定部分由其他应用程序读取。然而,如果Fnl包含应被保持为私有的元数据或其他信息,则Ο/S下层安全代理420可保护Fnl的存储器页或存储器地址的那些部分而避免来自除Fnl其自身以外的任何进程的读取。
[0119]一旦程序被确定为是可疑的、恶意的或者另指示恶意软件,则Ο/S下层安全代理420可采取任何合适的纠正动作。Ο/S下层安全代理420可例如拒绝对虚拟存储器404的存储器页2或物理存储器403的地址(J)的写入请求,但仍返回表明所述值已被写入的结果。可针对对访问电子设备401的资源的额外尝试而监视生成该请求的进程、可停止该进程,或者可将该进程从电子设备401清除。在另一示例中,对虚拟存储器404的页八或物理存储器403的地址(H)的尝试执行可相反被引导为对蜜罐进程或清除进程的执行。
[0120]由Ο/S下层安全代理420保护的存储器的内容可包括可能会受到恶意软件攻击的数据、代码或任何其他有用的系统资源。Ο/S下层安全代理420可保护存储器的内容而避免恶意软件,该恶意软件尝试例如读取、写入或钩挂表示出在电子设备401上运行的进程的机制、把其代码注入到被加载在存储器中的应用程序的部分、或改变虚拟存储器404的映射表的权限和访问标志。通过在操作系统413的层级以下操作,Ο/S下层安全代理420可避免在操作系统413中以内核模式层级处运行的恶意软件。Ο/S下层安全代理420可完成零日检测(zero-day detect1n),这是由于在一些情况中不需要这样的知识:请求实体的标识先前已经被确定为是恶意的——实体是未知的这一事实可被用来拒绝对电子设备401的存储器的一些部分的访问。如果操作系统413或在操作系统413中运行的反病毒或反恶意软件措施完全被破坏,则可从在操作系统的层级处运行的实体完全锁定存储器。
[0121]甚至在尝试对特定内容的读取、写入或执行之前,Ο/S下层安全代理420的一个应用可通过检测特定存储器页的权限的改变来检测对虚拟存储器404的内容的尝试访问。由MMU 414所使用的存储器表可驻留在存储器中、在虚拟存储器404的页自身中和/或在物理存储器403的地址中。对改变存储器表的值的尝试(例如将进程的代码分段的权限从“读取”改变为“写入”)本身可被Ο/S下层安全代理420捕获。虚拟存储器404的存储器页或物理存储器403的地址可由Ο/S下层安全代理420保护,并根据所捕获的将新值写到这一位置的权限中的尝试,下层Ο/S安全代理420可确定是否允许所述尝试的请求者做出这种改变。例如,如果改变进程的代码分段的权限的请求由不同的进程引起,则可拒绝在权限的所尝试的改变。
[0122]图6是方法600的示例实施例,该方法用于使用对电子设备的尝试访问的操作系统下层捕获来保护存储器。在步骤605,电子设备的虚拟或物理存储器可被映射以确定存储器的内容的标识或所有者。为了映射存储器,例如,可以访问保护服务器;可追踪对存储器的读取、写入和执行;和/或扫描存储器的内容以及针对该内容所生成的签名。
[0123]在步骤610,可访问安全规则以在步骤615确定要保护的物理存储器的地址或虚拟存储器的页。要保护的存储器可取决于例如安全规则、电子设备的用户,诸如恶意软件的指示、对访问受保护存储器的先前尝试的在电子设备中观察到其他的行为,或管理员设置。由于电子设备的操作状况可改变,要保护的存储器可动态地改变。安全规则可指定要保护的电子设备的实体,并可通过访问存储器映射来确定所述实体在物理或虚拟存储器中的位置。
[0124]在步骤620,可根据安全规则的要求而在控制结构中设置标志以捕获对存储器的尝试访问。可为虚拟存储器的页和/或物理存储器的地址设置这种标志。标志可包含要被保护的存储器的指示以及要被标识的访问方法的类型(例如,读取、写入或执行)。在步骤625,可监视对受保护存储器的访问以查看是否已经对指定的地址或页做出指定类型的尝试访问。在步骤630,可确定是否已经捕获对访问存储器的尝试。如果不是
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1