一种基于用户级页表的进程内数据隔离保护方法和系统技术方案

技术编号:19778859 阅读:71 留言:0更新日期:2018-12-15 11:30
本发明专利技术涉及基于用户级页表的进程内数据隔离保护方法和系统,包括将用户进程的虚拟空间划分出一部分作为用户自管理区域。将该用户自管理区域划分为用户级页表区域和用户自管理数据区域,存放在用户自管理数据区域的受保护的敏感数据仅由该用户级页表区域的页表进行管理。通过限定指定的程序对象才能访问该用户级页表,实现进程内数据的隔离。同时通过限定该用户级页表可以映射的物理页面范围,保证进程间数据的隔离不受影响。该用户级页表在虚拟空间完成虚实地址映射,页表初始化和缺页处理;当发生中断时,该用户级页表进行用户自定义中断处理,避免陷入内核,保证运行效率。本发明专利技术可以提升虚拟内存系统的效率,且提供细粒度的进程内安全防护。

【技术实现步骤摘要】
一种基于用户级页表的进程内数据隔离保护方法和系统
本专利技术涉及计算机领域,并特别涉及一种基于用户级页表的进程内数据隔离保护方法和系统。
技术介绍
传统的计算机系统,对于进程内部的数据访问,没有提供有效的保护手段。一般情况下,处理器硬件允许进程内的代码任意访问进程内的数据空间,这就为缓冲区溢出等攻击方法提供了潜在的攻击途径。攻击程序可以通过进程内局部的代码漏洞,获得整个进程地址空间的访问权限,进一步控制整个进程的数据和代码执行。很多消费电子设备都使用扩展的安全模块来确保数据安全,目前常见的方式有:1.外部挂接硬件安全模块。数据的处理交由外部的安全模块实现,这些模块能够保护自己的资源和密钥等数据的安全,如SIM卡、各种智能卡或连接到外部的硬件加解密模块等,但其同主芯片的通信线路暴露在外部,容易被监听破解。另外,通信的速率比较低。2.内部集成硬件安全模块。将外部安全模块的功能集成到芯片内,因此一个芯片上至少有两个核,一个普通核和一个安全核。优点是核与核之间的通信在芯片内部实现,不再暴露在外面。缺点是核之间的通信速度仍然较低,而且单独的安全核性能有限,还会占用SoC面积,成本较高。3.ARMTrustzone、IntelSGX等安全子系统。Trustzone安全技术自ARMv6版本开始引入ARM架构规范。在概念上将SoC的硬件和软件资源划分为安全(SecureWorld)和非安全(NormalWorld)两个世界,所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密、安全认证等),其余操作在非安全世界执行(如用户操作系统、各种应用程序等),安全世界和非安全世界通过监管模式(MonitorMode)进行转换。同样存在模式切换时的性能开销。IntelSGX是IntelSoftwareGuardExtension的缩写。SGX是Intel指令集架构(ISA)的扩展,主要提供了一些指令用于创建一个可信执行环境(TrustedExecutionEnvironment,TEE,又称Enclave)。用户态应用程序可以在Enclave中安全执行,而不被恶意的操作系统(OperatingSystem,OS)或管理程序(Hypervisor)所攻击。IntelSGX技术提供了应用级的隔离,需要保证机密性和完整性的安全敏感代码仅仅信任CPU,硬件、OS、应用程序等都不能影响这部分代码执行的安全性。SGX技术的主要目的,是保护应用程序的安全敏感代码不被恶意的高优先级软件中断或破坏执行。以上分区安全子系统的技术,只保护一个封闭的子系统内部的数据安全,对于复杂大型应用程序,无法实现数据的有效保护。上述复杂大型应用程序,是指一个进程内包含多个线程,各个线程之间共享程序的内存空间;或指一个进程内的程序和数据占用的内存空间是GB量级的。4.IntelMPK、MPX等进程内数据保护技术。IntelMPK(MemoryProtectionKey,内存保护关键字),是将内存的页面划分到多个域中。每个页面属于N个域之一,由页表中的M个bit来指定,这M个bit称为保护关键字(protectionkey)。其中N=2M。MPK技术的保护方法是,当进程访问内存时,硬件会检查当前进程的保护关键字和要访问的内存块的保护关键字是否一样,不一样则会触发异常。同时,也必须满足页表本身权限位所表示的页面的权限,这两者都满足才是合法的访存操作。IntelMPX(MemoryProtectioneXtensions,内存保护扩展),是对指针访问的内存地址范围进行检查,由硬件辅助实现,从第六代Core处理器(Skylake)开始支持。在编译器、库和操作系统的支持下,MPX通过检查指针引用,判断其正常编译时的意图,是否因缓冲区溢出而造成了运行时恶意利用,从而提高软件的安全性。PULP(ProtectionbyUserLevelPartition,用户级分区保护),是一种基于处理器程序计数器和访存地址关联实现进程内数据隔离与保护的方法。在同一个进程内部,限制不可信代码对安全敏感数据造成的破坏和越界访问。以上三种针对进程内数据保护的技术,MPK是基于域的隔离,MPX是基于地址的隔离,PULP是基于用户级分区的数据隔离,MPX的缺点是需要对所有的地址访问进行修改,增加判断指令,开销比较大。MPK和PULP共同的缺点是,只能以域或区为单位进行数据保护,域或区一般包含若干个页,因此是粗粒度的数据保护,无法实现以页为单位的细粒度的进程内数据隔离。
技术实现思路
本专利技术为实现进程内数据的细粒度保护,提出了一种将用户进程的页表放置在虚拟空间进行保护的方法,用户进程中有一段虚拟空间由用户进程自身进行管理,限制不可信用户代码对虚拟空间敏感数据的访问。本专利技术提出的用户级页表保护(PULPT,ProtectionbyUserLevelPageTable)的安全机制,包括划分用户级页表和内核页表,管理用户级页表,限制用户级页表映射物理页面的范围,限定只有指定的程序对象才能访问用户级页表,越界访问、权限违法或缺页都会触发中断,执行用户自定义中断处理流程。其中,管理用户级页表又包括用户进程自管理区域虚拟地址和物理地址的相互转换(虚实页面间的映射过程),物理空间的管理方法,页表初始化和权限设置。具体地说,本专利技术公开了一种基于用户级页表的进程内数据隔离保护方法,其中包括:将用户进程的虚拟空间划分出一部分由用户进程自行管理,作为用户自管理区域,将该用户自管理区域划分为用户级页表区域和用户自管理数据区域,该用户级页表区域用以存放用户级页表,该用户自管理数据区域用以存放受保护的敏感数据,该敏感数据仅由该用户级页表进行管理,管理内容包括修改虚实地址映射、设定读写执行权限、标记读写的访问状态。该基于用户级页表的进程内数据隔离保护方法,其中划分用户级页表和内核页表,具体的方法是,在该用户进程的访存指令触发硬件查找页表项时,判断该访存指令请求的虚拟地址是否属于用户自管理区域的界限内,若是,则选择用户级页表的根目录地址,在用户级页表区域查找页表项;否则选择内核页表的根目录地址,在内核区域查找页表项;处理器包括虚地址界限寄存器,用于存储该用户自管理区域的上界和下界;处理器还包括地址寄存器,用于存储该用户级页表的根目录地址。该基于用户级页表的进程内数据隔离保护方法,其中该用户级页表内容由该用户进程自行管理,该用户进程执行过程中自行申请和分配该用户自管理区域的虚拟页面,并为该用户自管理区域的虚拟页面与物理页面建立映射关系,其中该物理页面由该用户进程向内核申请所得。该基于用户级页表的进程内数据隔离保护方法,其中通过以下步骤限制该用户级页表映射物理页面的范围:在处理器写指令执行时,若该写指令的目的地址属于用户自管理区域的用户级页表区域,则该写指令的写入数据即为用户级页表区域的页表项,从该页表项中获取该目的地址映射的物理页面的物理页号,并判断该物理页号是否合法,合法是指由内核配置的属于用户级页表映射的物理页面范围,若不合法则产生中断,阻止该写指令将页表项写入用户级页表区域,否则允许该写指令将页表项写入用户级页表区域;通过以下步骤设定该用户级页表映射的物理页面范围:由内核建立一种数据结构,该数据结构中的数据元素为本文档来自技高网
...

【技术保护点】
1.一种基于用户级页表的进程内数据隔离保护方法,其特征在于,包括:将用户进程的虚拟空间划分出一部分由用户进程自行管理,作为用户自管理区域,将该用户自管理区域划分为用户级页表区域和用户自管理数据区域,该用户级页表区域用以存放用户级页表,该用户自管理数据区域用以存放受保护的敏感数据,该敏感数据仅由该用户级页表进行管理,管理内容包括修改虚实地址映射、设定读写执行权限、标记读写的访问状态。

【技术特征摘要】
1.一种基于用户级页表的进程内数据隔离保护方法,其特征在于,包括:将用户进程的虚拟空间划分出一部分由用户进程自行管理,作为用户自管理区域,将该用户自管理区域划分为用户级页表区域和用户自管理数据区域,该用户级页表区域用以存放用户级页表,该用户自管理数据区域用以存放受保护的敏感数据,该敏感数据仅由该用户级页表进行管理,管理内容包括修改虚实地址映射、设定读写执行权限、标记读写的访问状态。2.如权利要求1所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,划分用户级页表和内核页表,具体的方法是,在该用户进程的访存指令触发硬件查找页表项时,判断该访存指令请求的虚拟地址是否属于用户自管理区域的界限内,若是,则选择用户级页表的根目录地址,在用户级页表区域查找页表项;否则选择内核页表的根目录地址,在内核区域查找页表项;处理器包括虚地址界限寄存器,用于存储该用户自管理区域的上界和下界;处理器还包括地址寄存器,用于存储该用户级页表的根目录地址。3.如权利要求1所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,该用户级页表内容由该用户进程自行管理,该用户进程执行过程中自行申请和分配该用户自管理区域的虚拟页面,并为该用户自管理区域的虚拟页面与物理页面建立映射关系,其中该物理页面由该用户进程向内核申请所得。4.如权利要求1和3所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,通过以下步骤限制该用户级页表映射物理页面的范围:在处理器写指令执行时,若该写指令的目的地址属于用户自管理区域的用户级页表区域,则该写指令的写入数据即为用户级页表区域的页表项,从该页表项中获取该目的地址映射的物理页面的物理页号,并判断该物理页号是否合法,合法是指由内核配置的属于用户级页表映射的物理页面范围,若不合法则产生中断,阻止该写指令将页表项写入用户级页表区域,否则允许该写指令将页表项写入用户级页表区域;通过以下步骤设定该用户级页表映射的物理页面范围:由内核建立一种数据结构,该数据结构中的数据元素为映射的物理页面地址,或映射的物理页面的物理页号,或该物理页号对应的指示位,对写该用户级页表时物理页号是否合法的判断,由查找该数据元素实现。5.如权利要求1所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,限定对该用户级页表进行访问的程序对象,以保护该用户级页表。6.如权利要求1或3所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,该用户自管理区域的虚拟页面与物理页面映射变换之前,先初始化一个自映射的多级页表,并分别在各级页表上建立对应的页表项指向各自页表的首地址,以完成该用户级页表的初始化过程。7.如权利要求1或3所述的基于用户级页表的进程内数据隔离保护方法,其特征在于,在该用户进程执行访存指令触发该用户自管理区域的虚拟页面与物理页面映射变换过程中,若发生中断,则执行以下步骤:步骤201,处理器在写回阶段检测中断,执行中断处理;步骤202,判断中断是否需要用户进程自行处理,若是,执行步骤203,否则执行步骤206;步骤203,用户进程自行处理该中断,处理器提供一组用户专用寄存器来保存中断指令的程序计数器、中断的原因和访存的地址;步...

【专利技术属性】
技术研发人员:赵阳洋陈明宇朱晓静洪宗会郭云格
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

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

1