[发明专利]基于多内核页表的内核动态数据隔离以及保护技术在审
申请号: | 201710345654.1 | 申请日: | 2017-05-12 |
公开(公告)号: | CN107168801A | 公开(公告)日: | 2017-09-15 |
发明(设计)人: | 吕腾飞;黄皓 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F21/62;G06F12/1027 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210023 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 内核 动态 数据 隔离 以及 保护 技术 | ||
技术领域
本发明涉及Linux内核隔离和防护领域,特别是一种基于多内核页表的内核动态数据隔离以及保护技术。
背景技术
Linux是目前在计算机操作系统上运行越来越快,越来越强大的内核之一。基于Linux内核也已经涌现出了大量的发行版,无论是在服务器还是客户端中都占有着举足轻重的地位。同时,Linux也是一个庞大的开源项目,本身包含千万级别的代码量,甚至该数量仍然在不断扩充。更多的代码意味着更多的漏洞。不仅如此,Linux系统本身还具有很高的可扩展性和灵活性,允许通过插入模块的方式向内核中增加代码,这在进一步增加了Linux代码量的同时,不可信的模块插入也对于系统运行造成很大的风险,导致系统变得更加不安全。虽然我们通常将Linux认为是系统运行中的可信软件,但是仍然需要承认其中存在不可避免的不可信问题。而这些不可信因素通常也给了攻击者可乘之机,被用来获取系统root权限、窃取系统机密信息或者修改系统关键数据等等。
针对内核的不可信问题,存在着大量的研究方向。内核隔离作为其中的一个重要方向得到广泛的研究,其中通过页表构建独立执行空间的思想得到广泛的应用。但是当前基于页表的隔离实现中存在一个普遍的问题:小动态数据的混合页问题。无论是通过Hypervisor页表实现隔离还是通过Linux内核页表实现内核组件的隔离,隔离后的Linux主内核和被隔离组件的小内存数据通常存在混合分布的情况,导致无法利用页粒度的保护对于不同来源的小内存空间进行限制,而通常对于这些混合页面需要引入额外的控制机制,带来很大的空间和时间上的开销。
发明内容
针对以上现有技术中的不足,本发明的目的在于提供一种内核不同来源的动态数据隔离和保护技术。避免来自不同来源的小动态数据混合分布在同一组页框中的情况。从而便于实现隔离不同来源的动态数据的需求,解决内核隔离中常见的动态数据混合页的问题。同时进一步提出了一种通过多内核态页表在内核运行过程中为内核不同来源的动态数据构建隔离空间的方法。通过在内核空间建立多套内核页表,从而在内核空间构建多个内存视图。内核运行过程中通过切换页表的方式实现不同内存视图的迁移。
内核的正常运行需要代码和数据之间的协作。通过将内核不同组件的动态数据隔离到不同的内存视图中,可以对于内核运行在特定组件时能够访问的内存区域进行限制。内核仅仅可以访问当前使用的内核页表限定为可见的内存位置,而无法直接访问当前内存视图中不可见的内存。从而防止内核运行过程中的不可信行为对于任意内核内存区域的破坏。
本发明的技术方案如下:一种基于多内核态页表实现的内核动态数据隔离和保护方法,主要包含以下三个部分:
1)多内核页表的构建:用于在内核空间中通过这多套内核态页表构建多个内存视图。内核运行在特定内核页表构建的内存视图下的时候不能访问当前内核页表中被设置为不可见的内存空间,从而限制内核此时能够访问的内存空间范围。
2)支持分配来源标识以实现动态分配内存隔离的内存分配器构建:通过分配来源标志判定分配请求来源,然后将不同来源的动态内存在不同的内核页表中设置不同的访问权限,使得只有在特定的内核页表的作用下才能完成对于该内存区域的正常访问。
3)多内核页表交叉访问引发的缺页异常的处理:如果内核运行过程中有意或者无意地访问了当前内核页表作用下不可见的内存空间,则会触发内核态缺页异常,通过在缺页异常处理函数中增加额外的逻辑对于该情况进行处理。
进一步,可以将上面的三个部分归结为如下的实现步骤:
步骤1:在系统初始化的时候建立多套内核态页表。初始化时期在这多套内核态页表建立一致性的映射关系。对于内核空间中的直接映射区域将映射关系建立在不同的内核页表页上以便于后期的权限差异化设置,对于内核空间的其他区域,则通过共享低层页表页的方式建立一致性的映射,因为动态数据的隔离不需要对于除了直接映射区域之外的其它空间的页表项进行设置。每个页表用于构建一个相对隔离的内存环境。使用页表的好处就是地址翻译过程构建在其基础之上,内核运行过程中通过内核态页表来完成虚拟地址到物理地址的转换。通过限制内核态页表中页表项的_PAGE_PRESENT属性,就可以使得内核运行在某套内核态页表的时候只能看到部分内存视图。而这个部分内存视图则构成内核当前运行的一个受限的环境。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710345654.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种内存分配方法及装置
- 下一篇:一种云存储中小文件的合并方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置