一种Linux内核轻量级结构化保护方法及装置制造方法及图纸

技术编号:16301499 阅读:80 留言:0更新日期:2017-09-26 19:36
本发明专利技术涉及一种Linux内核轻量级结构化保护方法及装置。该方法将Linux内核结构化为关键保护结构和非关键保护结构,对关键保护结构进行重点保护,对非关键保护结构进行可选择性保护;所述关键保护结构包括Linux安全模块及与Linux安全模块密切相关的结构;然后监控针对所述关键保护结构的修改动作,对被保护的数据变更进行拦截,对被保护的代码变更和/或页表项变更进行检查以判定其合法性,如果判定为非法则进行拦截,如果判定为合法则通过指令模拟完成相应的修改。本发明专利技术能够以较小的性能代价提升Linux内核整体的安全性。

Linux kernel lightweight structured protection method and device

The invention relates to a lightweight structure protection method and device for Linux kernel. This method will be structured as a key to protect the Linux kernel structure and non key protection structure, focus on the protection of key protection structure, for selective protection of non key protection structure; the key protection structure comprises a Linux security module and structure is closely related with the Linux security module; and monitoring for the key protection structure modification action, to intercept the protected data change, check on the protected code change and / or change the page table to determine its legitimacy, if judged to be non rule to intercept, if judged by legal instruction simulation to complete the corresponding modification. The invention can enhance the overall security of the Linux kernel with a small performance cost.

【技术实现步骤摘要】
一种Linux内核轻量级结构化保护方法及装置
本专利技术属于计算机操作系统内核安全
,具体涉及一种基于虚拟化技术针对Linux内核的轻量级结构化的保护方法及装置。
技术介绍
随着计算机系统越来越广泛的使用,计算机系统的安全问题被广泛关注。计算机系统的安全有多个层次和方面,而在传统的软件栈中操作系统内核是处于最底层,是整个计算机系统的基础,因此操作系统内核安全尤为重要。Linux操作系统内核是极其庞大和复杂的,对其进行全方位保护需要的开销极大,并且保护方案难以实现和确保全面性。已有的技术多是针对抵御特定类型的攻击和防护特定类型的结构,提供单一侧面的内核保护。
技术实现思路
本专利技术要解决的技术问题是以较小的性能代价提升Linux内核整体的安全性而不仅仅是某个单一侧面的保护。为了解决上述问题,本专利技术提出了一种基于虚拟化技术针对Linux内核的轻量级结构化的保护方法,包括:将Linux内核结构化为两个部分——关键保护结构和非关键保护结构。对关键保护结构进行重点保护,而对非关键保护结构进行可选择性保护。对于Linux内核结构化的划分,本专利技术以Linux安全模块(LinuxSecurityModule,LSM)为基础,将其作为关键保护结构的重点,然后以此展开,将与LSM密切相关的结构都作为关键保护结构。这些结构包括LSM框架中的security_hook_heads、各个安全模块中的security_hook_list、系统调用表sys_call_table与ia32_sys_call_table、中断向量表idt_table与debug_idt_table以及trace_idt_table、内核中所有代码和与前述结构相关的页表项。本方法监控针对上述关键保护结构的修改动作。监控的原则包括:通过清除虚拟机扩展页表(ExtendPageTable,EPT)里受保护数据结构相关页表项中的写权限位,防止security_hook_heads、security_hook_list、系统调用表、中断向量表被更改。通过清除EPT里内核代码(包括内核模块代码)相关页表项中的写权限位,捕捉对内核代码的更改行为,对更改进行检测。当检测认为符合内核中任意特性对内核代码的修改行为后,模拟指令使对内核代码的修改生效。通过清除与受保护页表项相关的EPT里的页表项中的写权限,捕捉对受保护页表项的修改,检查修改是否保证了其映射不被改变以及权限设置满足代码完整性的要求。对经过检查的修改经过指令模拟,完成相应的修改。本专利技术还提供了一种Linux内核轻量级结构化保护装置,包括:启动模块,用于本装置的启动过程和初始化的管理。当Linux内核启动完毕且各个启动阶段应该别加载的模块加载完毕之后,本专利提出的装置将以模块的形式进入到内核当中执行。本装置将建立虚拟化的执行环境,然后将当前在物理机上运行的操作系统内核迁移到刚建立的虚拟机中去,接着通过这个虚拟机对操作系统内核进行监控。虚拟机管理模块,用于维护虚拟机的虚拟执行环境,提供本装置到虚拟机的切换,处理虚拟机切换到本装置后的虚拟机状态记录以及根据虚拟机退出原因进行任务分发,维护和更改EPT中权限设置。保护结构管理模块,用于记录被保护结构在虚拟机中的虚拟地址和物理地址以及虚拟地址与物理地址的关系,管理被保护结构的增加与删除,维护保护结构与策略函数关系。本专利技术所述“策略函数”是指保护结构权限违背后需要采取的应对措施,包括但不限于数据策略、代码策略和页表策略。指令解析与模拟模块,用于对机器指令进行解析,辅助策略函数判断指令会对内存产生的修改,模拟指令让指令生效。数据策略模块,用于对被保护的数据变更进行拦截。代码策略模块,用于对被保护的代码变更进行检查,判定修改的合法性,拦截非法的修改,模拟合法的修改以使修改生效。页表策略模块,用于对被保护的页表项变更进行检查,判定修改的合法性,拦截非法的修改,模拟合法的修改以使修改生效。与现有技术相比,本专利技术的有益效果是:本专利技术能够以较小的性能代价提升Linux内核整体的安全性,而不仅仅是某个单一侧面的保护。本专利技术将内核保护的范围缩小到了关键保护结构,降低了保护的对象规模,减小了性能开销。同时与已有的技术只针对特定的攻击或者具有特定语义的结构,本专利技术对代码、数据和控制流的完整性都进行了保护,实现更加全面的防护。附图说明图1是页表项分类示意图;图2是指令更改过程图;图3是安装本专利技术的系统与原生系统的性能对比图。具体实施方式为使本专利技术的目的、技术方案和优点表达得更加清楚明白,下面将结合本专利技术实施实例中的附图,对本专利技术再作进一步详细的说明。显然,所描述的实施例只是本专利技术的一部分实例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员凡是采用本专利技术的设计结构和思想而在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本文是基于针对IntelX86_64架构的Linux系统的方案,其中所涉及的现有的系统调用、结构、函数、处理器特性、寄存器的名称在本领域均习惯使用英文,对于没有公认中文释义的名称,使用中文反而有可能让本领域技术人员迷惑;且这些名称在Linux系统和Intel处理器中均有特定含义,技术人员能够明确各名称所表示的内容,而不会产生误解。因此本文中所涉及的Linux系统和Intel处理器中现有的、无公认中文翻译的名称均使用英文表示。本专利技术的一个实施例描述关键保护数据的保护方法,对关键保护数据的修改进行拦截;本专利技术的又一个实施例表述对页表的保护,对正常的页表项修改企图进行检查后模拟指令完成修改动作;本专利技术的又一个实施例描述内核代码的保护方法,对非法的代码修改企图进行检查后拦截修改以及对正常的代码修改企图进行检查后模拟指令完成修改动作。实施例一、一种对关键保护数据的保护方法,包括:101、在本装置启动阶段,本装置将初始化执行环境,并将关键保护数据和内核代码(包括内核模块代码)在内的关键保护结构的地址范围、相应的EPT页表权限与各关键保护结构的策略函数加入到保护结构管理模块中。102、保护结构管理模块获得各个关键保护数据结构和内核代码以及可加载内核模块代码的虚拟地址范围,然后遍历内核页表找到这些虚拟地址范围对应的保护结构的物理地址范围,将这些物理地址范围与各个相关的保护结构关联起来,同时在遍历的过程中找到与关联这些虚拟地址范围与物理地址范围的页表项,并将这些页表项对应的物理地址范围和与之相关的保护结构关联起来。103、保护结构管理模块根据获得的EPT页表权限并通过虚拟机管理模块的设置,遍历页表得到的保护结构物理地址范围所对应的EPT页表项中的权限。所有的保护结构的EPT页表项权限都清除了写权限。当虚拟机中一个对系统调用表的修改发生时,这个修改由于EPT中权限设置使得虚拟机切换到宿主机上,从而虚拟机管理模块获得执行。104、虚拟机管理模块从虚拟机控制结构VMCS中获取虚拟机退出原因,然后根据出错原因调用相应的处理函数,从而EPTviolation处理函数得以执行。该函数从VMCS获得获取错误发生的物理地址,然后根据物理地址找到对应的保护结构和类型信息,然后调用与保护结构关联的策略函数。系统调用表是属于关键保护数据,因此其策略函数不做任何判定,直接拒绝本文档来自技高网...
一种Linux内核轻量级结构化保护方法及装置

【技术保护点】
一种Linux内核轻量级结构化保护方法,其特征在于,包括以下步骤:1)将Linux内核结构化为关键保护结构和非关键保护结构,对关键保护结构进行重点保护,对非关键保护结构进行可选择性保护;所述关键保护结构包括Linux安全模块及与Linux安全模块密切相关的结构;2)监控针对所述关键保护结构的修改动作,对被保护的数据变更进行拦截,对被保护的代码变更和/或页表项变更进行检查以判定其合法性,如果判定为非法则进行拦截,如果判定为合法则通过指令模拟完成相应的修改。

【技术特征摘要】
1.一种Linux内核轻量级结构化保护方法,其特征在于,包括以下步骤:1)将Linux内核结构化为关键保护结构和非关键保护结构,对关键保护结构进行重点保护,对非关键保护结构进行可选择性保护;所述关键保护结构包括Linux安全模块及与Linux安全模块密切相关的结构;2)监控针对所述关键保护结构的修改动作,对被保护的数据变更进行拦截,对被保护的代码变更和/或页表项变更进行检查以判定其合法性,如果判定为非法则进行拦截,如果判定为合法则通过指令模拟完成相应的修改。2.如权利要求1所述的方法,其特征在于,所述关键保护结构包括包括LSM框架中的security_hook_heads、各个安全模块中的security_hook_list、系统调用表sys_call_table与ia32_sys_call_table、中断向量表idt_table与debug_idt_table以及trace_idt_table、内核中所有代码和与前述结构相关的页表项。3.如权利要求1所述的方法,其特征在于,步骤2)通过清除虚拟机扩展页表EPT里受保护数据结构相关页表项中的写权限位,防止security_hook_heads、security_hook_list、系统调用表、中断向量表被更改。4.如权利要求1所述的方法,其特征在于,步骤2)通过清除EPT里内核代码相关页表项中的写权限位,捕捉对内核代码的更改行为,对更改进行检查,当认为符合内核中任意特性对内核代码的修改行为后,模拟指令使对内核代码的修改生效。5.如权利要求1所述的方法,其特征在于,步骤2)通过清除与受保护页表项相关的EPT里的页表项中的写权限,捕捉对受保护页表项的修改,并检查该修改是否保证了其映射不被改变以及权限设置满足代码完整性的要求,对经过检查的修改经过指令模拟,完成相应的...

【专利技术属性】
技术研发人员:涂碧波王博实
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1