APP下载

操作系统安全等级测评模型研究★

2015-12-10张志强黄晓昆

电子产品可靠性与环境试验 2015年4期
关键词:磁盘测试方法完整性

张志强,黄晓昆

(工业和信息化部电子第五研究所,广东 广州 510610)

0 引言

随着计算机与网络技术的普及应用,信息系统将扮演着日趋重要的角色,其安全性全面地影响着我国政治、军事、经济、文化和社会的各个方面。目前由于信息安全事件的逐渐增多,恶意破坏等攻击行为严重地影响了社会的稳定和发展,并且呈现出了发生频率逐年激增的趋势,因而,构建牢固的安全保障体系已经被提升到了刻不容缓的战略高度。

当前,常规的、对信息系统的安全进行防护的手段主要是在网络层设防,并从外围对非法用户和越权访问者进行封堵,从而防止黑客和病毒的传播,而攻击者主要通过假冒、越权、木马、后门和拒绝服务攻击,以及破坏审计数据等方法来实现信息窃取、破坏完整性和非法使用等目的。从计算机软件系统的组成角度来看,可以将软件安全划分为应用软件安全、数据库安全、操作系统安全和网络安全4个部分,若操作系统缺乏安全机制,数据库也就会没有安全可信的存取控制,网络环境下的安全依赖于各主机的安全,同样也就依赖于操作系统的安全,因而,操作系统的安全在计算信息系统的整体安全中具有至关重要的作用。

随着棱镜门、OpenSSL漏洞和Windows XP停止支持服务等事件的频率发生,信息安全问题越来越受到了人们的关注。长期以来,在国内广泛使用的主流操作系统大多都是从国外进口的,出于技术封锁的原因,我们对操作系统安全可信度的了解仅仅局限于由国外厂商所提供的产品规格说明中所涉及到的内容,无法对操作系统的内部有深入的了解,各行业对国产自主可控产品与技术的需求越来越迫切,研究和开发高级别的安全操作系统对于保障信息系统的安全具有重大的意义,在开发高安全等级操作系统的过程中,依靠安全测评来提高产品的安全性就显得尤为重要。

本文根据我国安全操作系统的现状,在阐述安全操作系统的原理、测评方法和国内外安全评测标准的基础上,依据 《计算机信息系统安全等级保护操作系统技术要求》,提出了安全操作系统等级测评模型,并依据测评标准中对数据完整性的功能要求给出了可测试的安全指标及其测试方法,设计并实现了测试工具原型,对国产中标麒麟操作系统进行了测试并对测试结果进行了分析。

1 安全操作系统的测评基础

本章主要对安全操作系统的原理、操作系统常见的安全测评方法,以及与安全操作系统测评相关的标准进行了简单的介绍。

1.1 安全操作系统的原理

安全操作系统,是指对所管理的数据和资源提供适当的保护级,有效地控制硬件和软件的功能的操作系统。操作系统安全表达的是对操作系统的安全需求,安全操作系统的特色是其安全性与一定的安全等级相对应。

图1 安全操作系统的结构示意图

安全操作系统的一般结构如图1所示。其中,安全内核用来控制整个操作系统的安全操作,安全内核是指系统中与安全性的实现有关的部分,包括应用验证机制、访问控制机制、授权机制和授权管理机制等部分。安全内核需设计精简,以便于进行严格的安全性验证,从而使得可以用这一小部分软件的安全可信性来保证操作系统的安全可信性。

根据有关信息系统安全标准的定义,安全的操作系统[1]具有以下几个特征:1)最小特权原则,即每个特权用户都只能进行权力范围内的操作;2)自主访问控制;3)强制访问控制,包括保密性和完整性访问控制;4)安全审计;5)安全域隔离。只有具备这些底层的安全功能,操作系统才能够真正地抵制各种病毒、木马程序、网络入侵和人为非法操作。

1.2 操作系统安全测评

安全测评解决的是对信息产品自身的基本安全防护性能的评价问题,以及从产品的设计角度和实现角度分析产品中存在的安全隐患、安全漏洞,并适当地考虑采取安全防护和抵御攻击的方法。

安全测评是对安全测试产生的数据进行分析、形成结论的技术活动,包括安全测试与安全评估两个技术过程。与一般意义上的软件测试不同的是,安全测试的着眼点是系统中与安全相关的部分,即数据处理和存储时进行数据保护的部分,以及预防、检测和减小授权用户、未授权用户执行的未授权活动所造成后果的部分,而对于系统应该具备的常用功能则不过多地关注。

为了保证操作系统的安全性,通常采用漏洞扫描评估和系统性安全测评两种手段来对操作系统的安全性进行测评。

操作系统安全漏洞扫描的主要目的是:自动评估由于操作系统的固有缺陷或配置方式不当所导致的安全漏洞。扫描软件在被测操作系统中运行,通过一系列的测试手段来探查、发现其潜在的安全缺陷。它从操作系统的角度评估单机的安全环境并生成所发现的安全漏洞的详细报告。

系统性安全测评与安全操作系统的安全功能及其设计过程密切相关,是安全系统的安全性保障手段的高级形式,也是当前使用的保障安全系统的主要手段,主要包括形式化验证与非形式化确认与验证工作。形式化验证是基于定理或者定义来证明操作系统的安全架构和安全模型的安全性的,非形式化确认与验证主要是根据需求对代码、模块和系统进行测试,采用的是常用的系统测试方法。

1.3 安全测评标准概述

计算机安全测评标准制定的目的是为了对现有的计算机系统的安全性进行统一的评价,为计算机系统各层次部件的制造商和测评机构提供一个权威的测评系统的安全性的标准,通过对现有的标准进行总结和整理,了解到目前国内外计算安全测评标准的大概情况如表1所示。

目前,我国通用的GB 17859-1999《计算机信息安全保护等级划分准则》是建立安全等级保护制度、实施安全等级管理的重要基础性标准。该标准在参考美国桔皮书 《可信计算机系统评估准则》[1]和 《可信计算机网络系统说明》的基础上,从自主访问控制、强制访问控制、标记、身份鉴别、客体重用、审计、数据完整性、隐蔽信道分析、可信路径和可信恢复10个方面将计算机信息系统安全等级划分为了5个安全等级。计算机信息系统安全保护能力随着安全保护等级的增高而逐渐地增强。

GA/T 388-2002《计算机信息系统安全等级保护操作系统技术要求》是计算机信息系统安全等级保护技术要求系列标准的重要组成部分,用于指导设计者设计和实现达到了所需要的安全等级的操作系统,主要从对操作系统的安全保护等级进行划分的角度来说明其技术要求,即为实现 《计算机信息系统安全保护等级划分准则》中每一个保护等级的安全要求对操作系统应采取的安全技术措施,以及各项安全技术要求在不同安全级中的具体实现上的差异。

表1 国内外计算测评标准概况

2 安全操作系统等级测评模型研究

本章介绍了安全操作系统的开发模型,并依据测评标准提出了一个安全操作系统的等级测评模型。

在设计与开发安全操作系统的过程中[1],首先,应开展安全需求分析,即参考安全标准中各等级的安全目标来确定目标系统所要达到的安全等级的安全要求;然后,以此为依据建立安全模型;随后,设计与实现安全机制;最后,开展安全操作系统认证。总的来说,可以将设计与开发安全操作系统的过程分为如下几个阶段。

a)安全模型的建立。

操作系统的安全需求是一个被良好定义的、一致的,并且可以实现的规则集,是从安全策略中得到的,它是从整个系统的需求分析中抽取的涉及安全功能的那部分。只有明确了安全需求,才能给出相应的安全策略。安全模型是对安全策略所表达的安全需求的简单、抽象和无歧义的描述,它为安全策略及其实现机制之间的关联提供了一种框架。安全模型描述了对某个安全策略需要用哪种机制来满足,而模型的实现则描述了如何把特定的机制应用于系统中,从而实现某一特定的安全策略所需的安全保护。

b)安全机制的设计与实现。

结合系统的特点,选择一种实现安全模型的方法,逐步地建立安全模型所要求的安全访问机制,同时在设计了安全功能后,检查它所提供的安全尺度。

c)安全操作系统认证。

反复地对安全操作系统进行测试并对其安全性进行分析,委托专业机构根据测评标准进行安全认证。

安全操作系统安全测评模型是依据安全操作系统的开发模型而建立的,测评模型的结构[5]如图2所示。

图2 安全操作系统测评模型

根据图2可以看出,安全测评分为安全功能测试、安全保证测试和渗透测试3个部分。根据安全标准,分别使用相关的安全测试工具对安全操作系统的安全功能、安全保证和系统3个部分进行测试,生成相应的测试结果;在评估过程中,依据安全测评标准,结合各类评价算法,对预期结果和测试结果进行比较,得到安全等级评估的结果。

安全功能主要说明操作系统所实现的安全策略和安全机制符合评价准则中相应级别的功能要求;而安全保证则是通过一定的方法保证操作系统提供的安全功能能够达到确定的功能要求,主要从系统的实现、自身安全、安全管理、配置管理、发行使用、开发和指南、生命周期支持、测试和脆弱性评估等方面对系统提供的安全功能进行保障。

渗透测试的必要性在于,即便是在设计时采取了足够的安全功能和安全保证措施,仍旧不能说明系统就不存在安全脆弱点,因而需要依靠渗透测试检查系统的安全漏洞和抗攻击能力[6]。

安全测评工具主要包括3类:1)检查单,主要被用来获取与被测系统有关的基本信息,进行基线检查;2)人机交互式自动化测试工具,用于对系统的安全功能进行测试;3)渗透与漏洞检测工具。

3 安全操作系统数据完整性测评方案研究

基于测评模型,本文主要针对安全功能中的数据完整性功能的测试方案进行了研究,对其他的安全功能的研究将在其他论文中进行论述。

3.1 数据完整性机制

数据完整性是指数据没有遭受以非授权方式所作的篡改或破坏。数据的完整性包括数据存储的完整性和数据网络传输的完整性。数据存储的完整性指数据在上一次保存之后不受未授权的非法修改,数据传输的完整性是指数据在发送和接收的过程中保持完整而不被修改。

数据完整性可以从两个层面来理解,即单个数据单元或字段的完整性,以及数据单元流或字段流的完整性;如果没有第一类完整性服务,则第二类服务无法提供。完整性保护是通过对文件和文件系统进行跟踪,以及对相应的数据库进行维护,在系统的某些数据发生非期望的变化时,迅速地做出响应,从而避免入侵者后门程序的存在及未经授权的篡改。结合备份机制,在一定程度上能够有效地保证系统的安全。

不论是数据传输的完整性检查还是数据存储的完整性检查都需要借助于Hash函数来实现,例如:MD5函数就是Hash函数中使用的较普遍的一种。完整性检测 (Integrity Checking)或称为一致性检测不仅能够检测非法改动,提醒用户监测目标发生了变化,还能够监测系统其他方面的一致性,例如:完整性检测能够监测系统是否保持着严格的访问控制,是否保持了可靠的备份,以及能否保证所得到的软件补丁不会产生新的漏洞等。

操作系统为数据完整性提供了许多重要的安全实现机制,以保证操作系统数据的完整性。它通过提供自主访问控制和强制访问控制来防止非法用户对数据的恶意破坏,提供了丰富的密码技术来保证数据的安全传输和数据完整性的验证,提供了数据备份和修复程序,并提供了可靠的网络传输功能用于数据的安全传输。

3.2 数据完整性功能要求和方法设计

GA/T 388-2002《计算机信息系统安全等级保护操作系统技术要求》中最高等级第五级访问验证保护级对数据完整性的功能要求包括以下几点。

a)应对系统中的信息采取有效的保护措施,防止其遭受非授权用户的修改、破坏或删除。

b)进程应具有高完整性,确保系统能正确地运行,不致于混乱或崩溃,需设计相应的可信计算基来实现有关功能。

c)对在操作系统中经网络输出的信息的完整性进行保护,应提供监视用户数据完整性的功能,即当被传输的用户数据被篡改、删除、插入或重用时,系统能够及时地发现,并进行报警。

d)对存储在可信计算基控制范围内的用户数据的完整性进行保护,实现存储数据的完整性监视,并进行报警。

e)对磁盘设备中存储的数据,可通过增加磁盘扫描程序来实现以下功能:自动检查文件与磁盘表面是否完好;修复区交错和扇区流失;将磁盘表面的问题自动记录下来;将数据移到好的扇区;随时检查、诊断和修复磁盘上的错误;可在系统中增加计算机病毒检测、诊断和预防程序;也可增加磁盘数据备份和修复程序,将磁盘中的数据压缩、备份,并在必要时恢复数据。

f)对在操作系统中进行处理的信息的完整性进行保护,应通过对各种异常情况或事务的回退,以事务的完整性来确保数据的完整性。

从数据完整性安全功能要求中得到的安全指标和测试方法为利用shell指令集,编写测试相应安全功能的程序,全部写入测试文档test,在Linux命令行环境下,将测试文档属性修改为可执行属性,利用chmod的相关命令,形成可自动测试的文档。

每个安全要素的测试方法与思路如下所述。

a)测试操作系统是否通过密码技术对系统中的加密存储数据进行完整性检验。

测试方法——在审查国家商用密码委员会的批文的基础上验证以下几项功能:1)利用shell命令程序检测是否有加密算法 (例如:是否具有MD5加密工具);2)所使用的加密算法是否是其声称的加密算法;3)加密算法是否可以剥离,即验证算法是否有清楚的接口以供替换加密算法;4)所提供的密码算法是否可以对存储数据进行完整性验证。

b)测试操作系统可信计算基是否通过自主完整性策略阻止非授权用户修改或破坏敏感信息。

测试方法——检查非授权用户是否可以修改、破坏或删除未授权的敏感信息,例如:利用rm shell命令对/etc/password文件进行修改和删除,若该操作被阻止,则说明安全功能有效。

c)对于通过网络传输的数据测试操作系统是否使用密码技术对其完整性进行检验。

测试方法——利用SSH、SSL等响应的shell命令进行相应的存在检测,验证其完整性检验是否有效。

d)测试操作系统识别出完整性错误时的自动响应能力。

测试方法——对包含系统敏感信息的文件进行改动操作,然后进行完整性检验,检验操作系统是否会自动响应。

e)测试操作系统中是否存在磁盘扫描程序或修复程序。

测试方法——测试是否有磁盘扫描或修复程序,是否有备份、恢复程序。利用fsck和badlocks等磁盘扫描程序命令,e2fsck等磁盘修复程序命令,dump、restore和backup等备份程序命令,以及 rdump、rstore、rep、ftp和 rdist等网络备份程序,结合它们所特有的参数对系统进行检查,验证安全功能的有效性。

f)测试操作系统执行特定操作的回退功能及其条件限制功能。

测试方法——验证对于特定的客体是否提供了回退功能,并验证对于回退时间、次数及角色要求的限制。

3.3 测试结果分析

基于上述内容,以国产中标麒麟操作系统为测试对象,设计测试用例,根据相应的测试流程,开展数据完整性功能的验证,测试结果如下所述。

a)操作系统可信计算基通过自主完整性策略能够阻止非授权用户修改或破坏敏感信息。

b)操作系统提供了众多的密码算法用于对加密存储数据的完整性进行检验,例如:MD4算法、MD5算法和SHA1算法等,并且所使用的加密算法是其声称的加密算法,加密算法有清楚的接口以供替换加密算法,所提供的密码算法可以对存储数据进行完整性验证。

c)通过测试和对相应的配置进行检查可以得到通过邮件和浏览器所传输的信息,操作系统提供了SSL、TSL选项用于安全连接,提供了SSH用于远程服务。

d)当检测到完整性错误时,系统会自动地给管理员发送一封含有相关信息的邮件,而相应系统操作成功的变量将会被记录到相关结果的文件中,最终得到相应的测试结果。

e)系统提供了fsck和badlocks等磁盘扫描程序命令,e2fsck等磁盘修复程序命令,dump、restore和backup等备份程序命令,rdump、rstore、rep、ftp和rdist等网络备份程序,且扫描、修复以及备份都是有效的。

f)操作系统安全功能对特定的客体提供了回退功能。

从上面的测试结果可以得到,国产中标麒麟操作系统达到了标准GA/T 388-2002中第三级数据完整性的功能要求。

4 结束语

本文通过总结和阐述安全操作系统的原理、常见的安全测评方法、安全测评标准及开发模型,提出了安全操作系统等级测评模型,并依据测评标准中对数据完整性的功能要求,给出了可测试的安全指标以及它们的测试方法,利用shell命令对系统数据的完整性安全功能所涉及的安全要素进行了测试,设计并实现了测试工具原型,对国产中标麒麟操作系统进行了测试并对测试结果进行了分析,结果表明,中标麒麟操作系统的数据完整性安全功能达到了GA/T 388-2002标准中第三级数据完整性的功能要求。限于能力和精力,本文对不少问题未能充分地研究。同时针对安全操作系统等级测评领域,本文作者所在的项目组正在全力攻关访问控制、可信路径和隐通道分析,以及安全模型形式化验证等关键问题,项目组将开展进一步的深入研究工作。

[1]袁春阳,梁洪亮.高可信安全操作系统的开发及核心技术 [J].信息安全,2005(3):47-49.

[2]US DoD 5200.28-STD-1985,Trusted Computer System Evaluation Criteria (TCSEC) [S].

[3]ISBN 92-826-3004-8-1991,Information Technology Security Evaluation Criteria (ITSEC), Version 1.2[S].

[4]CCIMB-99-031-1999,Common Criteria for Information Technology Security Evaluation,Version 2.1[S].

[5]陆幼骊.安全操作系统测评工具箱的设计与实现 [D].郑州:解放军信息工程大学,2005.

[6]熊婧,黄晓昆.安全操作系统渗透性测试方案研究 [J].电子产品可靠性与环境试验,2013,31(S1):141-146.

猜你喜欢

磁盘测试方法完整性
基于泊松对相关的伪随机数发生器的统计测试方法
石油化工企业设备完整性管理
解决Windows磁盘签名冲突
基于云计算的软件自动化测试方法
DLD-100C型雷达测试方法和应用
修改磁盘属性
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
磁盘组群组及iSCSI Target设置
创建VSAN群集
精子DNA完整性损伤的发生机制及诊断治疗