《安全软件开发框架(SSDF) 1.1:降低软件漏洞风险的建议》解读(一)

news2024/9/20 5:31:20

安全软件开发框架SSDF是由美国国家标准与技术研究院发布的关于安全软件开发的一组实践,帮助开发组织减少发布的软件中的漏洞数量,减少利用未检测到或未解决的漏洞的潜在影响,从根本上解决漏洞防止再次发生。本文根据《Secure Software Development Framework (SSDF) Version 1.1:Recommendations for Mitigating the Risk of Software Vulnerabilities》文档翻译整理,本文是第一部分。 

软件开发生命周期(SDLC)指的是是用于设计、创建和维护软件(包括嵌入式软件)的正式或非正式方法。SDLC有许多模型,像瀑布模型、螺旋模型、敏捷模型等,最典型的是结合了软件开发和运营实践的敏捷模型(DevOps)。很少有SDLC模型能够明确详细地解决软件安全性问题,通常需要在每个SDLC模型中去添加安全软件开发的实践。无论使用哪种SDLC模型,都应该将安全软件开发实践集成到整个过程中,原因有三:减少发布的软件中的漏洞数量,减少利用未检测到或未解决的漏洞的潜在影响,以及解决漏洞的根本原因以防止再次发生。漏洞不仅包括编码缺陷导致的bug,还包括安全配置的设置、不正确的信任假设(trust assumptions)和过时的风险分析导致的脆弱点。

在SDLC中,大部分安全问题可以被多次解决,但是越早解决,所需的工作的成本会越少。左移非常重要,可以最大限度地减少在开发后期或软件投入生产补救早期安全缺陷的技术债务。左移也可以使软件具有更强的安全性和弹性。

许多关于安全软件开发实践的现有文档,包括参考资料一节中列出的那些。本文档并不是介绍新的实践或定义新的术语,介绍的是基于已建立的标准、指南和安全软件开发实践文档基础上的的高级实践。这些实践统称为安全软件开发框架(SSDF),旨在帮助目标受众实现安全软件开发目标。这其中一些实践直接涉及软件本身,而其他的则间接涉及软件(例如,保护开发环境)。

未来可能还会做进一步的拓展,如SSDF如何适用于特定的软件开发方法和相关实践(如DevOps ),一个组织如何从其当前的软件开发实践过渡到合并SSDF实践,以及SSDF如何应用于开源软件环境中。未来的很可能会采取用例的形式,这样会更容易适用于特定类型的开发环境,也很可能会增强与开源社区和其他团体和组织的协作。

本文档确定了安全软件开发实践,并没有对如何实现做相关规定。重点是要实现的结果,而不是用来实现的工具、技术和机制。这有以下几点优点:

1、任何行业或团体的组织都可以使用,无论其规模或网络安全复杂程度如何;

2、可应用于信息技术(IT)、工业控制系统(ICS)、信息物理系统(CPS)或物联网(IoT)等领域的软件;

3、可以集成到任何现有的软件开发工作流程和自动化工具链中;不会对已经有了可靠的安全软件开发实践的组织产生负面影响;

4、使实践广泛适用,而不是特定于特定的技术、平台、编程语言、SDLC模型、开发环境、操作环境、工具等;

5、可以帮助组织记录其当前的安全软件开发实践,将未来的目标实践定义为持续改进过程的一部分;

6、可以帮助当前使用经典软件开发模型的组织将其安全软件开发实践转变为使用现代软件开发模型(例如,敏捷、开发运维);

7、可以帮助采购和使用软件的组织了解其供应商所采用的安全软件开发实践。

本文档提供了描述基本安全软件的通用语言。这与《改善关键基础设施网络安全框架》(也称为NISTCybersecurity Framework[NISTCSF])所采取的方法类似,不需要安全软件开发方面的专业知识来理解这些做法。通用语言有助于促进内部和外部组织相关角色之间关于软件安全实践的沟通,例如:

1、老板、软件开发人员、项目经理和领导、网络安全专业人员以及组织内的运营和平台工程师,他们需要针对安全软件开发进行明确的沟通;

2、软件购买者,包括政府或其他组织,希望在其采购过程中能够明确他们需要的软件的特征以及他们对软件的期望,以获得更高质量的软件(尤其是具有较少严重安全漏洞的软件);

3、软件生产商(例如,商业现货产品供应商、政府现货软件开发商、外包软件开发商),希望将安全软件开发实践集成到他们的SDLC中,向客户表达他们的安全软件实践,或明确供应商的要求。

本文件的实践不是以所有组织都有相同的安全目标和优先级为前提。相反,这些建议反映了每个软件生产商可能有独特的安全要求,每个软件收购商可能有不同的安全需求和要求。虽然目标是让每个软件生产商遵循所有适用的实践,但实施程度和实施的形式根据生产商安全要求的差异而有所不同。这些实践虽然很灵活,但是它们也是清晰的,以避免留下太多的解释空间。

这些实践中的大多数与所有软件开发工作都相关,但并不是所有。例如,如果开发一个特定的软件不涉及使用编译器,那么就不需要遵循配置编译器提高安全性的实践。一些实践是基础性的,而另一些则更先进,依赖于已经存在的某些基础实践。此外,实践并非对所有情况都同等重要。

在决定使用哪些实践以及为每个实践投入多少时间和资源时,应考虑风险、成本、可行性和适用性等因素。自动化也是一个需要重点考虑的因素,尤其是在大规模实施实践时。实践、任务和实现示例都是在一开始需要优先考虑的。实践规定的频率都是概念性的,SSDF的目的不是创建一个检查表,而是为规划和实施基于风险的方法和采用安全软件开发实践提供基础。

安全实践的实施可以基于软件和服务(例如,基础设施即服务、软件即服务、平台即服务、容器即服务、无服务器)的交付,在不同组织之间合理分配。在这些情况下,它可能遵循涉及平台/服务提供商和使用这些平台/服务的租户组织的共享责任模型。租户组织应与供应商签订协议,规定每一方负责的实践和任务,以及每个供应商如何证明其遵守协议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

异步的终极方案Async-Await 和Generator

Async-Await 基本介绍 之前解决异步我们一直使用Promise的.then()方案,虽然解决了回调地狱的情况,但使用链式写法也并不特别优雅。比如看下面的代码。 所以就出现了一种号称异步的终极方案Async、Await。我们看他的定义 async 函数是使用async关键字…

手枪钻改台钻(3D打印)

所需工具: 1、3D模型打印; 2、手枪钻; 首先在SOLIDWORKS里面新建一个电钻夹的模型: 第二步导出“STL”文件: 第三步将"STL"文件导入到3D切片工具 Cura_15.02.1 里面进行切片: 第四步导出“g-…

显示器方案

概述: USB HUB连接Host与Device之间,可以扩展出多个USB设备接口,使得一个Host能同时与多个Device进行数据连接。 注:普遍而言,一颗HUB扩展芯片可扩展4个USB下行接口,市面上1 to 7的HUB,一般使用…

【Python实训项目】pygame制作【飞机大战】

目录 一、课程设计目的及应用背景 二、课程设计内容 三、课程设计代码实现 1. 创建子弹类 2.创建玩家飞机类 3. 创建敌机类 4.检查键盘输入 5.创建主模块 四、测试结果 五、思考、心得和改进以及不明白的问题 附录 所有代码如下: 一、课程设计目的及应用背景 根据课…

网联V2X视频事件检测相机使用说明书

1 产品概览 网联 V2X视频事件检测相机 视频事件检测相机 ,内置 1/1.8″逐行扫描 800万像素传感器;视 万像素传感器;视 频编码协议支持 H.265、H.264、MJPEG;具有 1个 10M/100M/1000M自适应以 太网 RJ45接口、 1路 RS485接口&#…

Bash中的eval命令

主要参考:What is the “eval” command in bash 简而言之,它让一个输入行被解析两次。 它是如何做到这一点的? shell有一系列步骤来解析一行命令。 shell读取它的输入shell将输入放入token:分为运算符和单词The shell parses the input i…

Boundary Smoothing for Named Entity Recognition

原文链接:https://aclanthology.org/2022.acl-long.490.pdf ACL 2022 介绍 问题 作者认为在命名实体任务中,由于实体的边界标注存在模糊、不一致的情况,比如一些实体中的冠词和修饰词。如下图所示中蓝色框和红色框中的内容都可以被认为是同一…

静态断言 static_assert

文章链接: https://subingwen.cn/cpp/static_assert/ 1. 断言 断言(assertion)是一种编程中常用的手段。在通常情况下,断言就是将一个返回值总是需要为真的判断表达式放在语句中,用于排除在设计的逻辑上不应该产生的情况。 比如…

NeurIPS 2022 | UniAD,一个模型解决所有类别的异常检测!代码已开源

paper:A Unified Model for Multi-class Anomaly Detection,Accepted by NeurIPS 2022. GitHub - zhiyuanyou/UniAD: [NeurIPS 2022] A Unified Model for Multi-class Anomaly Detection Introduction 异常检测已经取得了非常突出的进展。考虑到异常…

测试流程实战

目录: 测试流程梳理业务架构分析实战测试用例管理实战Bug 录入与管理实战如何写 Bug 报告编写 Bug 报告 1.测试流程梳理 2.业务架构分析实战 使用 plantuml 完成雪球 app 登录流程时序图plantuml 官网:使用简单的文字描述画UML图的开源工具。plantuml…

智云通CRM:电子元器件企业优化客户管理的智慧选择

在电子元器件行业,客户管理一直是企业发展的关键所在。如何高效地管理客户,提升销售业绩成为电子元器件企业亟需解决的问题。而智云通CRM作为一款专为企业客户管理和销售管理而生的软件,正成为电子元器件企业优化客户管理的智慧选择。 首先…

vue基础语法

目录 1:vue基础语法 2:内容渲染指令(操作标签体中的内容) 2.1:v-text指令 2.2:插值语法{{}}语法: 2.3:v-html指令 3:属性绑定指令 4:事件绑定&#xf…

我的大模型观:我眼中的LLM和AIGC

今年,大模型火的一塌糊涂。最近几个月paper with code上,前几名的论文几乎都是生成模型和LLM。参加AI相关的会议,也是千篇一律的LLM。国内的大厂争先恐后的发布自己的大模型,比如百度的文心、360的智脑、讯飞的星火等等&#xff0…

代码随想录算法训练营第三天 | 链表基础系列1-- 链表理论基础-移除链表元素-设计链表-反转链表(203、707、206)

链表基础系列1 链表基础移除链表元素203 移除链表元素代码随想录的代码 707 设计链表我的代码(错误太多,一致debug,没有用虚拟头,不想写了,是未通过的代码)代码随想录的代码小记:双链表好复杂,要仔细看。 2…

【狂神】MySQL - Delete 和 Truncate 的区别

1. DELETE 命令 语法 : delete from 表名 [where 条件] -- 删除数据 (避免这样写, 会全部删除) DELETE FROM student;-- 删除指定数据 DELETE FROM student WHERE id 1; 2. TRUNCATE 命令 作用 : 完全清空一个数据库表, 表的结构和索引约束不会变. -- 清空 stu…

【Linux】LVS+Keepalived高可用负载均衡群集

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 LVSKeepalived高可用负载均衡群集 一、Keepalived实现原理1.Keepalived案例分析2.Keepalived工具介绍3,Keepalived实现原理剖析4.Keepalived案例讲解5.Keepalived…

自媒体新手如何从零开始做自媒体?有哪些步骤流程?

自媒体已经成为了一种非常流行的个人创业方式,相比于传统的创业方式,自媒体的投入成本较低,且门槛较低。许多人都有一个梦想,希望成为一个自媒体人,成为自己的老板。但是,对于很多自媒体小白来说&#xff0…

基于Springboot+mybatis+mysql+vue实现企业注册模块功能

基于Springbootmybatismysqlvue实现企业注册模块功能 一、系统介绍二、功能展示1.主页面2.注册成功 三、数据库四、代码展示四、其他系统实现五、获取源码 一、系统介绍 该系统实现简单的企业信息注册,保存后,提示注册成功。 运行环境:idea…

IP 协议(网络层协议)

IP协议 IP 协议作用地址管理动态分配 IP 地址NAT 机制IPv6IP 地址的组成 路由选择 IP 协议作用 主要有两点 : 地址管理 为每个上网的设备分配一个唯一地址. 路由选择 两台主机间的信息交互, 具体走哪条线路. 地址管理 先来看看 IP协议 报文格式 : IP 协议最主要就是 32 位的…

2.9寸NFC卡片

应用广泛 无需电池 可挂、可横向/纵向摆放,适合多种场所 使用2.9寸电子纸墨水屏,持续显示不耗电 本产品无电池,节能环保,助力实现碳中和 ​ 基于电子纸墨水屏作为显示屏,符合当下节能环保、护眼的需求。质地轻薄、大…