一种软件行为动态可信研究方法及其可信要素

2013-05-09 05:59孙迪李健王志勇
网络安全技术与应用 2013年4期
关键词:声明预期证据

孙迪 李健 王志勇

北京工业大学计算机学院 北京 100124

0 引言

随着二十一世纪信息科技的飞速发展,计算机的出现与发展给人们的生活和工作带来了很大的便利,提高了工作效率,降低了人为操作的失误,解决了很多繁冗、复杂的问题。计算机硬件是软件的基础,直接决定了软件运行的速度;软件是计算机的核心,解决人们实际中遇到的多种多样的问题。

随着人们在解决实际问题中对于软件的需求越来越大,软件功能也越来越复杂,规模越来越大,担任的职责也越来越重要。这些软件功能的复杂逻辑中所带来的问题是软件开发人员也无法估量的,这些软件自身出现故障、崩溃,或不法分子利用其漏洞谋取利益,会带来严重的后果,例如医院系统的失效会给病人带来生命威胁,金融系统的崩溃会导致大量的经济损失,而信息系统的漏洞会使不发分子趁虚而入,导致机密信息泄露,危及企业安全。随着软件运行环境的复杂化,从简单的单机静态软件到开放的网络动态的多元化的开放环境,各种恶意攻击、木马、病毒等因素直接威胁了软件正常的工作。

中国国家计算机网络与信息安全实验室主任白硕先生说:“中国的信息安全在技术上的最大隐患是:操作系统、微电子芯片、路由器等核心技术都掌握在别人手里”,而“由于技术的原因,只能在采用国外产品的情况下来确保信息的安全”。所以计算机信息系统的安全问题是当前计算机安全研究的主要问题,软件是信息系统中重要的组成部分,只有保证了软件的可信才能保证信息系统的安全,研究软件可信问题刻不容缓。

1 基本概念

1.1 可信

1.1.1 定义

“可信”源于社会学,是一种二元的依赖关系。一个人如果是可信的,说明他遵循道德法律、信守承诺。

在计算机领域中,可信计算组织认为,如果一个实体的行为总是以预期的方式,朝着预期的目标,则它是可信的;ISO/IEC 15408标准定义可信为:参与计算的组件、操作或过程在任意的条件下是可预测的,并能够抵御病毒和物理干扰;Avizienis等人认为,可信是指,从用户的角度观察,计算机系统提供服务的可信赖程度是可以论证的。

本文认为,“可信”是指一个实体在实现预期目标的过程中,按照预期的行为进行活动,完成预期的目标,即其全部的行为活动均是可被预测的。

1.1.2 可信计算的基本思想

TCG基于信任的属性,提出构建可信计算环境的基本思想:绝对可信的信任根构成可信系统的核心,依靠物理安全来保证;可信系统的启动是从可信根开始的,逐级对下级系统进行验证,将信任从信任根传递至系统的末端,建立信任链,将可信扩展到整个计算机系统,确保整个计算机系统的可信。

1.2 软件行为

屈延文用软件行为学来描述软件的可信性,认为:主体的可信性是主体行为的一种统计特性,而且是指行为的历史记录反应主体行为是否违规、越权以及超过范围等方面的统计特性。

结合可信的定义以及计算机软件的特点,本文认为,如果一个软件总是以预期的方法,按照预期的形式使用资源,完成预期的目标,则认为它是可信的。

1.2.1 定义

软件(或程序)的行为是指软件运行的表现形态和状态的演变过程,可以从底层的二进制指令到高层的程序语句、函数、系统调用等不从层次刻画软件的行为。

1.2.2 属性

软件行为主要包含了主体、客体、动作三个属性:主体主要包含用户、系统活动主体;客体是行为的受体,包括文件、存储器、缓冲器、磁盘和外部设备等;动作是主体施用于客体的服务。

2 软件可信研究的主要问题

软件可信的研究主要分为软件静态可信与软件动态可信两部分:软件静态可信是对软件身份验证,软件动态可信是对软件行为的验证。

2.1 软件静态可信

软件的静态可信也可称为对软件身份的验证,在研究软件行为可信之前必须对软件的身份进行验证,只有确保了软件未被篡改,才能保证软件的行为正常。基于可信计算的基本思想,可信软件不能离开可信的环境,只有确保了环境的可信,才能确保软件身份可信。从信任根到软件构件一条信任链,通过逐级的认证,可确保软件的完整性。

2.2 软件动态可信

确保软件的完整性是保证软件可信的基础,在一个动态、多变、复杂的环境中,软件的行为不仅是由软件的本身所决定的,而更多的是会受到环境的影响。所以需要在软件静态可信的基础之上研究软件在实际环境中的行为。在软件动态可信研究领域中,研究的内容主要包括软件行为模型与软件可信模型。

2.2.1 软件行为模型

根据软件可信的定义,软件的可信性可以定义为其行为的预期性,研究软件可信就是研究软件行为是否在预期之内即软件行为可信。基于此观点,软件行为可信主要研究的是预期行为与实际行为的关系。

国内研究人员通过构建软件行为模型来对软件的正常行为特征进行描述。软件行为模型就是指根据某一层次的行为信息而构建的行为状态序列以及状态的变迁,是软件行为的描述方式,可以表征软件的正常行为特征,常用于软件行为的异常检测。一般把软件行为的建模方法分为静态建模和动态建模,静态建模通过分析原程序的代,提取程序的系统调用等行为信息来建立行为模型;动态建模是指在软件运行中,通过对程序进行长时间的正常运行,监控其行为并记录在系统调用行为信息并生成行为模型。

静态行为获取技术会受到源代码获取困难、程序行为依赖环境等因素、具有“自修改”特性的程序逐渐增多,很多软件采用抗逆向分析技术等因素的制约。

动态建模通过行为检测等手段可以获取程序的实际执行信息,通过系统调用序列、行为轨迹对软件行为进行描述,可以克服静态建模中的诸多因素,但模型的精确性依赖于训练时的监测结果、运行环境以及行为数据的覆盖率,不能保证捕捉到软件所有可能的行为。

2.2.2 软件可信模型

软件可信模型定义了软件可信评估的一系列要求及标准,用于对软件的可信程度做出评价,一般的软件可信程度可以通过软件可信等级进行表达,并可以通过软件可信评估得到软件的可信等级。软件可信评估由以下部分组成:

(1)定义评估中软件可信性的标度;

(2)定义支持软件可信性的证据集合;

(3)定义达到某个可信等级的软件需要具有的证据集合,即可信等级到可信证据的映射关系,称为可信评估的指标体系。

如图1,一个完善的软件可信模型能够对软件的可信程度做出更为准确的评估。

图1 软件可信分级模型

目前软件可信定义的可信分级标准多种多样,数值型:-1~0-不可信、0~1-低可信、1~2-中可信、2~3-高可信;等级型:未知级、可用级、证实级、实用级、评估级、证明级;等级的定义包含了达到该等级需要的条件。

软件的可信证据参考模型定义了评估可信度需要的证据,当前大部分的软件可信研究采用的是软件的实际行为与软件的预期行为作为评估的证据。

软件可信评估指标体系是目前软件可信研究最集中的问题,这也研究通过不同的方法、角度对软件可信度进行刻画、度量,意在更准确的对软件可信度进行评估。

3 软件行为动态可信研究方法

当前国内对于软件可信的研究都围绕着软件行为建模与软件可信建模两个方面开展,软件行为建模也就是软件预期行为的研究是研究软件可信的基础,只有更完善掌握预期行为,才能更准确的度量软件的可信。

软件行为动态建模是通过客观分析软件的历史行为,依赖大量观察数据的统计、分析结果来表征软件的预期行为,随着观察数据的增加,行为模型精确性与完备性愈加完善。但软件的行为模型作为软件的预期行为是片面的、静态的,在复杂的环境中行为模型与预期行为可能会有所不同,不能够充分判定软件的可信程度。

软件可信建模通过预期与实际行为,对软件可信度进行评估,最终以等级、数值等形式表现软件的可信度。但这种度量结果并不能够直观的表现软件的可信程度,所表达的意义不够清晰具体,不能够指导进一步的实践。

“可信”源自于社会学范畴,若以社会学角度来思考软件可信问题,把软件比作社会中的行为个体——人,软件行为建模的方法就是对某个人进行长时间的观察,记录其行为,逐渐构成这个人行为的模式,作为这个人的预期行为,当其行为超出预期了,便判定他为不可信。对于人类社会而言,这是一个不可理喻的判定信任关系的方法。

在人类社会中,一个人是否可以信任,可以通过多次考察他是否能够兑现自己的承诺,承诺作为考察的证据,通过被考察人每次的行为及结果与承诺的比较,对其信任度进行判定,信任度在经过多次考察后逐渐积累,随着考察次数的逐渐增多,可信度越趋近于真实。

软件是人与计算机交互的接口,作为软件使用者的代理,对计算机进行操作。如果想对软件的可信程度进行评判,除了主观的对其行为进行评价外,更多的是依靠“承诺”来证明其可信程度。对于软件来说,“承诺”也就是预期行为,并不完全是软件行为建模中提出的历史行为的积累,而还应包括了软件可以做的事情,软件是否可信还应建立在软件是否预期行为与实际行为一致。如图2所示,预期可信证据模型描述了软件行为预期的多种构建形式,证据模型中的证据多属于开发阶段和提交阶段的证据,少部分属于应用阶段的证据。

软件行为声明也可通过多种途径构成其预期的行为,在开发阶段和提交阶段可提供相应的软件行为声明其“承诺”作为软件的一部分,作为此软件可信的一个保障。

图2 预期可信证据模型

本文根据预期可信证据模型中的其他描述形式提出一种基于软件行为声明构建软件预期行为的软件动态可信评估方法,如图3。可信软件在开发、提交阶段提交该软件的行为声明,根据系统环境以及软件使用人员进一步制定规等因素构成该软件的行为预期,通过对软件的实际行为与预期行为的对比分析得出该软件的可信度量。行为声明的方法补充了软件行为模型的不足,使用行为声明的内容是否越界作为度量的结果,直观的表达了软件可信程度的具体细节,有助于对可信软件进行进一步的研究。

图3 基于行为声明的可信动态度量

4 软件行为动态可信要素

基于软件行为声明的软件动态可信研究方法需要对软件声明的内容进行较为明确的定义。过于简陋、粗糙的行为声明会导致评估结果不准确,不能达到预期的目的;过于细致、复杂的行为声明会导致软件开发者、使用者等相关人员提交软件声明的难度,并且会增加行为监测的复杂程度,降低可信评估的效率,评估结果不利于理解。

考虑到软件行为是软件对资源进行操作,以资源的访问作为软件行为声明的内容即可以简单的描述软件的行为,又不会过于复杂。该声明需要包含以下若干可信要素:

硬件资源:软件对于计算机处理器、内存等硬件资源的使用情况。硬件是计算机软件运行的基础,软件的运行与行为操作需要通过处理器的计算与内存的占用、访问来实现,软件的处理器最高占用率、平均占用率、内存占用大小等数据可从整体上约束该软件的行为。

关键数据:软件对于计算机文件、存储器、缓冲器、磁盘等数据载体的访问操作。大部分软件运行时除了使用处理器计算外,还需要对数据进行访问操作,声明软件对于注册表、动态链接库、保密数据等的增加、删除、修改以及查找等操作可从细节上约束软件的行为。

网络资源:软件对于网络的使用,包括数据的下载与上传。网络的访问同样涉及到数据的访问,对于网络来说下载、上传的数据操作方式与本地数据的访问有所不同,会导致信息泄露等严重问题,声明网络资源的访问内容与方式可以约束数据通过网络的输入、输出。

外部设备:软件对于外部设备的使用,包括打印机、扫描仪、移动存储设备、密钥等。除了本机显示器、键盘、鼠标与网络等介质的输出、输入数据以外,软件还可以通过外部设备与外界进行数据交换,声明外部设备的访问内容与方式可以对软件数据的输入、输出进行约束。

5 结束语

本文通过分析软件可信的研究现状,从软件可信的定义出发,对软件可信的当前研究的主要问题与主要方法进行了阐述,从软件行为模型、软件可信模型两个方面对软件可信研究的方法进行了总结归纳,并在此基础之上提出了一种软件动态可信研究方法以及其包含若干可信要素。

后续的主要工作包括:完善软件行为声明的内容,软件行为声明的管理,基于行为声明的软件动态可信度的判定的方法以及其在云平台等互联网环境中的应用等。

[1]张焕国,罗捷,金刚,等.可信计算研究进展[J].武汉大学学报(理学版).2006.

[2]刘克,单志广,王戟等.“可信软件基础研究”重大研究计划综述[J].中国科学基金.2009.

[3]屈延文.软件行为学[M].电子工业出版社.2004.

[4]陶芬,尹芷仪,傅建明.基于系统调用的软件行为模型[J].计算机科学.2010.

[5]Wagner D,Dean R.Intrusion detection via static analy-sis[C]//Security and Privacy,2001.S&P 2001.Proceedings.2001 IEEE Symposium on.IEEE.2001.

[6]Su P R,Yang Y.Intrusion detection model based on executable static analysis[J].Jisuanji Xuebao(Chinese Journal of Computers).2006.

[7]Peng G,Pan X,Fu J,et al.Static extracting method of software intended behavior based on API functions invoking[J].Wuhan University Journal of Natural Sciences.2008.

[8]Lang B,Liu X D,Wang H M,et al.A classification model for software trustworthiness[J].Journal of Frontiers of Computer Science & Technology.2010.

[9]傅建明,陶芬,王丹,等.基于对象的软件行为模型[J].软件学报.2011.

[10]庄琭,蔡勉,李晨.基于软件行为的可信动态度量[J].武汉大学学报(理学版).2010.

[11]杨晓晖,周学海,田俊峰等.一个新的软件行为动态可信评测模型[J].小型微型计算机系统.2010.

[12]刘玉玲,杜瑞忠,冯建磊等.基于软件行为的检查点风险评估信任模型[J].西安电子科技大学学报(自然科学版).2012.

[13]任晓慧.软件可信度量评估系统的设计与实现[J].电脑知识与技术.2008.

[14]杨善林,丁帅,褚伟.一种基于效用和证据理论的可信软件评估方法[J].计算机研究与发展.2009.

[15]丁学雷,王怀民,王元元等.面向验证的软件可信证据与可信评估[J].计算机科学与探索.2010.

猜你喜欢
声明预期证据
本刊声明
本刊声明
本刊声明
本刊声明
对于家庭暴力应当如何搜集证据
分析师一致预期
分析师一致预期
分析师一致预期
手上的证据
手上的证据