一、 引 言
随着技术进步的加快,尤其是国际互联网的出现和迅速发展,一个全球性的信息社会正在逐步形成。在信息化的过程中,国家的安全与经济的安全越来越依赖十信息化基础设施的安全程度。保证电子信息的有效性、安全性成为突出问题。
信息系统安全设计的核心是操作系统、网络系统与数据库管理系统的安伞问题,没有系统的安全就没有信息的安全,作为系统软件中最基本的就是操作系统,其安全问题是关键中的关键。
计算机作为信息时代的基本工具,在给各行各业带来巨大效益的同时,本身也存在着严重的不安全性、危险性和脆弱性。一个有效可靠的操作系统应该对其操控的资源具有良好的保护性能,即应提供必要的保护措施,防止因所用资源的的缺陷而损害系统。实际上,系统的安全机制已成为操作系统不可分割的一部分。
操作系统是计算机资源的直接管理者,所有应用软件都是基于操作系统来运行的,可以说操作系统的安全是整个计算机系统安全的基础。操作系统安全性的测弹是实现安全操作系统的一个极为重要的环节,如果不测评、验证所开发操作系统的安全性和该安全性的可信度,那么开发出的安全操作系统的安全性就没有任何保证,从而失去了它应有的应用价值。
基于这个局面,我们首要的工作就是要研究开发具有自动知识产权的自动化安全测评系统。操作系统安全测评主要有形式化验证、代码功能块检查、渗透测试等方法。由于当前常用的操作系统体系都是非常庞大复杂的,致使前两种方法的实施有很大难度,所以我们进行操作系统安全测评主要使用渗透测试的方法。在此背景下,大家常见的对操作系统的测评主要依赖主机的或网络的扫描工具.通过对系统安全漏洞的检测,依据获得的漏洞信息(比如漏洞的危险度,流行度等等),综合计算,从而得到操作系统的风险值。
二、 正文
(一) 安全操作系统及评价标准
1、安全操作系统
操作系统是唯一紧靠硬件的基本软件,其安全驯能是其他软件安全职能的根基,缺乏这个安全的根基,构筑在其上的应用系统以及安垒系统的安全性就得不到根本的保障。单个操作系统以及其上的应用系统的安全是整个安全系统的根本,如果构成互联网的计算机本身系统安全都有问题,那么网络系统和数据库管理系统就同样会存在问题,应用软件信息处理的安全更无从谈起⋯。
安全操作系统是在操作系统的工作范围内,提供尽可能强的访问控制和审计机制,在用户,应用程序和系统硬件/资源之间进行符合安全政策调度,限制JE法访问。安全操作系统应具有的特征包括最小特权原则、带冉AcL自主访问控制、强制访问控制、安全审计和审计管理、安全域隔离、可信通路等。
安全测试在设计安全操作系统的过程中是一个小可或缺的重要环节,对安全操作系统的测试一r以评测设计出的安全操作系统的安全性和该安全性的可信度是否达到预期的标准,安全测试的准确与否直接关系到设计⋯的安全操作系统的性能及其应用价值 。
2、设计细想
安全测评是指由具备检验技术能力的第三方机构,依据相关标准或技术规范,按照严格程序对信息系统的安全保障能力进行的综合测试评估活动。
标准是测评的灵魂。安全标准提供了每一个安全等级所对应的安全功能的技术要求, 但是, 由于各个操作系统具有不同的实现, 安全标准不可能制订出明确、详细的工程技术指标,而只能是一个综述性的说明。同时, 由于操作系统结构复杂, 那种根据安全标准进行对照检查式的侧评方法不可行, 安全测评的技术难度在于如何设计从标准到测试用例的映射关系。
对操作系统的安全测评就是检查安全机制是否完整地实现了安全策略。操作系统自下而上分为几个层次, 每个层次体现不同的功能抽象程度。安全机制在操作系统每个层次上的制约作用都有不同的表现形式,因此安全测评要在各层次上展开) 先测试单个组件, 然后将这些组件集成到子系统中, 直到测试完整个系统。
首先是底层测试即单元级测试,目标是系统底层安全相关的一些单元,例如用户命令、系统调用、系统库程序等, 目的是为了验证它们的功能实现是否符合安全策略, 如果发现其违反了安全机制, 则可以确定系统存在安全漏洞。例如用户命令mail用于邮件管理 在强制访问控制机制下, 禁止信息从高安全等级流向低安全等级如果高安全等级的用户进程使用该命令将邮件成功发给低安全等级的邮箱,就违反了安全策略, 造成了泄密。
更高层次的测试在子系统级展开。操作系统由文件、网络、进程等几个子系统所组成, 各子系统实现不同的功能以满足不同的衡求, 并且各子系统相互配合以形成一个有机的整体,只有当所有子系统的测试都成功时,才能说明操作系统通过了整个安全测评。子系统安全测试的目标是各子系统中常用的系统调用, 验证方法是检测它们的使用是否符合安全策略。此外, 预测试也是必要的。虽然安全测试只关注安全性, 而不关心可用性, 但是由于测试套件要在被测操作系统中运行, 每个测试用例的运行都裕要满足特定的条件。因此, 必须预先对操作系统的常用功能进行验证,以确保整个测试活动能够顺利进行。例如, 安全审计机制需要系统的统计命令的支持, 在测试审计机制之前就要对统计命令进行功能性测试。
3、安全操作系统测评标准
在操作系统测评中,标准的作用主要有两个.一是通过标准的规定。使得不同测试者对不同测试对象有统一的评价,有统一衡量的标度;二是通过标准的规定,使测试的范围及程度更加全面 。
多年来TcSEc评估准则一直是人们用来设计安全操作系统的上要参考标准,因此它也一直是评估多用户主机和小型操作系统的主要方法。按照TcsEc柴测试系统的安全性,主要包括硬件和软件两部分。整个测试过程对生产厂商来说是很昂贵的,而且往往需几年才能完成f21 。
橘皮书是目前国际上颇具权威的计算机系统安全标准之一,它将计算机系统的安全性能由高而低划分为A、B和C,D四大等级,较高等级的安全范围涵盖较低等级的安全范围,其中:D、 最低保护(Minimal Protection),凡没有通过其他安全等级测试项曰的系统即属于该级,如lBM—Pc、Apple Macintosh等。C、自定式保护(Discretionary Protection),该等级的安全特点在于系统的对象(如文件、目录)可由其主题(如系统管理员、用户、应用程序)自定义访问权。例如管理员可以决定某个文件仪允许某一特定用户读取、另一用户写入等,unix、windowsNT等系统属于该级别。B、一强制式保护(Mandatory Protection),该等级的安全特点在于系统强制的安全保护,在强制式保护模式中,每个系统对象(如文件、目录等资源)及主题(如系统管理员、用户、应用程序)都有自己的安全标签(security Label),系统依据用户的安垒等级赋予他对各对象的访问权限。A 、可验证保护(Vermed Protection),其特点在于系统拥有正式的分析及数学式方法可完全证明该系统的安拿策略及安全规格的完整性与一致性。橘皮书对操作系统安全等级的划分只是给出了一个最终的实现目标,并没有从实现方法上给予规定,这就导致了在安全操作系统的测试问题上的盲目性和不规范性,而国外的测试方法和备等级的测试标准又是保密的,因此,尽快探索出一套自己的对于安全操作系统测试的方法和步骤是有必要的。
4、设计思想
(二) 操作系统安全评测方案及方法
1、安全操作系统评测方案
系统调用是操作系统提供给用户的唯一接口,用户可利用它执行系统功能,进行设备管理、文件管理、进程控制、进程通信、存储管理和线程管理的相应操作,同样,用户也可以利用系统调用的漏洞和不完善性对操作系统进行攻击和破坏”,因此,各个系统调用的安全性就直接关系到安垒操作系统的整体的安全性。由此可见,对安全操作系统的测试首先就是对安全操作系统中各个系统调用安全的测试。
依据应用软件的测试原则,本文提出对系统调用的测试,分为以下5个步骤:
(1)明确测试对象,即要针对哪一个或几个系统调用进行测试,并对待测系统调用的运行机制和各种不同的运行结果力求以深入r解;
(2)明确测试日的,根据所选测试对象的小同,测试H的也会随之变化,在对单一的系统调用进行测试时,测试的目的通常是执行系统调用的某些操作,比较结果是否与预期相同,如果同时对几个系统调用进行测试,往往是看其能否协同工作;
(3)根据具体的测试对象和测试目的编写测试用例,明确系统调用的初始化变量和参数、执行步骤、预期的结果等;
(4)进行具体的编码测试;
(5)根据结果来分析被测对象是否具有预期的安全性 。
2、 操作系统安全测评方法
2.1一般方法
软件测试过程一般可以分为4个基本阶段,单元测试、集成测试,功能测试和系统测试。单元测试是对组成软件的每个单元进行测试,以确认各个单元能否正常工作。集成测试是在对每个单元的单元测试完成后,按照设计时做出的结构图,在把软件单元逐步组装的过程中,同时有序进行的测试。功能测试是检验集成测试中发现的软件接口缺陷是否己经纠正。系统测试是将软件、硬件和环境连在一起进行的垒面的测试,以检查被测软件与需求说明是否相符 。本文针对操作系统的工作单元进行安全测试探讨。
2.2工作单元测评
工作单元是安全测评的基本工作单位,对应一组相对独立和完整的测评内容。工作单元由测评项、测评对象测评方式、测评实施和结果判定组成,如下图:
测评项描述测评目的和测评内容,与操作系统安全等级保护要求的基本安全控制要求相一致。
测评方式是指测评人员依据测评目的和测评内容应选取的、实施特定测评操作的方式方法,包括三种基本测评方式:访谈、检查和测试。
测评对象是测评实施过程中涉及到的信息系统的构成成分,是客观存在的人员、文档、机制或者设备等。测评对象是根据该工作单元中的测评项要求提出的,与测评项的要求相适应。一般来说,实施测评时,面临的具体测评对象可以是单个人员、文档、机制或者设备等,也可能是由多个人员、文档、机制或者设备等构成的集合,它们分别需要使用到某个特定安全控制的功能。
测评实施是工作单元的主要组成部分,它是依据测评目的,针对具体测评内容开发出来的具体测评执行实施过程要求。测评实施描述测评过程中涉及到的具体测评方式、内容以及需要实现的结论应该取得的测评结果。
结果判定描述测评人员执行完测评实施过程,产生各种测评证据后,如何依据这次测评证据来判定被测系统是否满足测评项要求的方法和原则。在给出整个工作单元的测评结论前,需要先给出单项测评实施过程的结论。一般来说,单项测评实施过程的结论判定不是直接的,常常需要测评人员的主观判断,通常认为取得正确的、关键性证据,该单项测评实施过程就得到满足。某些安全控制可能在多个具体测评对象上实现(如主机系统的身份鉴别),在测评时发现只有部分测评对象上的安全控制满足要求,它们的结果判定应根据实际情况给出 。
2.3测评方法
主要采用访谈、检查、测试等方法进行等级保护测评。
1)访谈(interview)
测评人员通过与信息系统相关人员(个人群体)进行交流、讨论等活动,获取证据以证明信息系统安全等级保护措施是否有效。可以使用各类调查问卷和访谈大纲实施访谈。
2)检查(examine)
不同于行政执法意义上的监督检查,而是指测评人员通过对测评对象进行观察、查验、分析等活动,获取证据以证明信息系统安全等级保护措施是否有效。可以使用各种检查表和相应的安全调查上具体实施检查。
3)测试(test)
测评人员通过对测评对象按照预定的方法工具使其产生特定的行为等活动,查看、分析输出结果,获取证据以证明信息系统安全等级保护措施是否有效。包括功能测试和渗透性测试、系统漏洞扫描等。
渗透性测试:等级测评的一个重要内容是对测试目标进行脆弱性分析,探知产品或系统安全脆弱性的存在,其主要目的是确定测试目标能够抵抗具有不同等级攻击潜能的攻击者发起的渗透性攻击。因此,渗透性测试就是在测试目标预期使用环境下进行的测试,以确定测试目标中潜在的脆弱性的可利用程度‘2盯。
系统漏洞扫描:主要是利用扫描工具对系统进行自动检查,根据漏洞库的描述对系统进行模拟攻击测试,如果系统被成功入侵,说明存在漏洞。主要分为网络漏洞扫描和主机漏洞扫描等方式。
2.4系统整体测评
系统整体测评涉及到信息系统的整体拓扑、局部结构,也关系到信息系统的具体安全功能实现和安全控制配置,与特定信息系统的实际情况紧密相关内容复杂且充满系统个性。因此,全面地给出系统整体测评要求的完整内容具体实施方法和明确的结果判定方法一般来说是比较困难的。
首先测评人员应根据特定信息系统的具体情况,结合标准要求,确定系统整体测评的具体内容。其次在安全控制测评的基础上,重点考虑安全控制间、层面间以及区域间的相互关联关系,测评安全控制间、层面间和区域间是否存在安全功能上的增强、补充和削弱作用,最后才能得出测评结论。
三、 结尾
本文通过对安全操作系统及其评测标准的剖析,提出对于一个完整的安全操作系统,可以将其看作是若干个有机的功能模块的集合,并且对于安全操作系统的测试可以视为对安全操作系统每个模块的测试的观点,并将安全操作系统的测试方案归结为明确测试对象、确定测试目的、编写测试用例、具体测试和分析测试结果5部分,根据测试方案选择适合的测试方法,另外,再针对操作系统的工作单元测试进行深入地探究,并提出了具体的测试方法和系统整体测试。
参考文献
[1] 许友, 陈性元, 唐慧林, 高沛霖, XU YOU, CHEN XINGYUAN, TANG HUILIN, GAO PEILIN,基于标准的系统安全测试指标体系的研究,450004,河南郑州,解放军信息工程大学电子技术学院,2007,23(3)
[2] 魏丕会, 卿斯汉, 黄建,安全操作系统等级评测系统,中国科学院软件研究所;中国科学院信息安全技术工程研究中心,北京,100080,2003,29(22)
[3] 陆幼骊,张红旗,操作系统安全测评系统设计,信息工程大学电子技术学院
[4] 于海亮, 于双元, 马晶燕, YU Hai-liang, YU Shuang-yuan, MA Jing-yan,基于Linux的安全操作系统测试方法研究,北京交通大学,计算机与信息技术学院,北京,100044,2006,15(4)
[5] 林庆富,网络安全评测信息系统的开发与应用,长春理工大学
[6] 沈昌祥,安全操作系统的战略意义[J],信息安全与信息保密,2003(8):1
[7] 林庆富,网络安全评测信息系统的开发与应用,长春理工大学
[8] 陈晨,操作系统安全测评及安全测试自动化的研究,北京交通大学