《软件供应链安全技术检测规范》_第1页
《软件供应链安全技术检测规范》_第2页
《软件供应链安全技术检测规范》_第3页
《软件供应链安全技术检测规范》_第4页
《软件供应链安全技术检测规范》_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICS35.080

CCSL77

团体标准

T/CQCIOXXXX—XXXX

软件供应链安全技术检测规范

Technicaltestingspecificationforsoftwaresupplychainsecurity

(报批稿)

XXXX-XX-XX发布XXXX-XX-XX实施

重庆市首席信息官协会发布

T/CQCIOXXXX—XXXX

前言

本文件按照GB/T1.1—2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定

起草。

本文件由xxx提出,由xxx归口。

本文件起草单位:

本文件主要起草人:

本文件为首次发布。

III

T/CQCIOXXXX-XXXX

IV

T/CQCIOXXXX—XXXX

引言

数字化时代,软件定义万物,软件已成为支撑社会正常运转的最基本元素之一。随着软件产业和软

件工程的不断发展,软件包含的程序文件、动态库越来越多,访问的IP、URL等各种元素越来越丰富,

相互之间的依赖关系也越来越普遍,复杂的供应关系可能引发一系列安全问题,一旦软件供应链环节的

某一个元素出现问题,很可能直接影响软件供应链链条上的全部软件,复杂的软件供应链正导致信息系

统的整体安全防护难度越来越大。早在2016年国家互联网信息办公室发布的《国家网络空间安全战略》

中,就已经提出“夯实网络安全基础,坚持创新驱动发展,尽快在核心技术上取得突破。重视软件安全,

加快安全可信产品推广应用”,将软件安全纳入网络安全战略任务,开启软件供应链安全时代,软件供

应链安全成为一个单独的安全细分领域逐步被社会认可。为进一步明确软件供应链安全目标,指导产业

良性、快速发展,2021年,工业和信息化部在印发《“十四五”软件和信息技术服务业发展规划》的通知

中,在保障措施章节提出“开展软件数据安全、内容安全评估审查,加强软件源代码检测和安全漏洞管

理能力,提升开源代码、第三方代码使用的安全风险防控能力。鼓励第三方服务机构,积极提升软件安

全咨询、培训、测试、认证、审计、运维等服务能力。”

软件供应链安全应是组织安全文化的一部分,有效的安全检测机制可推动软件供应链安全体系化发

展。本文件综合实用性与扩展性,定义了软件供应链安全技术检测流程、风险框架、检测模块,并对检

测流程中可能涉及的风险规避措施进行充分阐述,为尽快推动安全技术检测提供参考。

在软件供应链安全检测工程中,本文件提供技术检测流程性规范与检测要素指导,具体检测内容还

可结合GB/T39412—2020、GB/T30998—2014等国家标准、行业标准、行业规范个性化定制。虽然本

文件重点定义并推荐采用自动化工具静态检测方式,但对可能存在的人工检测、动态检测,在流程中也

做了充分的规范、说明。

本文件是“软件供应链安全”检测系列标准之一,该系列标准的结构和名称预计如下:

--《软件供应链安全技术检测规范》(本标准)

--《软件供应链安全管理检测规范》

--《软件供应链安全综合检测指引》

--《软件供应链安全开源组件安全检测平台技术要求》

--《软件供应链安全源代码检安全测环境搭建指南》

--《软件供应链安全检测高风险判断指引》

--《软件供应链安全检测机构要求》

--《软件供应链安全检测过程指南》

V

T/CQCIOXXXX-XXXX

VI

T/CQCIOXXXX—XXXX

软件供应链安全技术检测规范

1范围

本文件给出了软件供应链安全技术检测工作过程,规定了软件供应链安全技术检测活动、工作任务

及重点检测内容。

本文件适用于软件规划设计、开发实施及其运行维护过程中的安全技术检测工作,可为第三方机构

开展软件供应链安全技术检测提供依据,也可为监管部门提供相关参考。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,

仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

文件。

GB/T25069—2022信息安全技术术语

GB/T36637—2018信息安全技术ICT供应链安全风险管理指南

GB/T34943—2017C/C++语言源代码漏洞测试规范

GB/T34944—2017Java语言源代码漏洞测试规范

GB/T34946—2017C#语言源代码漏洞测试规范

GB/T39412—2020信息安全技术代码安全审计规范

GB/T30998—2014信息技术软件安全保障规范

GB/T24363—2009信息安全技术信息安全应急响应计划规范

GB/T36627—2018信息安全技术网络安全等级保护测试评估技术指南

3术语和定义

GB/T25069—2022、GB/T36637—2018、GB/T34943—2017、GB/T34944—2017、GB/T34946—2017、

GB/T39412—2020、GB/T30998—2014和GB/T36627—2018中界定的以及下列术语和定义适用于本文

件。

3.1

软件供应链softwaresupplychain

基于软件全生命周期供应关系,通过供应活动将各类软件物料加工成软件产品或服务并实施运营过

程的全流程链条。

3.2

软件供应链安全softwaresupplychainsecurity

采取必要措施,将软件供应链(3.1)过程中面临的各类风险,降低到可接受程度。

注:本文件所指的软件供应链安全风险主要包括编码过程、开源组件、工具等技术性风险。

1

T/CQCIOXXXX—XXXX

3.3

软件供应链安全检测softwaresupplychainsecuritytesting

检测机构根据检测委托单位的检测目标、检测范围等,按照国家与地方法律法规及有关标准,应用

风险框架,对软件供应链安全(3.2)进行测试评估的活动。

3.4

检测对象targetoftesting

软件供应链安全检测(3.3)工作涉及的业务软件、APP应用等。

3.5

检测模块moduleoftesting

检测对象(3.4)所包含的自建源代码、开源组件及扩展安全等具体检测工作模块。

4缩略语

下列缩略语适用于本文件。

IP:网际互联协议(InternetProtocol)

URL:统一资源定位系统(UniformResourceLocator)

ICT:信息与通信技术(InformationandCommunicationsTechnology)

APP:移动互联网应用程序(Application)

XSS:跨站脚本(CrossSiteScript)

WEB:全球广域网(WorldWideWeb)

API:应用程序编程接口(ApplicationProgrammingInterface)

LGPL:较宽松公共许可证(LesserGeneralPublicLicense)

GPL:通用公共授权(GeneralPublicLicense)

BSD:伯克利软件套件(BerkeleySoftwareDistribution)

SBOM:软件物料清单(SoftwareBillofMaterials)

SSCST:软件供应链安全检测(SoftwareSupplyChainSecurityTesting)

5软件供应链安全技术检测概述

5.1软件供应链安全技术检测过程

软件供应链安全技术检测过程包括四个阶段:检测准备阶段、方案编制阶段、检测实施阶段、报告

总结阶段。技术检测过程应根据检测机构与检测委托单位之间协商,调整相应工作阶段及各阶段的任务,

各阶段简要工作任务如表1所示,详细工作流程参见附录A。

表1软件供应链安全技术检测活动阶段

序号过程阶段主要任务

检测工作启动

范围与目标确定

1检测准备阶段

信息收集和分析

平台与工具准备

2

T/CQCIOXXXX—XXXX

表1(续)

序号过程阶段主要任务

检测对象确定

检测模块确定

2方案编制阶段检测方法确定

检测方案编制

检测过程指南开发

实施准备

在线检测

3检测实施阶段

现场检测

初步结论

模块风险判定

整体风险分析

4报告总结阶段

检测报告编制

总结与建议

本文件对软件供应链安全技术检测涉及的各个阶段,给出检测机构、检测委托单位各方职责、主要

工作流程、主要工作任务及阶段性主要输入/输出。

5.2软件供应链安全技术风险框架

在软件供应链各个供应活动中均可能引入安全隐患,导致软件供应链存在符合性风险、技术风险与

管理风险,如图1所示,符合性被单独提出,主要关注软件供应链的长期支持、知识产权、信创工程等

国家及各行业、各领域共同关注风险;技术风险可以进一步导致软件漏洞、软件后门、恶意篡改、信息

泄露等安全风险;管理风险主要关注各组织软件供应链安全管理的组织、流程、制度、人员等情况。

图1软件供应链风险框架

本文件以软件供应链技术风险为主,将影响技术或重点关注的风险,整理到“其他风险中”,详细风

险项参见附录B。

5.3软件供应链安全技术检测模块

软件供应链安全检测模块包括源代码安全检测、开源组件安全检测及扩展安全检测,如图2所示。

3

T/CQCIOXXXX—XXXX

图2软件供应链安全技术检测模块

源代码安全模块对自开发软件编写代码安全进行检测,参见附录F.2。

开源组件安全模块对开源平台、开源组件进行安全检测,参见附录F.3。

扩展安全模块对其他必要情形进行安全检测,参见附录F.4。

各检测模块与风险关系,参见附录F.5.

5.4软件供应链安全检测风险规避

软件供应链安全技术检测工作过程中可能造成业务中断、业务服务能力下降、敏感信息泄露、商业

秘密泄密、恶意代码植入等风险。在检测过程中,检测机构应与检测委托单位充分沟通,采取包括但不

限于如下措施,规避相应风险:

a)签署检测授权协议

在检测工作正式开始前,检测机构与检测委托单位应以检测授权协议(参见附录C)方式明确检测

工作的目标、范围、人员安排、工作内容、工作流程、工作时间等。探讨授权协议过程是检测双方或多

方达成共识的关键因素之一。

b)签署安全保密协议

保密协议应本着公平的原则,规定检测双方或多方在保密工作机构与相关人员的权利和义务。根据

检测工作接触的信息,相关机构及人员应签署法律法规框架下的保密协议(参见附录D),约束检测过

程信息采集、传输、存储、使用、发布等行为。保密协议可随着工作进程多次签署。

c)在线检测风险规避

在线检测过程中,检测机构应采取足够的安全措施,保证数据在传输、存储、使用等活动中检测委

托单位的代码元数据、代码、业务数据及个人信息等的安全。在线检测工作之前,检测机构应充分证明

其在线检测的安全性,并得到检测委托单位认可。检测委托单位宜对业务运行可能包含的敏感数据、个

人信息等进行脱敏、脱密处理。

d)现场检测风险规避

除在线检测风险规避措施,现场检测全流程应在检测委托单位的监督下进行,所有可能存在数据泄

露、个人信息泄露情形,应得到检测委托单位授权方能进行,对于重大风险情形,双方应联合制定应急

处理方案。

对于模糊测试、渗透测试等动态安全检测,宜配置环境一致的模拟系统,在模拟环境下完成检测工

作。如需在业务系统环境下检测,应参考有关规范,做好业务备份措施与应急计划,详细制定实施方案,

检测中避开业务高峰期,不采取压力测试等暴力方式,做好检测工作。

e)检测信息安全保护

4

T/CQCIOXXXX—XXXX

检测过程中涉及的过程信息、结论信息、检测结果等权属检测委托单位,检测机构对相关内容的传

输、删除、留存应符合法律法规及其双方约定,检测机构在引用相关信息时需得到检测委托单位授权,

双方可在合同或保密协议中明确检测信息安全保护。

检测涉及开源组件、开源模块、源代码等原始数据,无特别约定,在工作完成后,检测机构应该在

检测委托单位监督下,按照规范流程清除数据。

6检测准备阶段

6.1检测准备阶段各方职责

检测机构职责:

a)组建检测项目工作组;

b)向检测委托单位相关责任人介绍检测方法及流程;

c)向检测委托单位相关责任人介绍工作风险及应对措施;

d)提供检测工作应急响应建议;

e)准备检测工作相关平台、工具及文档。

检测委托单位职责:

a)为检测机构提供检测授权;

b)确定工作目标与范围;

c)指定人员提供检测所需的应用信息、文档等信息;

d)制定必要的应急预案。

6.2检测准备阶段工作流程

检测准备阶段主要目标是:

a)顺利启动检测项目;

b)建立必要的项目沟通机制;

c)双方就项目范围、边界达成一致;

d)收集足够的信息,以完成方案编制。

检测准备阶段包括检测工作启动、范围与目标确定、信息收集和分析、平台与工具准备四个主要任

务,工作流程与主要输入/输出见图3。

5

T/CQCIOXXXX—XXXX

图3检测准备阶段工作流程与主要输入/输出

6.3检测准备主要工作任务

6.3.1检测工作启动

检测工作启动任务标志着检测工作开始,在项目启动前,双方根据初步意向签订《检测授权协议》。

检测机构与检测委托单位各自组建项目工作团队,并进行首次正式会议,初步明确工作目标与双方工作

职责,主要工作任务包括:

a)检测机构对检测委托单位项目工作团队人员,就软件供应链安全技术检测工作目标、范围、模

块、流程等内容开展简单培训;

b)检测双方确定人员沟通机制,并就项目进度、边界达成初步一致;

c)检测机构编制项目计划书,并根据检测委托单位的建议、意见修订。

6.3.2范围与目标确定

范围与目标确定包括检测范围确定与检测目标确定两个方面,检测范围明确检测工作的对象范围、

模块类型及规模,检测目标确定检测工作的价值,确定的检测范围和目标,将为成功开展检测工作奠定

基础,主要工作任务包括:

a)根据双方签订的《安全保密协议》,检测机构收集并分析软件、APP应用、开发平台、源代

码、开源组件等基本信息;

b)检测委托单位确定整体检测目标,检测机构根据整体检测目标,编制各检测模块目标;

c)检测双方根据收集的基本信息,结合项目进度、目标等因素,确定检测范围。

6.3.3信息收集与分析

检测机构根据明确的检测目标、检测范围,详细收集相应信息,进一步明确工作内容的组成,为后

续的方案编制、检测实施工作奠定基础,主要工作任务包括:

a)检测机构进一步明确检测对象信息,包括业务软件、APP等使用情况、开发及维护文档等;

b)检测委托单位根据检测机构提供的调研表格及表格填写指导,准确填写开源组件、源代码等信

息;

6

T/CQCIOXXXX—XXXX

c)检测机构分析检测委托单位填写信息,简要分析检测工作难易程度,在参考软件开发文档后,

形成初步检测对象列表;

d)检测委托单位审核并批准初步检测对象列表。

6.3.4平台与工具准备

软件供应链安全技术检测宜主要采取自动化检测与人工验证相结合的方式,采用静态分析技术进行,

检测方法主要为在线检测(参见8.3.2)与现场检测(参见8.3.3)。检测方式、方法的不同,支撑的平

台、工具也会不同,如检测过程还包含渗透测试等动态分析技术,应准备相应的平台或工具。准确的平

台与工具准备,为高效检测工作奠定基础,主要工作任务包括:

a)检测机构依据初步确定的检测对象列表、开源组件列表、自建代码统计信息等确定检测方法;

b)检测机构根据确定的检测方法,选择合适的检测平台、检测工具、检测辅助工具与配套文档等;

c)检测机构就检测方法、检测平台使用中可能存在风险及风险规避措施,对检测委托单位相关人

员开展培训。

6.4检测准备主要输入/输出

检测准备阶段主要输入与输出文档如表2所示。

表2检测准备主要输入/输出文档

主要任务主要输入文档主要输出文档输出文档内容框架

项目目标、项目依据、工作步骤、检测内

项目工作计划容、检测方法、进度及人员安排、技术重

检测工作启动检测授权协议难点分析等

会议时间、参会人员、主要事项、下一步

会议纪要

工作计划等

业务软件情况、APP情况、源代码情况、

检测工作启动输出检测范围清单

范围与目标确定范围与目标调研表格开源组件情况等

安全保密协议检测目标清单整体目标、模块检测目标等

维护组织、组件名称、开发语言、组件版

范围与目标确定输出开源组件列表

本、用途等

信息收集与分析开源组件及源代码调研表格

自建代码统计信息开发语言、开发平台、开发工具等

软件开发文件

初步检测对象列表业务软件、开源组件、源代码等关系列表

信息收集与分析输出检测方法、检测平台、检测工具、检测辅

平台与工具准备平台与工具列表

风险告知书助工具、检测涉及交接文档等

文档未包含应急响应相关文档,必要时,检测双方可参考GB/T24363—2009第6章,编制应急计划。

检测双方也可根据项目实际情况,增减相应的输入/输出文档,简化输出文档内容。

7方案编制阶段

7.1方案编制阶段各方职责

检测机构职责:

a)全面、系统分析检测对象的组成、规模及工程难度;

b)验证检测平台及工具的有效性、安全性;

7

T/CQCIOXXXX—XXXX

c)建议最终检测对象、检测模块、检测方法;

d)编制、修订包含风险规避措施的检测实施方案。

检测委托单位职责:

a)为检测机构分析提供资源支持;

b)确定最终检测对象、检测模块、检测方法;

c)审核与确定检测实施方案。

7.2方案编制阶段工作流程

方案编制阶段主要目标是:

a)确定项目范围与检测内容、方法;

b)为检测实施提供方案与过程指导;

c)确定检测过程的风险与风险规避方案;

方案编制阶段包括检测对象确定、检测模块确定、检测方法确定、检测方案编制、检测过程指南开

发五个主要任务,工作流程与主要输入/输出见图4。

图4方案编制工作流程与主要输入/输出

7.3方案编制主要工作任务

7.3.1检测对象确定

根据初步检测对象列表,采用现场调查、工具辅助等方式,进一步分析初步检测对象的规模、构成、

特点,结合项目目标等因素,确定检测对象,确定工作边界,为后续方案编制奠定基础。主要工作任务

包括:

a)部署模拟环境或开发、发布环境提取方式,获取初步检测对象列表中的业务环境、开源组件、

自建代码等信息;

b)采用必要的辅助工具,分析初步检测对象列表的自建代码规模、开源组件情况;

c)综合各类因素,确定检测对象边界。

7.3.2检测模块确定

8

T/CQCIOXXXX—XXXX

根据确定的检测对象,进一步确定自建源代码、开源组件及扩展安全等工作模块,明确的模块信息,

为修正工作计划,精准方案编制、过程指南开发奠定基础,主要工作任务包括:

a)按照统一规则唯一标识自建源代码,可根据软件、APP应用对自建代码初步标识;

b)按照识别的开源组件名称、版本号等信息标识开源组件;

c)进一步确定自建代码中的开源组件、插件等信息;

d)确定扩展检测模块信息。

7.3.3检测方法确定

本文件推荐采用静态分析技术对源代码、开源组件等进行检测评估,动态检测技术也可参考渗透测

试等规范,按照本文件定义检测过程完成检测。

源代码检测需获取所有代码信息,通过提取程序关键语法,解释其语义,理解程序行为,根据预先

设定的漏洞特征、安全规则等检测缺陷。静态分析技术采用主要方法参见附录H。方法包括:规则检查、

类型推导、数据流分析、符号执行、内存精确建模、控制流分析等。

开源组件检测只需提取软件中开源组件的开源软件标识、维护组织、版本信息等特征。通过专业化

的平台根据开源组件特征,检测漏洞、开源组件版本、开源许可协议等风险信息,也可以直接提取开源

组件源代码包、远程代码仓库发起开源软件分析任务。

检测方法的确定,是专业性很强的工作,检测双方应多次沟通、验证方法的充分性、有效性、适宜

性,主要工作任务包括:

a)确定是否完全采用静态分析技术,对可能涉及的动态分析技术,制定相应工作规范、应急措施

等;

b)确定采用的静态分析技术方法;

c)确定线上检测方法与现场检测方法各自的适用范围。

7.3.4检测方案编制

检测方案以文字形式进一步明确检测实施对象、模块、流程、方法、内容、风险规避措施等信息,

检测方案编写可参见附录E。主要工作任务包括:

a)根据确定的检测模块、检测方法,结合双方协商风险模型(参见附录B)及安全检测要素(参

见附录F),确定检测内容;

b)估算在线检测、现场检测、报告编制及其配套后续活动工作难度和工作量;

c)进一步完善检测团队专业人员配置;

d)编制检测工作计划,包括:人员安排、进度安排、检测内容安排等;

e)编制风险规避计划;

f)双方共同评审以上内容,完成后,汇总所有文稿,形成检测实施方案;

7.3.5检测过程指南开发

检测过程指南是检测人员实施检测活动的指导手册,应结合检测实施流程、风险规避措施编写,尽

可能直观、详实及操作性强,主要工作任务包括:

a)根据检测目标、检测模块、检测方法等,确定检查方法下的具体检测单元;

b)验证检测模块、检测单元划分的合理性、可实施性;

c)进一步开发检测单元检测目标、检测流程、风险规避措施、应急响应措施等。

d)开发检测结果记录表单模板;

e)培训相关人员。

7.4方案编制涉及输入/输出

9

T/CQCIOXXXX—XXXX

方案编制阶段主要输入与输出文档如表3所示。

表3方案编制主要输入/输出文档

主要任务主要输入文档主要输出文档输出文档内容框架

检测对象确定初步检测对象列表检查对象列表待检测软件、APP等列表

自建代码应用或APP名单、涉及开源

检测模块确定/检查模块名单

组件名单、扩展检测清单等

自动化/人工检测、静/动态分析技术、

检查方法列表

检测方法确定/在线/现场检测等

检查模块、方法对应关系检查方法、检查模块、检查单元

检测范围清单

检测方案编制检测实施方案参见附录E

检测目标清单

检测过程指南开发检测模块、检测单元、单元检测目标、

各类标准规范检测过程指南

单元检测流程、单元预期结果等

表3的主要输入文档内容中,省略如下了上一阶段或上一任务输出的内容描述。

8检测实施阶段

8.1检测实施阶段各方职责

检测机构职责:

a)实施安全检测,并记录、分析结果;

b)按照约定保护源代码、开源组件等安全,并在检测完成后按要求处置相关资源;

c)必要时,启动并实施应急预案;

d)以正式会议形式,向检测委托单位汇报检测初步结论。

检测委托单位职责:

a)提供检测环境、检测资源及检测配合人员,检测环境包括搭建模拟环境,检测资源包括提取最

新源代码等;

b)监督、配合检测实施与剩余信息保护,决定启动应急预案;

c)确认检测初步结论。

8.2检测实施阶段工作流程

检测实施阶段主要目标是:

a)依据既定方案与过程指南,实施检测工作,获取检测记录;

b)分析检测记录,得到初步检测结论;

c)确保检测模块安全,必要时,启动应急计划。

检测实施阶段包括实施准备、在线检测、现场检测、初步结论四个主要任务,工作流程与主要输入

/输出见图5。

10

T/CQCIOXXXX—XXXX

图5检测实施工作流程与主要输入/输出

8.3检测实施主要工作任务

8.3.1实施准备

实施准备是根据检测模块、检测方法等,检测双方精准定位检测对象、检测单元及进一步确定风险、

规避方式的必要活动,是检测工作顺利完成的前提,主要工作任务包括:

a)召开检测实施会议,双方确认《风险告知书》,检测委托单位签发《检测实施开工授权》;

b)检测机构搭建安全的、可靠的源代码检测环境,包括物理环境、软件编译环境等;

c)检测委托机构搭建业务软件或APP应用模拟平台,授权提取源代码;

d)双方确认检测环境、软件模拟环境、软件代码的真实性、有效性;

e)进一步确定检测方案、检测过程指南的有效性。

8.3.2在线检测

在线检测指通过互联网进行安全检测,主要用于开源组件类模块检测,在双方确认安全的情况下,

也可以用于源代码安全检测,主要工作任务包括:

a)使用检测平台或检测辅助工具提取开源组件特征信息,并将特征信息上传到检测平台;

b)根据检测实施方案、检测过程指南通过检测平台实施在线检测;

c)根据双方约定处置开源特征码;

d)在确保安全前提下,提取源代码,通过安全通道上传平台,对源代码实施b),并按照约定处

置源代码信息;

8.3.3现场检测

现场检测是在检测委托单位指定场所实施检测活动,可用于对所有模块实施检测,对于包含敏感信

息的软件业务或APP,开源组件也可能需要在现场搭建检测平台实施检测工作,主要工作任务包括:

a)测试检测平台有效性;

b)根据检测实施方案、检测过程指南通过检测平台实施现场检测;

c)根据双方约定处置开源特征码、源代码;

d)必要时,通过动态检测技术进一步检测软件安全性;

8.3.4初步结论

11

T/CQCIOXXXX—XXXX

初步结论是通过正式会议形式结束检测活动,并由检测机构将汇总的初步结果与检测委托机构同步,

主要工作任务包括:

a)双方确定检测工作结束,并签订《检测结束确认书》;

b)汇总在线检测、现场检测所有检测结果;

c)召开正式会议交换检测过程、初步结论信息。

8.4检测实施涉及输入/输出

检测实施阶段主要输入与输出文档如表4所示。

表4检测实施主要输入/输出文档

主要任务主要输入文档主要输出文档输出文档内容框架

风险告知书风险列表、可能后果等

实施准备/授权检测源代码、开发平台、发布

检测实施开工授权

平台、开源组件等

检测实施方案检测单元、检测单元记录、剩余信

在线检测在线检测记录

检测过程指南息处置记录等

检测实施方案检测单元、检测单元记录、剩余信

现场检测现场检测记录

检测过程指南息处置记录等

检测时间、参与人员、是否启动应

检测结束确认书

急计划等

漏洞列表、版本建议、开发语言建

初步结论/初步风险列表

议等

检测过程、检测初步结论、下一步

会议材料

工作计划等

表4的主要输入文档内容中,省略了如下信息:

a)上一阶段或上一任务输出的内容描述;

b)工作日志、会议纪要;

c)非文档性输入/输出。

9报告总结阶段

9.1报告总结阶段各方职责

检测机构职责:

a)分析并评价检测单元、模块风险等级;

b)关联分析并评价检测对象安全风险;

c)编制并内部评审检测报告;

d)总结检测工作,并提供安全改进建议。

检测委托单位职责:

a)确认检测单元、模块、对象检测结果;

b)审核并签收检测报告;

c)召开总结会议,初步确认安全改进风险点。

9.2报告总结阶段工作流程

12

T/CQCIOXXXX—XXXX

报告总结阶段主要目标是:

a)汇总并分析、评估检测记录,形成检测结论;

b)输出检测报告,并提供安全建议;

c)总结经验。

报告总结阶段包括模块风险判定、整体风险分析、检测报告编制、总结与建议四个主要任务,工作

流程与主要输入/输出见图6。

图6报告总结工作流程与主要输入/输出

9.3报告总结主要工作任务

9.3.1模块风险判定

模块风险判定是根据模块的各单元检测结论,客观、准确地综合判定模块风险,并分析风险的活动,

是后续整体风险分析的基础。判定可全程人工完成,也可借助一定工具辅助。主要工作任务包括:

a)根据模块,汇总检测单元记录、漏洞列表等信息,综合分析模块风险情况;

b)双方确认各模块风险判定结果。

9.3.2整体风险分析

整体风险分析是得出整体检测结论,是检测工作至关重要的活动,风险分析过程宜项目组多访问、

多次进行,必要时,聘请有关专家参与。主要工作任务包括:

a)关联分析风险,最终的整体风险结论与修正后的模块、单元高中低风险结论;

b)确认风险之间依赖、耦合关系,对风险进行必要排序。

9.3.3检测报告编制

根据各类过程文档与检测结论,编制报告,报告格式参见附录G。主要工作任务包括:

a)编制并评审报告;

b)确认报告成果。

9.3.4总结与建议

13

T/CQCIOXXXX—XXXX

根据检测过程与检测报告,总结检测工作,并对安全问题做简要改进建议,主要工作包括:

a)以正式会议形式总结检测过程、检测结论,检测中的重点问题;

b)对检测中必要的问题做改进建议:包括改进顺序、改进依赖、必须改进内容建议等;

c)结束检测活动。

9.4报告总结涉及输入/输出

报告总结阶段主要输入与输出文档如表5所示。

表5报告总结主要输入/输出文档

主要任务主要输入文档主要输出文档输出文档内容框架

检测模块风险等级模块风险名称、风险等级表等

模块风险判定初步风险列表模块风险后果简易说明、安全加固

模块初步安全建议

方法建议等

关联分析记录关联分析过程、关联分析结论等

整体风险分析/高风险分析情况高风险类型、高风险列表等

中低风险分析情况中低风险类型、中低风险列表等

检测报告编制/检测报告参见附录G

会议资料检测报告内容等

总结与建议风险准则

简易改进建议风险排序、改进顺序建议等

表5的主要输入文档内容中,省略了如下信息:

a)上一阶段或上一任务输出的内容描述;

b)会议纪要。

14

T/CQCIOXXXX—XXXX

附录A

(资料性)

软件供应链安全技术检测活动流程

图A.1给出了软件供应链安全技术检测四个阶段涉及的工作活动流程。

图A.1软件供应链安全技术检测活动流程

15

T/CQCIOXXXX—XXXX

附录B

(资料性)

软件供应链技术类安全风险

B.1概述

软件供应链技术类安全风险主要包括软件漏洞、软件后门、恶意篡改、信息泄露等,此外,为完善

技术风险边界,本附件还引入其他风险,为第7章方案编制提供参考。

B.2软件漏洞利用

随着软件的复杂度不断提高,软件产品内部开发过程中产生的以及从上游继承的软件漏洞无法避免,

这些软件漏洞可能被攻击者利用,对软件以及计算机系统造成严重的安全风险。主要包括以下内容:

a)缓冲区溢出

通过用户输入构造命令、数据结构或记录的操作过程中,由于缺乏对用户输入数据的正确验证,导

致未过滤或未正确过滤掉其中的特殊元素,引发的解析或解释方式错误问题。利用“缓冲区溢出”进行攻

击,可以导致程序运行失败、系统关机、重新启动等。

b)代码注入

通过外部输入数据构造代码段的过程中,因未正确过滤其中的特殊元素,导致生成了错误的代码段,

修改了程序预期的执行控制流。攻击者可以使用代码注入来控制应用程序,从而访问敏感信息、更改数

据、破坏系统等。

c)跨站脚本

跨站脚本(简称XSS)攻击是一种网站应用程序的安全漏洞攻击,它允许攻击者在受害者的浏览

器上注入恶意的Web脚本代码,进而获取用户的敏感信息,或者在用户浏览网页时显示恶意内容,甚

至取得用户电脑的控制权限。

d)代码质量

代码质量是指软件代码在设计和实现过程中满足一定的安全性、可靠性、可维护性和可扩展性要求。

对于攻击者而言,低劣的代码使他们可以以意想不到的方式威胁系统。代码质量类问题会造成程序运行

发生不可预知的错误,降低系统的稳定性,严重情况下也会导致系统运行异常,甚至系统崩溃。

e)危险函数

由于API或与外部交互的接口中暴露了原本设计为仅限内部或部分用户访问的危险方法或函数,

导致非授权访问攻击。这些函数可能引发的安全问题包括缓冲区溢出、输入验证失败、格式化字符串攻

击和命令注入等。

f)输入验证错误

因对输入的数据缺少正确的验证而产生的漏洞。利用输入验证漏洞,攻击者可以进行劫持用户浏览

器会话、植入传播恶意代码等网络攻击,可能会造成用户账号被盗取、用户隐私泄露等危害。

g)密码管理

密码管理是指对涉及的凭据、口令以及相关敏感信息的安全处理和保护,这包括使用强口令,密码

16

T/CQCIOXXXX—XXXX

存储安全等。攻击者利用密码管理漏洞攻击,可能导致敏感信息泄漏、数据篡改,系统被破坏等。

h)资源管理错误

此类漏洞指因对系统资源(如内存、磁盘空间、文件、CPU使用率等)的错误管理导致的漏洞。

攻击者可利用漏洞耗尽系统资源,从而导致设备出现意外的重新加载等问题。

i)配置管理

软件配置管理,贯穿于整个软件生命周期,为软件研发提供了一套管理办法和活动原则。不合规的

配置管理可能导致敏感信息泄漏、重要数据丢失等危害。

j)API误用

攻击者利用程序或服务提供的应用程序接口(API)以非预期或恶意的方式进行操作。通常涉及使

用API违反其设计原则和规范,从而实现未经授权的访问、窃取数据或执行其他攻击行为。API误用可

能导致数据泄露、系统破坏或进一步的攻击行为,并给应用程序的安全带来很大风险。

此外,某些开发语言还包含指针问题、异常处理、封装等风险。

B.3软件后门植入

主要包括以下内容:

a)供方预留

供方出于软件维护的目的,在软件产品中预置后门,如果预置后门被泄露,攻击者会通过预置后门

获得软件或操作系统的访问权限;

b)攻击者恶意植入

攻击者入侵软件开发环境,污染软件供应链中的组件,劫持软件交付升级链路,攻击软件运行环境

植入恶意后门,获得软件或操作系统的访问权限。

B.4恶意篡改

主要包括以下内容:

a)恶意代码植入

在需方不知情的情况下,在软件产品或供应链中的组件中植入具有恶意逻辑的可执行文件、代码模

块或代码片段。

b)开发工具植入

使用被恶意篡改的开发工具,导致开发的软件或组件存在恶意代码。

c)供应信息篡改

在供方不知情的情况下,篡改软件供应链上传递的供应信息,如销售信息、商品信息、软件构成信

息等。

B.5信息泄露

17

T/CQCIOXXXX—XXXX

软件供应链信息被有意或无意的泄露,如软件上游供应商、下游需方的信息可能涉及商业秘密,供

应链信息存在被泄露的风险。

B.6供应链劫持

供应链劫持是普遍存在的一种供应链污染,安全风险突出,涉及捆绑恶意代码、下载劫持、网络劫

持、物流链劫持、升级劫持等。

B.7其他风险

由于软件供应链管理过程、内外部人员、软件供应链全球性等特点带来的风险或挑战,例如:

B.7.1开源许可违规使用

主要包括以下内容:

a)无开源许可证

软件产品发布时缺少开源许可证类型,包括但不限于LGPL、GPL、BSD、Apache等许可证。

b)使用不规范

软件产品发布时不符合相应许可协议的规范和要求,包括但不限于没有遵循开源许可证协议,开源

组件修改后许可信息丢失,存在无许可信息的开源片段代码等。

B.7.2假冒伪劣

供方提供未经产品认证、检测的软件或组件,或未按照声明和承诺提供合格的产品。

B.7.3供应中断

主要包括以下内容:

a)突发事件中断

因自然等不可抗力、政治、外交、国际经贸等原因造成上游软件、使用许可、知识产权授权的中断。

b)不正当竞争

软件供方利用需方对产品和服务的依赖,实施不正当竞争或损害用户利益的行为。

B.7.4源代码管理

主要包括以下内容:

a)版本控制

利用源代码文件不同版本的差异性,进行恶意包装,实现对源代码的控制。

b)源代码权限管理

对源代码文件的权限或者安全进行威胁,从而实现源代码泄露或者利用。

18

T/CQCIOXXXX—XXXX

附录C

(资料性)

检测项目授权协议示例

检测委托单位

项目代表人职务电话

检测机构

项目代表人职务电话

今委托_____________________对我公司软件供应链安全实施技术检测,授权

范围仅限于指定范围之内,包括:

1、检测内容仅包含_______业务软件、_______APP涉及的源代码、开源组件、开

发平台、发布平台,检测机构可在此范围内申请查看软件手册、开发手册、源

代码、开源组件查看,具体查看规则另行约定;

2、检测采用自动化结合人工、线上结合线下、静态为主的方法;

3、授权检测时间从______年____月___日开始,至______年____月___日截

委托职权范围止,检测机构应在时间范围内完成工作,具体实施时间协商决定;

4、本次测试授权人员包括:_______________________________________

_________________________________________________________________;

检测委托单位(盖章)检测机构(签字或签章)

注意事项特殊情况下人员、操作时间等变更需提前汇报,并添加授权作为本授权文件附件。

备注本表可扩展或添加附件

19

T/CQCIOXXXX—XXXX

附录D

(资料性)

安全保密协议示例

甲方单位名称:_____________________地址:________________________

乙方单位名称:_____________________地址:________________________

本协议于______年______月______日起生效

根据我国有关网络安全及信息保密相关法律法规,本着平等、自愿、公平、诚信的原则,双方就软

件供应链安全检测事宜及后续合作过程中有关网络安全保密事项达成以下协议,并由双方共同遵守。需

要软件供应链安全检测的一方应为“甲方”,提供软件供应链安全检测服务的一方应为“乙方”。

1、保密内容和范围

甲乙双方确认,乙方承担保密义务的甲方信息包括但不限于以下内容:

(1)技术信息:同甲方业务相关的程序、代码、流程、方法、文档、数据等内容;

(2)业务信息:同甲方业务相关的人员、财务、策略、计划、资源消耗数量、通信流量大小等

业务信息;

(3)安全信息:包括账号、口令、密钥、授权等用于对网络、系统、进程等进行访问的身份与

权限数据,还包括对正当履行自身工作职责所需要的重要、适当和必要的信息。

2、保密义务

2.1乙方明确所接收的保密信息及其载体均为甲方所有。乙方承认甲方在本协议规定的保密信息上的利

益和/或一切有关的权利,乙方应当考虑甲方的利益并对该信息予以妥善保管。

2.2乙方遵守相关法律、法规、政策、规章、制度和协议,基于授权的基础上,合理使用甲方信息,不

得以任何其他手段获取、授权或协议规定以外的甲方信息。

2.3乙方未经授权,不应在工作职责授权范围以外使用、分享甲方信息。未经授权,不得泄露、披露、

转让以下信息:

(1)技术信息:同甲方业务相关的程序、代码、流程、方法、文档、数据等内容;

(2)业务信息:同甲方业务相关的人员、财务、策略、计划、资源消耗数量、通信流量大小等

业务信息;

(3)安全信息:包括账号、口令、密钥、授权等用于对网络、系统、进程等进行访问的身份与

权限数据,还包括对正当履行自身工作职责所需要的重要、适当和必要的信息。

2.4若第三方要求披露甲方敏感信息时,乙方不应响应,并应立刻将情况通告甲方。

2.5乙方对违反协议或可能导致违反协议、规定、规程、法律的活动、策略或实践,一经发现,应立即

通告甲方。

2.6合同结束后,乙方应返还甲方本协议中规定的信息和甲方数据。所有由甲方提供给乙方的材料,包

括但不限于文件、设计和清单应仍为甲方的财产,且甲方要求时应立即归还原件和所有据此制作的

副本。

3、违约责任

20

T/CQCIOXXXX—XXXX

乙方承认并明确同意:其对本协议的任何违约仅有法律的救济尚且不足,并且因其违约行为而造成

的甲方损失是难以用金钱来衡量的。因此,当乙方出现任何违约情形时,甲方有权要求乙方立即返还相

关保密信息,且乙方有义务立即采取合理补救措施。同时,乙方还应赔偿:

(1)因乙方违约行为,而使甲方遭受的全部经济损失(包括直接损失和间接损失);

(2)甲方因调查乙方的违约行为、采取补救措施而支出的所有合理费用(包括但不限于甲方向乙

方及第三方追索、取证、调研而发生的仲裁费、诉讼费、律师费、交通费、劳务费等)。

4、协议有效期

本协议自生效日起年内一直保有完全的效力。本协议有效期内任何时间双方可通过相互同意或向另

一方发出书面通知天后终止协议;但提前终止本协议不应豁免乙方在本协议下就终止生效日前提供给乙

方保密信息所应履行的义务。

5、如果所涉及的保密信息依照国家主管机关或相关法律法规另有规定的,适用其相关规定。

甲方签字(盖章)乙方签字(盖章)

年月日年月日

21

T/CQCIOXXXX—XXXX

附录E

(资料性)

软件供应链安全检测方案示例

E.1概述

本附录给出了第7章软件供应链安全检测方案简要示例,包含正文和附件的要素信息。

E.2正文

E.2.1项目概述

项目概述包含但不限于:

a)项目背景

b)项目目标

c)项目依据

d)项目范围

E.2.2检测对象信息

检测对象信息包括但不限于:

a)软件或APP情况

b)开源组件清单

c)自建代码统计

d)上次检测主要问题

e)上次检测整改情况

E.2.3检测流程

检测流程主要包括检测涉及主要工作,包括但不限于:

a)检测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论