【技术实现步骤摘要】
监控样本进程的内存访问行为的方法和装置
本申请涉及计算机领域,并且,更具体地,涉及监控样本进程的内存访问行为的方法和装置。
技术介绍
随着计算机技术的发展,计算机的安全性成为人们关注的焦点,其中,监控样本程序的内存访问行为是发现潜在恶意软件,进而提高计算机安全性的可行的手段。目前,一种技术通过以下原理实现监控样本进程的内存访问行为:向样本程序中写入监控程序代码,所述样本程序运行后生成需要被监控的进程,然后在内存空间内中添加调用控制点代码。在该控制点代码指示内存空间被访问时跳转到监控程序代码中,从而监控并记录样本程序的内存访问行为。但是,在现有的操作系统,比如windows操作系统中,存在很多程序新增代码的场景,例如加载新的第三方动态链接库(DynamicLinkLibrary,DLL)文件,远程申请内存、DLL注入等。上述场景中,无法及时在该新增的代码中添加控制点,从而无法对该新增的代码的访问或调用行为进行监控,从而严重影响了计算机的安全性。
技术实现思路
本申请提供一种监控样本进程的内存访问行为的方法和装置,能够提高计算机的安全性。第一方面,提供一种监控样本进程的内存访问行为的方法,该方法包括:该处理单元根据样本进程的页目录基址,确定该样本进程的页表,其中,该样本进程是被监控的样本程序运行后生成的进程,该样本进程的页表包括多个表项,该多个表项与多个客户虚拟地址一一对应,每个表项包括第一信息,该第一信息指示表项所对应的客户虚拟地址是否已被分配了客户物理地址,并且已被 ...
【技术保护点】
1.一种监控样本进程的内存访问行为的方法,其特征在于,所述方法由计算设备执行,所述计算设备包括处理单元和内存,所述方法包括:/n所述处理单元根据样本进程的页目录基址,确定所述样本进程的页表,其中,所述样本进程是被监控的样本程序运行后生成的进程,所述样本进程的页表包括多个表项,所述多个表项与多个客户虚拟地址一一对应,每个表项包括第一信息,所述第一信息指示表项所对应的客户虚拟地址是否已被分配了客户物理地址,并且已被分配了客户物理地址的客户虚拟地址所对应的表项还包括第二信息,所述第二信息用于指示被分配的客户物理地址的访问权限;/n所述处理单元从所述样本进程的页表中确定目标表项,所述目标表项的第一信息的取值指示所述目标表项对应的客户虚拟地址已被分配了客户物理地址,且所述目标表项的第二信息指示的访问权限为可执行;/n所述处理单元根据所述目标表项,确定目标客户物理地址,所述目标客户物理地址是已被分配给所述目标表项所对应的客户虚拟地址的客户物理地址;/n所述处理单元确定与所述目标客户物理地址对应的目标宿主物理地址;/n所述处理单元监控针对所述目标宿主物理地址指示的内存空间的访问行为。/n
【技术特征摘要】
1.一种监控样本进程的内存访问行为的方法,其特征在于,所述方法由计算设备执行,所述计算设备包括处理单元和内存,所述方法包括:
所述处理单元根据样本进程的页目录基址,确定所述样本进程的页表,其中,所述样本进程是被监控的样本程序运行后生成的进程,所述样本进程的页表包括多个表项,所述多个表项与多个客户虚拟地址一一对应,每个表项包括第一信息,所述第一信息指示表项所对应的客户虚拟地址是否已被分配了客户物理地址,并且已被分配了客户物理地址的客户虚拟地址所对应的表项还包括第二信息,所述第二信息用于指示被分配的客户物理地址的访问权限;
所述处理单元从所述样本进程的页表中确定目标表项,所述目标表项的第一信息的取值指示所述目标表项对应的客户虚拟地址已被分配了客户物理地址,且所述目标表项的第二信息指示的访问权限为可执行;
所述处理单元根据所述目标表项,确定目标客户物理地址,所述目标客户物理地址是已被分配给所述目标表项所对应的客户虚拟地址的客户物理地址;
所述处理单元确定与所述目标客户物理地址对应的目标宿主物理地址;
所述处理单元监控针对所述目标宿主物理地址指示的内存空间的访问行为。
2.根据权利要求1所述的方法,其特征在于,所述计算设备还包括内存控制单元,所述监控针对所述目标宿主物理地址指示的内存空间的访问行为,包括:
所述处理单元在第一视图和第二视图中分别记录所述目标客户物理地址与所述目标宿主物理地址之间的映射关系,其中所述第一视图中记录的用于存储外部代码的宿主物理地址的访问规则为禁止访问,所述第一视图中记录的用于存储内部代码的宿主物理地址的访问规则为允许访问,所述第二视图中记录的用于存储外部代码的宿主物理地址的访问规则为允许访问,所述第二视图中记录的用于存储内部代码的宿主物理地址的访问规则为禁止访问;
所述处理单元确定所述目标宿主物理地址指示的内存空间中存储的目标代码是外部代码还是内部代码;
如果所述目标代码是外部代码,所述处理单元将所述第一视图中所述目标宿主物理地址的访问规则设置为禁止访问,将所述第二视图中所述目标宿主物理地址的访问规则设置为允许访问,
如果所述目标代码是内部代码,所述处理单元将所述第一视图中所述目标宿主物理地址的访问规则设置为允许访问,将所述第二视图中所述目标宿主物理地址的访问规则设置为禁止访问;
所述处理单元接收所述内存控制单元发送的异常信息,其中,所述异常信息是所述内存控制单元接收到针对所述目标宿主物理地址的内存访问请求时,目标视图中所述目标宿主物理地址的访问规则为禁止访问时发送的,所述目标视图是所述内存控制单元用于对所述目标宿主物理地址的访问进行控制使用的视图,所述目标视图是所述第一视图和所述第二视图中的一个视图;
所述处理单元根据所述异常信息,对生成所述内存访问请求的所述样本进程进行监控处理,并控制所述内存控制单元在所述第一视图和所述第二视图之间切换所述目标视图。
3.根据权利要求2所述的方法,其特征在于,所述处理单元确定所述目标宿主物理地址指示的内存空间中存储的目标代码是外部代码还是内部代码包括:
所述处理单元根据所述样本进程的页表,确定与所述目标客户物理地址对应的目标客户虚拟地址;
所述处理单元从虚拟地址描述符VAD中确定所述目标客户虚拟地址所属于的虚拟地址区间;
所述处理单元根据所述VAD记录的所述虚拟地址区间对应的代码段名称,确定目标代码是外部代码还是内部代码。
4.根据权利要求2所述的方法,其特征在于,所述处理单元确定所述目标宿主物理地址指示的内存空间中存储的目标代码是外部代码还是内部代码包括:
所述处理单元根据所述样本进程的页表,确定与所述目标客户物理地址对应的目标客户虚拟地址;
所述处理单元确定所述目标客户虚拟地址所属于的虚拟内存区域;
所述处理单元根据所述虚拟内存区域用于存储的代码的类型,确定目标代码是外部代码还是内部代码。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述多个表项中的每个表项包括64个比特位,其中
所述表项中的第一信息包括1个比特,且所述表项中的第一信息占用所述64个比特位中的第0个比特位,
所述表项中的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。