首页> 中国专利> 一种适用于Xen虚拟化平台的隐蔽通道检测方法

一种适用于Xen虚拟化平台的隐蔽通道检测方法

摘要

本发明公开了一种适用于Xen虚拟化平台的隐蔽通道检测方法,本方法为:1)查找Xen虚拟化平台的元操作,并确定每一元操作的入口函数;2)对每个入口函数构造一变量描述符表,并给出输出参数列表;3)将得到的变量描述符表两两取交集,如果交集中存在一变量,该变量在一变量描述符表中有读属性R,在另一变量描述符表中有写属性W,且该变量与该有读属性R的变量描述符表所对应的入口函数的传出参数等价,则判定该变量为潜在隐蔽通道;4)对检测出的潜在隐蔽通道进行场景构建,验证该潜在隐蔽通道是否为真实隐蔽通道。本发明大幅降低了工作量,可以准确定位潜在隐蔽通道的共享资源的位置和调用关系。

著录项

  • 公开/公告号CN103279414A

    专利类型发明专利

  • 公开/公告日2013-09-04

    原文格式PDF

  • 申请/专利权人 北京大学;

    申请/专利号CN201310195439.X

  • 发明设计人 沈晴霓;张壮壮;吴中海;卿斯汉;

    申请日2013-05-23

  • 分类号

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人冯艺东

  • 地址 100871 北京市海淀区颐和园路5号北京大学

  • 入库时间 2024-02-19 20:03:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-02

    未缴年费专利权终止 IPC(主分类):G06F11/36 专利号:ZL201310195439X 申请日:20130523 授权公告日:20160420

    专利权的终止

  • 2016-04-20

    授权

    授权

  • 2013-10-09

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20130523

    实质审查的生效

  • 2013-09-04

    公开

    公开

说明书

技术领域

本发明属于虚拟化平台的安全领域,主要涉及一种对Xen虚拟化平台进行隐蔽通道的检 测方法。

背景技术

Xen虚拟化平台是源于英国剑桥大学计算机实验室在2002年4月开始的一个开源虚拟机 项目,现广泛部署于大型服务器,对其进行安全研究具有重要的理论和现实意义。

隐蔽通道的概念最早是由Lampson在1973年提出来的,我国国家标准GB17859-1999规 定隐蔽通道是运行进程以危害系统策略的方式传输信息的通信信道。现今安全操作系统处在 从第三级向第四级跨越的关键时间,隐蔽通道分析就是其中的关键一环。

从隐蔽通道问题提出至今40年的时间里,隐蔽通道的研究对象包括了从操作系统、数据 库、网络直至现在的云环境。但就研究深度而言,现今所有的研究方法和工程实践大多针对 操作系统层面进行。随着云计算的兴起,包括隐蔽通道在内的云安全问题也日渐突出。

云计算是继大型计算机到客户端-服务器的大转变之后的又一巨变,被视为信息技术的第 三次浪潮。虚拟化技术是云计算系统的核心组成部分,是将各种计算及存储资源充分整合和 高效利用的关键技术,是云计算基础设施灵活性的基石。因此对虚拟化技术的安全研究对云 安全有深远的意义,而Xen虚拟化平台作为当今应用最广泛的虚拟化软件之一,研究其上的 隐蔽通道问题不仅对隐蔽通道理论的完善和拓展有很大推动作用,也对云安全、云环境中的 隐蔽通道问题有很好的启发意义。

以下是目前可查到的与虚拟化平台的隐蔽通道标识相关的专利情况。

公开号为101364203,发明名称为“一种面向隐蔽通道分析的系统分析和划分方法”的发 明公开了一种属于隐蔽通道分析技术领域的专利。所述方法包括:面向隐蔽通道分析的系统 分析和划分方法,步骤10:初始化动作;步骤11:判断函数调用图是否为空,如果为空转步骤12, 表示分析划分算法结束,否则转步骤13;步骤12:输出分析的结果;步骤13:判断函数调用图是否 连通;步骤14:找出函数调用图所有不连通的分支;步骤15:循环分析函数调用图的每个连通分 支;步骤16:判断函数调用图中是否存在不依赖其他节点的节点;步骤18:把出度为0的节点从函 数调用图中删除,并且把该节点加入结果链表的末尾;步骤19:判断函数调用图中是否存在极大 强连通子图;如存在转步骤1A,否则转步骤11;步骤1A:找到函数调用图中极大强连通子图;步骤 1B:删除此极大强连通子图,步骤1C:结束。

该专利虽然也隶属于隐蔽通道分析技术领域,但是其关注的焦点主要放在分析整个系统 的函数调用关系,并把系统分成连通分支而进行分析。

公开号为101257417,发明名称为“基于模糊神经网络的TCP/IP协议隐蔽通道检测方法” 的发明公开了基于模糊神经网络的TCP/IP协议隐蔽通道检测方法。该方法采用模糊神经网络 的方法对通过网络接口的TCP/IP数据包头结构中的域进行分析,引入了一种检测网络隐蔽通 道的新方法,该方法首先获取从网络接口上流出的TCP/IP数据包,对数据包头结构中的选项域 进行分析得到网络连接特征向量,将特征向量送入模糊神经网络,利用自适应模糊神经推理系 统对模糊神经网络进行训练,得到模糊神经网络的模型,然后将特征向量送入到训练完毕的模 糊神经网络的模型中,得到输出值,最后对输出值进行模糊聚类,从而分辨出输出的数据中是否 存在隐蔽通道。此发明适用于主流操作系统,具有广泛地应用范围,能增加操作系统的安全性, 有效防止机密信息泄露。

此专利虽然也是涉及到隐蔽通道检测方法的实现。但它的对象是针对TCP/IP协议等网络 隐蔽通道的分析,采用模糊神经网络的方法进行实现。

发明内容

针对Xen虚拟化平台的隐蔽通道分析问题,当前并没有相关专利涉及到这一领域。但是 随着云计算的兴起,包括隐蔽通道在内的云安全问题也日渐突出。虚拟化技术作为云计算系 统的核心组成部分,对Xen虚拟化平台的隐蔽通道进行分析就更具有理论和现实意义。本发 明针对此需求,提供一种适用于Xen虚拟化平台的隐蔽通道检测方法,本发明采取分析Xen 虚拟化平台相关机制和策略的关键操作的入口函数,对其外部变量进行分析给出其变量描述 符,进而得到函数的变量描述符表。对不同函数的变量描述符表进行比较,即可标识出潜在 的隐蔽通道。

以下首先阐述发明中涉及的一些术语:

一、元操作:一个元操作是指在Xen系统中,用于实现Xen基本机制和策略的某个功能 的基本操作,通常Xen系统为它的每一种基本机制/策略都定义了一组固定的元操作。

与Xen基本机制和策略相关的所有元操作,可以从Xen系统功能规范描述或其代码实现 中分析得出。从代码级分析,每一个元操作是其对应处理函数中switch语句的每一个case分 支对应的操作。

二、变量标识:假设变量a是函数f访问的外部变量(外部变量是指函数f中作用域在函 数体外的变量。寻找一个函数的外部变量的方法是看函数所引用的变量是否在函数体内有其 定义,若无,则为函数的外部变量),则将变量a所对应的核心数据结构标识出来就形成了变 量a的变量标识。变量标识的书写形式为“数据结构.变量”,若核心数据结构存在嵌套,则 按照“最外层数据结构.….最内层数据结构.变量”的方式书写。

三、变量描述符:函数中的变量描述符用<变量标识,函数名,函数对变量的操作,读取 操作所需的条件,修改操作所需的条件>表示。(这里的变量特指作用域在函数体外的部分变 量)

其中,函数对变量的操作有读取、修改和两者兼有三种(其中在函数中新创建的变量视 为可读可修改),分别用R、W和RW表示;读取或修改操作所需的条件是指函数对该变量 进行读取或修改所必须满足的条件,如果不存在限制条件即用NULL代替。

四、变量描述符表:将函数所有的外部变量的描述符组成集合就构成该函数的变量描述 符表。其中,该函数调用的所有其他函数的变量描述符表也包含在内。

若对函数中所有的外部变量进行分析,可以得到对应的变量描述符集合。由于去除函数 递归调用和函数调用环的前提下,对一个函数来说,它的函数调用关系是有穷的。故将该函 数调用的其他函数的变量描述符表包含在得到的集合中。

五、变量等价:根据别名规则,若对变量a是变量b的别名;或变量a的数值变化与变 量b存在对应关系的话,这两个变量可以视为是等价的。

基于Xen虚拟化平台的隐蔽通道检测方法如图1所示,具体步骤为:

1)根据Xen的基本机制和策略找出所有的元操作,并确定其入口函数;

2)对每个入口函数构造变量描述符表,并给出输出参数列表(可以从函数返回值或类似 copy_to_user()等数据传输函数中分析得出);其中构造变量描述符表的方法是:分析入口函数 及其所有调用函数中的外部变量,得到外部变量的描述符<变量标识,函数名,函数对变量的 操作,读取操作所需的条件,修改操作所需的条件>。将这些变量描述符构成集合即形成该入 口函数的变量描述符表。

3)将得到的变量描述符表以变量标识属性为标准两两取交(两个变量描述符表可为同一 个)。在交集合不为空的前提下,若交集合中存在某一变量在原来两个变量描述符表中的变量 的读写属性分别有R和W,且该变量与权限有R的变量描述符表所对应的入口函数的传出参 数等价的话,该变量就可以构成潜在的隐蔽通道,如图2所示。这里所说的参数等价是指, 可以利用别名规则或变量影响关系得到的两个变量可以视为是等价的。

4)对标识出的潜在隐蔽通道进行场景构建,以验证是否为真实隐蔽通道。一般的场景构 建是通过对该变量读写属性为W的元操作对该变量进行写操作,然后读写属性为R的元操作 进行读取,进而分析得出所接收的隐秘信息。

与现有技术相比,本发明的积极效果为:

一、由于针对Xen的基本机制和策略的关键操作的入口函数入手,解决了因系统源代码 庞大,结构复杂等因素造成的分析工作指数增长的问题,大幅降低了工作量。

二、由于方法是在对函数的外部变量的详细分析基础上进行的,可以准确定位潜在隐蔽 通道的共享资源的位置和调用关系。

附图说明

图1为本发明整体方法流程图;

图2为变量描述符表以变量标识属性为标准两两取交方法流程图。

具体实施方式

本发明是采取分析Xen虚拟化平台相关机制和策略的关键操作的入口函数,对其外部变 量进行分析给出其变量描述符,进而得到函数的变量描述符表。对不同函数的变量描述符表 进行比较,即可标识出潜在的隐蔽通道。具体实施如下:(以查询事件通道状态操作为例)

1)根据Xen的机制和策略找出所有的元操作,并确定其入口函数;

Xen虚拟化平台控制和管理相关的基本原理和核心技术包括与虚拟机特权级控制和通信 相关的超级调用(Hypercalls)和事件通道(Event Channels),与虚拟机数据共享和传输相关 的授权表(Grant Tables),与虚拟设备模型相关的设备I/O环和XenStore等。

在Xen系统的事件通道机制中,相应的所有元操作包括创建事件通道操作 EVTCHNOP_alloc_unbound、域间绑定操作EVTCHNOP_bind_interdomain、绑定虚拟中断操 作EVTCHNOP_bind_virq、绑定物理中断操作EVTCHNOP_bind_pirq、绑定虚拟IPI操作 EVTCHNOP_bind_ipi、关闭事件通道操作EVTCHNOP_close、发送事件通知操作 EVTCHNOP_send、查询事件通道状态操作EVTCHNOP_status、绑定VCPU操作 EVTCHNOP_bind_vcpu、清除mask位操作EVTCHNOP_unmask、重置事件通道操作 EVTCHNOP_reset等。

其中,查询事件通道状态的元操作的入口函数为函数evtchn_status();事件通道的域间绑 定操作的入口函数为函数evtchn_bind_interdomain()。

2)对每个入口函数构造变量描述符表,并给出输出参数列表;

在查询事件通道状态的元操作中,变量chn->state为其入口函数evtchn_status()的外部变 量,其所对应的核心结构体为struct evtchn,则其变量标识为struct evtchn.state。则变量 chn->state在函数evtchn_status()中的变量描述符为:

<struct evtchn.state,evtchn_status,R,NULL,NULL>;

分析得到函数evtchn_status()中所有外部变量的变量描述符后得到该函数的变量描述符表:

{<struct evtchn.state,evtchn_status,R,NULL,NULL>};

同理,得到事件通道的域间绑定操作入口函数evtchn_bind_interdomain()的变量状态描述 符表为:{

<struct task_struct.domain.domain_id,evtchn_bind_interdomain,R,struct  evtchn_bind_interdomain.remote_dom=DOMID_SELF,NULL>,

<struct evtchn.state,evtchn_bind_interdomain,RW,NULL,NULL>,

<struct evtchn.u.unbound.remote_domid,evtchn_bind_interdomain,R,NULL,NULL>,

<struct evtchn.u.unbound.remote_port,evtchn_bind_interdomain,W,NULL,NULL>}。

3)将得到的变量描述符表以变量标识属性为标准取两两的交集(两个变量描述符表可为 同一个)。

将EVTCHNOP_status和EVTCHNOP_bind_interdomain元操作的变量描述符表取两两的 交集,交集合为{

<struct evtchn.state,evtchn_status,R,NULL,NULL>,

<struct evtchn.state,evtchn_bind_interdomain RW,NULL,NULL>}

且chn->state与EVTCHNOP_status功能操作入口函数evtchn_status的传出参数等价,所 以struct evtchn.state变量就构成一个潜在的隐蔽通道。

4)对标识出的潜在隐蔽通道进行场景构建,以验证是否为真实隐蔽通道。当前的场景构 建的方法是:发送方虚拟机进程通过EVTCHNOP_bind_interdomain功能操作实现对struct  evtchn.state变量的写操作,接收方虚拟机进程通过EVTCHNOP_status功能操作实现对struct  evtchn.state变量的读操作,通过感知struct evtchn.state变量的变化来确定发送方传输的数据。

对其他元操作重复上述操作即可。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号