一种响应Xen客户硬件虚拟域可信计算TOCTOU攻击的方法技术

技术编号:4066170 阅读:484 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种响应Xen客户硬件虚拟域可信计算TOCTOU攻击的方法,该方法在有效防范攻击的前提下充分考虑系统性能。方法中,Xen特权域与虚拟机监控器之间定义了1个超级调用和10个虚拟中断,用于虚拟机监控器与特权域之间传递与本发明专利技术相关的信息;响应方法的组件包括在特权域可信仿真设备模块中实现的转发模块和攻击信号处理模块、在特权域内核空间实现的转发模块以及在虚拟机监控器中实现的攻击管理模块。实施了本发明专利技术的系统能有效地响应硬件虚拟域的可信计算TOCTOU攻击;而且本发明专利技术的响应方法实用性强,在没有收到攻击信号的情况下,该响应方法对系统性能影响非常小;此外该方法对原有系统修改少,可扩展性强,适用于多个可信客户硬件虚拟域并行工作环境。

【技术实现步骤摘要】

本专利技术涉及计算机信息安全可信计算领域,是一种在Xen硬件虚拟域环境下响应 TCG可信计算T0CT0U攻击的有效方法。
技术介绍
TCG体系结构利用固化在计算机主板上的TPM硬件芯片的PCR寄存器的内容来判 定实际平台的安全性。然而大多数商用操作系统的设计模式使得仅仅提供软件加载验证的 TCG体系结构容易遭受TOCTOU (time of check vs time of use)的攻击,该攻击被称为可 信计算T0CT0U攻击。Xen虚拟机是一个成熟的开放源代码虚拟化产品,包括一个虚拟机监控器、一个特 权域和多个客户虚拟域。虚拟机监控器位于系统硬件平台与虚拟域操作系统软件之间,负 责监控下层硬件,并将硬件抽象成可管理调度的实体供上层计算域使用,还为上层虚拟域 提供有效的隔离机制,例如,所有内存更新都要经过虚拟机监控器的确认,使得各个虚拟域 能实现资源隔离、性能隔离、故障隔离;一个Xen虚拟机至少要运行虚机监控器和特权域, 即Xen虚拟机启动后,特权域是必须而且首先进入的操作系统,然后再根据用户的指令启 动客户虚拟域;特权域具有最高的权限,可以利用虚拟域管理工具控制客户虚拟域,包括创 建、删除和访问虚拟域的物理设备等。Xenstore是Xen提供的一个位于特权域的树状数据库,存储了所有正在运行的虚 拟域的配置信息,Xenstore提供一种“watch”监听机制,即当所监听的值发生改变的时候, 立即提醒监听方,由监听方去获取变化后的值。Xen虚拟机有2种工作模式,包括完全虚拟化和半虚拟化,并在不同的工作模式 采用不同的虚拟设备模型。Xen虚拟机在完全虚拟化模式下,采用仿真设备模型,客户虚 拟域需要特殊硬件的支持才能运行,因此完全虚拟化模式下的客户虚拟域又称为客户硬件 虚拟域。客户硬件虚拟域是通过位于特权域用户空间的设备仿真器来实现对硬件的访问, 对于任何一个硬件设备,设备仿真器必须有该硬件设备的仿真设备模块,否则客户硬件虚 拟域将无法访问该硬件设备。图1给出了特权域处理一个来自客户硬件虚拟域的TPM指 令的流程,其中可信仿真设备模块是设备仿真器的一个模块。特权域为每个客户硬件虚拟 域提供一个独立虚拟可信设备(一个虚拟可信设备就是特权域用户空间的一个进程),每 一个虚拟可信设备都有惟一标识,用变量vID来表示;每个客户硬件虚拟域都有一个标识 (DomID);任何来自客户硬件虚拟域的TPM指令将经过可信仿真设备模块传到相应虚拟可 信设备,虚拟可信设备将TPM指令的处理结果经过可信仿真设备模块传回到客户硬件虚拟 域。针对客户虚拟域发生的可信计算T0CT0U攻击,目前有许多基于虚机监控器的检 测方法,但是如何来响应检测到的客户虚拟域发生的可信计算T0CT0U攻击,也就是如何 让客户虚拟域的虚拟可信设备正确地反映客户虚拟域平台状态,目前还没有公开发表的方 法。
技术实现思路
本专利技术的目的是提供一种响应Xen客户硬件虚拟域可信计算T0CT0U攻击的方法, 在有效防范攻击的前提下充分考虑了系统的性能。该方法包括当虚拟机监控器检测到攻 击时,立即通知可信仿真设备模块;可信仿真设备模块接到通知后,一方面伪造TPM指令对 被攻击的客户硬件虚拟域所使用的虚拟可信设备的PCR寄存器进行内容更新,另一方面对 虚拟可信设备已经处理的、但处理结果还没有离开可信仿真设备模块的TPM指令,做相应 的处理,保证这些TPM指令的处理结果能正确反映相应的客户硬件虚拟域平台状态。本专利技术的具体实现方法为一种响应Xen客户硬件虚拟域可信计算T0CT0U攻击的方法,该方法的组件包括在 特权域可信仿真设备模块中实现的转发模块PickM和攻击信号处理模块FpakM、在特权域 内核空间实现的转发模块AgentM和在虚拟机监控器中实现攻击管理模块VMMmon ;此外,在 特权域与虚拟机监控器之间定义1个超级调用T_hyperCall和10个虚拟中断T_vIRQ ;响 应方法的具体步骤如下步骤1,启动计算机,运行带有VMMmon模块、T_hypercall和T_vIRQ的Xen虚拟机 监控器,并运行带有T_hypercall、T_vIRQ、FpakM和PickM的特权域系统,然后加载AgentM 模块,在AgentM模块完成初始化过程后,接着在特权域执行启动客户硬件虚拟域的命令; 在客户硬件虚拟域的内核启动之前,该客户硬件虚拟域所对应的可信仿真设备模块将以线 程方式运行PickM模块,PickM模块在其初始化过程中将客户硬件虚拟域的DomID传递给 AgentM模块,然后AgentM模块将DomID与T_vIRQ的绑定信息通过Tjiypercall发送给 VMMmon ;步骤2,VMMmon模块接到AgentM模块发送来的绑定信息,并从中获取T_vIRQ,接 着判断其维护的数据表是否有关于该T_vIRQ的信息,如果有,则用收到的绑定信息替代数 据表中原有的信息,然后保存;如果没有,则直接保存收到的绑定信息;其中VMMmon所维护 的数据表是在Xen虚拟机监控器刚运行时创建的;步骤3,Xen虚拟机监控器检测到客户硬件虚拟域发生可信计算T0CT0U攻击后, 立即通知VMMmon模块,VMMmon模块首先获得被攻击的客户硬件虚拟域的DomID,然后在 其维护的数据表中获得与DomID相对应的T_vIRQ,最后将攻击信号通过该T_vIRQ发送给 AgentM 模块;步骤4,AgentM模块将接到攻击信号转发给PickM模块,然后PickM模块通过设置 变量forevar的值将攻击信号传递给FpakM模块,最后FpakM模块伪造一个用于更新PCR的 TPM指令并发送给相应的虚拟可信设备,并等待虚拟可信设备的处理结果;其中forcevar 是在可信仿真设备模块中定义的一个全局变量,该变量的初始值为O ;步骤5,FpakM模块收到虚拟可信设备的处理结果后,首先删除收到的处理结果, 然后修改仍保存在可信仿真设备模块中的客户硬件虚拟域尚未取走的TPM指令处理结果。所述步骤1的AgentM模块的初始化过程的具体步骤如下步骤2. 1,AgentM模块被加载到特权域内核后,首先创建一个数据表,然后使用 XenStore 的 “watch” 监听机制监视 XenStore 的 “/tool” 路径。所述步骤1的PickM模块的初始化过程的具体步骤如下5步骤3. 1,PickM模块被加载到特权域内核后,首先获取其所对应的客户硬件虚拟 域的DomID,然后在XenStore的“/tool”路径下创建一个文件名为<DomID>的文件,同时将 该文件内容设置为<DomID> ;其中<DomID>表示DomID的值;步骤3. 2,使用 XenStore 的"watch"监听机制监视 XenStore 中的 “/local/ domain/0/backend/vtpm/<DomID>/0” 路径下文件名为 “Attack” 的文件。所述步骤1中VMMmon获得绑定信息的具体步骤如下步骤4. 1,AgentM模块收到XenStore产生的关于“/tool”路径的触发消息后, AgentM模块首先从触发消息中获取文件名,该文件名是一个客户硬件虚拟本文档来自技高网
...

【技术保护点】
一种响应Xen客户硬件虚拟域可信计算TOCTOU攻击的方法,其特征在于:该方法的组件包括在特权域可信仿真设备模块中实现的转发模块PickM和攻击信号处理模块FpakM、在特权域内核空间实现的转发模块AgentM和在虚拟机监控器中实现攻击管理模块VMMmon;此外,在特权域与虚拟机监控器之间定义1个超级调用T_hypercall和10个虚拟中断T_vIRQ;响应方法的具体步骤如下:步骤1,启动计算机,运行带有VMMmon模块、T_hypercall和T_vIRQ的Xen虚拟机监控器,并运行带有T_hypercall、T_vIRQ、FpakM和PickM的特权域系统,然后加载AgentM模块,在AgentM模块完成初始化过程后,接着在特权域执行启动客户硬件虚拟域的命令;在客户硬件虚拟域的内核启动之前,该客户硬件虚拟域所对应的可信仿真设备模块将以线程方式运行PickM模块,PickM模块在其初始化过程中将客户硬件虚拟域的DomID传递给AgentM模块,然后AgentM模块将DomID与T_vIRQ的绑定信息通过T_hypercall发送给VMMmon;步骤2,VMMmon模块接到AgentM模块发送来的绑定信息,并从中获取T_vIRQ,接着判断其维护的数据表是否有关于该T_vIRQ的信息,如果有,则用收到的绑定信息替代数据表中原有的信息,然后保存;如果没有,则直接保存收到的绑定信息;其中VMMmon所维护的数据表是在Xen虚拟机监控器刚运行时创建的;步骤3,Xen虚拟机监控器检测到客户硬件虚拟域发生可信计算TOCTOU攻击后,立即通知VMMmon模块,VMMmon模块首先获得被攻击的客户硬件虚拟域的DomID,然后在其维护的数据表中获得与DomID相对应的T_vIRQ,最后将攻击信号通过该T_vIRQ发送给AgentM模块;步骤4,AgentM模块将接到攻击信号转发给PickM模块,然后PickM模块通过设置变量forevar的值将攻击信号传递给FpakM模块,最后FpakM模块伪造一个用于更新PCR的TPM指令并发送给相应的虚拟可信设备,并等待虚拟可信设备的处理结果;其中forcevar是在可信仿真设备模块中定义的一个全局变量,该变量的初始值为0;步骤5,FpakM模块收到虚拟可信设备的处理结果后,首先删除收到的处理结果,然后修改仍保存在可信仿真设备模块中的客户硬件虚拟域尚未取走的TPM指令处理结果。...

【技术特征摘要】

【专利技术属性】
技术研发人员:常晓林邢彬左向晖韩臻刘吉强窦招辉
申请(专利权)人:北京交通大学
类型:发明
国别省市:11[中国|北京]

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

1