2.4 基本评估方法
为保证评估结果的客观性和可重复性,基于CC/CEM的IT产品安全评估必须满足以下3个基本条件。
(1)评估准则:CC定义了一套标准的安全功能和安全保障组件,以便IT产品消费者和开发者分别表达安全要求(PP)和相应的安全方案(ST)时能使用相同的信息技术安全术语和文档结构。
(2)评估方法:与CC配套的CEM给出了用于IT安全评估的原则、程序和过程组成的安全评估体系,以使TOE开发者和评估者能够以一种评估结果可重现的方式准备安全评估的证据,并按照其建议的评估活动对IT产品进行安全评估。
(3)国家评估体制:参与CCRA的各国评估管理机构制定了一套规则定义IT安全评估环境,包括IT安全评估认证所需的规范和方法。
IT产品消费者和开发者依照CC第1部分附录B和附录A分别去编制评估对象的保护轮廓和安全目标,这样TOE评估者依据ISO/IEC 18045的要求去准备IT产品测试、评估和认证相关证据与文档材料,CC测试实验室依照ISO/IEC 18045评估活动及其工作单元对IT产品进行测试和分析,并将评估技术报告依照国家评估体制规定的认证体系提交给相关的监管机构进行认证。CEM中并没有给出评估证据与文档材料的方法、技术和规范,也未指出在安全评估过程中使用的具体测试方法、技术和规范,因此,需要TOE开发者和评估者按照国家评估体制,结合软件工程方法、安全功能测试要求和安全保障评估活动要求为评估准备相应的评估证据、搭建IT产品安全评估所需的测试环境,并在遵循CEM相关的原则与规范指导下完成TOE的安全评估证据准备和安全测试和认证工作。最后TOE评估结果就可按照国家评估体制建立的认证制度进行认证。
2.4.1 开发者评估准备
CEM给出了IT产品安全评估所需的TOE安全保障所需材料:开发证据、生命周期证据、测试证据、脆弱性评定证据和指导文档证据。在TOE安全评估实施前,TOE开发者除了按照GB/Z 20283 《信息安全技术 保护轮廓和安全目标产生指南》编制ST外,还应该按照CEM及相关的国家评估体制,ST中的安全功能组件和保障组件要求等,TOE开发者为TOE评估者准备TOE安全评估所需的相关评估证据材料。
按照CEM的安全保障组件评估活动,TOE开发者为评估者提供下列评估材料。
(1)操作指南。
(2)准备程序。
(3)配置管理能力。
(4)配置管理范围。
(5)产品交付。
(6)开发安全。
(7)缺陷纠正。
(8)生命周期定义。
(9)工具与技术。
(10)测试覆盖度。
(11)测试深度。
(12)功能测试等。
TOE开发者决定请CC测试实验室对一个IT产品做安全评估之前,首先需要基于该TOE用户的安全问题形成安全要求描述,然后针对这些安全要求,确定评估范围和TOE的安全功能,形成用于CC测试实验室对TOE样品进行安全评估依据的ST。换句话说TOE开发者首先应该按照CC编制针对安全要求(在PP中描述)的安全方案(在ST中描述)。在此基础上,为保证安全评估的有效实施,TOE开发者应按照CEM提交TOE的研发过程(即生命周期)、产品开发(产品设计与实现)、产品测试以及产品交付等方面评估所需的证据材料,以便TOE评估者审核TOE开发者的安全保障措施是否符合了CC相应的保障级别要求。
当然在评估证据编制过程中,TOE开发者使用软件工程相关的开发技术在准备评估证据过程中需要具备一些评估证据开发技巧。工业界(例如ICCC会议)和学术界已经在安全评估证据开发方面总结了评估证据编制过程中的各种技巧,TOE开发者应该按照相关的国家评估体制,结合软件工程方法、安全功能符合性测试要求和CC保障组件要求,编制相应的TOE安全评估的各种证据材料。
为此TOE开发者应该熟悉CC/CEM及评估证据的准备程序。基于CC/CEM的安全评估过程就像一种旅行,它需要准备行动指南推动你朝向目的地前行。这样TOE开发者就能知道在CC评估过程中处于什么阶段、下一步应该准备那些评估证据,以及怎么保证TOE最终通过CC测试实验室的安全评估,获得相应的认证证书。换句话说每一个评估证据开发团队都应该知道完成一个基于CC标准的TOE评估需要哪些步骤以及在每个步骤相关评估活动中的责任和义务。
2.4.2 评估者测评
CEM为IT产品的安全评估提供了一个标准化的规程及其相关活动和工作单元,据此,一个IT产品就可由独立被授权的、可信的CC测试实验室按照CEM规定的原则来验证其是否满足安全要求。评估的结果可帮助IT产品购买者确定该TOE对他们所预期的应用来讲是否足够安全,以及在使用中所存在的安全风险是否是可以忍受的。
CC测试实验室依据IT产品评估发起人提供的ST和各种评估证据对TOE样品进行独立性测试和穿透性(渗透性)测试。独立性测试需要CC测试实验室按照ST的安全功能组件要求编制独立于TOE开发者提供的TOE安全功能(TSF)测试用例,并对被测TOE在仿真环境(实验室环境)中进行功能验证测试,通过对TOE开发者提供的安全功能评估证据的抽样测试,完成对TOE的安全功能验证测试。穿透性测试则关注TOE在设计或实现上的潜在缺陷或弱点,这些缺陷或弱点可能破坏TOE正确实施安全功能的安全行为。也就是说,穿透性测试一般由具备专业知识和相关经验的评估者,采用专业化工具才能进行。
CEM推荐采用穿透性测试方法对IT产品的安全性进行分析和测试,即安全评估人员在ST规定的测试范围(例如对外接口、不同组件和IT系统交互等方面)利用各种手段对TOE的安全架构设计、安全实现机制等,通过模拟恶意黑客的攻击方法进行安全攻击测试,以期发现和挖掘TOE中潜在的脆弱性或漏洞,然后输出安全评估技术报告,并提交给TOE所有者或安全认证机构进行确认,以便IT产品开发者纠正TOE相应的错误。
采用独立性测试技术和穿透性测试技术,评估者可按照CEM要求完成TOE的安全测试和分析,最终编制出TOE的测试技术报告。独立性测试目标是确认ST中的TSF实现是完整的和正确的,穿透性测试目标是确认ST中的TSF设计和实现是安全的。因此,CC测试实验室的TOE安全评估分为以下两方面测试。
(1)TOE安全功能的符合性测试:TOE安全功能实现的完整性和正确性测试一般通过安全性分析与独立性测试技术来实现,即依据TOE开发者提供一系列评估证据(如分析、设计与测试文档),由评估者一方按照ST中的安全功能要求对IT产品开发者提供的TOE证据材料进行分析,并按照评估保障级别的不同对TOE的安全功能进行抽样测试,或自主设计相应的测试用例进行测试,在仿真环境下独立地完成安全功能测试和分析,并依据测试结果数据对TOE安全功能进行符合性判断。
(2)TOE脆弱性分析和穿透性测试:安全保障要求评估者发现TOE在设计与实现中的缺陷或脆弱性,以便IT产品开发者纠正TOE相应的错误,从而减少在以后TOE操作中安全失效发生的可能性。针对ST中的安全保障要求,CEM分别列出了适用于EAL 1~EAL 5安全保障组件的评估活动及其工作单元,并通过脆弱性评定保障组件来要求评估者采用穿透性(渗透性)测试方法(注:在CC v3.1之前,只对保障级别EAL 2以上的TOE安全保障要求采用此方法)来评估TOE的安全性,即在模拟真实应用环境下,测试TOE是否能抵御各种不同等级的安全攻击,以确定该TOE是否存在潜在的安全脆弱性或安全漏洞。
一旦CC测试实验室认为参与评估的IT产品与TOE开发者所提供的ST安全要求声明一致,CC测试实验室将生成包括观察报告(OR)、评估技术报告(ETR)等评估结果,CC测试实验室主导的TOE评估过程就此完成。在此基础上,观察报告、评估技术报告等评估结果将被提交到国家评估体制中的认证机构进行审查,认证机构需要对CC测试实验室提交的IT产品评估结果是否符合相关安全技术要求开展各种合格评定活动。
不同国家评估机构建立了IT产品的安全认证规章制度和框架,以达到安全评估结果相互认可的目标。为使不同CC测试实验室的IT产品安全评估结果具有更好的可比性,CC测试实验室必须按照CEM对TOE进行测试和分析,以确保评估结果的可重复性和客观性。但是仅靠CEM本身是不充分的。IT产品的许多评估活动需要使用专业的背景知识进行判断,而这些更难达到一致。为了增强IT产品安全评估结论的一致性,CC测试实验室最终的评估结果可能提交给各个国家的认证机构来处理。认证机构对评估结果进行独立审查,并产生最终的认证证书,这可以保证评估结果的一致性。