导图社区 信息安全技术软件成分分析系统安全技术要求与测试评价方法
软件成分分析系统是旨在对软件源代码及制品进行成分和风险分析的工具。该系统基于知识库,提供软件物料清单、软件成分风险分析、许可合规检测、漏洞告警等功能,以降低由软件成分带来的安全、合规风险。软件成分分析系统可在编码、编译/构建、交付等场景下,对目标软件的源代码以及制品进行成分识别和风险分析,并提供安全处置建议。
编辑于2024-07-23 15:06:23这是一个关于供应链安全基本调研(需方)的思维导图。供应链安全对于需方企业至关重要,它直接关系到企业的正常运营、产品质量以及市场竞争力。
软件供应链安全检测是确保软件在整个生命周期内的安全性、稳定性和可靠性的重要环节。以下是对软件供应链安全检测的详细解答:一、软件供应链安全检测的重要性防范安全风险:通过安全检测,可以及时发现并修复软件中的安全漏洞,从而有效防范潜在的安全风险。提高软件质量:安全检测能够确保软件的质量和稳定性,提升用户体验和满意度。 符合法规要求:许多行业对软件的安全性有严格的法规要求,进行安全检测有助于确保软件符合相关法规标准。二、软件供应链安全检测的主要内容源码检测:对软件的源代码进行审查,以发现潜在的安全漏洞和不合规的代码实践。组件检测:检测软件中所使用的第三方组件的安全性,确保这些组件没有已知的安全漏洞。应用功能检测:对软件的功能进行全面测试,以确保其功能正常且没有安全隐患。渗透测试:通过模拟黑客攻击的方式,测试软件的防御能力,以发现潜在的安全漏洞。环境检测:检测软件运行环境的安全性,包括操作系统、数据库、网络等,以确保软件在安全的环境中运行。
容器镜像安全检测工具是深度融合云原生特性,将安全能力左移到构建阶段,利用数据驱动安全的创新技术路线,主动持续开展风险分析,并通过独有的近源端控制实现安全防护,构建高效的云原生安全防护体系。
社区模板帮助中心,点此进入>>
这是一个关于供应链安全基本调研(需方)的思维导图。供应链安全对于需方企业至关重要,它直接关系到企业的正常运营、产品质量以及市场竞争力。
软件供应链安全检测是确保软件在整个生命周期内的安全性、稳定性和可靠性的重要环节。以下是对软件供应链安全检测的详细解答:一、软件供应链安全检测的重要性防范安全风险:通过安全检测,可以及时发现并修复软件中的安全漏洞,从而有效防范潜在的安全风险。提高软件质量:安全检测能够确保软件的质量和稳定性,提升用户体验和满意度。 符合法规要求:许多行业对软件的安全性有严格的法规要求,进行安全检测有助于确保软件符合相关法规标准。二、软件供应链安全检测的主要内容源码检测:对软件的源代码进行审查,以发现潜在的安全漏洞和不合规的代码实践。组件检测:检测软件中所使用的第三方组件的安全性,确保这些组件没有已知的安全漏洞。应用功能检测:对软件的功能进行全面测试,以确保其功能正常且没有安全隐患。渗透测试:通过模拟黑客攻击的方式,测试软件的防御能力,以发现潜在的安全漏洞。环境检测:检测软件运行环境的安全性,包括操作系统、数据库、网络等,以确保软件在安全的环境中运行。
容器镜像安全检测工具是深度融合云原生特性,将安全能力左移到构建阶段,利用数据驱动安全的创新技术路线,主动持续开展风险分析,并通过独有的近源端控制实现安全防护,构建高效的云原生安全防护体系。
信息安全技术 软件成分分析系统安全技术要求与测试评价方法
前言
引言
1 范围
本文件规定了软件成分分析系统的安全技术要求和测试评价方法。
本文件适用于软件成分分析系统的设计、开发和测试。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 25069 信息安全技术 术语
GB/T 20220164-T-469 信息安全技术 软件供应链安全要求
3 术语和定义
软件物料清单 software bill of materials
软件采用的所有组件、许可协议、组件依赖关系和层次关系的清单,通常包含组件对应的供应商名称、组件名称、组件版本、唯一标识符、组件依赖关系、软件物料清单作者和生成时间。
[来源:GB/T 20220164-T-469,3.7,有修改]
软件成分 software composition
软件中包含的组件和代码。
漏洞可达性 vulnerability reachability
漏洞在目标软件中被触发的可能性。
投毒 poisoning
软件成分中被加入非预期逻辑,如执行恶意代码、输出额外数据、创建与预期功能无关文件等。
互惠性 reciprocity
当使用了受该类许可证保护的开源代码,使用者必须将衍生代码以同样的方式开放给用户使用。
4 缩略语
SBOM 软件物料清单 (software bill of materials)
IDE 集成开发环境(Integrated Development Environment)
CI 持续集成(Continuous Integration)
CD 持续部署(Continuous Deployment)
5 产品概述
软件成分分析系统是旨在对软件源代码及制品进行成分和风险分析的工具。该系统基于知识库,提供软件物料清单、软件成分风险分析、许可合规检测、漏洞告警等功能,以降低由软件成分带来的安全、合规风险。软件成分分析系统可在编码、编译/构建、交付等场景下,对目标软件的源代码以及制品进行成分识别和风险分析,并提供安全处置建议。
该类产品的部署方式如下图1:
6 安全技术要求
6.1 安全功能要求
6.1.1 软件物料清单管理
6.1.1.1 识别
6.1.1.1.1 成分识别
产品应能对目标软件进行成分识别,包括:
a)应支持多种开发语言,开发语言包括C/C++、Java、Python等;
b)应支持从目标软件的源码中识别软件成分,识别类型包括文件及目录、代码片段等;
c)应支持从目标软件使用的包管理器中识别软件成分,包管理器类型包括Conan、Maven、PIP等;
d)应支持从目标软件的编译过程中识别软件成分,编译过程使用的编译器类型包括GCC/G++、Clang/Clang++等;
e)应支持从目标软件的制品中识别软件成分,制品类型包括开发语言(C/C++、Java、Python等)二进制文件、固件、文件系统/磁盘映像、软件安装包、容器镜像等。
6.1.1.1.2 识别分析
产品应能够对识别结果进行分析,包括:
a)应支持分析目标软件包含的代码基本信息,代码基本信息包括目标软件中代码段的文件路径和代码行、开源代码段的文件路径和代码行、开源代码占比等;
b)应支持分析目标软件引入的开源组件基本信息,开源组件基本信息包括组件名称、版本、来源、引用方式、引用路径、匹配率、开发语言等;
c)应支持分析目标软件引入的开源许可证信息,开源许可证信息包括许可证名称、版本、条款、多许可情况等;
d)应支持分析目标软件中引入组件的依赖关系,并形成依赖关系图;
e)应支持分析当前开源组件的最新版本、最佳推荐版本和许可变更情况。
6.1.1.1.3 识别可靠性
产品应支持对100G以上的目标软件进行识别分析。
6.1.1.3 导入
产品应支持SBOM标准文件的导入,导入后应形成软件成分清单,导入格式宜支持SPDX、CycloneDX、SWID等。
6.1.1.2 生成
产品应支持使用SBOM标准规范生成软件成分分析结果,生成格式宜支持SPDX、CycloneDX、SWID等。
6.1.2 软件成分风险分析
6.1.2.1 漏洞风险分析
产品应能够对目标软件的漏洞风险进行分析,包括:
a)应支持分析目标软件中包含的漏洞风险,分析结果包含漏洞编号、漏洞标题、漏洞描述、漏洞发布时间、漏洞类型、风险等级、影响范围等;
b)应支持对已检出漏洞的漏洞可达性进行分析。
6.1.2.2 投毒风险分析
产品应能够对目标软件的投毒风险进行分析,包括:
a)应支持分析目标软件中组件存在的被投毒风险,分析结果包括投毒类型、投毒组件、投毒版本等;
b)应支持分析目标软件成分代码中存在的被投毒风险。
6.1.2.3 开源许可合规风险分析
产品应能够对目标软件的开源许可合规风险进行分析,包括:
a)应支持分析目标软件自身声明的许可证与开源软件成分许可证之间、开源软件成分之间的许可证不兼容风险,分析结果包括不兼容的开源组件名称和版本等;
b)应支持基于开源代码的引用方式,分析目标软件不满足开源软件成分许可证互惠性约束的风险;
c)应支持分析目标软件中删除或篡改依赖开源软件成分许可证信息的风险。
6.1.2.4 供应连续性风险分析
产品应支持分析目标软件成分中存在的供应连续性风险,包括所依赖软件停止维护、使用许可变更、版权变更等导致的供应中断。
6.1.3 分析结果处理
6.1.3.1 结果查看与统计分析
6.1.3.1.1 结果查看
产品应提供风险分析结果浏览和检索功能。
6.1.3.1.2 统计分析
产品应提供数据统计分析功能,包括风险组件数量统计、漏洞数量统计、许可证风险数量统计、风险组件等级分布、组件许可证风险分布等,对分析结果进行图形化展示。
6.1.3.1.3 结果审计
产品应能够对分析结果进行审计,包括:
a)应支持对漏洞进行审计操作,对误报、已修复、无风险漏洞进行标记。
b)应支持对组件识别信息的校正。
6.1.3.1.4 处置建议
产品应能够对分析结果给出处置建议,包括:
a)应支持对风险分析结果给出处置建议,包括以下内容:
1)组件版本更新建议,包括但不限于最新版本、推荐版本、无漏洞版本;
2)漏洞修复和缓解方案;
b)应提供自动化的解决方案,能够一键升级组件。
6.1.3.2 报告生成与导出
6.1.3.2.1 报告生成
产品应支持根据分析结果生成相应的报告,报告要求展示各项风险检测的汇总结果,生成各类风险的摘要信息,包括风险描述、风险严重程度分级、处置建议等。
6.1.3.2.2 报告管理
产品应支持报告管理,包括报告导出内容自定义和报告删除。
6.1.3.2.3 报告导出
产品应支持通用格式报告导出,包括但不限于PDF、DOC、HTML、EXCEL等。
6.1.4 策略及配置管理
6.1.4.1 集成配置
产品应能够进行集成配置,包括:
a)应支持与主流 IDE 开发工具进行集成,包括但不限于:Jetbrains IDEs、Visual Studio Code、Eclipse 等。
b)应支持与主流的代码仓库集成,包括但不限于:Git、SVN 等。
c)应支持与主流 CI/CD 工具集成,如 Jenkins 等。
d)应支持与主流的缺陷管理系统集成,包括但不限于:Atlassian Jira、禅道等。
e)应支持与主流的私服仓库集成,包括但不限于:SonarType Nexus、JFrog Artifactory、Harbor 等。
6.1.4.2 分析策略管理
产品应支持对分析策略进行管理,包括:
a)应支持检测策略配置,当检出结果不符合配置时通知用户。可配置内容包括但不限于:
1)支持配置允许和禁止使用的组件名称、版本范围;
2)支持配置漏洞数量、等级阈值;
3)支持配置允许和禁止的许可证类型。
b)应支持对分析任务的分析目录深度、编程语言、文件类型等维度配置。
6.1.4.3 知识库管理
产品具有知识库并能够进行管理,包括:
a)应包括组件库、漏洞库、许可证库、代码片段特征库等知识库。
b)应具备知识库在线订阅更新和离线更新能力。
c)应支持对知识库中内容的检索和浏览。
6.2 自身安全要求
6.2.1 身份鉴别
6.2.1.1 管理员鉴别
产品应在管理员执行任何与安全功能相关的操作之前对管理员身份进行鉴别。
6.2.1.2 鉴别信息要求
产品应提供以下鉴别功能:
a)在采用基于口令的鉴别信息时,产品应对管理员设置的口令进行复杂度检查,确保管理员口令满足规定的复杂度要求;
b)当存在默认口令时,系统应提示管理员对默认口令进行修改,以减少用户身份被冒用的风险;
c)产品应提供鉴别信息定期更换功能,当鉴别信息使用时间达到使用期限阈值前,应提示管理员进行修改。
6.2.1.3 鉴别失败处理
当管理员鉴别尝试失败连续达到指定次数后,产品应阻止管理员进一步的鉴别请求,并将有关信息生成审计事件。最多失败次数仅由授权管理员设定。
6.2.1.4 鉴别数据保护
产品应保护鉴别数据不被未授权查阅和修改。
6.2.1.5 超时设置
产品应具有管理员登录超时重新鉴别功能,在设定的时间段内没有任何操作的情况下,锁定或终止会话,需要再次进行身份鉴别才能够重新使用产品,最大超时时间仅由授权管理员设定。
6.2.1.6 管理地址限制
产品应对管理员登录的地址进行限制。
6.2.1.7 会话锁定
产品应允许管理员锁定当前的交互会话,锁定后需要再次进行身份鉴别才能够重新管理产品。
6.2.2 管理员管理
6.2.2.1 标识唯一性
产品应保证所设置的管理员标识全局唯一。
6.2.2.2 管理员属性定义
产品应为每一个管理员保存安全属性表,属性应包括:管理员标识、鉴别数据、授权信息或管理组信息、其他安全属性等。
6.2.2.3 安全行为管理
产品应仅允许授权管理员对产品进行功能设置、参数修改、安全策略变更,以及启用/停用等操作。
6.2.2.4 管理员角色
产品应能设置多个不同权限的角色,并应保证每一个角色标识是全局唯一的。
6.2.3 安全审计
6.2.3.1 审计日志生成
产品应生成以下事件的审计日志:
a)管理员的登录成功和失败;
b)对扫描策略进行设置、修改、启用/停用等操作;
c)对管理员或者角色进行增加、删除和属性修改的操作。
产品应在每一个审计日志记录中记录事件发生的日期、时间、用户标识、事件描述和结果。若采用远程登录方式还应记录管理主机的IP地址。
6.2.3.2 审计日志查阅
产品应为授权管理员提供审计日志查阅功能,方便管理员查看审计结果。
6.2.3.3 受限的审计日志查阅
除了具有明确的访问权限的授权管理员之外,产品应禁止所有其他用户对审计日志的访问。
6.2.3.4 可选审计查阅
产品应支持按照一定条件对审计日志进行检索或排序。
6.2.4 数据安全
6.2.4.1 安全管理
产品应能够对分析数据进行安全管理,包括:
1) 应在分析完成后删除缓存的目标软件数据;
2) 应采取措施保障存储数据的安全性。
6.2.4.2 数据存储告警
产品应在数据存储空间将耗尽等情况时,自动产生告警,产生告警的剩余存储空间大小应由管理员自主设定。
6.2.5 通信安全
若产品组件间通过网络进行通信,应采取措施保障传输数据的安全性。
6.2.6 支撑系统安全
产品的支撑系统应:
a) 进行必要的裁剪,不提供多余的组件或网络服务;
b) 重启过程中,分析任务配置和日志信息不丢失;
c) 不含已知中、高、超危安全漏洞。
6.3 环境适应性要求
6.3.1 支持多种部署架构
产品应支持多种部署架构,包括:
a)产品应支持 C/S 架构使用,支持通过客户端发起检测任务、生成检测报告。
b)产品应支持 B/S 架构使用,支持通过主流浏览器访问,实现对产品的操作和管理。
6.4 安全保障要求
6.4.1 开发
6.4.1.1 安全架构
开发者应提供产品安全功能和自身安全保护的安全架构描述,安全架构描述应满足以下要求:
a)与产品设计文档中对安全功能实施抽象描述的级别一致;
b)描述与安全功能要求一致的产品安全功能的安全域;
c)描述产品安全功能初始化过程为何是安全的;
d)证实产品安全功能能够防止被破坏;
e)证实产品安全功能能够防止安全特性被旁路。
6.4.1.2 功能规范
开发者应提供完备的功能规范说明,功能规范说明应满足以下要求:
a)完全描述产品的安全功能;
b)描述所有安全功能接口的目的与使用方法;
c)标识和描述每个安全功能接口相关的所有参数;
d)描述安全功能接口相关的安全功能实施行为;
e)描述由安全功能实施行为处理而引起的直接错误消息;
f)证实安全功能要求到安全功能接口的追溯。
6.4.1.3 产品设计
开发者应提供产品设计文档,产品设计文档应满足以下要求:
a)根据子系统描述产品结构;
b)标识和描述产品安全功能的所有子系统;
c)描述安全功能所有子系统间的相互作用;
d)提供的映射关系能够证实设计中描述的所有行为能够映射到调用它的安全功能接口。
6.4.2 指导性文档
6.4.2.1 操作用户指南
开发者应提供明确和合理的操作用户指南,操作用户指南与为评估而提供的其他所有文档保持一致,对每一种用户角色的描述应满足以下要求:
a)描述在安全处理环境中被控制的用户可访问的功能和特权,包含适当的警示信息;
b)描述如何以安全的方式使用产品提供的可用接口;
c)描述可用功能和接口,尤其是受用户控制的所有安全参数,适当时指明安全值;
d)明确说明与需要执行的用户可访问功能有关的每一种安全相关事件,包括改变安全功能所控制实体的安全特性;
e)标识产品运行的所有可能状态(包括操作导致的失败或者操作性错误),以及它们与维持安全运行之间的因果关系和联系;
f)充分实现安全目的所必须执行的安全策略。
6.4.2.2 准备程序
开发者应提供产品及其准备程序,准备程序描述应满足以下要求:
a)描述与开发者交付程序相一致的安全接收所交付产品必需的所有步骤;
b)描述安全安装产品及其运行环境必需的所有步骤。
6.4.3 生命周期支持
6.4.3.1 配置管理能力
开发者的配置管理能力应满足以下要求:
a)为产品的不同版本提供唯一的标识;
b)使用配置管理系统对组成产品的所有配置项进行维护,并唯一标识配置项;
c)提供配置管理文档,配置管理文档描述用于唯一标识配置项的方法。
6.4.3.2 配置管理范围
开发者应提供产品配置项列表,并说明配置项的开发者。配置项列表至少包含产品、安全保障要求的评估证据和产品的组成部分。
6.4.3.3 交付程序
开发者应使用一定的交付程序交付产品,并将交付过程文档化。在给用户方交付产品的各版本时,交付文档应描述为维护安全所必需的所有程序。
6.4.5 测试
6.4.5.1 覆盖
开发者应提供测试覆盖文档,测试覆盖描述应表明测试文档中所标识的测试与功能规范中所描述的产品的安全功能间的对应性。
6.4.5.2 功能测试
开发者应测试产品安全功能,将结果文档化并提供测试文档。测试文档应包括以下内容:
a)测试计划,标识要执行的测试,并描述执行每个测试的方案,这些方案包括对于其它测试结果的任何顺序依赖性;
b)预期的测试结果,表明测试成功后的预期输出;
c)实际测试结果和预期的测试结果一致。
6.4.5.3 独立测试
开发者应提供一组与其自测安全功能时使用的同等资源,以用于安全功能的抽样测试。
6.4.6 脆弱性评定
基于已标识的潜在脆弱性,产品能够抵抗具有基本攻击潜力攻击者的攻击。
7 测试评价方法
7.1 测试环境
软件成分析系统功能测试评价的典型网络拓扑结构如图 1 所示:
测试设备包括所需的交换机/路由器、代码仓库、问题跟踪平台、私服仓库、CI/CD 平台,以及软件成分分析系统的管理客户端和服务端。其中,产品管理客户端应安装有主流浏览器、IDE插件、以及客户端分析工具;产品服务端应准备不同CPU架构、操作系统的多套环境;代码仓库、私服仓库应准备好待测源代码、制品等。
7.2 安全功能要求
7.2.1 软件物料清单管理
7.2.1.1 识别
7.2.1.1.1 成分识别
成分识别的测试评价方法如下所示。
a)测试方法:
1)按照6.1.1.1.1中要求准备软件样本;
2)根据产品说明书设置分析策略,使用产品对目标软件进行成分识别;
3)检查是否支持从目标软件的开发语言中识别软件成分
4)检查是否支持从目标软件的源码中识别软件成分;
5)检查是否支持从包管理器中识别目标软件的软件成分;
6)检查是否支持基于编译过程识别目标软件的软件成分;
7)检查是否支持从目标软件的制品中识别软件成分。
b)预期结果:
1)应支持从C/C++、Java、Python等开发语言中识别源码成分;
2)应支持以文件及目录、代码片段等类型识别目标软件的软件成分;
3)应支持从Conan、Maven、PIP等开发语言的包管理器中识别被测件的依赖组件;
4)应支持基于GCC/G++、Clang/Clang++等开发语言编译器识别被测件的依赖组件;
5)应支持识别开发语言(C/C++、Java、Python等)二进制文件、固件、文件系统/磁盘映像、软件安装包、容器镜像等目标软件的软件成分;
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.2.1.1.2 识别分析
识别分析的测试评价方法如下所示。
a)测试方法:
1)根据产品说明书,检查是否支持从目标软件包含的代码中分析出代码成分的基本信息;
2)检查是否支持从开源组件中分析出基本信息;
3)检查是否支持从开源组件的许可证中分析出基本信息;
4)检查是否支持分析被测件的开源组件依赖关系;
5)检查是否支持从开源组件中分析当前开源组件的最新版本、最佳推荐版本和许可变更情况。
b)预期结果:
1)应能够分析出目标软件中代码段的文件路径和代码行、开源代码段的文件路径和代码行、开源代码占比等代码基本信息;
2)应能够分析出组件名称、版本、来源、引用方式、引用路径、匹配率、开发语言等开源组件的基本信息;
3)应能够分析出许可证名称、版本、条款、多许可情况等许可证信息;
4)应支持从被测件中分析出开源组件的依赖关系,并基于依赖关系形成依赖关系图;
5)应支持分析出当前开源组件的最新版本、最佳推荐版本和许可变更情况;
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.2.1.1.3 识别可靠性
识别可靠性的测试评价方法如下所示。
a)测试方法:
根据产品说明书设置扫描策略,检查是否支持从100G以上的目标软件中识别和分析软件成分;
b)预期结果:
应支持从大于100G的目标软件中进行识别,并形成分析结果;
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.2.1.2 生成
生成的测试方法如下所示。
a)测试方法:
根据产品说明书,检查是否支持从系统中将软件成分分析结果导出成SBOM标准文件;
b)预期结果:
应能够将软件成分分析结果导出成SPDX、CycloneDX、SWID格式的SBOM标准文件;
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.2.1.3 导入
导入的测试评价方法如下所示。
a)测试方法:
根据产品说明书,检查是否支持导入SBOM标准文件,并形成软件成分清单;
b)预期结果:
应能够正常识别出导入的SPDX、CycloneDX、SWID格式的SBOM标准文件,并形成软件成分清单;
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.2.2 软件成分风险分析
7.2.2.1 漏洞风险分析
漏洞风险分析的测试评价方法如下所示。
a)测试方法:
1)使用软件物料清单中包含已知漏洞的软件作为分析对象;
2)根据产品说明书设置分析策略,使用产品对目标软件进行成分风险分析;
3)检查分析结果中是否包括目标软件物料清单中组件对应版本的已知漏洞及漏洞可达性信息。
b) 预期结果:
1)目标软件物料清单中组件对应版本的已知漏洞,分析结果包含漏洞编号、漏洞标题、漏洞描述、漏洞发布时间、漏洞类型、风险等级、影响范围;
2)已检出漏洞的可达性信息。
b)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.2.2 投毒风险分析
投毒风险分析的测试评价方法如下所示。
a)测试方法:
1)使用窃取敏感信息通过网络外发的投毒样本,软件物料清单中包含已知被投毒组件、软件成分代码中包含已知投毒风险的软件作为分析对象;
2)根据产品说明书设置分析策略,使用产品对目标软件进行成分风险分析;
3)检查分析结果中是否包括目标软件物料清单中的已知被投毒组件及目标软件成分代码中包含的已知投毒风险信息。
b) 预期结果:
1)目标软件物料清单中的已知被投毒组件,分析结果包括投毒类型、投毒组件、投毒版本;
2)目标软件成分代码中包含的已知投毒风险信息。
b)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.2.3 开源许可合规风险分析
开源许可合规风险分析的测试评价方法如下所示。
a)测试方法:
1)使用包含自身开源许可证声明及开源组件许可证不兼容、开源组件使用强互惠性约束许可证、未保留依赖开源软件成分许可证信息的软件作为分析对象;
2)根据产品说明书设置分析策略,使用产品对目标软件进行成分风险分析;
3)检查分析结果中是否包括目标软件自身声明的开源许可证与开源软件成分许可证不兼容、不兼容的开源组件名称和版本、开源组件使用强互惠性、目标软件中未保留依赖开源软件成分许可证的信息。
b)预期结果:
1)目标软件自身声明的开源许可证与开源软件成分许可证不兼容,分析结果包括不兼容的开源组件名称和版本;
2)目标软件成分中开源组件使用强互惠性的信息;
3)目标软件未保留依赖开源软件成分许可证信息。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.2.4 供应连续性风险分析
供应连续性风险分析的测试评价方法如下所示。
a)测试方法:
1)分别使用软件成分中包含所依赖软件停止维护、使用许可变更、版权变更的软件作为分析对象;
2)根据产品说明书设置分析策略,使用产品对目标软件进行成分风险分析;
3)检查分析结果中是否包括已知的所依赖软件停止维护、使用许可变更、版权变更风险信息。
b) 预期结果:
产品能分析出目标软件成分中的所依赖软件停止维护、使用许可变更、版权变更风险信息。
b)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.3 分析结果处理
7.2.3.1 结果查看与统计分析
7.2.3.1.1 结果查看
结果查看的测试评价方法如下所示。
a)测试方法:
1)上传包含开源组件的代码包测试样本;
2)根据产品说明书设置检测策略,使用产品对目标进行检测分析;
3)检测完成后,检查产品是否提供对检测结果的浏览功能;
4)使用模糊搜索或组合搜索等方式,检查产品是否能根据搜索条件查询检测结果。
b)预期结果:
产品提供检测结果浏览和查询功能。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.3.1.2 统计分析
统计分析的测试评价方法如下所示。
a)测试方法:
1)根据产品说明书,查看统计分析结果;
2)检查统计分析结果是否使用可视化图表展示;
3)检查统计分析结果是否包含风险组件数量统计、漏洞数量统计、许可证风险数量统计、风险组件等级分布、组件许可证风险分布等统计信息。
b)预期结果:
1)产品提供统计分析功能;
2)统计分析结果使用可视化图表展示;
3)统计分析结果中包含风险组件数量统计、漏洞数量统计、许可证风险数量统计、风险组件等级分布、组件许可证风险分布等统计信息;
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.3.1.3 结果审计
结果审计的测试评价方法如下所示。
a)测试方法:
1)上传包含开源组件的代码包测试样本,进行检测分析;
2)根据产品说明书,对检测结果执行审计操作;
3)检查是否支持对检测结果进行误报、已修复、无风险等状态进行标记。
b)预期结果:
1)产品提供结果审计功能;
2)能够对组件识别和漏洞检测结果进行误报、已修复、无风险等状态标记。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.3.1.4 处置建议
处置建议的测试评价方法如下所示。
a)测试方法:
1)根据产品说明书,查看检测结果;
2)检查处置建议是否包含版本更新建议,包括组件最新版本、推荐版本、无漏洞版本;
3)检查处置建议是否包含漏洞修复和缓解方案。
4)根据产品说明书,进行组件一键升级;
5)查看升级结果。
b)预期结果:
1)产品提供检测结果处置建议;
2)检测结果处置建议包含组件最新版本、推荐版本、无漏洞版本;
3)检测结果处置建议包含漏洞修复和缓解方案;
4)支持一键升级组件,并且能够升级成功。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.3.2 报告生成与导出
7.2.3.2.1 报告生成
报告生成的测试评价方法如下所示。
a)测试方法:
1)根据产品说明书,检查产品是否能够生成检测结果报告;
2)检查报告是否展示各项风险检测的汇总结果;
3)检查报告是否生成各类风险的摘要信息,包括风险描述、风险严重程度分级、处置建议。
b)预期结果:
1)各项风险检测的汇总结果;
2)生成各类风险的摘要信息;
3)摘要信息内容包括风险描述、风险严重程度分级、处置建议。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.3.2.2 报告管理
报告管理的测试评价方法如下所示。
a)测试方法:
1)根据产品说明书,对产品进行报告导出和删除操作;
2)检查报告导出时是否能自定义报告内容;
3)检查报告删除后是否还能查看到该份报告。
b)预期结果:
1)报告导出时能够自定义选择报告内容;
2)下载的报告内容与自定义内容一致;
3)能够成功删除报告。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.3.2.3 报告导出
报告导出的测试评价方法如下所示。
a)测试方法:
1)检查产品的报告导出方式;
2)检查产品是否能够按照PDF、DOC、HTML、EXCEL等多种通用文档格式中的一种或者多种导出;
b)预期结果:
1)报告能够按照PDF、DOC、HTML、EXCEL等多种通用文档格式中的一种或者多种导出;
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.4 策略及配置管理
7.2.4.1 集成配置
集成配置的测试评价方法如下所示。
a)测试方法:
1)根据产品说明书,检查产品支持的集成配置方式;
2)检查产品是否支持与主流的代码仓库集成,包括但不限于:Git、SVN 等。
3)检查产品是否支持与主流 CI/CD 工具集成,如 Jenkins 等。
4)检查产品是否支持与主流的缺陷管理系统集成,包括但不限于:Atlassian Jira、禅道等。
5)检查产品是否支持与主流的私服仓库集成,包括但不限于:SonarType Nexus、JFrog Artifactory、Harbor 等。
b)预期结果:
1)应支持与主流 IDE 开发工具进行集成,包括但不限于:Jetbrains IDEs、Visual Studio Code、Eclipse 等。
2)应支持与主流的代码仓库集成,包括但不限于:Git、SVN 等。
3)应支持与主流 CI/CD 工具集成,如 Jenkins 等。
4)应支持与主流的缺陷管理系统集成,包括但不限于:Atlassian Jira、禅道等。
5)应支持与主流的私服仓库集成,包括但不限于:SonarType Nexus、JFrog Artifactory、Harbor 等。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.4.2 分析策略管理
分析策略管理的测试评价方法如下所示。
a)测试方法:
1)根据产品说明书,检查产品支持的分析策略管理方式;
2)检查检出结果不符合配置时是否可通知用户;
3)检查是否支持配置允许和禁止使用的组件名称、版本范围;
4)检查是否支持配置漏洞数量、等级阈值;
5)检查是否支持配置允许和禁止的许可证类型;
6)检查是否支持对分析任务的分析目录深度、编程语言、文件类型等维度配置。
b)预期结果:
1)检出结果不符合配置时可以通知用户;
2)支持配置允许和禁止使用的组件名称、版本范围;
3)支持配置漏洞数量、等级阈值;
4)支持配置允许和禁止的许可证类型;
5)支持对分析任务的分析目录深度、编程语言、文件类型等维度配置。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.2.4.3 知识库管理
知识库管理的测试评价方法如下所示。
a.测试方法
1)根据产品说明书,检查产品支持的知识库管理方式;
2)检查产品是否包括组件库、漏洞库、许可证库、代码片段特征库等知识库;
3)检查产品是否具备知识库在线订阅更新和离线更新能力;
4)检查产品是否支持对知识库中内容的检索和浏览。
b.预期结果
1)产品包括组件库、漏洞库、许可证库、代码片段特征库等知识库;
2)产品具备知识库在线订阅更新和离线更新能力;
3)产品支持对知识库中内容的检索和浏览。
c.结果判定
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3 自身安全要求
7.3.1 身份鉴别
7.3.1.1 管理员鉴别
管理员鉴别的测试评价方法如下所示。
a)测试方法:
登录产品管理界面,检查是否在执行所有功能之前都要求首先进行身份认证。
b)预期结果:
1)在管理员执行任何与安全功能相关的操作之前都应对管理员进行鉴别;
2)登录之前允许做的操作,应仅限于输入登录信息、查看登录帮助等操作;
3)允许管理员在登录后执行与其安全功能相关的各类操作时,不再重复认证。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.1.2 鉴别信息要求
鉴别信息要求的测试评价方法如下所示。
a)测试方法:
1)对采用基于口令作为鉴别信息的产品,在设置或修改管理员口令时,检查产品是否对管理员设置的口令进行复杂度检查,是否满足口令复杂度要求;
2)当产品初始化存在默认口令时,检查产品是否会提示管理员对默认口令进行修改;
3)检查产品是否提供鉴别信息定期更换功能,当鉴别信息使用时间达到使用期限阈值前,是否提示管理员进行修改。
b)预期结果:
1)对采用基于口令作为鉴别信息的产品,产品支持对管理员设置的口令进行复杂度检查,确保管理员口令满足一定的复杂度要求;
2)当存在默认口令时,产品应提示管理员对默认口令进行修改;
3)提供鉴别信息定期更换功能,当鉴别信息使用时间达到使用期限阈值前,提示管理员进行修改。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.1.3 鉴别失败处理
鉴别失败处理的测试评价方法如下所示。
a)测试方法:
1)检查产品的安全功能是否可定义管理员鉴别尝试的最大允许失败次数;
2)检查产品的安全功能是否可定义当管理员鉴别尝试失败连续达到指定次数后,采取相应的措施、阻止管理员进一步的鉴别请求;
3)尝试多次失败的管理员鉴别行为,检查到达指定的鉴别失败次数后,产品是否采取了相应的措施,并生成了审计事件。
b)预期结果:
1)产品具备定义管理员鉴别尝试的最大允许失败次数的功能;
2)产品可定义当管理员鉴别尝试失败连续达到指定次数后,采取相应的措施(如锁定该账号);
3)当管理员鉴别尝试失败连续达到指定次数后,系统应锁定该账号,并将有关信息生成审计事件;
4)最多失败次数仅由授权管理员设定。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.1.4 鉴别数据保护
鉴别数据保护的测试评价方法如下所示。
a)测试方法:
1)检查产品是否仅允许指定权限的管理员可查阅或修改身份鉴别数据;
2)以非授权管理员的身份尝试查阅或修改身份鉴别数据。
b)预期结果:
1)产品仅允许指定权限的管理员查阅或修改身份鉴别数据;
2)非授权管理员无法查阅或修改身份鉴别数据。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.1.5 超时设置
超时设置的测试评价方法如下所示。
a)测试方法:
1)检查产品是否具有管理员登录超时重新鉴别功能;
2)设定管理员登录超时重新鉴别的时间段,登录管理员后在设定的时间段内没有任何操作,检查产品是否锁定或终止了会话,管理员是否需要再次进行身份鉴别才能够重新管理和使用产品;
3)检查最大超时时间是否仅由授权管理员设定。
b)预期结果:
1)产品具有登录超时重新鉴别功能;
2)任何登录管理员在设定的时间段内没有任何操作的情况下,都被锁定或终止了会话,管理员需要再次进行身份鉴别才能够重新管理和使用产品;
3)最大超时时间仅由授权管理员设定。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.1.6 管理地址限制
管理地址限制的测试评价方法如下所示。
a)测试方法:
1)检查产品是否支持对管理地址进行限制,尝试以非授权范围内的地址主机登录产品管理界面;
2)尝试以授权范围内地址的主机登录产品管理界面。
b)预期结果:
1)产品应对管理员登录的地址进行限制,不能够以非授权范围内的地址登录产品管理界面;
2)支持以授权范围内地址的主机登录产品管理界面。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.2 管理员管理
7.3.2.1 标识唯一性
标识唯一性的测试评价方法如下所示。
a)测试方法:
1)尝试定义多个管理员;
2)尝试添加一个已有标识的管理员;
3)检查产品是否提示该标识管理员已存在,拒绝具有相同标识管理员的添加。
b)预期结果:
1)产品应允许定义多个管理员;
2)应保证每一个管理员标识是全局唯一的,不允许一个管理员标识用于多个管理员。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.2.2 管理员属性定义
管理员属性定义的测试评价方法如下所示。
a)测试方法:
定义分属于不同角色的多个管理员,检查输入的管理员信息是否都能被保存。
b)预期结果:
产品应为每一个管理员保存其安全属性,包括:管理员标识、鉴别数据(如密码)、授权信息或管理员组信息、其他安全属性等,输入的管理员信息无丢失现象发生。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.2.3 安全行为管理
安全行为管理的测试评价方法如下所示。
a)测试方法:
1)检查产品的安全功能是否明确规定仅限于指定的授权管理员能对产品的功能进行设置修改、启用/停用等操作;
2)检查指定的授权管理员对产品进行功能设置、参数修改、安全策略变更,以及启用/停用等操作前,是否应先登录才能操作。
b)预期结果:
1)产品仅限于指定授权管理员才能对产品进行功能设置、参数修改、安全策略变更,以及启用/停用等操作;
2)指定的授权管理员对产品进行功能设置、参数修改、安全策略变更,以及启用/停用等操作前,都应先通过身份鉴别。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.2.4 管理员角色
管理员角色的测试评价方法如下所示。
a)测试方法:
检查产品的安全功能是否允许定义多个不同权限的角色。
b)预期结果:
1)产品允许定义多个不同权限的角色;
2)每个角色可以具有多个管理员,每个管理员只能属于一个角色;
3)保证每一个角色标识是全局唯一的,不允许一个角色标识用于多个角色。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.3 安全审计
7.3.3.1 审计日志生成
审计日志生成的测试评价方法如下所示。
a)测试方法:
1)尝试进行 5.2.1.3.1 要求的各项操作,触发审计事件;
2)查看审计日志是否包括事件发生的日期、时间、用户标识、事件描述和结果;
3)若产品支持远程管理,查看审计日志是否记录管理主机的 IP 地址。
b)预期结果:
1)产品能够针对上述事件生成审计日志,日志内容包括事件发生的日期、时间、用户标识、事件描述和结果;
2)当产品支持远程管理时,审计日志能够记录管理主机的 IP 地址。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.3.2 审计日志查阅
审计日志查阅的测试评价方法如下所示。
a)测试方法:
1)以授权管理员身份尝试从审计日志中读取全部审计信息;
2)检查产品是否为授权管理员提供从审计日志中读取全部审计信息的功能。
b)预期结果:
产品为授权管理员提供从审计日志中读取全部审计信息的功能。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.3.3 受限的审计日志查阅
a)测试方法:
分别模拟授权与非授权管理员访问审计日志,检查产品安全功能是否仅允许授权管理员访问。
b)预期结果:
产品限制审计日志的访问。除了具有明确访问权限的授权管理员之外,禁止所有其他用户对审计日志的访问。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.3.4 可选审计查阅
a)测试方法:
检查产品是否能够支持按照一定条件,包括但不限于时间、主体、客体等对审计日志进行检索或排序。
b)预期结果:
产品支持按照一定条件对审计日志进行检索或排序。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.4 数据安全
7.3.4.1 安全管理
a)测试方法:
1)根据产品说明手册,检查产品的数据安全管理措施;
2)检查产品是否在分析完成后删除缓存的目标软件数据;
3)检查产品是否采取措施保障存储数据的安全性。
b)预期结果:
1)产品在分析完成后删除缓存的目标软件数据;
2)产品采取了措施保障存储数据的安全性。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.4.2 数据存储告警
a)测试方法:
1)检查产品安全功能是否具有存储剩余空间将耗尽的告警功能;
2)检查产品安全功能是否允许管理员设定产生告警的的剩余存储空间的大小;
3)人为地将产品存储器空间耗至设定的告警值以下,检查产品是否告警。
b)预期结果:
1)产品在发生数据存器空间将耗尽的情况时,自动产生告警;
2)允许管理员设定产生告警的剩余存储空间的大小。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.5 通信安全
a)测试方法:
1)检查开发者文档中对保证产品各组件之间通信保密性的描述;
2)使用网络协议分析工具抓取产品各组件中传输的配置和控制信息,检查是否具备保密措施。
b)预期结果:
1)开发者文档中提供了为保证产品各组件之间通信保密性所采取措施的详细描述,列举系统为保证通信保密性所采取的措施;
2)分析抓包结果,系统在各组件之间传输数据时采取了一定的保密措施。
c)结果判定:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.3.6 支撑系统安全
a)测试方法:
1)查看开发者文档,并验证产品的支撑系统是否进行了必要的裁剪,是否不提供多余的组件或网络服务;
2)重启系统,验证扫描任务的配置和日志信息是否不丢失;
3)对系统进行安全性测试,验证是否不含已知的中、高、超危安全漏洞。
b)测试方法:
1)产品支撑系统进行了必要的裁剪,不提供多余的组件或限网络服务;
2)重启过程中,安全扫描任务的配置和日志信息不丢失;
3)系统不含已知中、高、超危安全漏洞。
c)测试方法:
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.4 环境适应性要求
7.4.1 支持多种部署架构
a)测试方法:
1)根据产品说明书,检查产品支持的部署架构;
2)检查产品是否支持以 C/S 架构部署使用;
3)检查产品客户端是否支持发起检测任务并生成相关报告;
4)检查产品是否支持以 B/S 架构部署使用;
5)检查产品是否支持通过 Google Chrome、Firefox、Microsoft Edge 等主流浏览器访问、操作和管理。
b)预期结果
1)产品支持以 C/S 架构部署和使用;
2)产品客户端支持发起检测任务并生成相关报告;
3)产品支持以 B/S 架构部署使用;
4)产品支持通过上述浏览器访问、操作和管理。
c)结果判定
上述预期结果均满足判定为符合,其他情况判定为不符合。
7.5 安全保障要求6.5.1 开发
7.5.1 开发
7.5.1.1 安全架构
a)测试方法:
1)与产品设计文档中对安全功能实施抽象描述的级别一致;
2)描述与安全功能要求一致的软件成分分析系统安全功能的安全域;
3)描述软件成分分析系统安全功能初始化过程为何是安全的;
4)证实软件成分分析系统安全功能能够防止被破坏;
5)证实软件成分分析系统安全功能能够防止安全特性被旁路。
b)预期结果:
开发者提供的文档内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.1.2 功能规范
a)测试方法:
1)完全描述软件成分分析系统的安全功能;
2)描述所有安全功能接口的目的与使用方法;
3)标识和描述每个安全功能接口相关的所有参数;
4)描述安全功能接口相关的安全功能实施行为;
5)描述由安全功能实施行为处理而引起的直接错误消息;
6)证实安全功能要求到安全功能接口的追溯。
b)预期结果:
开发者提供的文档内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.1.3 产品设计
a)测试方法:
1)根据子系统描述软件成分分析系统结构;
2)标识和描述软件成分分析系统安全功能的所有子系统;
3)描述安全功能所有子系统间的相互作用;
4)提供的映射关系能够证实设计中描述的所有行为能够映射到调用它的安全功能接口。
b)预期结果:
开发者提供的文档内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.2 指导性文档
7.5.2.1 操作用户指南
a)测试方法:
1)描述在安全处理环境中被控制的用户可访问的功能和特权,包含适当的警示信息;
2)描述如何以安全的方式使用软件成分分析系统提供的可用接口;
3)描述可用功能和接口,尤其是受用户控制的所有安全参数,适当时指明安全值;
4)明确说明与需要执行的用户可访问功能有关的每一种安全相关事件,包括改变安全功能所控制实体的安全特性;
5)标识软件成分分析系统运行的所有可能状态(包括操作导致的失败或者操作性错误),以及它们与维持安全运行之间的因果关系和联系;
6)充分实现安全目的所必须执行的安全策略。
b)预期结果:
开发者提供的文档内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.2.2 准备程序
a)测试方法:
1)描述与开发者交付程序相一致的安全接收所交付软件成分分析系统必需的所有步骤;
2)描述安全安装软件成分分析系统及其运行环境必需的所有步骤。
b)预期结果:
开发者提供的文档内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.3 生命周期支持
7.5.3.1 配置管理能力
a)测试方法:
1)审查开发者是否为不同版本的软件成分分析系统提供唯一的标识;
2)现场检查配置管理系统是否对所有的配置项做出唯一的标识,且配置管理系统是否对配置项进行了维护;
3)审查开发者提供的配置管理文档,是否描述了对配置项进行唯一标识的方法。
b)预期结果:
开发者提供的文档和现场活动证据内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.3.2 配置管理范围
a)评估方法:
1)审查开发者提供的配置项列表;
2)配置项列表是否描述了组成软件成分分析系统的全部配置项及相应的开发者。
b)预期结果:
开发者提供的文档和现场活动证据内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.3.3 交付程序
a)测试方法:
1)现场检查开发者是否使用一定的交付程序交付软件成分分析系统;
2)审查开发者是否使用文档描述交付过程,文档中是否包含以下内容:在给用户方交付系统的各版本时,为维护安全所必需的所有程序。
b)预期结果:
开发者提供的文档和现场活动证据内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.4 测试
7.5.4.1 覆盖
a)测试方法:
审查开发者提供的测试覆盖文档,在测试覆盖证据中,是否表明测试文档中所标识的测试与功能规范中所描述的软件成分分析系统的安全功能是对应的。
b)预期结果:
开发者提供的文档内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.4.2 功能测试
a)测试方法:
1)审查开发者提供的测试文档,是否包括测试计划、预期的测试结果和实际测试结果;
2)审查测试计划是否标识了要测试的安全功能,是否描述了每个安全功能的测试方案(包括对其它测试结果的顺序依赖性);
3)审查期望的测试结果是否表明测试成功后的预期输出;
4)审查实际测试结果是否表明每个被测试的安全功能能按照规定进行运作。
b)预期结果:
开发者提供的文档内容应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.4.3 独立测试
a)测试方法:
1)开发者提供的测试资源;
2)开发者提供的测试集合是否与其自测系统功能时使用的测试集合相一致。
b)预期结果:
开发者提供的资源应满足上述要求。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
7.5.5 脆弱性评定
a)测试方法:
从用户可能破坏安全策略的明显途径出发,按照安全机制定义的安全强度级别,对软件成分分析系统进行脆弱性分析。
b)预期结果:
渗透性测试结果应表明软件成分分析系统能够抵抗具有基本攻击潜力攻击者的攻击。
c)结果判定:
实际测试结果与预期结果一致则判定为符合,其他情况判定为不符合。
附录A
参考文献
[1] GB/T 20220164-T-469 信息安全技术 软件供应链安全要求.
[2] GB/T 25069-2022 信息安全技术 术语