监控样本进程的内存访问行为的方法和装置制造方法及图纸

技术编号:23604483 阅读:35 留言:0更新日期:2020-03-28 05:38
本申请提供一种监控样本进程的内存访问行为的方法,方法包括:根据样本进程的页目录基址,确定样本进程的页表,样本进程的页表包括多个表项,每个表项包括第一信息,第一信息指示表项是否已被分配了客户物理地址,已被分配了客户物理地址的表项还包括第二信息,第二信息用于指示被分配的客户物理地址的访问权限;从样本进程的页表中确定目标表项,目标表项的第一信息的取值指示目标表项已被分配了客户物理地址,且目标表项的第二信息指示的访问权限为可执行;确定被分配给目标表项的目标客户物理地址及与目标客户物理地址对应目标宿主物理地址;监控针对目标宿主物理地址指示的内存空间的访问行为,从而,能够提高计算机的安全性。

Methods and devices for monitoring memory access behavior of sample processes

【技术实现步骤摘要】
监控样本进程的内存访问行为的方法和装置
本申请涉及计算机领域,并且,更具体地,涉及监控样本进程的内存访问行为的方法和装置。
技术介绍
随着计算机技术的发展,计算机的安全性成为人们关注的焦点,其中,监控样本程序的内存访问行为是发现潜在恶意软件,进而提高计算机安全性的可行的手段。目前,一种技术通过以下原理实现监控样本进程的内存访问行为:向样本程序中写入监控程序代码,所述样本程序运行后生成需要被监控的进程,然后在内存空间内中添加调用控制点代码。在该控制点代码指示内存空间被访问时跳转到监控程序代码中,从而监控并记录样本程序的内存访问行为。但是,在现有的操作系统,比如windows操作系统中,存在很多程序新增代码的场景,例如加载新的第三方动态链接库(DynamicLinkLibrary,DLL)文件,远程申请内存、DLL注入等。上述场景中,无法及时在该新增的代码中添加控制点,从而无法对该新增的代码的访问或调用行为进行监控,从而严重影响了计算机的安全性。
技术实现思路
本申请提供一种监控样本进程的内存访问行为的方法和装置,能够提高计算机的安全性。第一方面,提供一种监控样本进程的内存访问行为的方法,该方法包括:该处理单元根据样本进程的页目录基址,确定该样本进程的页表,其中,该样本进程是被监控的样本程序运行后生成的进程,该样本进程的页表包括多个表项,该多个表项与多个客户虚拟地址一一对应,每个表项包括第一信息,该第一信息指示表项所对应的客户虚拟地址是否已被分配了客户物理地址,并且已被分配了客户物理地址的客户虚拟地址所对应的表项还包括第二信息,该第二信息用于指示被分配的客户物理地址的访问权限;该处理单元从该样本进程的页表中确定目标表项,该目标表项的第一信息的取值指示该目标表项对应的客户虚拟地址已被分配了客户物理地址,且该目标表项的第二信息指示的访问权限为可执行;该处理单元根据所述目标表项,确定目标客户物理地址,所述目标客户物理地址是已被分配给所述目标表项所对应的客户虚拟地址的客户物理地址;该处理单元确定与该目标客户物理地址对应目标宿主物理地址;该处理单元监控对该目标宿主物理地址指示的内存空间的访问行为。根据本申请提供的方法,当样本程序的进程的页表中的某个客户虚拟地址被分配了客户物理地址、并且该客户物理地址的访问权限为可执行时,可以预期该客户物理地址所对应的宿主物理地址指示的内存空间所存储的代码可能是进程新增的代码,从而,通过对该宿主物理地址指示的内存空间的访问行为进行监控,能够实现对样本程序的进程的新增代码的内存访问或调用进行监控,从而提高计算机的安全性。可选地,该对该目标宿主物理地址对应的内存空间进行监控包括:该处理单元在第一视图和第二视图中分别记录该目标客户物理地址与目标宿主物理地址之间的映射关系,其中该第一视图中记录的用于存储外部代码的宿主物理地址的访问规则为禁止访问,该第一视图中记录的用于存储内部代码的宿主物理地址的访问规则为允许访问,该第二视图中记录的用于存储外部代码的宿主物理地址的访问规则为允许访问,该第二视图中记录的用于存储内部代码的宿主物理地址的访问规则为禁止访问;该处理单元确定该目标宿主物理地址指示的内存空间中存储的目标代码是外部代码还是内部代码;该处理单元根据该目标代码是内部代码还是外部代码的确定结果,设置该目标宿主物理地址在该第一视图和该第二视图中的访问规则,其中,如果该目标代码是外部代码,则将该第一视图中该目标宿主物理地址的访问规则设置为禁止访问,将该第二视图中该目标宿主物理地址的访问规则设置为允许访问,如果该目标代码是内部代码,则将该第一视图中该目标宿主物理地址的访问规则设置为允许访问,将该第二视图中该目标宿主物理地址的访问规则设置为禁止访问;该处理单元接收内存控制单元发送的异常信息,其中,该异常信息是该内存控制单元在确定在目标时刻使用的目标视图中记载的访问规则为禁止访问之后发送的,该目标时刻是该内存控制单元接收到针对该目标宿主物理地址的内存访问请求的时刻,该目标视图是该内存控制单元针对该目标宿主物理地址的访问进行控制时使用的视图,该目标视图是该第一视图和该第二视图中的一个视图;该处理单元根据该异常信息,对生成所述内存访问请求的所述样本进程进行监控处理,并控制该内存控制单元在该第一视图和该第二视图之间切换该目标视图。根据本申请提供的方法,处理单元可以配置第一视图和第二视图,该第一视图和第二视图指示的目标客户物理地址与目标宿主物理地址之间的映射关系相同,该第一视图和第二视图的目标客户物理地址的访问规则相异。其中,第一视图记录的用于存储外部代码的内存空间的访问规则为禁止访问,第一视图记录的用于存储内部代码的内存空间的访问规则为允许访问。第二视图记录的用于存储外部代码的内存空间的访问规则为允许访问,第二视图记录的用于存储内部代码的内存空间的访问规则为禁止访问在进程开始运行时,处理单元将第一视图设置为内存控制单元控制针对内存的访问的目标视图。从而,当进程需要调用外部代码时,由于目标视图(即,第一视图)指示外部代码的内存空间的访问规则为禁止访问,内存控制单元向处理单元上报页面异常信息。进而处理单元能够根据页面异常信息,触发对样本进程的监控,并将目标视图从第一视图切换为第二视图,并重新发送访问请求。由于切换后的目标视图(即,第二视图)指示外部代码的内存空间的访问规则为允许访问,因此内存控制单元能够允许访问。从而,在目标客户物理地址中存储的代码是外部代码的情况下,能够监控到样本进程对该外部代码的调用情况。在进程调用外部代码期间,目标映视图为第二视图。从而,当外部代码需要对进程进行返回时,由于目标视图(即,第二视图)指示内部代码的内存空间的访问规则为禁止访问,内存控制单元向处理单元上报页面异常信息。处理单元能够根据页面异常信息,触发对进程的监控,并将目标视图从第二视图切换为第一视图,并重新发送访问请求。由于切换后的目标视图(即,第一视图)指示内部代码的内存空间的访问规则为允许访问,因此内存控制单元能够允许访问。能够在不影响进程访问内存的情况下,实现对调用返回的监控,在监控进程调用外部函数的基础上增加了监控的时机。从而,在目标客户物理地址中存储的代码是内部代码的情况下,能够监控到样本进程对该内部代码的调用情况。可选地,该第一视图和第二视图为扩展页表EPT。可选地,该处理单元确定该目标宿主物理地址对应的内存空间中存储的目标代码是外部代码还是内部代码包括:该处理单元根据该样本进程的页表,确定与该目标客户物理地址对应的目标客户虚拟地址;该处理单元从虚拟地址描述符VAD中确定该目标客户虚拟地址所属于的虚拟地址区间;该处理单元根据该VAD记录的该虚拟地址区间对应的代码段名称,确定目标代码是外部代码还是内部代码。可选地,该处理单元确定该目标宿主物理地址对应的内存空间中存储的目标代码是外部代码还是内部代码包括:该处理单元根据该样本进程的页表,确定与该目标客户物理地址对应的目标客户虚拟地址;该处理单元确定该目标客户虚拟地址所属于的虚拟内存区域;该处理单元根据该虚拟内存区本文档来自技高网...

【技术保护点】
1.一种监控样本进程的内存访问行为的方法,其特征在于,所述方法由计算设备执行,所述计算设备包括处理单元和内存,所述方法包括:/n所述处理单元根据样本进程的页目录基址,确定所述样本进程的页表,其中,所述样本进程是被监控的样本程序运行后生成的进程,所述样本进程的页表包括多个表项,所述多个表项与多个客户虚拟地址一一对应,每个表项包括第一信息,所述第一信息指示表项所对应的客户虚拟地址是否已被分配了客户物理地址,并且已被分配了客户物理地址的客户虚拟地址所对应的表项还包括第二信息,所述第二信息用于指示被分配的客户物理地址的访问权限;/n所述处理单元从所述样本进程的页表中确定目标表项,所述目标表项的第一信息的取值指示所述目标表项对应的客户虚拟地址已被分配了客户物理地址,且所述目标表项的第二信息指示的访问权限为可执行;/n所述处理单元根据所述目标表项,确定目标客户物理地址,所述目标客户物理地址是已被分配给所述目标表项所对应的客户虚拟地址的客户物理地址;/n所述处理单元确定与所述目标客户物理地址对应的目标宿主物理地址;/n所述处理单元监控针对所述目标宿主物理地址指示的内存空间的访问行为。/n

【技术特征摘要】
1.一种监控样本进程的内存访问行为的方法,其特征在于,所述方法由计算设备执行,所述计算设备包括处理单元和内存,所述方法包括:
所述处理单元根据样本进程的页目录基址,确定所述样本进程的页表,其中,所述样本进程是被监控的样本程序运行后生成的进程,所述样本进程的页表包括多个表项,所述多个表项与多个客户虚拟地址一一对应,每个表项包括第一信息,所述第一信息指示表项所对应的客户虚拟地址是否已被分配了客户物理地址,并且已被分配了客户物理地址的客户虚拟地址所对应的表项还包括第二信息,所述第二信息用于指示被分配的客户物理地址的访问权限;
所述处理单元从所述样本进程的页表中确定目标表项,所述目标表项的第一信息的取值指示所述目标表项对应的客户虚拟地址已被分配了客户物理地址,且所述目标表项的第二信息指示的访问权限为可执行;
所述处理单元根据所述目标表项,确定目标客户物理地址,所述目标客户物理地址是已被分配给所述目标表项所对应的客户虚拟地址的客户物理地址;
所述处理单元确定与所述目标客户物理地址对应的目标宿主物理地址;
所述处理单元监控针对所述目标宿主物理地址指示的内存空间的访问行为。


2.根据权利要求1所述的方法,其特征在于,所述计算设备还包括内存控制单元,所述监控针对所述目标宿主物理地址指示的内存空间的访问行为,包括:
所述处理单元在第一视图和第二视图中分别记录所述目标客户物理地址与所述目标宿主物理地址之间的映射关系,其中所述第一视图中记录的用于存储外部代码的宿主物理地址的访问规则为禁止访问,所述第一视图中记录的用于存储内部代码的宿主物理地址的访问规则为允许访问,所述第二视图中记录的用于存储外部代码的宿主物理地址的访问规则为允许访问,所述第二视图中记录的用于存储内部代码的宿主物理地址的访问规则为禁止访问;
所述处理单元确定所述目标宿主物理地址指示的内存空间中存储的目标代码是外部代码还是内部代码;
如果所述目标代码是外部代码,所述处理单元将所述第一视图中所述目标宿主物理地址的访问规则设置为禁止访问,将所述第二视图中所述目标宿主物理地址的访问规则设置为允许访问,
如果所述目标代码是内部代码,所述处理单元将所述第一视图中所述目标宿主物理地址的访问规则设置为允许访问,将所述第二视图中所述目标宿主物理地址的访问规则设置为禁止访问;
所述处理单元接收所述内存控制单元发送的异常信息,其中,所述异常信息是所述内存控制单元接收到针对所述目标宿主物理地址的内存访问请求时,目标视图中所述目标宿主物理地址的访问规则为禁止访问时发送的,所述目标视图是所述内存控制单元用于对所述目标宿主物理地址的访问进行控制使用的视图,所述目标视图是所述第一视图和所述第二视图中的一个视图;
所述处理单元根据所述异常信息,对生成所述内存访问请求的所述样本进程进行监控处理,并控制所述内存控制单元在所述第一视图和所述第二视图之间切换所述目标视图。


3.根据权利要求2所述的方法,其特征在于,所述处理单元确定所述目标宿主物理地址指示的内存空间中存储的目标代码是外部代码还是内部代码包括:
所述处理单元根据所述样本进程的页表,确定与所述目标客户物理地址对应的目标客户虚拟地址;
所述处理单元从虚拟地址描述符VAD中确定所述目标客户虚拟地址所属于的虚拟地址区间;
所述处理单元根据所述VAD记录的所述虚拟地址区间对应的代码段名称,确定目标代码是外部代码还是内部代码。


4.根据权利要求2所述的方法,其特征在于,所述处理单元确定所述目标宿主物理地址指示的内存空间中存储的目标代码是外部代码还是内部代码包括:
所述处理单元根据所述样本进程的页表,确定与所述目标客户物理地址对应的目标客户虚拟地址;
所述处理单元确定所述目标客户虚拟地址所属于的虚拟内存区域;
所述处理单元根据所述虚拟内存区域用于存储的代码的类型,确定目标代码是外部代码还是内部代码。


5.根据权利要求1至4中任一项所述的方法,其特征在于,所述多个表项中的每个表项包括64个比特位,其中
所述表项中的第一信息包括1个比特,且所述表项中的第一信息占用所述64个比特位中的第0个比特位,
所述表项中的...

【专利技术属性】
技术研发人员:袁劲枫陈甲
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1