T/CECC 005-2020 软件代码开源成分与安全检测指南.pdf

T/CECC 005-2020 软件代码开源成分与安全检测指南.pdf
仅供个人学习
反馈
标准编号:
文件类型:.pdf
资源大小:0.4 M
标准类别:电力标准
资源ID:49667
免费资源

标准规范下载简介

T/CECC 005-2020 软件代码开源成分与安全检测指南.pdf简介:

"CECC 005-2020 软件代码开源成分与安全检测指南"(T代表技术标准或规范)是一份由中国电子标准化研究院(CECS)发布的专业标准。这份指南的主要目的是为了提供软件开发过程中的指导,特别是在处理开源代码的使用和安全方面。它详细规定了对开源代码的识别、评估、管理和安全检测的方法,以确保软件产品的质量和安全性。

该标准可能涵盖了开源代码的合规性检查、潜在风险分析、版本管理和更新策略、版权与许可问题、安全漏洞检测以及如何在软件开发中适当地集成和管理开源组件等关键内容。它旨在帮助开发者在充分利用开源资源提升软件功能的同时,有效防止和管理潜在的安全风险,符合国家和行业的相关法规要求。

总的来说,这份指南对于软件开发团队在开源代码的使用和管理中,提升代码质量、保障软件安全和合规性具有重要的参考价值。

T/CECC 005-2020 软件代码开源成分与安全检测指南.pdf部分内容预览:

软件代码中引用了开源项目的源代码、二进制文件或存在引用依赖关系的代码成分。 3.3开源许可证Opensourcelicense

3.3开源许可证Opensourcelicense

《加氢站安全技术规范 GB/T34584-2017》源软件的作者对用户使用其开源软件的法律许

在同一个或者多个不同的源个 全相同或者非常相似的代码段 或代码文件,引入此类代码文件和代码段或其 1用的操作即称为克隆

3.5知识库Knowledgedatabase

一种存储特定领域数据的数据库或数据表。

软件代码开源成分与安全检测(以下简称“开源检测”)的目的是通过检测分析出软件 (含软硬件结合设备)源代码中开源代码成分的构成情况、开源代码成分对应的已知安全漏 同信息、开源代码带来的软件许可证风险信息。从而提高对软件项目开源代码构成成分与安 全风险信息的掌握,规避开源安全风险

开源检测分为自主检测和第三方检测两个场景。自主检测由项目成员自发开展,通过检 则提高软件安全性,发现风险和预防安全问题发生。自主检测可参考本指南,流程上可适当 裁剪(如签署保密协议、项目背景调研、熟悉代码、检测入场、信息调研等)。第三方检测 由第三方检测机构进行,一般具有专业性(部分可能存在强制性),流程上建议完全参照本 指南。在进行第三方检测前需进行较多准备工作(如签署保密协议、项目背景调研、熟悉代 码、检测入场、信息调研等)。检测工作应于项目验收之前开展。由于第三方检测涉及较多 外部因素,进行检测前应提前通知项目成员,降低检测工作延期风险。在项目代码发生重要 变更后,应根据情况重新进行检测

检测人员应依次进行检测准备、检测实施、反馈跟踪工作。检测人员应具备代码安全与 软件测试的专业知识,熟悉使用开源成分与安全检测工具;具备客观反映代码问题的工作素 质:对项目代码严格保密。

开展检测首先需要制订并遵循检测条款(内容与条款可参见第6、7、8章节)。检测条 款应包括但不限于成分信息检测条款、漏洞信息检测条款、许可证信息检测条款3个方面的 具体条款。其中,成分信息检测条款3条;漏洞信息检测条款3条;许可证信息检测条款3 条,总计9条检测条款。检测时可根据被检测的具体对象及应用场景对上述各条款进行调整 制定。

开源检测过程包括工具扫描和人工核实两个步骤,实现对待测条款的逐一检测,所有检 测条款均检测完毕并输出检测结果则视为检测完成。检测条款应根据项目实际情况进行调整 以提高检测质量。 由于开源检测需要海量开源数据知识库做支撑,因此需要借助工具检测。同时,工具检 则结果存在一定误报现象,需要人工参与审核。开源检测应将人工核实与工具检测相结合进 行检测工作,采用专业开源检测工具对代码进行检测,形成检测报告。对于检测工具的检测 结果中的误报问题,由检测人员人工进行审核。对于漏报问题应使用不同检测工具进行多次 检测,以减少漏报

5.2.4检测条款制定

通过明确检测目的、背景调研、熟悉代码等工作,定义开源检测关键内容,制定开源检 测检测条款(内容与条款可参见第6、7、8章节)

5.2.5检测环境准备

开源安全检测应在封闭的网络环境(内网环境)开展工作。参与检测工作的服务器、计 算机、笔记本以及其他软硬件设备等不能与外部网络互联,以确保软件源代码安全,防范源 代码泄露风险

检测人员和项目成员应于检测实施前进行检测入场工作。由检测人员对检测的检测目标 测方法、检测过程进行介绍。由项目成员对项目状态、项目团队构成、项目背景、项目功 能结构等进行介绍

通过项目成员访谈等方式获得项目代码、项目文档、以及其它项目相关信息。了解项目 代码业务逻辑。调研了解项目的已知开源成分引用情况。

根据代码开源成分与安全检测条款内容,可借助工具实现高效检测。检测工具应包括如 下功能:项目基础信息检测、项目开源成分(又称克隆检测)检测、开源项目溯源检测、开 原代码漏洞检测、开源许可证侵权检测等。 注:常用的检测工具包括B1ackDuck、FOSSID、棱镜七彩开源安全检测平台等,宜选择支持私有云部 督或本地部署的检测工具。

5. 3.4 人工核实

工具检测完成后,由人工对工具检测的结果一一进行核实,对于工具检测的误报与漏报 结果应予以记录。

7对项目成员介绍初始检测结果,并由项目成员对检测偏离项进行解释说明,并提供其它 相关信息,形成检测报告。检测报告包括检测的总体描述、改进建议、检测结论等内容,并 对可能产生的安全风险进行高、中、低分类描述。检测结论给出每条检测条款的检测结果描 述。检测报告应明确列明使用的检测工具及其版本信息。

由项目成员对检测出的问题组织召开评审会进行结果处置。对于可以修复的风险问题, 对代码变更和相关解释说明进行记录存档。对于变更后的项目代码,应再次进行检测并重新 出具检测报告以确保问题得到解决。对于暂时无法修复的风险问题,应有相应的解释说明未 修复原因,并可采取其他方法进行风险规避。对于未修复的风险,也可采取持续风险监督, 保持风险跟踪,

6.1项目基本信息检测

通过对项目基础信息检测, 项目,使项目新介入者或第 方检测者更快速的了解项目基本情况, 为后续全面的检测工作做好基础和铺垫。

项目基本信息检测:即对软件源代码工程中所包含的所有基础信息进行检测。项目基本 言息检测文件类型格式(如.c/.java/.cpp/.dl1/.txt/.php)及分布情况、文件的数量个数、 文件的存储容量、文件所使用的编程语言等。

6.1.3检测输出结果

项目基本信息检测输出结果宜包括但不限于工程文件中所包含的文件类型格式 (如.c/.java/.cpp/.dl1/.txt/.php)及分布情况、文件的数量个数、文件的存储容量、文 生所使用的编程语言及分布情况、源代码的行数统计等

6.1.4检测必要条件

检测工具宜具备文件系统扫描相关技术。

6.1. 5 检测方法

通过人工或工具方式,宜从文件类型格式及分布情况、文件的数量个数、文件的存储容 量、文件所使用的编程语言及分布情况、源代码的行数等维度,分别对软件工程文件进行分 析,并对分析结果进行归纳统计。

6.2开源代码成分检测

提供客观依据。为后续开源代码漏洞检测、开源许可证风险检测提供基础数据,从而降低信 息安全风险。

开源代码成分检测:即在软件工程的代码文件中,有效检测识别出与开源项目高度相似 的文件或代码片段,将其认定为开源代码成分

6.2.3检测输出结果

开源代码成分检测输出结果宜包括但不限于: a)软件工程中所有文件数量; b)软件工程中被认定为开源成分的文件数量; c)开源成分占总文件数量的比例情况; d)与开源项目文本相似的文件信息。包括文件名称,开源项目的文件名称、两文件彼 比的相似度并高亮展示相似片段; e)与开源项目结构相似的文件信息。包括文件名称,开源项目的文件名称、两文件彼 比的相似度并高亮展示相似片段; f)与开源项目代码片段相似的文件信息。包括文件名称,开源项目的文件名称、两文 件彼此的相似度并高亮展示相似片段

6.2.4检测必要条件

检测工具宜具备开源代码知识库并满足以下要求: a)收录主流国内外开源社区或网站; b)开源代码知识库宜经常保持更新,保证源代码库的时效性; c)宜包含目前主流编程语言

通过工具和人工相结合的方式,将软件工程中的所有文件逐一与开源代码知识库中的文 件进行文本比对、文件结构比对、代码片段比对,从而识别检测出与开源项目高度文本相似、 结构相似及代码片段相似的文件和代码片段。 检测工具宜运用代码相似度检测技术,对如下情况具备检测识别能力: a)对开源代码修改函数名、变量名、头文件等; b)对开源代码,新增、删除部分代码片段; c)对开源代码,扰乱了代码片段或函数的文本顺序; d)新增、删除或者修改了大量代码注释; e)新增、删除换行符、空格符等

6.3代码溯源信息检测

通过对源代码溯源信息的检测,检测识别软件工程中开源成分的详细信息,为开源代码 成分分析、开源代码漏洞分析、开源许可证风险分析、开源成分供应链组织风险分析提供补 充数据,从而提高分析质量、效率、全面性。

代码溯源信息检测宜对如下信息进行检测: a)源代码溯源信息:即在软件工程的代码文件中,有效检测识别出项目中所包含的所 有代码格式为源代码的开源项目的详细信息; b)二进制组件溯源信息:即在软件工程的代码文件中DGJ32T J131-2011标准下载,有效检测识别出项目中所包含 的所有代码格式为二进制代码的开源项目的详细信息; c)引用依赖溯源信息:即在软件工程的代码文件中,有效检测识别出项目中所引用依 赖的开源项目的详细信息。

6.3.3检测输出结果

代码溯源信息检测宜包含如下检测输出结果: a)源代码溯源信息:宜包括但不限于溯源项目名称、创建时间、代码托管地址、项目 描述、许可证名称、最新版本号、文件匹配数、有效文件数、匹配文件名称、开源社区所属 国家、项目主要贡献者及其国籍: b)二进制组件溯源信息:宜包括但不限于二进制组件名称、创建时间、组件描述、开 源社区所属国家、项目主要贡献者及其国籍等; c)引用依赖溯源信息:宜包括但不限于项目中引用的开源项目的项目文件名称、项目 文件路径、项目版本号、开源社区所属国家、项目主要贡献者及其国籍等。

6.3.4检测必要条件

《视频显示系统工程测量规范 GB/T 50525-2010》检测工具宜具备开源代码知识库并满足以下要求: a)开源代码知识库数据:包含但不限于每个开源项目的项目名称、创建时间、代码托 管地址、项目描述、项目热度、项目版本号、开源社区所属国家、项目主要贡献者及其国籍; b)开源代码知识库宜具备开源二进制组件信息数据; c)其它开源代码知识库要求与【6.2.4】所述相同

6. 3.5 检测方法

运用将项目代码与开源项目相匹配的匹配检测技术,与开源代码知识库中的开源项目进 行匹配,检测出项目所包含的开源项目和所依赖的开源项目,提取出其中的详细信息。 匹配检测技术宜对如下情况具备检测识别能力: a)可以文件为粒度进行匹配检测; b)可以文件结构为粒度进行匹配检测; c)可以代码片段为粒度进行检测; d)可以追溯代码中引用依赖的开源项目

©版权声明
相关文章