APP下载

基于SVM的软件行为可信动态评测

2013-10-26彭新光刘晨华

太原理工大学学报 2013年1期
关键词:可信性评测度量

郝 瑞,彭新光,修 磊,刘晨华

(1.太原理工大学 计算机科学与技术学院,太原 030024;2.太原大学教育学院 计算机科学系,太原 030001;3.山西财经大学 数量经济研究所,太原 030006;4.太原科技大学 应用科学学院,太原 030024)

由可信计算组织(trusted computing group,TCG)定义的可信计算平台的一个突出特点是主板上嵌入了可信构建模块TBB(trusted building block,TBB)。作为可信计算平台的信任根TBB由可信度量根核(core root of trust for measurement,CRTM)和可信平台模块(trusted platform module,TPM)构成,为平台提供完整性度量、安全存储、完整性报告三大核心功能。TPM内置平台配置寄存器(platform configuration register,PCR)用来存储数据完整性度量值,通过迭代计算Hash值PCRi←SHA-1(PCRi‖Value),将新的完整性度量值扩展到PCR中。TCG[1]规范所描述的信任链构建过程CRTM→BIOS→OSLoader→OS→Applications,一级度量认证一级,一级信任一级,确保整个平台可信。这一过程是基于数据完整性的一次验证,主要保障系统启动初始阶段可信,系统开始运行后,计算机的可信主要取决于在其上运行的软件行为的可信性,软件运行时的动态可信性成为解决计算机系统可信的关键问题。

软件行为动态可信证明是可信计算领域研究的热点之一。目前TCG在可信软件方面研究较少,很多研究者从入侵检测中的异常检测技术中找到了一些方法。庄琭[2]等提出基于软件行为的可信动态度量模型,该模型给出了软件行为动态度量的相关概念和判定定理,但未给出实际度量方法;在此基础上,又提出基于交互式马尔可夫链的可信动态度量[3],在功能度量的基础上引入性能特征指标度量,但没有给出具体实现方法;杨晓晖等[4]提出一个新的软件行为动态可信评测模型,以行为轨迹和检查点场景来刻画软件行为的动态轨迹,但该方法需修改内核,增加系统额外开销,且对可信判定二值化。笔者对TCG的信任链进行拓展,将支持向量机的分类算法引入软件动态行为可信证明中,提出了基于支持向量机(support vector machine,SVM)的可信证明模型,利用其小样本学习方法和较短的时间特性对行为进行度量,完成对软件行为的动态证明。

1 信任链拓展模型

本文对TCG的信任链进行拓展,引入对应用层软件运行时动态可信的监测,在操作系统和应用软件间加入度量代理,提出软件可信的信任链模型,如图1所示。

图1 信任链拓展模型

软件可信的评测过程如下。首先将度量代理加入信任链,在操作系统接管系统运行的控制权后,继续度量其二进制哈希值并将结果扩展至PCR;接下来由度量代理负责度量应用软件的完整性和动态可信性,并根据度量结果决定软件是否被加载或允许其继续运行并向验证方报告结果,完整性度量通过度量代理计算出软件代码完整性哈希值,与TPM存储的标准哈希值进行比较,并根据比较结果决定是否加载软件,这属于静态度量。当软件运行时,进行基于SVM的软件行为可信动态评测,度量代理根据动态可信评测结果决定软件是否允许继续运行,这属于动态度量范畴。本文主要研究软件动态可信性。

2 软件行为动态可信性评测

2.1 软件行为(迹)和行为度量信息基

定义1 软件行为。软件运行时作为主体s使用函数f对客体obj进行操作[5]:

式中:Subjects为主体集合;Functions为函数集合;Objects为客体集合。

定义2 软件行为迹。软件行为迹是软件的一次实际运行所产生的具有一定时序关系的行为序列。行为迹是所能检测到的软件行为,如果软件的每一个行为都能检测到,则行为迹等于软件行为。Forrest[6]等人的研究工作表明特权程序所产生的系统调用序列能够反映软件行为特征,是行为迹的具体表现形式。因此一个软件行为迹集合表示为T={R1,R2,…,Ri,,…,Rm},其中Ri为特权程序正常运行时所产生的第i个行为迹,记为Ri=),其中表示在行为迹Ri中按时间先后顺序排列的第j个系统调用。

定义3 行为度量信息基。对于已知正常或异常行为迹R1,R2,…,Rm,使用长度为K的滑动窗口进行扫描生成的行为度量信息基是一个二元组〈xi,yi〉,其中xi⊂Ri,|xi|=k;类变量yi∈{-1,+1},yi=+1代表正常行为迹短序列,yi=-1代表异常行为迹短序列。

2.2 基于SVM软件行为迹评测方法

支持向量机是一种建立在统计学习理论和结构风险最小化原则基础上的机器学习新技术。其最大特点是泛化能力强,分类速度快,在有限的训练样本中得到较为精确的分类器,从而具有良好的检测性能。

本文采用支持向量机对软件行为进行分类[7],首先用已获得的行为度量信息基对支持向量机进行训练。由于各信息基对分类能力的贡献各不相同,而且特征空间的维数太大会占用相当大的内存空间,计算时间过长,影响分类速度,所以应该去掉对分类作用不大的信息基。本文采用信息增益IG(j)来衡量每个信息基的重要程度:

式中:IG(j)为第j个信息基的信息增益值;P(vj,yi)表示在类yi中第j个信息基取值vj的概率;P(vj)表示在所有的信息基中第j个信息基取值vj的概率;P(yi)表示在所有的信息基中类yi出现的概率。

然后,按IG(j)降序排序,选取前h个作为有效信息基。

在样本空间线性可分的条件下,存在一个超平面:w·x+b=0。w为超平面的法向量,w·x是w和x在特征空间的点积。为使两类样本尽可能分开,要求间隔最大化,即‖w‖最小,这样寻找超平面的问题就转化为下面的最优化问题:

式中:ξi为松弛变量“软化”约束条件;C>0为惩罚参数。引入ξi,C用于解决可能存在一些样本不能被超平面正确分类的问题。通过拉格朗日乘子法求解上述最优化问题:

式中:α=(α1,…,αl)T为拉格朗日乘子向量;αi为与第i个样本对应的拉格朗日乘子。相应的最优分类决策函数为:

其中sgn表示符号函数,判断结果为+1表示正常,-1表示异常。

对非线性问题,将x作变换φ:x→φ(x),把非线性输入样本数据映射到高维特征空间,在高维特征空间求解最优分类超平面w·φ(x)+b=0,则对应的求解最优化问题转化为:

相应的最优分类决策函数为:

RBF核函数对低维、高维、小样本、大样本等情况均适用,具有较宽的收敛域,是理想的分类依据函数。

SVM的分类结果仅是对单个系统调用序列的判决,不能直接作为整个软件行为是否可信的依据,还需为其设定判定规则:首先给定软件异常值阈值τ,若异常系统调用序列数目超过阈值τ则判定软件不可信,反之则判定为可信。该过程由系统决策部分完成。

3 软件行为动态可信评测模型

3.1 模型架构

图2 软件行为动态可信评测模型

本文引入虚拟机监控器(virtual machine monitor,VMM)对运行时的软件行为进行动态监测,根据运行过程中的行为,评测软件动态可信性,其评测模型架构如图2所示。虚拟机监控器是介于底层物理硬件和操作系统之间的软件抽象层,它管理着底层硬件资源,为其上运行的操作系统提供硬件映射。所有客户操作系统及其上的应用软件访问底层硬件资源都需要经过虚拟机监控器的控制,因此在虚拟环境中进行软件动态行为可信证明是实现信任链向应用软件层拓展的一个重要的技术手段。

3.2 评测过程

评测过程分为3个阶段。

1)度量阶段。完整性度量负责度量的时机、证据的收集、证据的规范化处理。对度量时机的选取采用基于时间周期性度量。软件运行时证据的收集使用虚拟机监控器对其行为进行监控,虚拟机监控器内核进程的一个任务就是拦截系统调用号[8]。由于支持向量机的分类器只能对维数相同的数字向量进行分类,所以必须将原始数据转换成支持向量机能够识别的向量,通过度量模块对从虚拟机监控器获取的软件实际行为轨迹进行数据规范化处理,并上报检测模块。

2)检测阶段。检测模块首先通过信息基准库中已获得的行为度量信息基训练支持向量机得到支持向量和相关参数,然后对实际运行的软件行为通过支持向量机分类器根据判决函数对其分类,并把分类结果提交给决策模块作出最后的判决。

3)决策阶段。决策模块根据上面所提到的判定规则进行最终的判定。若行为判定为正常,则允许其运行,否则撤销其运行,并报告结果。

4 实验与分析

本文采用美国新墨西哥大学(UNM)公开发布的lpr实验数据对以上检测方法的性能进行实验,该数据是在SunOS 4.1.4上收集的,选取lpr的16个行为迹,其中正常迹有9个,包含lprcp攻击的行为迹有7个。关于滑动窗口K长度的选取,Lee[8]从信息论的角度论证了最合适的数据长度为6~7,本文综合精度和性能考虑,采用长度K=6的滑动窗口。分类算法由WEKA实现,实验采用十重交叉验证,参数C和γ采用LIBSVM提供的grid.py程序自动寻找最优值。与贝叶斯分类方法的检测结果进行了对比,选择分类效果最好的检测结果填入表1。从表1可以看出,SVM分类方案优于贝叶斯模型的各项检测指标,准确率接近100%,因为SVM具有以下特点:训练和检测时间小于其他方法,在给出较少的正常和异常的软件行为迹的情况下可取得理想的检测效果,因此该方法能够适应系统或用户的行为变化,并进行高效、动态的行为检测。

表1 贝叶斯和SVM两种检测方法的比较结果

5 结束语

本文在软件行为学理论的基础上,根据可信计算动态度量的实际需求,定义了软件行为动态度量的相关概念,提出了基于SVM的软件行为可信动态度量代理,实现了TCG信任链向应用软件层拓展,使动态度量的粒度细化到软件的一次行为上。实验分析表明,该方法能够在较短的时间有效地检测软件异常,从而提高系统的安全性。

[1]Trusted Computing Group.TCG Specification Architecture Overview Specification Revision 1.4[EB/OL].http:∥www.trustedcomputinggroup.org.

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

[3]庄琭,蔡勉,沈昌祥.基于交互式马尔可夫链的可信动态度量研究[J].计算机研究与发展,2011,48(8):1464-1472.

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

[5]屈延文.软件行为学[M].北京:电子工业出版社,2004.

[6]Forrest S,Hofmeyr S,Somayaji A,et al.A sense of self for unix processes[C]∥Proceedings of the 1996IEEE Symposium on Security and Privacy,Washington DC,USA,1996:120-128.

[7]刘晓峰,张雪英.基于纠错输出编码的支持向量机在语音识别中的应用[J].太原理工大学学报,2011,42(1):34-37.

[8]Lee W,Dong X.Information-Theoretic measures for anomaly detection[C]∥Proceedings of the 2001IEEE Symposium on Security and Privacy.USA:IEEE Computer Society Press,2001:130-143.

猜你喜欢

可信性评测度量
基于气象大数据的气候预测农谚可信性验算研究——以“早立秋,凉飕飕;晚立秋,热死牛”为中心的讨论
鲍文慧《度量空间之一》
基于可信性的锅炉安全质量综合评价研究
次时代主机微软XSX全方位评测(下)
次时代主机微软XSX全方位评测(上)
代数群上由模糊(拟)伪度量诱导的拓扑
突出知识本质 关注知识结构提升思维能力
攻坡新利器,TOKEN VENTOUS评测
Five golden rules for meeting management
基于可信性理论的风电场电能质量模糊综合评估