首页 资讯 招标 项目 展会 更多

位置:首页 > 新闻频道 > 技术动态


基于TPCM的主动动态度量机制的研究与实现(网络)

2016-10-17 15:45:34 安装信息网

相关链接: 中国安全网 中国质量网 中国论文网 中国资讯网

 基于TPCM的主动动态度量机制的研究与实现(网络)

                                 田健生,詹静

                      (北京工业大学计算机学院,北京100124)

摘要:为了实现对系统的主动度量和控制,国内研究人员提出了基于可信平台控制模块( TPCM)的双系统并行体系结构,但受限于硬件设计和制造能力,短期内难以完全实现。文章基于当前可信硬件基础,在保留主动度量能力的前提下对双系统体系结构进行了简化,基于可信平台控制模块设计并实现了系统运行中的主动动态度量机制,保障可信软件基( TSB)在完整运行周期中均能得到可信硬件的保护,有效解决了信息系统运行过程中可信软件基的自身安全保障问 题一、文章对主动动态度量机制的安全性进行了形式化证明,分析了各环节中可能受到的攻击及应对方案,并对核心技术进行了工程实现和测试分析。

 关键词:主动度量;动态度量;可信平台控制模块;可信软件基

 中图分类号:TP309 文章编号:1671-1122( 2016) 06-0022-060引言

    经过数十年发展,尤其是随着近几年高速通信网络的普及,信息产业已经开始由“提供应用”向“提供服务”转变。在这种转变中,一个明显的特征是直接面向用户的应用开发者急剧减少,绝大部分应用都提交给特定的应用分发平台,由平台向用户推送,这样的平台有苹果公司的iTu nesGoogle公司的Google Play、微软公司的微软应用商店等。随之而来,应用版权保护、用户信息保护及平台安全防护成为首要解决的问题,可信计算技术为解决此类问题提供了强有力的手段。

    可信计算体系结构通过在操作系统中构建实际有效的硬件可信根,并基于可信根建立可信传递机制,通过分级的度量、验证、扩展流程,实现系统运行环境的可信。国外标准中定义的可信根可信平台模块( TPM)为被动设备,其功能实现依赖于上层应用的调用,无法主动对系统运行情况进行监控和度量。为进一步提高系统安全性,我国创新提出了可信平台控制模块( TPCM),它能够与TPM -样作为被动设备为系统提供密码服务,同时也能够作为主动设备,监测系统运行情况。

    可信度量技术是可信计算体系实现的核心,立足于可信硬件提供的密码支撑,可信度量技术为上层可信控制、可信证明、可信网络连接的实现提供基础支撑。可信度量技术分为静态度量和动态度量两个方面。静态度量是指在信息系统运行过程中,在实体进入系统时(如硬件启动、软件启动、人员登人、网络接入等)对实体初始状态进行度量;动态度量是指在系统运行态中,对实体状态及行为进行度量。

    目前,静态度量技术已经比较成熟,由TPCM起,贯穿硬件、固件、操作系统、服务、应用至网络连接的度量链条的完备性已经通过理论证明,并已有相关标准及大量实际应用。相比之下,动态度量技术的研究和工程应用还处于起步阶段。

    TPCM具备主动监测能力的基础上,我国进一步定义了主板需要提供的可信功能,并与可信软件基的动态度量机制相结合,建立了具备主动免疫能力的双系统体系结构。但在目前工程实现中,受限于硬件设计及生产能力,实现完整的双系统体系结构还存在较大困难。

    本文设计并实现了一种基于TPCM的、简化的主动动态度量机制,其主要思想为:通过TPCM在运行中度量作为可信软件基( TSB)核心的基础可信基(TBB)TBB度量TSB中的其他部件,可信软件基再度量系统各功能机制及策略,从而建立对系统运行时可信的支撑和保障。

1工作原理

    本设计采用的TPCM连接到平台的主设备接口,通过仲裁器实现与CPU的互斥访问。TPCM能够以主设备方式工作,对平台的软、硬件系统进行实时主动度量。

    配合主板改造,运行中TPCM中的可信微系统可以透明的访问上层主机操作系统的内存数据。在此基础上,由TPCM随机延时度量TBB,度量通过后,由TBB度量TSB的其他部分,再次度量通过后,由TSB发起对业务功能域的度量操作,形成系统运行中动态的信任链关系。如图1所示。

基于TPCM的主动动态度量机制的研究与实现(网络)1693.png 

    下面对主动动态度量机制进行建模,并对可能出现的安全风险进行分析和评估,并给出应对措施。

2形式化验证与安全分析

    为了验证基于TPCM的主动动态度量机制的安全性,下面使用CSP方法分析基于TPCM的主动度量流程。

    分析过程所用的基本定义如下:

    1)M表示组件,Mc表示组件M的代码;

    2)k=1.…n。表示n个连续的组件、操作或者进程的连接关系,或者数据的拼接;

    3) Stop表示操作结束;

    4) Ha s h. T. TPCMM Mc .V表示T时刻TPCM对代码MC进行完整性度量操作,获得杂凑值V;    5) Send. T.TPCMBdata表示在T时刻TPCM将数据data发送给B

    6) Rec- eive .TB.TPCMdata表示在T时刻TPCM收到B发送的数据data

    7) Read T. TPCM .SYS. data表示在T时刻TPCM主动从系统中读取数据data

    8) CMP.T.B.TPCM.V.VF'表示T时刻B判断TPCM返回的度量结果V与预期基准值VF是否一致,即

基于TPCM的主动动态度量机制的研究与实现(网络)2198.png 

   9) Random表示随机数字;

  10) Trust. T.B.M表示T时刻B信任组件M。由上述定义,对主动的主动动态度量机制建模。

    首先,由于TPCM是在随机时间启动度量,故T=Random时刻,TPCM度量TBB的过程表示为:

基于TPCM的主动动态度量机制的研究与实现(网络)2325.png 

    其中,Send. T.TPCM.TBB.VCMD为要求TBB立即进行下一环节度量的指令,Send. T.TPCM.TPCMERRMSG是在TPCM中存储度量失败信息以供后继分析。

    与静态度量机制工作时没有其他进程干扰不同,动态度量过程需要有足够的防干扰能力,阻止攻击者干扰度量过程。通过对TPCM度量TBB的流程建模分析可知,为保证度量流程的可信性,需要满足以下条件:

    1) TPCM读取的TBB代码段数据必须包含TBB全部功能代码,且必须为运行时的实际代码。

    此条件可以由TBB的特性满足。TBB自身对系统其它部件依赖极少,且加载位置固定。可以将需要度量的位置预存到TPCM中。

    2) TPCM中存储的度量位置信息及基准值V.不能被篡改。

    此条件由TPCM自身机制保证。仅有经过管理员签名的指令才能更新TPCM中存储的基准值。

    3)Send. T. TPCM .TBB .VCMD指令发出到TBB开始度量的环节中,不能被恶意攻击者打断。

    由于目前TPCM中的可信微系统与上层主机操作系统中没有直接的调用通路,此条要求无法完全保证,但能够通过一些技术手段加以保障。首先,TPCM的度量操作对上层系统透明,且度量时间随机指定,保证上层攻击者无法准确预计TPCM度量时间,也就难以实现“检查时到使用时”攻击;其次,TPCM的度量操作结束后,Send. T. TPCM.TBB.VCMD指令通过直接访问内存的方式修改TBB设定的定时器,以时钟中断的方式触发度量TBB中优先级最高的内核线程进行度量,从而很难被攻击者拦截或打断。

TBB在时间T度量TSB的过程表示为:

基于TPCM的主动动态度量机制的研究与实现(网络)3042.png 

    此环节的可信性保障要求包括以下两点:

    1) TBBTPCM之间通信数据不被拦截和修改

    TBBTPCM的通信机制包含在TBB内部,由TPCM在上一环节度量通过,在此期间被攻击的可能性极小。如果非常关注安全性的话,可以在TBB度量内核线程启动时锁定内核。

    2) Send .T.TBB.TSB.VCMDTSB开始度量之间不能被打断。

    TBB的内核度量线程完成对TSB的度量后,直接调用TSB的度量函数进行下一步度量,以保证操作不被打断。

    至此,实现了系统运行时由TPCMTSB的可信性验证与传递关系。在此基础上,TSB即可通过运行时度量的方式对业务功能系统进行可信度量和支撑。具体方法本文不再详述。

3主动动态度量原型系统设计

    为验证运行时主动可信度量机制的有效性、可实现性及功能、性能,本文设计了支持运行时主动可信度量的信任支撑机制原型系统,如图2所示。

基于TPCM的主动动态度量机制的研究与实现(网络)3453.png 

    其中,可信度量机制中的度量模块通过可信软件栈调用TPCM的度量功能。

    度量管理模块对外提供调用接口,供其他安全功能模块查询系统当前可信状态。

    动态度量模块由配置管理模块、度量模块、度量基准库、度量管理模块和审计模块共五个模块组成。

    1)配置管理模块运行于应用层,是为管理员提供策略配置功能的工具。

2)度量管理模块运行于内核层,是动态度量机制的核心。

实现以下功能:

    (1)启动时获取内核关键数据结构的基准值并存入度量基准库;

    (2)在策略指定的时刻调用度量模块对指定对象发起主动的度量;

    (3)为外部模块提供可信状态验证及度量内容更新接口。

    3)度量基准库存在于内核层,负责存储度量策略及度量基准值,并为度量管理模块提供查询、修改接口。

    4)度量模块负责计算指定内容的摘要值。

    5)审计模块负责收集并存储审计信息。

    在运行中,度量模块的主要度量对象至少包括:中断描述符表、中断入口函数、系统调用表、系统模块代码段、系统共享库代码段、socket协议描述符表、网络协议族描述符表、文件系统超级块、文件系统挂载函数、用户进程代码段、用户进程共享库代码段、用户自定义内存区域。

    动态度量原型系统的主要工作流程包括动态度量机制初始化、合法修改代码段后的预期值更新流程、动态度量机制核心工作流程,应用行为监控流程。其核心工作流程如图3所示。

基于TPCM的主动动态度量机制的研究与实现(网络)4070.png基于TPCM的主动动态度量机制的研究与实现(网络)4071.png 

    动态度量原型系统中,TSB接到外部度量请求时先对请求的参数合法性及调用者身份、调用频率等因素进行检查,通过生成调用请求链表项,加入动态度量请求链表。动态度量内核线程按照动态度量模型中描述的度量方法,依次处理度量链表中的请求。若链表为空,则休眠等待新的调用唤醒。其中,外部调用API接口格式定义如下:

    输入:pid_ t pid    //要度量的进程pid,为0时则度量基准库中定义的全部内容。

    返回:int state    //度量结果。0为符合预期,-1为不符合预期,-2为度量预期不存在,-3为调用过于频繁,-4为参数非法,-5为其他错误。

4主动动态度量原型系统防护能力测试与分析

    利用第三方单位提供的十几个rootkit实例对原型系统进行测试。测试过程中,关闭所有可信功能,使rootkit能够顺利植入系统。之后开启动态可信支撑机制,检查能否有效检测rootkit的入侵,并基于检测到的结果,对rootkit的运行机理进行分析。有些root kit与内核/应用合作实现较复杂的功能,本文仅分析与主动动态度量相关的部分。由于运行机制和度量方法的不同,下面对内核层rootkit和应用层rootkit分别进行测试和分析。

4.1对内核rootkit的检测与分析

  分析结果如表1所示。

基于TPCM的主动动态度量机制的研究与实现(网络)4637.png 

  以上rootkit均通过修改内核代码段及函数指针实现其功能。主要的修改目标集中在system_call_table(实现自身文件的相关隐藏以及进程提权),proc文件系统的seq_ops(实

现网络通信端口/进程/模块隐藏),网络通信相关的sock->ops(实现对系统syslog的过滤)

    由上可见,除了内核代码段之外,动态度量的主要目标应该集中在seq_opssock->ops*_super_opssystem_call_tableidt之上。对这些目标进行检查能够发现绝大部分内核层rootkit发起的恶意修改。

4.2对应用层rootkit的检测与分析

    针对以下应用层rootkit实例进行了检测和分析:

    1) Jynx Rootkit/2.0:通过LD_PRELOAD覆盖glibc函数,实现远程控制和自身隐藏。

    2) Ncom:工作原理与Jynx Rootkit/2.0相同,不过此rootkit通过修改/etc/ldso.preload实现预加载操作。

    以上rootkit均在进程执行之前完成对系统函数的劫持(具体说是在链接过程中),完全可以被主动动态度量机制检测发现。

    进一步分析发现,由于以上rootkit均有隐藏自身的功能,无法被静态度量的白名单扫描工具(应用层工具)发现。也就是说,在已经被感染的系统中安装TSB时,不会将恶意代码加入白名单。而在TSB的静态度量保护开启后(内核态),会检测到这些不在白名单中的rootkit并阻止其运行。并且,阻止其运行后,Linux的加载器能够自动找到系统正常的动态库并加载运行(glibc-2.12版本),即于同时实现了rootkit的检测/清除。

4.3 rootkit检测能力分析

  对所有rootkit实例的测试情况汇总如表2所示。

基于TPCM的主动动态度量机制的研究与实现(网络)5422.png 

  可见,主动动态度量机制中选择的度量点覆盖了实现提权、进程隐藏、模块隐藏、文件隐藏、端口隐藏、进程防杀的路径关键点,与静态度量机制相配合,能够对绝大部分内核层rootkit和应用层病毒/木马进行有效的检测和清除。

4.4系统性能测试与分析

    本文利用数据库软件、apache软件和mplayer软件分别作为I/O密集型软件、计算密集型软件和视频处理软件的代表进行了测试,基于测试结果对主动动态度量机制进行了分析。

主动动态度量机制对系统性能的影响情况如表3所示。

基于TPCM的主动动态度量机制的研究与实现(网络)5660.png

    由表3可见,原型系统中,主动动态度量机制对系统性能的影响最大不超过6%,平均在3.5%左右。在进一步优化和改进后,基本具备实用性。

5结束语

 本文使用CSP方法建模描述了基于TPCM的运行时主动度量信任传递关系,分析了动态信任传递中可能存在的风险及应对方法,在此基础上设计了基于TPCM的运行时主动动态度量机制,实现了原型系统,并通过rootkit实例对此原型系统进行了测试。

 实验证明,具备主动动态度量功能的可信计算原型系统具备较强的自我保护能力,能够有效检测和防范系统运行中对TSB的攻击和篡改。且对系统性能的占用相对较低,具有实际使用价值。

 不过目前的研究还存在以下不足,将作为以后研究的主要方向:对内存中动态内容的度量和检测方法还需进一步增强,以实现对内核中关键链表的分析与保护。

关键字:

上一篇: 基于马尔科夫模型的交通枢纽客流分担率预测研究*(交通)

下一篇:基于村镇建筑调研数据的自遮阳与太阳房分析(建筑)

行业资讯月点击排行

展会信息月点击排行

招商信息月点击排行

首页 资讯 招标 项目 展会
关于我们 | 广告服务 | 友情连接 | 联系我们
触屏版 电脑版
安装信息网 www.36qyk.cn.