基于可信计算技术的抗恶意代码攻击模型*
2020-04-25郑志蓉
岳 阳,郑志蓉,徐 昆
(91977 部队,北京 100841)
0 引 言
恶意代码攻击分为非法连接、恶意代码植入、恶意代码发作和非授权操作4 种手段[1]。在一次攻击过程中,上述4 种类型手段交替使用。
(1)非法连接。攻击者通过突破或绕过本地登录以及网络服务的安全机制与目标机建立连接。
(2)恶意代码植入。它主要包括将恶意代码附加在宿主执行代码(病毒常用手段)或在系统中增加新的恶意代码(特洛伊木马常用手段)两种方式。
(3)恶意代码发作。攻击者通过溢出攻击等方式执行注入的恶意代码。
(4)非授权操作。攻击者利用窃取的特权获取信息,修改系统配置破坏系统,修改系统记录隐藏恶意行为。
针对PC恶意代码攻击的过程模型,如图1所示。
图1 恶意代码攻击过程模型
1 抗恶意代码攻击技术研究
抗恶意代码攻击技术包括信任链传递技术、基于密码的安全隔离技术、多级安全访问控制技术以及安全管道域技术研究。
1.1 信任链传递技术
信任链传递技术解决可信计算基不能被篡改的问题。
目前已有的信任链传递过程是在系统控制权转移前,先对待传递的执行代码和配置数据进行完整性验证,验证通过后进行控制权转移。使用完整性模型BIBA 模型[2]分析信任链传递过程发现,信息能够从高完整性等级流入低完整性等级,存在潜在的安全隐患。
针对信任链传递过程中度量值和日志的写入存在被恶意代码利用的脆弱点,提出了改进的信任链传递模型[3]。该模型为系统中可运行的软件赋予唯一的安全标识,以代码安全标识为依据控制低完整性等级对高完整性等级的“写”入,能有效阻止代码的非授权写入,解决了信任链传递过程的完整性,保证了可信计算基的完整性。
改进的信任链传递模型软件安全标识能够有效反映软件的特征信息,并保证其完整性和真实性。软件安全标识统一由安全管理中心生成。软件运行前对该软件进行完整性度量验证,并根据软件安全标识对代表该软件运行的主体进行授权访问控制。
与可信计算组织信任链传递规范对比,改进的信任链传递模型有以下特点:
(1)可信密码模块为可信度量根,取代可信平台模块和BIOS bootblock 共同为可信度量根;
(2)高安全等级“读”低安全等级过程增加了代码的恢复验证;
(3)以代码安全标识为依据控制低安全等级对高安全等级的“写”入。
改进的信任链传递模型通过对系统软件安全标识对系统软件签名验证,基于软件唯一性安全标识实施访问授权,结合执行代码完整性验证和恢复,以可信密码模块为信任根,实现了从系统上电到系统装载全过程可信校验和访问控制,确保系统可信计算基不被非法篡改,有效阻止了恶意代码植入和发作,从而确保各项安全机制正确实施。
信任链传递从以下3 个方面阻止恶意代码的攻击。
(1)高安全等级对象运行低安全等级代码之前,先进行可执行代码的完整性验证,阻止恶意代码的运行。
(2)对于新增加的恶意代码,信任链传递模型也能有效进行控制。安全标识规定了控制实体能够执行的代码集合,在集合外的代码将被拒绝执行。
(3)安全标识规定了低完整级别对象执行过程中向高完整级别对象写入信息的范围和内容,阻止恶意代码植入和破坏。
信任链传递与基于病毒特征的杀毒手段有着本质的区别。通过信任链传递,攻击者安装的后门、嗅探程序、恶意逻辑等将被拒绝执行,也不允许攻击者修改或增加恶意信息,因此能够有效阻止恶意代码的植入和发作。
1.2 基于密码的安全隔离技术
基于密码的安全隔离技术解决可信计算基不能被绕过的问题。
目前可信计算基的实施相当大一部分依赖于软件上的逻辑设计,在系统设计流程中加入安全实施过程,基于逻辑设计的可信计算基存在被绕过的可能性。
基于密码的安全隔离技术将系统中受保护的可执行代码的关键信息进行加密处理,执行代码运行前必须经过解密才能进行后续工作,解密密钥存放在可信密码模块内。这种方式要求代码运行时,必须通过解密处理才能运行。如果仅仅依靠逻辑上的完整性验证控制,由于代码本身没有发生变化,是可以被解析的,则存在绕过完整性验证机制控制,直接解析执行代码的可能。基于密码加解密的处理,受保护的执行代码是不能被篡改的。如果恶意代码附加在可执行代码,经过解密处理恶意代码变成乱码;如果恶意代码篡改了可执行代码,经过解密处理,可执行代码不能执行。程序的执行和数据的访问如图2 所示。
图2 基于密码技术的程序执行和数据访问流程
基于密码的安全隔离技术在以下3 个方面得到了抗恶意代码攻击的效果。
(1)代码的运行必须先解密,并通过完整性验证。如果代码的加、解密密钥存放在可信计算基(Trusted Computing Base,TCB)内,则任何代码的运行必须通过TCB,即不能绕过TCB,否则是不正确的可执行代码格式,无法正确执行。
(2)如果恶意代码附加在系统中合法的执行程序后,则在运行时通过解密,恶意代码信息变成无效信息。
(3)如果恶意代码通过授权用户和程序注入到执行程序,则通过完整性验证过程,恶意代码仍然被拒绝执行。
1.3 多级安全访问控制技术
1.3.1 多级安全访问控制技术解决普通用户信息交互的完整性和保密性问题
保密性模型BLP 模型要求信息只能从低保密等级流向高保密等级。但是,在实际应用中,高保密级别用户也有向低保密级别用户发送信息的需求。高保密级别用户产生的信息不完全是高保密等级的信息,高保密级别用户也有产生低保密等级信息的需求[4]。因此,在BLP 模型中引入特权用户或特权程序——保密度测量主体,用于测量高保密等级向低保密等级发送信息内容的保密程度。当信息中内容不含有泄露高级别信息的信息时,允许该信息从高保密等级流向低保密等级。
根据完整性模型Biba 模型,不允许低保密等级向高保密等级“写”,因此不少系统在实现BLP模型的过程中对BLP 模型进行了修正,主体只能“写”同等级的客体。在这种限制条件下,低保密等级主体不能直接向高保密等级提交信息,只能先产生同保密等级的信息,然后被动等待高保密等级主体来读。这对于希望直接向上级提交高保密等级信息的用户来说,提供同级写限制的系统是不可用的。因此,在BLP 模型中引入特权用户或特权程序——完整度测量主体,用于测量低保密等级向高保密等级发送信息内容的完整性程度。当信息中内容不含有“恶意信息”时,允许该信息从低保密等级流向高保密等级。
结合BLP 模型和Biba 模型,引入完整度、保密度测量主体和完整性、保密性规则集测量系统信息流的保密度和完整度,满足多安全等级普通用户交互信息的保密性和完整性需求,能够有效阻止恶意攻击者窃取秘密和篡改敏感信息。
1.3.2 多级安全策略的规则描述
多级安全策略的规则[5]可以分解为基本安全规则和测量安全规则。基本安全规则与传统的BLP 模型规则和Biba 模型规则相一致。测量安全规则分为安全级别为(低保密级,低完整级)的主体Si向安全级别为(高保密级,高完整级)的客体Oj写入信息的安全规则;安全标识为(高保密级,高完整级)的主体从安全标识为(低保密级,低完整级)读入信息的安全规则;安全级别为(高保密级,高完整级)的主体Si向安全级别为(低保密级,低完整级)的客体Oj写入信息的安全规则;安全标识为(低保密级,低完整级)的主体从安全标识为(高保密级,高完整级)读入信息的安全规则;安全级别为(高保密级,低完整级)的主体Si向安全级别为(低保密级,高完整级)的客体Oj写入信息的安全规则;安全标识为(低保密级,高完整级)的主体从安全标识为(高保密级,低完整级)读入信息的安全规则。
1.4 安全管道域技术
1.4.1 安全管道域技术解决特权用户使用资源的范围问题
操作系统中存在一些特权用户或特权进程,它们能够绕过为普通用户制定的安全规则。由于可信应用程序具有特权且执行安全相关的功能,它们成为黑客或病毒主要攻击的目标。解决病毒传染问题,目前大都采用信任机制或检查机制。信任机制下主体在读取某些用户的数据时,信任用户不会携带恶意代码;检查机制下主体在读入数据时,对读入的数据按照已知的恶意代码特征判断数据中是否含有恶意代码。信任和检查机制都具有主观特征,仅仅依赖这两种机制解决病毒或黑客问题是不可能的。病毒最大的特点是传递性,减少病毒传播最有效的方法是隔离。但是,计算机最大的特点是信息共享,让系统中所有的进程访问空间完全隔离不现实,且这样的系统也无法使用。安全管道域模型在不影响用户完成正常工作任务的前提下,使域与域之间的交集尽可能小。
1.4.2 划分安全管道域的基本规则
(1)根据系统的非管理用户情况,定义非管理用户域。这些域的多少与系统提供的具体服务相关。如果操作系统支持多个应用类,那么使用不同的应用类则进入不同的域。
(2)根据系统管理用户的设置情况,定义管理用户域。这些域在功能上完全不同于非管理用户域,这些域应设为与非管理用户域不同的域。
1.4.3 基本的安全管道域分类
基本的安全管道域有以下几类。
(1)保密检查域:完成信息的保密性检查工作。
(2)完整检查域:完成信息的完整性检查工作。
(3)审计域:监督、查看和分析系统中安全相关的事件。
(4)安全管理域:设置、维护与安全策略相关的配置。
(5)普通用户域:完成系统中其它正常的工作职能。
安全管道域模型以Clark-Wilson 模型为基础,将安全管理用户、审计用户、普通用户、保密检查用户和完整检查用户按照“按需分配”和“职责隔离”的原则,在这些用户之间划分系统资源;依据特权用户职责和执行代码功能划分系统安全管道域,建立域身份验证、安全转换、资源隔离和职责隔离规则,控制特权主体操作行为,有效隔离恶意代码传染和破坏的范围。
1.4.4 安全管道域技术可以有效解决普通用户型病毒的传播问题
(1)根据域间隔离规则,只有处于安全管理域或检查域中的主体才可以修改半良构应用类。模型有效阻止了普通用户型病毒对半良构应用类代码的破坏。
(2)根据域间隔离规则和执行规则,普通用户域、保密检查域和完整检查域的主体无法对系统管理型和审计型的客体操作,也就是说,上述域的操作将无法影响系统管理型和审计型中的客体。
2 基于可信计算技术的抗恶意代码攻击模型建立
以信任链传递模型和基于密码的安全隔离技术为基础,结合多级安全访问控制和安全管道域技术,构建了互相支撑、互为补充、相对较完备的抗恶意代码攻击模型体系,如图3 所示。
TCB 是实施抗恶意代码攻击各种安全保密控制手段的实体,可信计算基要首先保证其隔离性即不被非法篡改,其次保证其完整性即不被绕过。恶意攻击如果将可信计算基进行篡改或发现存在一条绕过安全控制的途径,则任何抗恶意代码攻击技术手段都形同虚设。
信任链传递技术保证TCB 的隔离性,防止TCB被篡改;基于密码技术的隔离模型保证TCB 完整性,防止TCB 被绕过。
在保证TCB 隔离性和完整性的基础上,针对恶意攻击的技术手段,采用各种安全控制技术手段阻止恶意代码的攻击。每种技术和能阻止的恶意代码攻击手段对应关系如表1 所示。
图3 基于可信计算技术的抗恶意代码攻击模型
表1 抗攻击模型与攻击模型对应表
信任链传递基于软件签名认证完成系统受控代码集的建立,防止恶意代码植入。基于代码完整性,验证完成系统控制权的可信链式传递防止恶意代码发作。基于软件安全标识完成软件的授权控制,防止非法连接和非授权操作。
基于密码的安全隔离技术基于可执行代码加密阻止恶意代码的植入和发作,基于存储加密阻止非授权操作,基于用户/平台身份认证阻止非法连接。
多级安全访问控制技术解决系统普通用户访问资源的保密性和完整性问题。其中,对普通用户登录和网络访问控制防止非法连接,对普通用户各种操作控制防止非授权操作,对普通用户写入控制防止恶意代码植入,对普通用户执行控制防止恶意代码植入。
安全管道域技术解决特权用户访问资源的保密性和完整性问题。它根据用户所承担的职责、软件完成的任务,控制系统主体操作资源的行为。其中,对特权用户登录和网络访问控制防止非法连接,对特权用户各种操作控制防止非授权操作,对特权用户写入控制防止恶意代码植入,对特权用户执行控制防止恶意代码植入。
3 抗恶意代码攻击模型效能分析
用户身份认证、平台身份认证、完整性报告/度量阻止恶意攻击从本地和网络进行连接,防止恶意攻击进行漏洞扫描、数据嗅探、ARP 欺骗、远程溢出。这是整个可信计算系统抗攻击的第一道防线。
软件安装签名认证阻止攻击者非授权植入恶意代码,是可信计算系统抗攻击的第二道防线。
完整性验证恢复和可执行代码加密是可信计算系统防病毒木马起决定性作用的一个环节,也是可信计算技术抗恶意代码攻击的核心机制。该机制能有效阻止恶意代码的发作,为系统提供自我免疫能力,是可信计算系统抗攻击的第三道防线。
授权访问控制是阻止恶意代码行为的主要手段,限制的行为主要包括非法读取、篡改信息、植入病毒和木马。数据加密保护重要信息在存储介质上以密文存放。在存储介质被非授权人员获取后,信息不会泄露,是可信计算系统抗攻击的第四道防线。
基于可信计算技术的抗恶意代码攻击模型效能示意如图4 所示。
抗恶意代码攻击模型的实施对系统性能测试结果表明:通过提高数据读取速度、减少校验值计算次数、修改预期值比较方式和减少与模块交互次数等,可提高程序执行速度,最大程度得减少对系统资源的占用,并达到了预期的目标。
图4 基于可信计算技术的抗恶意代码攻击模型效能示意
4 结 语
针对恶意代码攻击模型的类型手段,综合运用信任链传递技术、基于密码的安全隔离技术、多级安全访问控制技术和安全管道域技术,构建基于可信计算技术的抗恶意代码攻击模型。该模型能有效防止恶意代码植入,防止黑客攻击,有效阻止信息泄露。