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

news2024/11/25 6:16:59

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

 

实践5(生产安全可靠的软件)任务概念实现参考示例参考
遵守安全编码实践创建源代码(PW.5): 减少软件中的安全漏洞数量,并通过最大限度地减少源代码创建过程中引入的符合或超过组织定义的漏洞严重性标准的漏洞来降低成本。PW.5.1:遵循适合开发语言和环境的所有安全编码实践,以满足组织的要求。示例1:验证所有输入,对所有输出进行验证和正确编码。


示例2:避免使用不安全的函数和调用。


示例3:检测错误,并妥善处理。


示例4:提供日志记录和跟踪功能。


示例5:使用具有自动化功能的开发环境,开发环境应该鼓励或要求使用实时的、培训到位的安全编码实践。


示例6:当自动化方法不足或不可用时,手动遵循确保遵守安全编码实践的程序。


示例7:使用工具(例如,linters、formatters)来标准化源代码的样式和格式。


示例8:检查开发语言和环境中常见的其他漏洞。


示例9:让开发人员审查自己的人类可读代码(human-readable code),以补充(非取代)其他人或工具执行的代码审查。参见PW.7。
不一一展示,需要原文件可私信我获取
PW.5.2:移至PW.5.1作为示例
实践6(生产安全可靠的软件)任务概念实现参考示例参考
配置编译、解释器和构建过程以提高可执行文件的安全性(PW.6): 通过在测试之前消除漏洞,减少软件中的安全漏洞数量并降低成本。PW.6.1:使用编译器、解释器和构建工具,些工具可以提供提高可执行文件安全性的功能。示例1:使用最新版本的编译器、解释器和构建工具。

示例2:在部署或更新编译器、解释器和构建工具时,遵循更改管理流程,并审核工具的所有意外变更。


示例3:定期验证编译器、解释器和构建工具的真实性和完整性。参见PO.3。
不一一展示,需要原文件可私信我获取
PW.6.2:确定应使用哪种编译器、解释器和构建工具功能,以及应如何配置每种功能,然后实施和使用批准的配置。示例1:启用编译器功能,这些功能会在编译过程中对安全性较差的代码发出警告。

示例2:实现“干净构建”理念,将所有编译器警告视为错误并消除,被确定为误报或无关的警告除外。


示例3:在一个专用的、高度受控的构建环境中执行所有的构建。


示例4:启用使执行特征随机化或模糊化的编译器功能,例如内存位置使用,否则这些执行特征是可预测的,因此可能被利用。


示例5:进行测试以确保功能按预期运行,并且不会无意中导致任何操作问题或其他问题。


示例6:持续验证批准的配置是否正在使用。


示例7:将已批准的工具配置作为配置代码提供,以便开发人员可以方便地使用它们。
实践7(保护软件)任务概念实现参考示例参考
审查和/或分析人工可读代码(Human-Readable Code),以识别漏洞并验证是否符合安全要求(PW.7): 帮助识别漏洞,以便在软件发布之前对其进行更正,以防止被利用。使用自动化方法可以减少检测漏洞所需的工作量和资源。人工可读代码包括源代码、脚本和组织认为人工可读的任何其他形式的代码。PW.7.1:根据组织的定义,确定是否应该使用代码审查(一人工直接查看代码以发现问题)和/或代码分析(使用工具来发现代码中的问题,以完全自动化的方式,或与人工审查相结合的方式)。示例1:遵循组织的政策或指导方针,确定何时进行代码审查以及如何进行代码审查。这可能包括第三方代码和内部编写的可重用代码模块。

示例2:遵循组织的政策或指导方针,了解何时应该执行代码分析,以及应该如何进行。


示例3:根据软件的阶段选择代码审查和/或分析方法。
不一一展示,需要原文件可私信我获取
PW.7.2:根据组织的安全编码标准执行代码审查和/或代码分析,并在开发团队的工作流程或问题跟踪系统中记录和分类所有发现的问题和建议的补救措施。示例1:执行代码的同行评审,对所有的代码审计进行审查,并把分析或测试结果作为同行评审的一部分。


示例2:使用专家评审员检查代码中是否存在后门和其他恶意内容。


示例3:使用有助于同行评审过程的同行评审工具,并记录所有讨论和其他反馈。


示例4:使用静态分析工具自动检查代码是否存在漏洞,以及是否符合组织的安全编码标准,同时由人工检查工具报告的问题,并在必要时进行补救。 示


例5:使用审查清单来验证代码是否符合要求。


示例6:当人工可读 代码被检入代码存储库时,使用自动化的工具持续地识别和修复文档化的和验证的不安全的软件实践。 示例7:识别并记录发现问题的根本原因。 示例8:在开发人员可以访问和搜索的wiki中记录从代码审查和分析中获得的经验教训。
实践8(保护软件)任务概念实现参考示例参考
测试可执行代码以识别漏洞并验证是否符合安全要求(PW.8): 帮助识别漏洞,以便在软件发布之前对其进行更正,以防止被利用。使用自动化方法可以减少检测漏洞所需的工作量和资源,并提高可追溯性和可重复性。可执行代码包括二进制文件、直接执行的字节码和源代码,以及组织认为可执行的任何其他形式的代码。PW.8.1:确定是否应执行可执行代码测试,以发现先前审查、分析或测试未发现的漏洞,如果需要,应使用哪种类型的测试。示例1:遵循组织的政策或指导方针,确定何时进行代码测试以及如何进行代码测试(例如,在沙盒环境中)。这可能包括第三方可执行代码和内部编写的可重复使用的可执行代码模块。

示例2:根据软件的阶段选择测试方法。
不一一展示,需要原文件可私信我获取
PW.8.2:确定测试范围,设计测试,执行测试,并记录结果。记录和分类所有在开发团队的工作流或问题跟踪系统中发现的问题和建议的补救措施。示例1:对安全功能进行健壮功能测试


示例2:将动态漏洞测试集成到项目的自动化测试套件中。


示例3:将以前报告的漏洞测试纳入项目的测试套件,以确保不会重新引入错误。


示例4:在制定测试计划时,要考虑软件在生产中使用的基础设施和技术堆栈。


示例5:使用模糊测试工具来发现输入处理的问题。


示例6:如果资源可用,使用渗透测试来模拟攻击者在高风险情况下如何试图破坏软件。


示例7:识别并记录发现问题的根本原因。


示例8:在开发人员可以访问和搜索的wiki中记录从代码测试中获得的经验教训。


示例9:在开发测试计划时使用源代码、设计记录和其他资源。
实践9(保护软件)任务概念实现参考示例参考
将软件配置为默认具有安全设置(PW.9): 在安装时帮助提高软件的安全性,以降低软件部署时安全设置薄弱的可能性,从而避免更大的泄露风险。PW.9.1:通过确定如何配置对安全有影响的每个设置或与安全相关的设置来定义安全基线,以便默认设置是安全的,确保不会削弱平台、网络基础设施或服务提供的安全功能。示例1:进行测试,以确保设置(包括默认设置)按预期工作,并且不会无意中导致任何安全缺陷、操作问题或其他问题。不一一展示,需要原文件可私信我获取
PW.9.2:实现默认设置(或默认设置组,如果适用),并为软件管理员记录每个设置。示例1:验证已批准的软件配置是否到位。


示例2:记录每个设置的用途、选项、默认值、安全相关性、潜在的操作影响以及与其他设置的关系。


示例3:使用权威的、有规划的编程机制,来记录软件管理员如何实现和评估每个设置。


示例4:以可用的格式存储默认配置,并遵循更改控制要求进行修改(例如,将配置作为代码)。

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


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

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

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

相关文章

dedecms后台数据库备份迁移流程

dedecms网站正常使用需要两部分,网站文件和数据库.两者缺一不可. dedecms上传网站文件后,还要导入数据库,如果您只有网站后台备份,没有其他格式sql备份文件,请按照下面流程重装dedecms,并操作恢复数据库 . 需要选确定/wwwroot/data/backupdata/下是否有对应备份 如不存在备份…

机器学习面试题 - 模型评估2

目录标题 8、为什么在一些场景中要使用余弦相似度而不是欧氏距离?9、余弦距离是否是一个严格定义的距离?10、在对模型进行过充分的离线评估之后,为什么还要进行在线A/B测试?11、如何进行线上A/B测试?12、如何划分实验组和对照组1…

ChatGPT落地场景探索-数据库与大模型

目录 openGauss介绍 openGauss介绍 数据库与大模型 openGauss介绍 大模型与数据库 大模型为数据库带来的机遇 大模型解决数据库问题的挑战 数据库为大模型带来的价值 大模型大模型的发展趋势 趋势产品:Chat2DB 简介 特性 生产应用:基…

运输层:TCP超时重传时间的选择

1.运输层&#xff1a;TCP超时重传时间的选择 笔记来源&#xff1a; 湖科大教书匠&#xff1a;TCP超时重传时间的选择 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 若将超时重传时间RTO < \lt < 报文段0的往返时间RTT0&#xff0c;则会出现…

ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、农业、大气等领域数据分析

查看原文>>> ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、农业、大气等领域数据分析 【内容简述】&#xff1a; 注&#xff1a;请提前自行配置上课环境 【其它相关推荐】&#xff1a; GEE遥感云大数据林业应用典型案例实践及GPT模型应用 基…

【Ubuntu】apt 更换阿里源

Ubuntu apt 更换阿里源 1.Ubuntu apt 更换阿里源1.1 找到阿里官方相关镜像1.2 找到apt的源管理文件1.3 使用命令替换其源地址1.4 刷新源信息1.5 Failed to fetch http://xxxxxxx Temporary failure resolving ‘mirrors.aliyun.com‘ 1.Ubuntu apt 更换阿里源 1.1 找到阿里官方…

Java 设计模式 随笔1 监听器/观察者

0. 不由自主&#xff0c;恍恍惚惚&#xff0c;又走回头路&#xff0c;再看一眼有过的幸福… 太棒了流沙!!! 0.1 引用 https://blog.csdn.net/majunzhu/article/details/100869562 ApplicationEvent事件机制源码分析 单机环境下优雅地使用事件驱动进行代码解耦 1. JDK 1.1 …

LAXCUS分布式操作系统总体概述

本文回答用户问的一些情况&#xff0c;因为问题主要集中LAXCUS分布式操作系统的产品、市场、发展层面&#xff0c;技术问题倒是不多&#xff0c;我在这里做个总体概述的回答吧。 LAXCUS分布式操作系统是基于分布式运行环境构建的【数存算管】超融合一体化平台&#xff0c;处理…

Excel 合并单元格筛选时只出现首行

一、问题描述 如果对合并单元格直接筛选&#xff0c;只能筛选出第一个单元格的值 二、原因分析&#xff1a; Excel筛选单元格时&#xff0c;遇到不连续区域&#xff08;即中间有空白单元格&#xff09;会识别不到后续内容&#xff1b; 合并单元格后&#xff0c; 除首行外&…

测试中那些悲桑的。。。

今天不讲“锅”&#xff0c;也不讲知识&#xff0c;只聊聊我们在测试中那些悲桑的故事。鉴于过于真实&#xff0c;请新人慎看。 - 1 - 实验室环境中测试顺利进行&#xff0c; 一到发版时刻&#xff0c; 哦豁&#xff0c;出现了一个惊天大bug&#xff01; 通宵走起~ - 2 - 辛…

【机器学习核心总结】什么是RNN(循环神经网络)

什么是RNN(循环神经网络) 循环神经网络(Recurrent Neural Network)&#xff0c;在识别图像时&#xff0c;输入的每张图片都是孤立的&#xff0c;认出这张图片是苹果&#xff0c;并不会对认出下一张图片是梨造成影响。 但对语言来说&#xff0c;顺序是十分重要的&#xff0c;“…

六、计算机视觉相关内容

文章目录 前言一、图像增广1.1 常用的图像增广1.1.1 翻转和裁剪1.1.2 变换颜色1.1.3 结合多种图像增广方法 二、微调2.1 微调的步骤2.2 具体案例 三、 目标检测和边界框3.1 边界框 四、锚框五、多尺度目标检测六、目标检测数据集七、单发多框检测(SSD)八、区域卷积神经网络(R-C…

【NLP】分步图解transformer 数学示例

一、说明 我知道transformer 架构可能看起来很可怕&#xff0c;你可能在网上或博客上遇到了各种解释。但是&#xff0c;在我的博客中&#xff0c;我将通过提供一个全面的数值示例来努力澄清它。通过这样做&#xff0c;我希望简化对变压器架构的理解。 二、输入和位置编码 让我…

网络编程-day3

UDP服务器&#xff1a; UDP客户端&#xff1a;

go-redis的基本使用

Golang操作Redis 安装go-redis //redis 6 go get github.com/go-redis/redis/v8 //redis 7 go get github.com/go-redis/redis/v9golang连接redis import "github.com/go-redis/redis/v8" var rdb *redis.Clientfunc init() {rdb : redis.NewClient(&redis.Opt…

云原生之深入解析Prometheus AlertManager的实战操作

一、概述 Prometheus 包含一个报警模块&#xff0c;就是 AlertManager&#xff0c;Alertmanager 主要用于接收 Prometheus 发送的告警信息&#xff0c;它支持丰富的告警通知渠道&#xff0c;而且很容易做到告警信息进行去重、降噪、分组等&#xff0c;是一款前卫的告警通知系统…

Android Studio实现内容丰富的安卓校园二手交易平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号038 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看二手商品…

[学习笔记] 扩散模型 Diffusion

前置知识-从深度生成模型、隐变量、VAE开始 机器学习是人工智能的一种&#xff0c;它是一种通过利用数据&#xff0c;训练出模型&#xff0c;然后使用模型预测的一种方法。 机器学习分为监督学习、无监督学习和强化学习&#xff0c;这是根据数据训练方式分类的&#xff0c;通俗…

leetcode 100. 相同的树

2023.7.6 这题类似于树的对称性这道题&#xff0c;下面给出递归和迭代两种解法&#xff1a; 递归法&#xff1a; class Solution { public:bool isSameTree(TreeNode* p, TreeNode* q) {if(pnullptr && qnullptr) return true;if(pnullptr && q!nullptr || p…

python实现文本转语音音频

文章目录 文本转语音音频第一步&#xff1a;讯飞平台的注册第二步&#xff1a;导入程序所需要的依赖库第二步&#xff1a;websocket对象类的初始化第三步&#xff1a;websocket建立连接后的函数第四步&#xff1a;websocket数据返回结果的处理函数第五步&#xff1a;pcm音频转换…