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

news2024/11/24 10:27:20

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

实践1(保护软件)任务概念实现参考示例参考
保护所有形式的代码免受未经授权的访问和篡改(PS.1): 有助于防止对代码的未经授权更改(无论是无意还是有意)。未经授权的访问和篡改可能会导致违背软件预期安全特性的事情发生。对于不打算公开访问的代码,这有助于防止软件被盗,增加攻击者发现软件中漏洞的难度和耗时。PS.1.1:基于最低权限原则存储所有形式的代码(包括源代码、可执行代码和配置为代码),以便只有授权人员、工具、服务等才能访问。示例1:将所有源代码和配置代码存储在代码库中,并根据代码的性质限制对它的访问。例如,用于公共访问的开源代码可能需要保护其完整性和可用性;其他代码也可能需要保密保护。 示例2:使用存储库的版本控制功能来跟踪对代码所做的所有更改,并对单个帐户负责。 示例3:对代码库使用提交签名。 示例4:让代码所有者审查和批准其他人对代码所做的所有更改。 示例5:使用代码签名帮助保护可执行文件的完整性。 示例6:使用加密(例如,哈希密码)来帮助保护文件完整性。不一一展示,需要原文件可私信我获取
实践2(保护软件)任务概念实现参考示例参考
提供验证软件发布完整性的机制(PS.2): 帮助软件购买者确保他们购买的软件是合法的,没有被篡改。PS.2.1:向软件购买者提供软件完整性验证信息。示例1:在安全良好的网站上发布发布文件的哈希密码。 示例2:使用成熟证书颁发机构进行代码签名,以便消费者的操作系统或其他工具和服务可以在使用前确认签名的有效性。 示例3:定期检查代码签名过程,包括证书更新、轮换、吊销和保护。不一一展示,需要原文件可私信我获取
实践3(保护软件)任务概念实现参考示例参考
归档和保护每个软件版本(PS.3): 保留软件版本,以帮助识别、分析和消除发布后软件中发现的漏洞。PS.3.1:安全地归档每个软件版本所需的文件和支持数据(如完整性验证信息、来源数据)。示例1:按照组织的既定策略将发布文件、相关图像等存储在存储库中。只允许必要人员对其进行只读访问,其他人不得访问。 示例2:存储Protect Release完整性验证信息和来源数据,例如将其保存在与发布文件分开的位置或对数据进行签名。不一一展示,需要原文件可私信我获取
PS.3.2:收集、保护、维护和共享每个软件版本的所有组件的来源数据(例如,在软件材料清单[SBOM]中)。示例1:根据组织的政策,最好使用基于标准的格式,向软件收购方提供来源数据。 示例2:向组织的运营和响应团队提供来源数据,以帮助他们减少软件漏洞。 示例3:保护源数据的完整性,并为接收者提供验证源数据完整性的方法。 示例4:每次更新软件的任何组件时都更新源数据。

以上是安全软件开发框架(SSDF)1.1版本中的软件保护部分的全部内容,后面会继续为大家整理可靠软件生产部分和漏洞响应部分,欢迎大家继续关注。

(谢绝转载,更多内容可查看我的主页)

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

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

相关文章

防火墙基本原理详解

概要 防火墙是可信和不可信网络之间的一道屏障,通常用在LAN和WAN之间。它通常放置在转发路径中,目的是让所有数据包都必须由防火墙检查,然后根据策略来决定是丢弃或允许这些数据包通过。例如: 如上图,LAN有一台主机和一…

【业务功能篇38】上篇:Springboot+activiti7 工作流引擎 增加网关组件、Assignment分配权限

在前面的一篇文章中,简单举例了一个 工单电子流,【业务功能篇36】Springbootactiviti7 工作流引擎_studyday1的博客-CSDN博客仅有一个子任务,这种一般是针对比较简单的一个遗留问题记录场景,今天再介绍一个,相对比较复…

为什么放弃Java后,没有使用Kotlin,新的开发语言正在席卷而来

放弃Java后,没有使用Kotlin 从 Java 到Kotlin,Kotlin作为Android官方支持语言,获得了更多的关注和采用! 这几年,Kotlin的发展势头很猛,可以说由 Java 转 Kotlin 早已势不可挡。 那么Kotlin有哪些优势可以…

AI视觉赢未来|深眸科技出席元宇宙装备展,“智与质”实现双重升级

6月29日,2023昆山元宇宙国际装备展在昆山国际会展中心圆满落幕,此次展会不仅为我们呈现最先进的元宇宙装备、最前沿的元宇宙技术、最潮流的元宇宙应用,还为工业元宇宙的发展蓄势赋能。 浙江深眸科技有限公司(以下简称深眸科技&am…

数据太大了?快来试试这款地理空间数据云管理平台

四维轻云是一款网页版地理空间数据云管理平台,用户能够在线管理、浏览及分享倾斜模型(.osgb)、激光点云(.las)、正射影像(dom)、数字高程模型(dem)等数据。目前,平台具有数据管理、场景编辑、空间测量、团队协作、加密分享、素材库等功能。 项目管理 四…

【Linux】什么是文件系统及inode?如何创建软硬链接?软硬链接有什么作用?

inode软硬链接创建软硬链接理解硬链接理解软链接 inode 了解一下文件系统: Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被 划分为一个个的block。…

【Qt】程序异常结束。The process was ended forcefully.(解决方法不一样哦)

环境 系统:win10 64bit Qt:5.14.1 编译器:MinGW 32-bit 问题 Qt工程编译正常,但无法调试,报错:程序异常结束。The process was ended forcefully. 步骤 已尝试网上方法仍然不行的,可以直接…

为什么JDK动态代理只能代理接口?

在Java中,动态代理是一种机制,允许在运行时动态地创建代理对象来代替某个实际对象,从而在其前后执行额外的逻辑。 为什么JDK动态代理只能代理接口实现类,原因是JDK动态代理是基于接口实现的。 当你使用Proxy类创建代理对象时&am…

第一章:Linux常用命令+VIM+SSH介绍+SSH密钥登录

目录 一、Linux常用命令 1)# 与 $ 提示的区别 2)ifconfig 3) su 4) cd 5) 目录查看 6) 查看文件内容 7)创建目录及文件 8)复制和移动 9)其他 10) …

Git 上传Github 超时问题

提交代码到GitHub总是超时,偶尔会直接上传成功。 提供一下解决方案 1.首先找到网络 2. 找到代理 3. 把自动检查设置全部关闭,然后打开手动设置代理,然后输入ip地址和你代理的端口号,保存即可。 4. 最后使用git push origin mast…

多边形偏移算法【Polygon Offsetting】

在本教程中,我们将描述一种膨胀或收缩多边形的算法。 推荐:用 NSDT设计器 快速搭建可编程3D场景。 1、一般形式的同调 为了简单起见,让我们从一个形状开始,一个正方形。 我们可能熟悉通过放大或缩小形状来缩放形状的想法。 从技术…

Jmeter实现生成全局参数-随机数

我在做项目的过程中,用的比较多的是【前置处理中】-用户参数 步骤一:添加参数处理器 步骤二:填写项目中可能会用到的一些参数(固定的或者随机的都可以) teacher_name${__RandomString(1,赵钱孙李周吴郑王冯陈褚卫蒋沈…

Python指定函数参数和返回值的类型

先看一个简单的示例: # name指定为str类型,返回值为str类型 def greeting(name: str) -> str:return hello: nameif __name__ __main__:print(函数参数类型、返回值类型基本使用)s greeting(张三)print(s)try:s greeting(123) # 可以传递其他类…

学习网页设计html个人总结

学习网页设计html个人总结篇一 我在网上进行的逻辑教学工作已经完成了,闲暇无事之余,便想将个人的主页——《思东书屋》重新进行一下规划和设计,为此购买了几本有关网页设计和制作的书籍,开始学习网页的基本语言HTML。尽管网页制作…

postgresql 数据库 索引 介绍

postgresql 数据库 索引 介绍 文章目录 postgresql 数据库 索引 介绍前言一 什么是索引?二 简介三 索引的种类B-treeHash索引GiST索引GIN 索引BRIN 索引SP-GiST索引 CREATE INDEX1.大纲2.描述3. 参数UNIQUECONCURRENTLYIF NOT EXISTSINCLUDEnameONLYmethodcolumn_na…

Mysql之账号管理、建库以及四大引擎详解

目录 一、MySql数据库引擎 1.1 什么是数据库引擎? 1.2 MySQL常见数据库引擎 1.2.1.InnoDB(MySQL默认引擎) 1.2.2.MyISAM 1.2.3.MEMORY(Heap) 1.3 存储引擎查看 二、建库 2.1.默认数据库介绍 2.2.建库 2.3.查看数据库 2.4.删除数…

【嵌入式Qt开发入门】如何使用Qt进行文本读写——QFile读写文本

在很多时候我们需要读写文本文件进行读写,比如写个 Mp3 音乐播放器需要读 Mp3 歌词里的文本,比如修改了一个 txt 文件后保存,就需要对这个文件进行读写操作。本文介绍简单的文本文件读写,内容精简,让大家了解文本读写的…

linux 内核的学习

一、启动流程 二、进程调度 进程 进程控制块(pid)结构体 重要的信息 进程标识符 pid 状态:任务状态 优先级:相对其他进程 程序计数器:程序中即将被执行的下一条指令的地址 内存指针:包括程序代码…

echarts 柱状体点击空白处

点击红框里的空白区域: 再data里定义的idlist变量:idList: [800, 300, 500, 400, 800, 300, 500, 400, 800, 300, 500, 400, 800, 300,500, 400, 800, 300, 500, 400,]//以下是js代码var chartDom document.getElementById(echartsOne)this.myChart echarts.init…

数据产品经理的职业发展机会

在当今的数字时代,数据产品经理已成为许多企业中不可或缺的角色。随着越来越多的企业开始将数据应用于业务决策和产品开发中,数据产品经理的需求也不断增加。因此,学习成为一名数据产品经理成为了许多人的热门选择。下面说一说关于如何学习数…