常裕文档网    > 范文大全 > 公文范文 >

一种基于可信计算的恶意代码主动防御方法

时间:2022-05-30 19:42:02  浏览次数:

摘要:可执行恶意代码危害严重,而目前传统的防御软件是被动防御,再加上操作系统补丁分发的滞后性,基于可信计算的主动防御成为解决问题的关键。

Abstract: Executable malicious code cause serious harm. But, at present, traditional defense software is passive, and patches distribution of operating system is lagging. Active defense based on dependable computing can solve the above problems.

关键词:恶意代码;计算机病毒;可信计算;主动防御

Key words: malicious code;computer virus;dependable computing;active defense

中图分类号: TP309 文献标识码:A 文章编号:1006-4311(2011)24-0165-020引言

信息化技术是一把双刃剑,它在推动政务和企业等用户业务信息化和网络化快速发展的同时,也给用户的业务信息系统带来了日益严重的安全威胁。病毒、木马等恶意代码大量泛滥,给操作系统的安全及重要信息的传播带来了无法估量的损失。

谈及安全问题,人们往往关注网络边界的安全,在网络边界安装防火墙,入侵检测设备,使得网络内部的计算机都处在保护之下。但是随着网络接入手段的增加,网络边界的概念不断扩大,越来越多的威胁直接来自网络中的各个终端。据一份由计算机安全协会与美国联邦调查局联合进行的计算机安全报告显示,目前对网络构成的前四大威胁均源自终端。在对终端的各种危害之中,可执行恶意代码造成的伤害尤为突出。

早在1984年Fred Cohen就对计算机病毒的一般结构给出了定义,并指出尽管恶意代码表现形态各异,但基本作用机制大体相同,认为整个作用过程可分为入侵、传播和破坏三个阶段。同时,Cohen也证明了只要延用现行的计算机体系,计算机病毒就存在“不可判定性”[1]。

可执行恶意代码是指自身可以执行以及可以被可执行文件调用的,故意对软件系统造成破坏的计算机程序。可执行恶意代码对信息系统的可用性,保密性以及完整性都构成了威胁。造成威胁的原因,除了终端系统本身设计缺陷、用户安全意识薄弱等原因外,主要还有以下几个方面:①操作系统补丁分发的滞后性。现有传统操作系统存在较多安全漏洞,其中很多漏洞会被黑客利用成为攻击目标或跳板。虽然在网络部署了补丁分发系统,但由于补丁下载、测试、分发周期较长,在这段时间,终端无法得到更新,存在着较大安全隐患。②传统防御软件的被动性。终端上面的一些传统的防御软件,如个人防火墙,杀毒软件等,必须依赖于对这些恶意代码的传播及破坏机理的了解。但是由于可执行恶意代码的“不可判定性”,这些防御手段对一些新的恶意代码无能为力。防御永远滞后于攻击。

可执行恶意代码的危害如此严重,而目前的传统防御措施已经不能对当前来势凶猛的可执行恶意代码的攻击起到有效的防御作用,这种被动的防御方式已经不能满足当前的防御需求,需要有这种被动的防御转化为主动的防御,不是攻击发生之后再采取措施,而是从根本上抑制攻击的发生,由被动变为主动成为本文研究的重点。

1研究现状

目前有很多的安全模型或者技术针对恶意代码进行防御。

分割模型(Partition Model)[1,2]的思想是将系统划分成一些封闭的子系统,限制信息在本子系统中流动,从而限制恶意代码的作用范围。如果没有信息的共享,病毒便很难从一个子系统传播到其他以外的系统,其传播的途径将会被切断。即使发生恶意代码入侵,恶意代码的作用范围也只局限在一个子系统内,不会造成整个系统的崩溃。

流模型(Flow Model)[1]是对信息流动的行为进行限制,从而控制恶意代码的作用范围。常用的流模型有两种:①流距离法。通过跟踪数据流动距离来限制其在系统内共享的次数和范围,强迫位于阈值之上的信息成为无用的信息。②流清单法:对系统的每一个客体都保留一个清单,记录用户对其的访问。

以上两种方法可以限制病毒的传播及作用范围,但是不能发现执行程序是否已经遭受病毒等的篡改,因此也就无法控制病毒等恶意代码的启动。鉴于此,基于权限控制的恶意代码防御技术[3]通过控制进程的权限,使之仅仅具有完成正常工作的最小权限,即授予进程最小特权[4,5,6],即使进程中含有恶意的操作请求,该请求也不会被允许。虽然该技术可以限制病毒发挥作用的权限,但是如何为系统中的每一个进程配置合理的权限是困难的。

近年来,可信计算[7]得到广泛发展。如图1,以可信计算模块TPM作为信任根,实现对BIOS、操作系统内核等关键部件的完整性度量。在将控制权交到下一个部件之前,TPM会计算下一个部件的完整性度量值,这样通过与事先存储的度量值进行比对,就可以实现对病毒等恶意代码篡改的检验。

但是这种度量仅仅是到操作系统内核就结束了,而实际系统应用中,大量的恶意代码对系统的破坏都是在操作系统服务启动和运行过程中。因此,该技术只能保证操作系统内核加载之前系统不被非法的篡改,但不能实现系统运行过程中对病毒等的防御。

针对以上各种技术的不足,本文提出一种基于可信计算的主动防御技术,实现对病毒木马等恶意代码的有效防御。

2基于可信计算的主动防御方法

获得启动权限是病毒达到恶意目的(如破坏、传播等)的前提,即病毒作为执行体被加载到系统内存中执行。因此,如图2,如果病毒程序的启动被控制住,那么其恶意目的就根本不能达到。

下一步,是如何辨别恶意代码的问题,准确识别出恶意代码是对其实施启动控制的基础。而像杀毒软件一样的技术,虽然能够识别大多数已知的恶意代码,但是却存在滞后性。

如果采用一种逆向的思路,不是“恶意代码,则不允许启动”,而是“合法代码,则允许启动”,那么识别恶意代码的问题就会转化为识别合法代码的问题。而识别合法的代码,则可以借鉴可信计算的摘要值方式,这是相对容易的。

基于以上考虑,本文提出了基于可信的计算的恶意代码主动防御技术。其主要工作的过程如图3。

在系统安全的状态,利用哈希算法收集系统中合法程序的摘要值,以(程序全路径名,程序文件摘要值)的数据结构形成策略规则库;系统运行时,程序执行按照如下工作流程:截获系统的程序启动请求;计算该程序文件的摘要值;与策略规则库中实际存放的摘要值比对;若符合预期则允许启动,否则拒绝。其中核心的验证流程如图4所示。

3工程实现

本文在Windows XP系统上,利用文件过滤驱动技术,对可执行程序(如:.exe、.sys、.dll、.com、.bat等)的启动进行合法性验证。

在文件过滤驱动程序中,利用Hook技术挂钩ZwCreateSection操作,这样所有的PE格式的程序的启动操作都会被截获。利用SHA1杂凑算法,对程序的完整性进行校验,符合预期的则允许执行,否则拒绝其执行。

采用100个病毒样本做测试,其中包括熊猫烧香病毒、圣诞节病毒等,经过测试,病毒代码无一能启动。

4结论

基于可信计算的恶意代码主动防御方法,利用可信计算的思想,采用摘要值校验的方式,对可执行程序的执行加载进行主动的度量,这种方式不依赖于病毒特征,较好的解决了滞后性问题,能否有效的对恶意代码进行防御。

但在现有机制的基础上,因为摘要值不再原有的合法规则策略库中,用户进行软件安装及更新的操作是被禁止的。这也是我们下一步应该主要研究的重点。

参考文献:

[1]Fred Cohen. Computer Viruses-Theory and Experiments[J]. Computers and Security, 1984, 6,(1): 22-35.

[2]Fred Cohen. Computer Viruses[D]. PhD thesis, University of Southern California, 1985.

[3] David Wagner,Janus: an approach for confinement of untrusted applications, Master thesis, 1999.

[4]K. Buyens, BD Win, and W. Joosen. Resolving least privilege violations in software architectures. In SESS"09: Proceedings of the 5th International Workshop on Software Engineering for Secure Systems, Vancouver, Canada, May 2009.

[5]Levin, TE, Irvine, CE, and Nguyen, TD. A Least Privilege Model for Static Separation Kernels. Technical Report NPS-CS-05-003, Center of Information Systems Security Studies and Research,Naval Postgraduate School,October 2004.

[6]J.H. Saltzer and M.D. Schroeder. The Protection of Information in Computer Systems. Proc. IEEE, vol. 63, No. 9, 1975:1278-1308.

[7]沈昌祥.构建积极防御综合防范的防护体系[J].信息安全与通信保密,2004,(05):18-19.

推荐访问:可信 防御 恶意代码 主动 计算