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

文档序号:8449222阅读:来源:国知局
,则在步骤635可确定是否要求改变要被保护的存储器的标志。如果是,则方法600可返回到步骤610来访问安全规则以更新用于防护对存储器的访问的标志。如果不是,则方法600可返回到步骤625来监视对受保护存储器的尝试访问。
[0125]如果捕获了对访问存储器的尝试,则在步骤640开始可评估所捕获的尝试。为了评估所述尝试,可查询存储器映射以确定请求是从哪里做出的,并标识请求者。可确定要写入的数据值并针对这些值的内容进行评估。可考虑尝试的本质一读取、写入或执行。可结合安全规则而使用这些示例考虑,以在步骤645确定所尝试的访问是否指示恶意软件。如果所尝试的访问指示恶意软件,则在步骤650,可采取纠正动作。这种纠正动作可包括拒绝所请求的访问、返回经欺骗的值、或发起蜜罐进程或纠正进程。如果所尝试的访问不指示恶意软件,则在步骤655可允许所述请求。方法600可根据要求返回到步骤625以继续保护电子设备的存储器。
[0126]图7是用于实时模块保护的系统400的示例操作的示意图。所述保护可包括调节软件访问以保护存储器中的模块。可使用电子设备401上的Ο/S下层捕获来执行这种调节和保护。可通过评估所标识的实体中的哪一部分已生成对受保护资源的尝试访问来保护存储器中的模块。该部分可包括所标识的实体的分段。该分段可被标识为与所标识的实体中的其他标识的部分不同。在一个实施例中,可评估尝试是否源自这样的实体的头、数据或是代码分段。在其他实施例中,可基于实体的任何合适的分段而对生成尝试的实体做出选择评估。此外,可通过选择性地保护所标识的模块中的特定部分来存储器中的模块。在一个实施例中,可评估是否关于头、数据或模块的代码分段而做出尝试。在其他实施例中,可对模块的任何合适的分段做出选择性评估。
[0127]可由Ο/S安全代理下层419截获对系统400的受保护资源的尝试访问。所述访问可以是对系统400的任何适合部分的访问,包括虚拟存储器404或物理存储器403的受保护的部分。此外,所述访问可来自系统400(包括应用程序410或驱动程序411)的任何部分。
[0128]确定做出所尝试的访问的实体的恶意软件状态的一些方法(例如,通过评估所述实体驻留在磁盘上时的签名或通过确定实体是否在已知安全的实体的白名单上)可能是不足的。白名单上的实体可另外使得诸如Ο/s下层安全代理420和Ο/S下层安全代理419的安全代理忽略由实体对系统100的受保护部分进行访问的尝试。然而,恶意软件可以修改做出请求的实体,并因此运行而不被发现。这种修改可以不改变实体的签名或其他标识。此外,建立全面准确的存储器映射406可能是困难的、不可行的、资源密集的。给定来自特定地址的尝试,追踪发起尝试的全部实体可能是不可行的。对全部实体的追踪可能需要应用反恶意软件签名。此外,这种实体可驻留在系统存储器,由于它驻留在存储器,因此需要对实体的额外追踪以应用反恶意软件签名。确定这种额外追踪可能是不可行的。系统400可通过确定正在进行尝试的实体的特定部分来保护受保护的模块,并基于正在进行尝试的特定部分的标识来评估所尝试的访问。
[0129]此外,用于确定是否保护系统400上的模块或其它资源的一些方法可能是不足的。模块可能容易遭受恶意软件,这是因为其可被操纵、改变,或另外被恶意软件访问,意在系统400上执行恶意操作。因此,可以通过限制对模块的访问来保护所述模块。然而,所述模块可能是开放的、可扩展的、并可被系统400上的其他实体访问、并且被配置为编辑过的。因此,不能拒绝对所述模块的所有访问。此外,所述模块可被配置为能够被系统400上的全部实体、而不仅仅是已知的或可信的实体访问。例如,所述模块可包括具有被配置为由系统400上的任何合适的实体写入的数据分段的驱动程序。系统400可通过选择性地对模块的不同分段应用不同的保护来保护所述模块。系统400可确定正在被访问的模块的特定分段,并基于所述正在被访问的特定分段的标识来评估所尝试的访问。
[0130]系统400中的实体和模块可包括驱动程序、可执行文件以及诸如应用程序410、驱动程序411的其他应用程序,并且可驻留在虚拟存储器404或物理存储器403的部分中。当这些实体和模块从存储设备中被加载到系统存储器用于执行时,所述实体和模块可被划分成不同的分段。
[0131]在一个实施例中,当系统400内的实体和模块驻留在系统存储器内时,它们可包括头分段。这样的头分段可包括例如到实体或模块的其它分段的链接、输入和输出的定义、应用程序编程接口和功能的定义,以及当所述实体或模块驻留在存储设备中时到所述实体或模块的链接。头分段本身可跨多个存储器页或多个存储范围而被分割。
[0132]在另一实施例中,当系统400内的实体和模块驻留在系统存储器内时,它们可包括代码分段。这种代码分段可包括针对实体或模块的功能的、要被执行以实现所述实体或模块的操作的逻辑、代码,或指令。所述代码分段可以是固定尺寸的或者包括固定的内容。代码分段本身可跨多个存储器页或多个存储范围而被分隔。
[0133]在又一实施例中,当系统400内的实体和模块驻留在系统存储器内时,它们可包括数据分段。这种数据分段可包括在实体或模块的功能和执行中所使用的信息的数据结构和其他内容。所述数据部分可随着实体或模块的进程的操作以及所需尺寸的增加或缩小而为可变尺寸的。此外,其他实体或模块可以能够写入到数据分段。
[0134]对访问受保护的资源的尝试可从源存储器750做出。当元素驻留在系统存储器中时,源存储器750可包括诸如虚拟存储器404或物理存储器403的系统存储器的任意组合的视图。这种元素可包括模块、驱动程序、应用程序或任何其它合适的实体。源存储器750可包括存储器映射406的修改后的视图,从而使得针对给定实体分段的所有存储器页或存储器地址范围被显示在一起。因此源存储器750中的部分㈧、⑶、(C)和⑶的呈现可以不表示部分(A)、(B)、(C)和⑶实际上以这样的顺序驻留。此外,每个部分(A)、(B)、(C)和(D)可包括在实际的虚拟存储器404或物理存储器403内不连续地存在的元素。为了说明的目的,这些部分被呈现为连续的整体部分。
[0135]在图7的示例中,源存储器750可示出驱动程序I驻留在系统400的系统存储器内。虽然为了说明的目的,驱动程序I被示出为跨源存储器750的部分(A)、(B)和(C)而连续的,但驱动程序I可驻留在一个或多个不连续的存储器页或地址范围内。驱动程序I可已从存储设备被加载到系统存储器以用于执行。驱动程序I可包括一个或多个分段。驱动程序I可包括任何合适的数量和类型的分段。在一个实施例中,驱动程序I可包括在部分(A)中的头分段。在另一实施例中,驱动程序I可包括在部分(B)中的代码分段。在又一实施例中,驱动程序I可包括在部分(C)的数据分段。此外,如部分(D)中所示,源存储器750可包括任意数目的其他实体或其部分。
[0136]受保护的资源系统400可包括被访问的存储器754中所表示的资源。这些资源可包括模块、驱动程序,或其它合适的敏感资源。被访问的存储器754可包括诸如虚拟存储器404或物理存储器403的系统存储器的任意组合的视图。被访问的存储器754可包括存储器映射406的修改后的视图,从而使得针对给定实体分段的所有存储器页或存储器地址范围被显示在一起。因此被访问的存储器754中的部分(E)、(F)、(G)和⑶的呈现可以不表示部分(E)、(F)、(G)和⑶实际上以这样的顺序驻留。此外,每个部分(E)、(F)、(G)和(H)可包括在实际的虚拟存储器404或物理存储器403内不连续地存在的元素。为了说明的目的,这些部分被呈现为连续的整体部分。
[0137]在图7的示例中,被访问的存储器754可示出驱动程序2驻留在系统400的系统存储器内。虽然为了说明的目的,驱动程序2被示出为跨被访问的存储器754的部分(E)、(F)和(G)而连续的,但驱动程序2可驻留在一个或多个不连续的存储器页或地址范围内。驱动程序2可已从存储设备被加载到系统存储器中以用于执行。驱动程序2可包括一个或多个分段。驱动程序2可包括任何合适的数量和类型的分段。在一个实施例中,驱动程序2可包括在部分(E)中的头分段。在另一实施例中,驱动程序2可包括在部分(F)中的代码分段。在又一实施例中,驱动程序2可包括在部分(G)的数据分段。此外,如部分⑶中所示,被访问的存储器754可包括任意数量的其他资源或其部分。
[0138]在一个实施例中,系统400中尝试访问受保护的资源的实体可从源存储器750中所表示的存储器位置发起这样的尝试。在另一实施例中,系统400中尝试访问受保护的资源的实体可尝试访问受保护的资源,因为这些驻留在源存储器750中所表示的存储器位置中。系统400,其括Ο/S下层安全代理420和Ο/S下层安全代理419,可操作以保护在源存储器750中所表示的资源。如上所述,可结合图1-6部分地描述这样的操作。
[0139]Ο/S下层安全代理420可捕获对源存储器750中所示的受保护的资源的尝试访问。对于在被访问的存储器754中的被访问的给定资源,Ο/S下层安全代理420可确定所述尝试以所述资源的哪一部分为目标。例如,Ο/S下层安全代理420不仅可确定已做出对驱动程序2的模块中一部分进行访问的尝试,还可具体地确定已做出对部分(D)中的驱动程序头分段、部分(E)中的驱动程序代码分段或是部分(F)中的驱动程序数据分段进行访问的试图。Ο/S下层安全代理420可利用存储器映射406以做出这种确定。
[0140]基于对受保护资源的哪一分段已被访问的确定,以及基于受保护资源的标识,0/S下层安全代理420可确定采取何种动作。可基于给定的尝试而采取任何合适的动作。在一个实施例中,对访问受保护资源的特定分段的尝试通常是所期望的,因此这种尝试可被允许。Ο/S下层安全代理420可允许这种尝试而无需额外的检查、扫描或其他动作。执行额外的检查、扫描或其他动作(例如,将信息发送给Ο/S下层安全代理419或保护服务器202)的开销或处理费用可能是过高的,其中Ο/S下层安全代理420捕获并评估许多尝试。例如,写入到部分(G)中的驱动程序2的数据分段的尝试通常是所期望的,并且不是恶意软件的表示。因此,Ο/S下层安全代理420可允许写入或读取部分(G)的尝试,而无需将与所述尝试有关的信息传递给Ο/S下层安全代理419或保护服务器202以用于进一步评估。
[0141]在另一实施例中,对受保护资源的特定分段进行访问的尝试通常被认为是可疑的,因为对所述分段进行读取或写入的尝试可能是系统400上的正常行为实体所不期望的。Ο/S下层安全代理420可拒绝这种尝试而无需额外的检查、扫描或其他动作。同步执行额外的检查、扫描或其他动作的开销或处理费用可能是昂贵的。例如,写入到驱动程序2的代码分段的尝试通常被认为是可疑的并且是恶意软件的指示。因此,Ο/S下层安全代理420可拒绝对部分(F)的写入尝试,而不无需同步地将与所述尝试有关的信息传递给Ο/S下层安全代理419或保护服务器202。然而,Ο/S下层安全代理420可异步地将与所述尝试有关的信息传递给Ο/S下层安全代理419或保护服务器202以用于进一步的评估,其中Ο/S下层安全代理420在执行纠正动作之前不等待回复。
[0142]在又一实施例中,可能不知道对受保护资源的特定分段进行访问的尝试是恶意的还是安全的。在这种实施例中,所述尝试可被默认允许、默认拒绝,或默认需要额外的处理。Ο/S下层安全代理420可执行默认拒绝或允许而无需额外的检查、扫描或其他动作。为了执行默认的额外处理,Ο/S下层安全代理420可针对额外信息而查询系统400的部分或扫描关于该尝试的信息。所述查询可包括签名比较、对作为整体做出所述尝试的实体的扫描、对所述尝试的内容的分析,关于所述尝试的启发式分析,或任何其他合适的反恶意软件技术。可对以下的任何合适的实体进行查询:例如保护服务器202、Ο/S下层安全代理419或Ο/S下层安全代理420本身。可通过访问安全规则408内的额外规则而做出由Ο/S下层安全代理420进行的额外分析。可通过访问安全规则421内的规则而做出由Ο/S下层安全代理419进行的额外分析。可通过访问安全规则、由反恶意软件研宄人员进行的设置,或通过比较来自报告所述尝试的其他系统的报告而做出由保护服务器202进行的额外分析。例如,对驱动程序2的头分段进行访问的尝试可能是安全的或恶意的,其取决于其他因素,例如做出所述尝试的实体。因此,Ο/S下层安全代理420可为对部分(G)进行访问的尝试进行额外的查询。这种查询可同步或异步进行。
[0143]此外,确定要采取的行动可包括对做出尝试的实体或尝试类型的考虑。例如,做出尝试的实体可能已知是恶意的。由此,另外允许默认访问的规则可指定来自已知恶意实体的尝试被拒绝。在另一实施例中,对尝试进行读取的尝试与对尝试进行写入的尝试进行不同处理。读取不太可能与恶意软件相关联,或者至少其自身不太可能是恶意的,并且因此其可被默认允许,其中对相同分段的写入可以被拒绝。允许这种读取,即使是由恶意实体做出的读取,可加快由系统400进行的检测。
[0144]安全规则408可包括用于向Ο/S下层安全代理420表明如何处理对各种所标识的受保护资源的各种分段的尝试访问的规则。安全规则408可包括针对给定的受保护资源或资源的分类的一套规则。因此,不同的规则可适用于对不同的受保护资源的相同分段的尝试访问。例如,对第一驱动程序的数据分段的尝试写入可被允许,但是对第二驱动程序的数据分段的尝试写入则可需要额外的检查,以查看做出所述尝试的实体是否与受保护的资源有关。在图7的示例中,安全规则408可包括定义了对驱动程序2头分段(部分(E))的访问可通过进行额外的查询来处理的规则。在另一示例中,安全规则408可包括定义了读取驱动程序2代码分段(部分(F))的尝试可被允许的规则。这种尝试可反映由系统400中的其他实体进行用于执行驱动程序2的功能的正常操作。在又一示例中,安全规则408可包括定义了写入到驱动程序2代码分段(部分(F))的尝试可被拒绝的规则。在又一示例中,安全规则408可包括定义了对驱动程序2数据分段(部分(G))的尝试访问(其源自并非已知是恶意的源)可被允许的规则。安全规则408可包括定义了对诸如在部分(H)中的其他实体的尝试访问可由未示出的安全规则进行处理或可通过引起对额外处理的查询而进行处理的规则。
[0145]Ο/S下层安全代理420可捕获由源存储器750中所示的实体所尝试的对受保护资源的访问。对于进行尝试的源存储器750内的实体,Ο/S下层安全代理420可确定所述尝试源自实体的哪个分段。例如,Ο/S下层安全代理420不仅可确定已由驱动程序I尝试访了问受保护的资源,还可具体地确定尝试已从部分(A)中的驱动程序I的头分段、部分(B)中的驱动程序I的代码分段或是部分(C)中的驱动程序I的数据分段做出。Ο/S下层安全代理420可利用存储器映射406而做出这样的确定。
[0146]基于确定实体的哪一分段做出这一尝试,并且基于所述实体的标识,Ο/S下层安全代理420可确定要采取何种动作。可基于给定的尝试而采取任何合适的动作。在一个实施例中,来自实体的特定分段的对受保护资源的尝试访问通常是所期望的,并且因此这种尝试可被允许。Ο/S下层安全代理420可允许这种尝试而无需额外的检查、扫描或其他动作。执行额外的检查、扫描或其他动作(例如,将信息发送给Ο/S下层安全代理419或保护服务器202)的开销或处理费用可能是过高的,其中Ο/S下层安全代理420捕获并评估许多尝试。例如,来部分(B)中的驱动程序I的代码分段的尝试通常是所期望的,并且不是恶意软件的表示。因此,Ο/S下层安全代理420可允许来自驱动程序I的代码分段(部分(B))的尝试,而不需要将关于所述所述尝试的信息传递给Ο/S下层安全代理419或保护服务器202以用于进一步评估。
[0147]在又一实施例中,来自实体的特定分段的对受保护资源的尝试访问通常被认为是可疑的,因为这种尝试可能是系统400上的正常行为实体所不期望的。Ο/S下层安全代理420可拒绝这种尝试而无需额外的检查、扫描或其他动作。同步执行额外的检查、扫描或其他动作的开销或处理费用可能是昂贵的。例如,来自驱动程序I的数据分段的对受保护资源的尝试通常被认为是可疑的并且是恶意软件的表示。因此,Ο/s下层安全代理420可拒绝来自驱动程序I的代码分段(部分(C))的对受保护资源进行访问的尝试,而不需要同步地将关于所述尝试的信息传递给Ο/S下层安全代理419或保护服务器202。然而,Ο/S下层安全代理420可异步地将关于所述尝试的信息传递给Ο/S下层安全代理419或保护服务器202以用于进一步评估,其中Ο/S下层安全代理420在执行纠正动作之前不等待回复。
[0148]在又一实施例中,可能不知道来自受保护资源的特定分段的对受保护资源进行访问的尝试是恶意的还是安全的。在这种实施例中,所述尝试可被默认允许、默认拒绝,或默认需要额外的处理。Ο/S下层安全代理420可执行默认拒绝或允许而无需额外的检查、扫描或其他动作。为了执行默认的额外处理,Ο/S下层安全代理420可针对与所述尝试相关的额外信息或而扫描查询系统400的部分。例如,来自驱动程序I的头分段的对受保护资源进行访问的尝试可是安全的或是恶意的,其取决于其它因素,例如,受所保护的资源或所期望的实体的行为。因此,Ο/S下层安全代理420对源自驱动程序I的头分段(部分(A))的尝试进行额外的查询。这种查询可同步或异步地进行。
[0149]此外,对采取动作的决定可包括其他考虑。例如,做出尝试的实体可能已知是恶意的并在黑名单上。在这种示例中,所述实体整体是恶意的这一决定可覆盖(override)分段特定的规则。在另一个示例中,做出尝试的实体可能已知是安全的并在白名单上,例如安全规则408内驱动程序I的出现。在这种示例中,安全规则408可包括允许来自部分(A)和
(B)中所示的驱动程序I的头和代码分段的默认访问的规则。然而,即使驱动程序I可被包括在安全规则408中的白名单内,源自部分(C)中所示的驱动程序I的数据分段的尝试可以是可疑的或恶意的。白名单和观察到的动作之间的这种差异可能源于错误的白名单或需要额外的验证或报告。由此,即使驱动程序I可被包括在安全规则408中的白名单内,安全规则408可包括这样的规则:覆盖所述白名单并表明源自部分(C)中所示的驱动程序I的数据分段的尝试可默认被拒绝或导致生成查询。
[0150]安全规则408可包括向Ο/S下层安全代理420表明如何处理由给定实体的各个分段对受保护资源的尝试访问的规则。例如,安全规则408可包括定义了源自驱动程序I的头分段(部分(A))的访问可通过进行额外的查询来进行处理的规则。在另一示例中,安全规则408可包括定义了源自驱动程序I的代码分段(部分(B))的访问可默认被允许的规贝1J。这种尝试可能反映驱动程序I的用于执行其功能的正常操作。这一规则可服从于定义了对给定受保护资源的访问的其他规则,例如只允许某些实体进行这种访问的要求。在又一示例中,安全规则408可包括定义了源自驱动程序I的数据分段(部分(C))的尝试访问可被拒绝的规则。安全规则408可包括定义了由其他实体(例如,部分(D)中的那些)进行的尝试访问可通过未示出的安全规则进行处理或者可通过引起对额外处理的查询进行处理的规则。
[0151]确定对受保护资源进行尝试访问的实体的准确分段可能是困难的。全面或完全准确的存储器映射406可能是不可用的或不实际的。为了确定对受保护资源进行尝试访问的准确分段,Ο/S下层安全代理416可被配置为确定一个字节串,所述字节串与包括引起对受保护资源的尝试访问的指令指针地址的范围相对应。在进一步的实施例中,这种字节串可包括至少一定数量的字节,2*N。在又一实施例中,这种字节串可包括在引起所述尝试的指令指针周围的字节,加上或减去N字节。这种字节串可表示在进行所述尝试的同一进程内的连续代码字节。所述字节串可在片段752中示出。片段752可示出来自源存储器750的指令、操作码或其他信息的连续的块。这种连续的块可包括在存储器页内或在存储器地址范围中的连续的信息块。片段752可表示源存储器750的任何合适的部分。
[0152]Ο/S下层安全代理416可将所述字节串与已知安全的或已知恶意的字节串进行比较,而不需要尝试确定负责所述尝试的整个实体的签名或散列。此外,Ο/s下层安全代理416可在安全规则408的范围内使用这种字节串,安全规则408可使用这种字节串作为针对其规则的索引。例如,代表驱动程序I的代码分段的部分(B)的各部分已知发起了对受保护资源进行访问的尝试,可包括被记录在安全规则408中的字节串。因此,与所述字节串匹配的尝试访问可被确定为与部分(B)中的驱动程序I的代码分段相关联。接着,408可以定义要采取的
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1