信息技术安全评估准则:源流、方法与实践
上QQ阅读APP看书,第一时间看更新

2.2 标准基本结构和概念

2.2.1 基本结构

当前版本的通用评估准则核心文档有两大部分:ISO/IEC 15408《信息技术 安全技术信息技术安全评估准则》(CC)和ISO/IEC 18045《信息技术 安全技术 信息技术安全评估方法》(CEM)。

ISO/IEC 15408文档又包括以下3个分册。

(1)第1部分:简介和一般模型。给出了CC总体概述,定义了在CC中使用的术语及缩略语;建立了TOE的核心概念;论述了IT产品安全评估背景;描述了CC针对的读者对象。此外,还介绍了安全评估基本概念,包括安全评估的一般模型、PP、ST和安全要求的类、族和组件结构,以及安全要求组件选择和组件元素的操作方法。另外,CC第1部分还描述了CC的每一部分文档对每一类目标读者的用途。

(2)第2部分:安全功能组件。按类-族-组件-元素的方式列出了11个安全功能类相关的160多个安全功能组件。基于这些安全功能组件描述,PP/ST编制者通过选择、赋值、细化或反复操作组件中的元素就可构建TOE的安全功能要求。

(3)第3部分:安全保障组件。按类-族-组件-元素的方式列出了评估IT产品的5个保障类、评估组合TOE的1个保障类和评估PP/ST的2个保障类。除此之外,在该部分还定义了评估IT产品安全保障水平的7个级别的评估保障级别(EAL)保障包和评估组合IT产品安全保障水平的3个级别的评估保障级别(CAP)保障包。

ISO/IEC 15408的3个分册的用途如表2.1所示。

表2.1 ISO/IEC 15408文档使用指南

ISO/IEC 15408第1部分(简称CC第1部分)建立了IT安全评估的一般概念和评估原则,详细描述了可作为评估IT产品安全功能的一般评估模型。换句话说,CC第1部分阐述了隐藏在应用ISO/IEC 15408对IT产品执行评估背后的工作原理,即通过信息技术安全评估的方式为用户提供IT产品安全保障的评估证据,而不是通过安全理论模型和系统仿真方法为用户提供IT产品安全保障的安全证明。采取安全评估这样的方式是由于被评估的IT产品实现不可能达到绝对的安全,因为TOE开发者在对IT产品进行安全设计时,他们只是考虑在产品设计运行环境下使用何种安全技术或保护措施来抵御可能的安全攻击。所以在应用CEM对IT产品进行安全评估过程中,并不是去判定IT产品是否能够完全抵抗未来应用中所有潜在的安全威胁,而是判断TOE安全要求实现是否符合其设计ST中定义的安全目的。

ISO/IEC 15408第2部分(简称CC第2部分)的安全功能组件用于定义IT产品的安全行为/安全特征,对这些安全组件的实现就成了具体IT产品的安全功能。因此,CC第2部分安全功能组件适用于描述TOE要做什么。

ISO/IEC 15408第3部分(简称CC第3部分)的安全保障组件是为建立对TOE安全功能实现的信任而设计的,因此,安全保障组件适用于评估TOE安全功能实现的正确性,验证TOE是否满足ST的有效性,从而判断产品是否构造适当、是否满足其预期用途等。CC第3部分描述了每个安全保障要求的开发者行为元素、内容和形式元素和评估者行为元素,提供了TOE开发者必须要准备好的评估证据,以及评估者需对TOE进行评估的内容和方法。

ISO/IEC 18045《信息技术 安全技术 信息技术安全评估方法》(即CEM)规定了在采用ISO/IEC 15408所定义的安全组件和TOE开发者提交的评估证据进行评估时,评估者应执行的最小行为集合,包括PP评估、ST评估、保障组件评估、组合保障组件评估等输入任务和输出任务。因此,ISO/IEC 18045文档主要包括以下内容。

(1)描述了不需要通过评估做出裁决的通用评估任务,这些任务没有映射到CC第3部分评估者行为元素。

(2)定义了建立在CC第1部分(特别是附录A)以及CC第3部分APE类所规定的PP要求基础上的PP评估。

(3)定义了建立在CC第1部分(特别是附录B)和CC第3部分ASE类中规定的ST要求的基础上的ST评估。

(4)定义了为完成TOE评估而需要的最小评估努力,适用于完成EAL1到EAL5级保障要求评估的方法和操作指南。

(5)定义了组合TOE评估保障要求,并提供了完成CAP-A、CAP-B和CAP-C级保障要求评估的方法和操作指南。

(6)定义了缺陷纠正评估活动,以确定TOE开发者是否已建立了IT产品缺陷纠正程序。

CEM详述了CC第3部分中主要与EAL 1到EAL 5级保障组件相关的评估活动、子活动及工作单元内容,以便保证在不同国家间的安全评估体制的一致性。因此,CEM是CC测试实验室完成IT产品评估工作的标准化指导,它告诉评估者寻找什么(评估证据)和以什么样的深度(工作单元)评估PP、ST或具体TOE(IT产品)。

依赖于CC第3部分预定义的评估保障级别,TOE评估者将以不同的范围和深度检查IT产品厂商提供的TOE安全功能。评估者按照CEM方法对TOE开发者提供的评估证据进行核实、检查、记录和报告。在CEM中每个词语都有具体的意义。

(1)核实(check)——通过简单的比较产生裁决。

(2)检查(examine)——通过采用专门的测试技术进行测试,并通过测试结果的分析产生裁决。

(3)记录(record)——保存安全评估过程、事件的书面说明。

(4)报告(report)——包括评估结果、评估技术报告的支持材料或观察报告。

与CC配套的ISO/IEC TR 15446《信息技术 安全技术 保护轮廓和安全目标产生指南》技术报告,意在帮助CC用户使用CC标准化术语词汇、句法和符号来表达IT产品用户的安全需求,并给TOE开发者描述其IT产品安全方案提供了结构化文档方面的建议。

本章和第3章主要介绍ISO/IEC 15408文档内容,ISO/IEC TR 15446和ISO/IEC 18045两份文档的内容将在第4~6章介绍。注意,CC采用“事后反馈”评估——也就是TOE安全评估是在IT产品被开发之后或在IT产品开发阶段完成后依据相关的评估证据(如设计文档)进行评估。这和IT产品还在开发过程中就按照软件工程方法(如CMM)进行评估形成了对比。因此,有人将CC评估比喻成财务审计——由外部专家检查你的财务记录和程序化文件来确定“你所说的要做的是否真正做到了”。

基于CC的IT产品安全评估给我们提供了一定水平的安全置信度,即IT产品安全功能和安全保障能力的声明(在ST中规范)能够达到客户指定的安全要求(在PP中描述)。有了IT产品的这些安全评估信息,IT产品客户可以制订更明智的IT产品采购策略,TOE开发者也可在市场宣传和推广其通过评估和认证的IT产品。

2.2.2 基本概念

CC第1部分定义了信息技术安全评估的概念和原理,并给出了安全评估的一般模型,可用于表达IT产品安全目的,选择和定义IT产品的安全要求,以及描述TOE的安全架构和功能规范。CC第1部分内容是理解和使用CC中第2和第3部分的必要基础。

CC第1部分还详细说明了保护轮廓、安全目标、评估对象、功能要求和保障要求的包、类、族、组件等CC核心概念,并描述了产生IT产品安全评估结果的方法。由于PP/ST是设计和评估的基础,所以需要对PP/ST中所描述的安全功能是否能够满足其要求做出评估,在CC第1部分的附录A和附录B部分,CC对PP/ST文档结构和内容做出了明确的要求。这几个关键概念一直贯穿CC所有相关标准和技术指导文件。

1.保护轮廓(PP)

作为CC中最关键的概念,PP是TOE消费者表达安全要求和TOE开发者提供安全方案的依据。正如在第1章1.3节提到的,PP的概念源于美国联邦信息技术安全准则(FC),它为一类IT产品定义了一组安全要求,而不管这些IT产品是如何实现这些要求的。TOE消费者主导编制的保护轮廓与ISO/IEC 15408文档之间的关系如图2.1所示。ISO/IEC 15408第2部分和第3部分的安全功能和安全保障组件是不同信息领域客户定义他们对IT产品安全功能需求和安全保障需求的依据。

图2.1 CC与PP间的关系

PP中定义的TOE安全要求由IT产品开发者给出的“ST”去解决。换句话说,PP与某一个具体IT产品(如Windows或Linux)无关,它定义的是用户对这类IT产品(如操作系统)的安全要求,规定了这类IT产品的安全技术要求以及确保正确有效地实现这些要求的安全保障措施。这有助于确保信息技术与安全需求之间的内在完备性,以及提高信息技术安全保护的针对性和有效性。换句话说,编制PP的过程帮助用户说明、定义和验证他们的安全要求,PP的最终目标主要用于两个方面:一是传达TOE的这些需求给潜在的IT产品开发者,二是为IT产品开发者的ST编制提供依据。

2.安全目标(ST)

ST源于欧盟的信息技术安全评估准则(ITSEC),是CC测试实验室实施IT产品安全评估的依据。ST的编制是针对具体的IT产品(如Windows 7/8/10、Android 5.0/6.0/7.0/7.1)而言的,它包括该IT产品的安全目的和为满足安全目的而提供的特定安全功能要求和安全保障措施。ST的技术要求和安全保障措施可以直接引用该IT产品所属产品类的某个PP,也可以采用与PP定义相同的方法直接引用CC第2部分和第3部分中的安全功能或安全保障组件。因此,ST与PP的关系如图2.2所示。

图2.2 ST与PP间的关系

由于ST是对特定IT产品而编制的,通过安全评估可以证明该IT产品所要实现的安全功能,包括采取的保障措施,对满足指定安全要求和安全目的而言是有用和有效的。ST是开发者、评估者、用户在IT产品安全性和评估范围之间达成一致的基础。ST相当于为满足PP的具体TOE安全功能的实现方案。由于ST与具体IT产品实现技术与机制有关,可以满足一个或多个PP提出的要求,如某一防火墙的ST可能同时满足包过滤防火墙PP和应用级防火墙PP的要求,某一数据库管理系统的ST可能同时满足访问控制PP和数据库PP。

3.评估对象(TOE)

评估对象(即TOE)是使用CC标准时必须理解的最重要的概念之一。TOE就是一个将被评估的IT产品,包括构成IT产品的软件、硬件或固件及其指导性文件。在CC中,TOE仅表示商用现货产品(Commercia-Off-The-Shelf,COTS)或政府现货产品(Government Off-The-Shelf,GOTS)等IT产品,如CC官方网站中给出的诸如操作系统、数据库管理系统、Web服务器、智能卡等IT产品。事实上,CC中的术语“IT产品”涵盖的范围非常广,它是指一系列在一个多样化系统中提供各种功能的IT硬件、软件和固件或其集成品。一个IT产品可以是一个独立的产品,也可以是组合多个IT产品而形成的一个IT系统或网络。

在PP中,TOE是一类与实现无关的IT产品,而在ST中,TOE是指一个IT产品的具体物理实现。换句话说一个待评估的IT产品可通过一个相应的ST用特定的条款,或通过一个PP用较一般条款来描述其安全功能和安全保障要求。在PP/ST中,一个TOE描述除了TOE概述外,还要通过安全问题定义、安全目的、安全要求和概要规范这样的特殊结构概述TOE安全需求及其它们之间相互依赖关系的原理性说明(如图2.3所示)。

图2.3 PP/ST中的评估对象内容结构

ST中典型的TOE分为个体、部件和组合3个类型。一个个体TOE是自身包含的,它没有更高层或底层的划分。一个TOE部件是一个IT产品中的最低层次的TOE,它一般是一个组合TOE的组成部件。相对地,一个组合TOE是一个IT产品中的最高层次的TOE,它由多个TOE部件组成。CEM提供了4种评估类型:PP评估、ST评估、TOE评估(IT产品评估)和组合TOE评估。

4.包(Package)

包是为了满足一个特定安全目的的安全组件的集合。在CC中,组件描述了IT产品一组特定的安全要求,是可供PP、ST或其他包选取的最小安全要求集合。用户可从两个维度定义安全组件的集合:功能包和保障包。CC第3部分的评估保障级(EAL)就是一些预定义的安全保障包。因此,CC中包是安全功能或安全保障要求的集合,即它们是一些基础性的安全要求或IT产品总体安全要求的子集。包是一个可重用的包括安全功能组件、安全保障组件或两类组件的集合。

5.类(Class)

用户共同关注的一组共享安全要求,即在类中的所有成员关注共同的安全焦点且具有共同的安全目的。在CC第2部分共列出了11个安全功能类;第3部分列出了PP/ST评估的2个保障类、5个TOE评估保障类和一个组合TOE保障类。

6.族(Family)

类的成员是族。族是用来陈述一组共享安全目的,但是安全关注点或安全精确度上不一样的一组安全组件。

7.组件(Component)

组件是体现安全要求的最小可选元素集合,组件中的元素是一个不可分割的安全要求,它可通过CEM中的一个或多个安全评估工作单元被验证。

图2.4给出了CC中PP、ST和包与CC第2部分和第3部分的类、族和组件之间的组成示意图。PP、ST或包对CC组件的选取可以直接利用CC第2部分和第3部分中所定义的标准化组件,也可以通过CC第1部分定义的安全组件元素允许操作对相关组件的元素进行选择、赋值、细化、反复等操作来满足特定的安全策略或对抗特定的威胁或组织安全策略。

图2.4 CC的类、族、组件层次关系

PP表示的是一套面向用户采购需求、与产品实现无关的一类IT产品的安全功能和安全保障要求描述。因为这些需求是面向某类产品,且独立于IT产品的具体实现方式,因此,可能有不止一个与实现相关的ST被编制出来以满足同一个PP。换句话说,PP用于描述用户想要的东西,ST是IT产品厂商声称能提供的东西。PP和ST之间是一对多的关系。这样用户在选择某类IT产品时必须决定哪一个ST最符合他们的需求,以便选择相应的TOE(IT产品本身)。由某个用户编制的PP可能被其他用户重用,表明这些ST具有部分相同的安全要求。一个PP可能被用于个体的或组合的TOE。ST和TOE之间存在一对一的关系,因为ST中的一个TOE对应于一个具体IT产品的物理实现(如图2.5所示)。

图2.5 PP、ST和TOE之间的关系

用户编制的PP/ST安全功能和安全保障组件可以严格遵守CC第2和第3两部分的组件定义,也可以通过使用CC第1部分定义的4种操作对标准组件元素进行裁剪。在裁剪组件元素时,CC第1部分讨论了PP/ST作者允许的组件操作要求:赋值和选择两种操作只允许用于组件中明确指定的位置;反复和细化两种操作可用于所有安全组件。CC允许的在编制PP/ST时对安全组件元素可采用的4种操作如下。

(1)反复:允许一个组件在不同操作下被使用多次,即用不同的方法完成该组件的赋值和选择,或用不同的方法对该组件进行细化。

(2)赋值:当一个给定组件包含了一个可以由PP/ST作者设置参数的元素时,就需要进行赋值操作。参数可以是一个非限制变量,或者是限定变量值在指定范围的一个规则。

(3)选择:当给定的组件包含了必须由PP/ST作者从几项中选择一个元素时,发生选择操作,即允许从一个列表中选定一项或多项。

(4)细化:细化操作可以在每一个要求上执行。PP/ST作者通过修改要求执行细化操作。细化操作的第一条规则是在PP/ST中,满足细化要求的TOE也要满足细化之前的要求(即,一个细化的要求必须比原始要求更加严格)。