• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 18
    • 下载费用:30 金币  

    重庆时时彩买号方法: 基于XEN虚拟化的内核完整性检测方法.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201410062486.1

    申请日:

    2014.02.22

    公开号:

    CN103793651A

    公开日:

    2014.05.14

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 21/56申请日:20140222|||公开
    IPC分类号: G06F21/56(2013.01)I; G06F9/455; G06F12/02 主分类号: G06F21/56
    申请人: 西安电子科技大学
    发明人: 黄为; 杨超; 马建峰; 王照羽; 侯琬婷; 张驰
    地址: 710071 陕西省西安市太白南路2号
    优先权:
    专利代理机构: 陕西电子工业专利中心 61205 代理人: 张问芬;王品华
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410062486.1

    授权公告号:

    ||||||

    法律状态公告日:

    2016.05.25|||2014.06.11|||2014.05.14

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    一种基于Xen虚拟化的内核完整性检测方法,利用内核完整性检测系统对运行在Xen虚拟化平台上的虚拟机操作系统进行内核完整性检测。系统在Dom0设置内存映射、信息获取和安全检测三个部分,内存映射部分提供获取DomU中硬件层面的机器字节数据接口,信息获取部分部署通过内存映射部分提供的接口获取DomU中硬件层面的机器字节数据,根据DomU中的操作系统版本将硬件层面的机器字节数据转化成操作系统级别的信息。安全检测部分以轮询方式调用信息获取部分获得DomU中操作系统内核关键数据,并根据系统安全策略,判断DomU中操作系统内核的完整性是否受到破坏。本发明系统将检测系统部署在被监控系统外部,在保证检测系统安全的同时对被监控系统的内核进行完整性检测。

    权利要求书

    权利要求书
    1.  一种基于Xen虚拟化的内核完整性检测方法,利用内核完整性检测系统对运行在Xen虚拟化平台上的虚拟机的Linux或者类Unix操作系统进行内核完整性检测,其特征在于:所述内核完整性检测系统包括内存映射部分、信息获取部分和安全检测部分,这三个部分均部署在管理域Dom0,从管理域Dom0对客户域DomU的操作系统内核完整性进行检测,并有效利用了Xen提供的隔离性,避免内核完整性检测系统受到客户域DomU中的恶意软件的攻击;
    所述内存映射部分提供获取客户域DomU中硬件层面的机器字节数据的接口,获取客户域DomU中寄存器二进制数据、物理地址空间对应的随机存储器中的二进制数据和内核态的逻辑地址空间对应的随机存储器的二进制数据,在管理域Dom0模拟客户域DomU操作系统的分页模型,利用libxc,libxs库函数从管理域Dom0中获取客户域DomU内核态的逻辑地址空间对应的随机存储器二进制数据;
    所述信息获取部分利用内存映射部分提供的接口,获取客户域DomU中与系统内核状态相关的关键数据即中断描述符表、系统调用表和系统调用函数指令数据;
    所述安全检测部分以轮询方式调用信息获取部分获得客户域DomU的中断向量表、系统调用表、系统函数指令数据并求哈希值,与管理域Dom0安全策略文件的中断向量表、系统调用表和系统调用函数的SHA-1哈希值进行对比,检测客户域DomU中内核的完整性。

    2.  根据权利要求1所述的基于Xen虚拟化的内核完整性检测方法,其特征在于:内存映射部分获取DomU中内核态逻辑地址空间对应的随机存储器的二进制数据的过程如下:
    (1)假设给定的客户域DomU中的内核态逻辑地址为virtAddr;
    (2)确定DomU中操作系统采用的分页模型:

    2.  1)通过libxc的库函数,获取客户域DomU中央处理器的CR4寄存器的值;

    2.  2)取CR4寄存器的PSE允许页扩展标志位的值X,取CR4寄存器的PAE允许物理地址扩展标志位的值Y;

    2.  3)如果X等于0、Y等于0,则客户域DomU中系统采用的是常规分页模型;如果X等于1、Y等于0,则客户域DomU中系统采用的是扩展分页模型;如果X等于0、Y等 于1,则客户域DomU中系统采用的是物理地址扩展模型下的常规分页模型;如果X等于1、Y等于1,则客户域DomU中系统采用的是物理地址扩展模型下的扩展分页模型;
    (3)利用libxc的库函数获取客户域DomU中CR3寄存器的值作为基地址,模拟步骤2.3)操作系统系统的四种分页模型,将逻辑地址virtAddr转换为物理地址phyAddr;
    (4)利用libxc的库函数获取物理地址phyAddr对应的随机存储器中的二进制数据。

    3.  根据权利要求1所述的基于Xen虚拟化的内核完整性检测检测方法,其特征在于:所述信息获取部分通过内存映射部分提供的接口获取客户域DomU中系统的中断向量表信息、系统调用表中每一项表项的信息和安全策略文件中的系统调用函数的哈希值的过程如下:
    一、获取中断向量表信息
    (1)利用libxc库函数获取客户域DomU中的中央处理器的IDTR寄存器的信息;
    (2)取IDTR寄存器值的最高32位,得到中断向量表的32位逻辑地址,记作idtBaseAddr;
    (3)中断向量表包含256个表项,分别对中断向量表中的每一个表项,进行如下处理:

    3.  1)假设处理的表项为中断向量表中第N项,其逻辑地址为idtBaseAddr+8*N;

    3.  2)利用内存映射??樘峁┑慕涌诨袢〉贜个表项的二进制数据,每一个表项的二进制数据大小为8Byte,取其最高16位与最低16位便得到了对应的中断处理程序的32位逻辑地址;
    二、获取系统调用表信息
    (1)从部署在管理域Dom0的安全策略文件中读取客户域DomU中操作系统的系统调用表的逻辑地址,记作syscallTableAddr;
    (2)分别对系统调用表中的每一个表项,进行如下处理:

    2.  1)假设处理的表项为系统调用表中第N项,其逻辑地址为syscallTableAddr+4*N;

    2.  2)利用内存映射??樘峁┑慕涌诨袢〉贜个表项的二进制数据,便得到了对应的系统调用函数的32位逻辑地址;
    三、获取系统调用函数
    (1)首先,假设给定的是第N号系统调用;
    (2)从部署在管理域Dom0中的安全策略文件中读取客户域DomU中操作系统的系统调用表的32位逻辑地址,记作syscallTableAddr;
    (3)从部署在管理域Dom0中的安全策略文件中读取第N号系统调用号对应的系统调用 函数指令的长度,记作Len;
    (4)对于第N号系统调用,进行如下处理:

    4.  1)对于第N号系统调用,其对应的系统调用函数的地址存储在系统调用表中的第N个表项,其逻辑地址为syscallTableAddr+4*N,利用内存映射??榈慕涌诨袢「帽硐畹闹?,得到对应的系统调用函数逻辑地址funcAddr;

    4.  2)利用内存映射部分的接口获取逻辑地址funcAddr处长度为Len的数据,得到第N个系统调用函数指令的数据。

    4.  根据权利要求1所述的基于Xen虚拟化的内核完整性检测检测方法,其特征在于:所述安全检测部分从管理域Dom0对客户域DomU的操作系统内核进行完整性检测的操作如下:
    (1)从部署在管理域Dom0中的安全策略文件读取出以下信息:

    1.  1)中断向量表中每一个的中断处理函数的逻辑地址;

    1.  2)系统调用表中每个系统调用函数的逻辑地址;

    1.  3)系统调用号以及其对应的系统调用函数的指令数据的SHA-1哈希值;
    (2)以轮询的方式利用信息获取部分提供的接口,获取下列信息:

    2.  1)客户域DomU中的中断向量表中每个中断处理程序的逻辑地址;

    2.  2)客户域DomU中的系统调用表中的每个系统调用函数的逻辑地址;

    2.  3)客户域DomU中的系统调用函数指令的数据,然后利用SHA-1哈希算法计算出系统调用函数指令数据的哈希值;
    (3)比较从客户域DomU获取的信息与从安全策略文件中读取的信息;

    3.  1)比较中断向量表中每个中断处理程序的逻辑地址,如果某一项的数据不一致,说明对应的中断处理程序受到恶意软件的中断处理程序重定向攻击,记录下不一致的表项,并向管理域Dom0告警;

    3.  2)比较系统调用表中的每个系统调用函数的逻辑地址,如果某一项的数据不一致,说明对应的系统调用函数被恶意软件进行了系统调用重定向攻击,记录下不一致的表项,并向管理域Dom0告警;

    3.  3)比较系统调用函数指令数据的哈希值,如果不一致,说明相应的系统函数受到了恶意软件的代码注入攻击,记录下不一致的系统调用号,并向管理域Dom0告警。

    说明书

    说明书基于Xen虚拟化的内核完整性检测方法
    技术领域
    本发明涉及计算机虚拟化技术领域,进一步涉及计算机虚拟化以及安全领域。是一种基于Xen虚拟化的内核完整性检测检测方法,用于客户操作系统为Linux或者类Unix操作系统的Xen虚拟化平台上,实现在管理域Dom0中对虚拟化平台上的客户域DomU内的操作系统的内核的关键数据结构与代码进行完整性检测,为运行在虚拟化平台上的操作系统提供安全保障。
    背景技术
    操作系统安全性是计算机安全不可或缺的一部分。内核,是一个操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础。
    近几年来,随着黑客技术特别是Rootkit技术的发展,攻击者已经把触角伸入到了操作系统的内核。操作系统的内核代码面临着严重的威胁。因为内核具有最高特权,Rootkit运行在内核态,可以篡改内核数据结构、更改内核控制流,破坏内核的完整性,对系统安全构成了巨大的威胁。检测内核完整性是否受到破坏、?;つ诤送暾允羌觳庖桓鱿低呈欠癜踩?、构建安全系统的基础。
    针对操作系统内核的攻击通常的方法是篡改关键数据和改变控制流。现有的内核完整性检测、?;さ募际醮笾驴梢苑治嚼啵篈、保障、检测数据完整性,确保影响系统功能的关键数据对象只能由指定代码在特定情况下修改;B、保障、检测控制流完整性,?;ず图嗫赜跋齑胫葱行蛄械乃幸蛩?。利用上述技术实现的完整性?;?、检测工具,典型的有checkidt、kem-check等,它们均存在一个不足:内核完整性检测、?;さ陌踩砑氡患觳庀低吃谕坏刂房占?,目前流行的Rootkit等恶意软件运行在系统内核态,与安全软件处于同一特权级别,与恶意软件相比安全软件没有任何的特权优势。Rootkit等恶意软件可以绕过安全软件的检测机制、甚至破坏安全软件。
    近年来,虚拟化技术成为计算机系统结构的发展趋势,虚拟机管理器具有更高的权限、更小的可信计算基、更好的隔离性。由于虚拟化架构具有上述优势,基于虚拟化架构构建的安全工具能够有效地监控虚拟机内部状态,同时抵御被监控系统中可能发生的攻击,基于虚拟化架构增强安全工具的安全性成为安全研究的趋势。
    发明内容
    本发明在分析总结现有的内核完整性检测技术的不足的基础上,结合虚拟化技术、提供了一种新的基于Xen虚拟化的内核完整性检测方法。本发明利用虚拟化架构的特性,将内核完整性检测系统部署在被监控虚拟机外,使内核完整性检测系统不受被监控系统中恶意软件的攻击;利用虚拟机管理器处于虚拟化架构最底层负责管理整个硬件平台的优势,可以有效监控虚拟机的内部状态,使完整性检测机制不被恶意软件绕过。
    本发明的检测方法,利用内核完整性检测系统对运行在Xen虚拟化平台上的虚拟机中的Linux或者类Unix操作系统进行内核完整性检测,其特征在于:所述内核完整性检测系统包括内存映射部分、信息获取部分和安全检测部分,这三个部分均部署在管理域Dom0,从管理域Dom0对客户域DomU的操作系统内核完整性进行检测,并有效利用了Xen提供的隔离性,避免内核完整性检测系统受到客户域DomU中的恶意软件的攻击;
    所述内存映射部分提供获取客户域DomU中硬件层面的机器字节数据的接口,获取客户域DomU中寄存器二进制数据、物理地址空间对应的随机存储器中的二进制数据和内核态的逻辑地址空间对应的随机存储器的二进制数据,在管理域Dom0模拟客户域DomU操作系统的分页模型,利用libxc,libxs库函数从管理域Dom0中获取客户域DomU内核态的逻辑地址空间对应的随机存储器二进制数据;
    所述信息获取部分利用内存映射部分提供的接口,获取客户域DomU中与系统内核状态相关的关键数据即中断描述符表、系统调用表和系统调用函数指令数据;
    所述安全检测部分以轮询方式调用信息获取部分获得客户域DomU的中断向量表、系统调用表、系统函数指令数据并求哈希值,与管理域Dom0安全策略文件的中断向量表、系统调用表和系统调用函数的SHA-1哈希值进行对比,检测客户域DomU中内核的完整性。
    本发明的检测方法从管理域Dom0对客户域DomU中的操作系统内核进行完整性检测,具体由安全检测部分检测客户域DomU的内核完整性,检测过程如下:
    (1)从部署在管理域Dom0中的安全策略文件读取出以下信息:
    1.1)中断向量表中每一个的中断处理函数的逻辑地址;
    1.2)系统调用表中每个系统调用函数的逻辑地址;
    1.3)系统调用号以及其对应的系统调用函数的指令数据的SHA-1哈希值;
    (2)以轮询的方式利用信息获取??樘峁┑慕涌?,获取下列信息:
    2.1)客户域DomU中的中断向量表中每个中断处理程序的逻辑地址;
    2.2)客户域DomU中的系统调用表中的每个系统调用函数的逻辑地址;
    2.3)客户域DomU中的系统调用函数指令的数据,然后利用SHA-1哈希算法计算出系统调用函数指令数据的哈希值;
    (3)比较从DomU获取的信息与从安全策略文件中读取的信息:
    3.1)比较中断向量表中每个中断处理程序的逻辑地址,如果某一项的数据不一致,说明对应的中断处理程序受到恶意软件的中断处理程序重定向攻击,记录下不一致的表项,并向管理域Dom0告警;;
    3.2)比较系统调用表中的每个系统调用函数的逻辑地址,如果某一项的数据不一致,说明对应的系统调用函数被恶意软件进行了系统调用重定向攻击,记录下不一致的表项,并向管理域Dom0告警;
    3.3)比较系统调用函数指令数据的哈希值,如果不一致,说明相应的系统函数受到了恶意软件的代码注入攻击,记录下不一致的系统调用号,并向管理域Dom0告警;
    本发明与现有技术相比具有以下优点:
    第一,本发明结合虚拟化技术,利用虚拟机管理器的特权级别优势、从虚拟化平台获得被监控系统中最底层的信息,确保安全检测工具的监控行为不被恶意软件欺骗、绕过。
    第二,本发明利用虚拟技术提供的隔离性、将安全检测工具部署在管理域Dom0,将安全检测工具与监控的客户域DomU隔离开,可以有效确保安全检测工具自身的安全性。
    第三,本发明不需要修改客户域操作系统、管理域操作系统、虚拟机监控器,避免了修改可能引入的Bug、导致的紧耦合。
    第四,本发明分析了当前流行的进行内核完整性攻击的恶意软件的行为特性以及性状表现,针对内核关键资源进行检测,在能以高准确率检测内核完整性的情况下,不对系统运行效率造成可观影响。
    附图说明
    图1是本发明检测方法采用的系统整体结构图;
    图2是本发明内存映射部分逻辑地址通过分页机制映射到物理地址的示意图;
    图3是本发明内存映射部分访问客户域DomU中指定内核态逻辑地址空间数据的流程图;
    图4是本发明信息获取部分获取客户域DomU中中断向量表信息的流程图;
    图5是本发明信息获取部分获取客户域DomU中系统调用表信息的流程图;
    图6是本发明信息获取部分获取客户域DomU中系统调用函数指令数据的流程图;
    图7是本发明安全检测部分检测客户域DomU中内核完整性流程图;
    具体实施方式
    下面结合附图对本发明作进一步的描述。
    1、整体结构设计
    基于Xen虚拟化的内核完整性检测系统由三个基本部分构成,分别是内存映射部分、信息获取部分、安全检测部分。本发明系统部署在管理域Dom0,有效利用了Xen提供的隔离性、避免本发明系统受到客户域DomU中的恶意软件的攻击。整体系统架构图如图1所示。
    上述各部分功能如下:
    内存映射部分,在管理域Dom0中模拟客户域DomU中的分页机制,提供了获取客户域DomU中硬件层面的机器字节数据的接口,包括获取客户域DomU中寄存器的二进制数据、物理地址空间对应的随机存储器的二进制数据、内核态逻辑地址空间对应的随机存储器的二进制数据。
    所述信息获取部分通过内存映射部分提供的接口,获取客户域DomU中与系统内核状态相关的关键数据包括中断描述符表、系统调用表、系统调用函数指令数据。
    安全检测部分,调用信息获取部分获得客户域DomU中操作系统内核的关键数据,并根据安全检测部分中的存储的安全策略,判断客户域DomU中操作系统内核的完整性是否受到破坏。
    2、内存映射部分的具体实现
    Linux操作系统内有逻辑地址、线性地址、物理地址三种地址。在X86-32处理器架构上Linux的逻辑地址与线性地址相同。Linux操作系统中,逻辑地址用于进程空间的寻址,物理地址用于随机存储器的内存单元的寻址。Linux操作系统中每个进程的逻辑地址空间分为两个部分:1、用户态空间,地址范围从0X00000000到0XBFFFFFFF;2、内核态空间,地址范围从0XC0000000到0XFFFFFFFF。每个进程的用户态空间的信息不相同,但是内核态空间的信息完全一样。Linux操作系统内核的数据、函数存储在进程的内核态空间。
    当访问Linux操作系统中某一进程的用户态或者内核态地址空间的数据、函数时,操 作系统首先会利用分页单元将逻辑地址转换为物理地址,然后访问该物理地址对应的随机存储器的内存单元的二进制数据,示意图如图2所示。X86-32架构上的Linux操作系统的分页单元有4中分页模型:1、常规分页模型;2、扩展分页模型;3、物理地址扩展模型下的常规分页模型;4、物理地址扩展模型下的扩展分页模型。当编译Linux内核时,通过不同的配置选项可以指定Linux系统采用的分页模型。
    本发明系统在管理域Dom0中对客户域DomU中的操作系统内核进行完整性检测,需要获取客户域DomU中的某些内核信息,包括中断描述符表、系统调用表等,这些内核数据结构的地址都是用逻辑地址表示的,因此本发明系统需要在管理域Dom0中访问客户域DomU的内核态逻辑地址空间的信息。
    Xen虚拟化平台提供了开发库libxc,libxs。libxc,libxs库提供了以下接口:1、从管理域Dom0获取客户域DomU的中央处理器寄存器二进制数据的接口;2、从管理域Dom0中获取客户域DomU的物理地址空间对应的随机存储器中的二进制数据的接口。
    内存映射部分在libxc,libxs库的基础上,在管理域Dom0中模拟客户域DomU中系统的分页模型,实现了从管理域Dom0中获取客户域DomU中内核态逻辑地址空间对应的随机存储器的二进制数据的接口?;袢omU中内核态逻辑地址空间对应的随机存储器的二进制数据的过程如图3所示,具体步骤如下:
    (1)首先、假设给定的客户域DomU中的内核态逻辑地址为virtAddr.
    (2)确定DomU中操作系统采用的分页模型。
    2.1)通过libxc的库函数,获取客户域DomU中中央处理器的CR4寄存器的值。
    2.2)取CR4寄存器的PSE允许页扩展标志位的值X,取CR4寄存器的PAE允许物理地址扩展标志位的值Y。
    2.3)如果X等于0、Y等于0,则客户域DomU中系统采用的是常规分页模型。如果X等于1、Y等于0,则客户域DomU中系统采用的是扩展分页模型。如果X等于0、Y等于1,则客户域DomU中系统采用的是物理地址扩展模型下的常规分页模型。如果X等于1、Y等于1,则客户域DomU中系统采用的是物理地址扩展模型下的扩展分页模型。
    (3)利用libxc的库函数获取客户域DomU中CR3寄存器的值、作为基地址,模拟DomU中操作系统系统的分页模型,将逻辑地址virtAddr转换为物理地址phyAddr。
    (4)利用libxc的库函数获取物理地址phyAddr对应的随机存储器中的二进制数据。
    X86-64架构上的Linux操作系统中,每个进程都有4GB的逻辑地址空间,前3GB的 空间称为用户态空间,最后1GB空间称为内核态空间。两个进程中相同的用户态空间地址可能映射到不同的物理地址空间,相同的内核态空间会映射到相同的物理地址空间。Linux系统运行时,CR3寄存器中存储着当前进程的页目录的物理地址,CR3用于分页机制,用于将当前进程的逻辑地址映射为物理地址。因为DomU中操作系统有4种分页模型,所以在Dom0中模拟DomU中操作系统的分页模型将内核态逻辑地址转换为物理地址,有4种不同的过程。下面分别描述这四种过程。
    模拟DomU中的常规分页模型,将内核态逻辑地址转换为物理地址的步骤如下:
    (1)首先假设给定的32位内核态逻辑地址为virtAddr.
    利用libxc的库函数获取客户域DomU中CR3寄存器的二进制值,求得页目录基地址的物理地址、记为pageDirectoryBaseAddr。
    (2)利用pageDirectroyBaseAddr作为基地址,和virtAddr的最高10位构成的偏移量,得到对应的页目录项所在的物理地址、记为pdeAddr.利用libxs的库函数获取物理地址pdeAddr处的数据,求得对应的页表基地址的物理地址,记为pageTableBaseAddr.
    (3)利用pageTableBaseAddr作为基地址,和virtAddr的10至19位构成偏移量,得到对应的页表项所在的物理地址、记作pteAddr.利用libxs的库函数获取物理地址pteAddr处的数据,求得对应的页基地址的物理地址、记作pageBaseAddr.
    (4)利用pageBaseAddr作为基地址,加上virtAddr的最低12位构成的偏移量,得到内核态逻辑地址virtAddr对应的物理地址phyAddr.
    模拟DomU中的扩展分页模型,将内核态逻辑地址转换为物理地址的步骤如下:
    (1)首先假设给定的32位内核态逻辑地址为virtAddr.
    利用libxc的库函数获取客户域DomU中CR3寄存器的二进制值,求得页目录基地址的物理地址、记为pageDirectoryBaseAddr。
    (2)利用pageDirectroyBaseAddr作为基地址,和virtAddr的最高10位构成的偏移量,得到对应的页目录项所在的物理地址、记为pdeAddr.利用libxs的库函数获取物理地址pdeAddr处的数据,求得对应的页基地址的物理地址、记作pageBaseAddr.
    (3)利用pageBaseAddr作为基地址,加上virtAddr的最低22位构成的偏移量,得到内核态逻辑地址virtAddr对应的物理地址phyAddr.
    模拟DomU中物理地址扩展模型下的常规分页模型,将内核态逻辑地址转换为物理地址的步骤如下:
    (1)首先假设给定的32位内核态逻辑地址为virtAddr.
    利用libxc的库函数获取客户域DomU中CR3寄存器的二进制值,得到页目录指针表基地址的物理地址、记作pageDirPointerTableAddr.
    (2)利用pageDirPointerTableAddr作为基地址,和virtAddr的最高2位构成的偏移量,得到对应的页目录指针项所在的物理地址、记为pdpeAddr.利用libxs的库函数获取物理地址pdpeAddr处的数据,求得对应的页目录基地址的物理地址,记为pageDirectoryBaseAddr.
    (3)利用pageDirectroyBaseAddr作为基地址,和virtAddr的2至10位构成的偏移量,得到对应的页目录项所在的物理地址、记为pdeAddr.利用libxs的库函数获取物理地址pdeAddr处的数据,求得对应的页表基地址的物理地址,记为pageTableBaseAddr.
    (4)利用pageTableBaseAddr作为基地址,和virtAddr的11至19位构成偏移量,得到对应的页表项所在的物理地址、记作pteAddr.利用libxs的库函数获取物理地址pteAddr处的数据,求得对应的页基地址的物理地址、记作pageBaseAddr.
    (5)利用pageBaseAddr作为基地址,加上virtAddr的最低12位构成的偏移量,得到内核态逻辑地址virtAddr对应的物理地址phyAddr.
    模拟DomU中物理地址扩展模型下的扩展分页模型,将内核态逻辑地址转换为物理地址的步骤如下:
    (1)首先假设给定的32位内核态逻辑地址为virtAddr.
    利用libxc的库函数获取客户域DomU中CR3寄存器的二进制值,得到页目录指针表基地址的物理地址、记作pageDirPointerTableAddr.
    (2)利用pageDirPointerTableAddr作为基地址,和virtAddr的最高2位构成的偏移量,得到对应的页目录指针项所在的物理地址、记为pdpeAddr.利用libxs的库函数获取物理地址pdpeAddr处的数据,求得对应的页目录基地址的物理地址,记为pageDirectoryBaseAddr.
    (3)利用pageDirectroyBaseAddr作为基地址,和virtAddr的2至10位构成的偏移量,得到对应的页目录项所在的物理地址、记为pdeAddr.利用libxs的库函数获取物理地址pdeAddr处的数据,求得对应的页基地址的物理地址,记为pageBaseAddr.
    (4)利用pageBaseAddr作为基地址,加上virtAddr的最低21位构成的偏移量,得到内 核态逻辑地址virtAddr对应的物理地址phyAddr.
    3、信息获取部分的具体实现
    通过研究目前主流的破坏内核完整性的恶意软件、以及检测内核完整性技术采用的方法、技术,确定了本发明系统需要检测的关键资源。本发明系统在管理域Dom0中对客户域DomU中的内核完整性进行检测、需要检测客户域DomU中系统的中断向量表、系统调用表、系统调用函数的完整性。信息获取??樘峁┝嘶袢≈卸舷蛄勘硇畔?、系统调用表信息、系统调用函数指令数据的接口。
    Linux系统的中断向量表的地址保存在IDTR寄存器中。Linux系统运行时,IDTR寄存器中存放着中断向量表的32位逻辑地址和16位的表长度值。中断向量表中包含256项,每项占8Byte,每一表项的高16位和低16位合成后表示中断处理程序的32位逻辑地址?;袢】突в駾omU中系统的中断向量表信息的过程如图4所示,具体步骤如下:
    (1)利用libxc库函数获取客户域DomU中的中央处理器的IDTR寄存器的值。
    (2)取IDTR寄存器值的最高32位,得到中断向量表的32位逻辑地址,记作idtBaseAddr.。
    (3)中断向量表包含256个表项,分别对中断向量表中的每一个表项,进行如下处理:
    3.1)假设处理的表项为中断向量表中第N项,其逻辑地址为idtBaseAddr+8*N.
    3.2)利用内存映射??樘峁┑慕涌诨袢〉贜个表项的二进制数据。每一个表项的二进制数据大小为8Byte,取其最高16位与最低16位便得到了对应的中断处理程序的32位逻辑地址。
    Linux系统中的系统调用表的逻辑地址在内核编译后其地址是固定的,不同版本的Linux内核系统调用表的地址可能不相同,通过查看Linux系统中的system.map文件中的符号sys_call_table,可以知道系统调用表的逻辑地址,本发明预先将DomU中的系统调用表的逻辑地址存放在Dom0的安全策略文件中。系统调用表中的每个表项占4Byte,每个表项的数据代表一个系统调用函数的32位的逻辑地址?;袢】突в駾omU中系统的系统调用表信息的过程如图5所示、具体步骤如下:
    (1)从部署在管理域Dom0的安全策略文件中读取客户域DomU中操作系统的系统调用表的逻辑地址、记作syscallTableAddr.。
    (2)分别对系统调用表中的每一个表项,进行如下处理:
    2.1)假设处理的表项为系统调用表中第N项,其逻辑地址为syscallTableAddr+4*N.
    2.2)利用内存映射??樘峁┑慕涌诨袢〉贜个表项的二进制数据,便得到了对应的系统调用函数的32位逻辑地址。
    系统调用表中的每个表项占4Byte,每个表项的数据代表一个系统调用函数的逻辑地址。系统调用函数的逻辑地址都在内核空间。每个编译好的Linux内核的系统调用函数的指令数据是固定的,函数指令的长度也是固定的。通过反汇编查看Linux内核源代码编译的目标文件,可以得到系统调用函数的指令的长度?;袢】突в駾omU中系统的给定的系统调函数的指令数据的过程如图6所示,具体步骤如下:
    (1)首先,假设给定的是第N号系统调用。
    (2)从部署在管理域Dom0中的安全策略文件中读取客户域DomU中操作系统的系统调用表的32位逻辑地址,记作syscallTableAddr。
    (3)从部署在管理域Dom0中的安全策略文件中读取第N号系统调用号对应的系统调用函数指令的长度,记作Len。
    (4)对于第N号系统调用,进行如下处理:
    4.1)对于第N号系统调用,其对应的系统调用函数的地址存储在系统调用表中的第N个表项,其逻辑地址为syscallTableAddr+4*N.利用内存映射??榈慕涌诨袢「帽硐畹闹?,得到对应的系统调用函数逻辑地址funcAddr。
    4.2)利用内存映射部分的接口获取逻辑地址funcAddr处长度为Len的数据。这样便得到了第N个系统调用函数指令的数据。
    4、安全检测部分具体实现
    编译好的Linux内核的中断向量表、系统调用表、系统函数指令数据是固定的。目前流行的破坏内核完整性的恶意软件大部分通过修改中断向量表、系统调用表、系统函数指令达到破坏内核完整性的目的。本发明系统首先获取完整内核的中断向量表中的每个中断处理程序的逻辑地址、系统调用表中的每个系统调用函数的逻辑地址、每个系统调用函数的指令数据的SHA-1哈希值,将这些信息记录在文件中,这个文件称为安全策略文件。
    安全检测部分以轮询方式调用信息获取部分提供的接口,得到客户域DomU中的中断向量表、系统调用表、系统函数指令数据,与部署在管理域Dom0中的安全策略文件中的信息进行对比,检测客户域DomU中内核的完整性是否收到破坏。检测客户域DomU的内核完整性的过程如图7所示,具体步骤如下:
    (1)从部署在管理域Dom0中的安全策略文件读取出以下信息:
    1.1)中断向量表中每一个的中断处理函数的逻辑地址;
    1.2)系统调用表中每个系统调用函数的逻辑地址;
    1.3)系统调用号以及其对应的系统调用函数的指令数据的SHA-1哈希值。
    (2)以轮询的方式利用信息获取部分提供的接口,获取下列信息:
    2.1)客户域DomU中的中断向量表中每个中断处理程序的逻辑地址;
    2.2)客户域DomU中的系统调用表中的每个系统调用函数的逻辑地址;
    2.3)客户域DomU中的系统调用函数指令的数据,然后利用SHA-1哈希算法计算出系统调用函数指令数据的哈希值。
    (3)比较从DomU获取的信息与从安全策略文件中读取的信息:
    3.1)比较中断向量表中每个中断处理程序的逻辑地址,如果某一项的数据不一致,说明对应的中断处理程序受到恶意软件的中断处理程序重定向攻击,记录下不一致的表项,并向管理域Dom0告警;
    3.2)比较系统调用表中的每个系统调用函数的逻辑地址,如果某一项的数据不一致,说明对应的系统调用函数被恶意软件进行了系统调用重定向攻击,记录下不一致的表项,并向管理域Dom0告警;
    3.3)比较系统调用函数指令数据的哈希值,如果不一致,说明相应的系统函数受到了恶意软件的代码注入攻击,记录下不一致的系统调用号,并向管理域Dom0告警。

    关 键 词:
    基于 XEN 虚拟 内核 完整性 检测 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:基于XEN虚拟化的内核完整性检测方法.pdf
    链接地址://www.4mum.com.cn/p-6157145.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03