软件供应链安全中的SSDF框架到底是什么?

2021年5月12日,美国总统拜登签署了“关于改善国家网络安全(EO 14028)”的行政命令,其中第4节“加强软件供应链安全”的(e)条款要求:初步指南发布90天内(不迟于2022年2月6日),NIST应发布加强软件供应链安全实践的指南,并明确了指南需包含的10余项具体内容(表3一二列)。

对此,NIST修订了其2020年4月发布的《安全软件开发框架(SSDF) V1.0》,形成V1.1草案,并于2021年9月30日至11月5日完成公开征求意见。

一、 SSDF基本原则

软件开发生命周期(SDLC)是一种用于设计、创建和维护软件的方法。SDLC 有不同的变体,包括瀑布式、螺旋式和敏捷式。无论组织使用哪种变体,对于组织来说,拥有安全的软件开发实践是非常重要的。

根据美国国家标准与技术研究所(NIST)的研究,这有三个主要原因:

  1. 减少已发布软件的漏洞数量
  2. 减少被利用的漏洞的影响
  3. 解决应用程序中出现这些漏洞的根本原因。

在安全领域,理想的做法总是创建设计安全的应用程序,而不是尝试在以后修复这些问题。为了帮助这一领域的公司,NIST 创建了所谓的安全软件开发框架(SSDF),它描述了一组基于已建立的标准、指导和安全软件开发实践文档的高级实践。或者简单地说,SSDF是一套成熟的SDLC标准模型。

在本文中,我们将介绍2022年2月3日发布的安全软件开发框架的1.1版本。NIST 将 SSDF 分为四个部分:

  1. Prepare the Organization 组织准备
  2. Protect the Software 软件保护
  3. Produce Well-Secured Software 可靠软件生产
  4. Respond to Vulnerabilities 漏洞响应

让我们通过一张图先来简单了解一下SSDF框架:

二、SSDF实践分类

SSDF是关于安全软件开发的一组实践,呈现为一张描述实践的表格,可根据需要方便的进行扩充、调整或删减。SSDF V1.1草案共包含4类19项实践):

组织准备(PO):此类实践用来确保已准备好组织层面执行安全软件开发的人员、过程和技术(某些情况下针对单独的项目),根据行政令要求,新增了实践“软件开发安全环境(PO.5)”;

保护软件(PS):此类实践用来保护软件的所有组件不受篡改和未授权访问;

生产安全性良好的软件(PW):此类实践用于尽量减少软件发布版本中的安全漏洞。新草案将原实践“验证第三方软件是否符合安全要求(PW.3)”合并到了PW.4中;

漏洞响应(RV):此类实践用来识别软件版本中的剩余漏洞,适当响应以解决它们,并防止未来发生类似漏洞。

具体内容如下:

分析草案所有实践可知,19项实践覆盖了软件供应链安全应包含的软件自身及其生产要素的安全内容,整体框架较为全面:

(1) 框架中实践涉及软件开发生命周期的需求、设计、集成第三方软件、编码、构建、测试源代码和可执行码、漏洞修复响应和分析等各个阶段的安全要求。

(2) 框架中实践考虑到了人员、工具链、开发环境、授权访问、完整性、安全配置等软件生产要素方面的安全和防护手段。

三、如何实现SSDF

软件开发行业中使用的一些技术可以帮助验证测试软件的安全性。NIST SSDF 将这些技术标准化,作为其对 EO14028的回答的一部分,同样也是搭建SSDF的重要建议。美国国家标准与技术研究所推荐的最低软体验证标准不应该被认为是包罗万象甚至是完整的,然而,概述的技术可以作为广泛适用的指导方针来说明最低要求。

推荐的技术主要侧重于测试,但是一些标准侧重于更高层次的计划。执行早期威胁建模有助于识别设计级别的安全问题和可能被忽视的测试目标。软件需求应该驱动所使用的特定威胁建模方法,并且在开发过程中多次执行威胁建模以捕获出现的新威胁是至关重要的。

根据多种框架(包括 SLSA 的构建需求) ,自动化测试是有效测试的重要组成部分。实现自动化测试有助于确保测试一致地运行,准确地检查结果,并有助于确保可靠地捕获弱点。由于测试是自动化的,因此可以经常重复; 例如,可以在每次提交时或在问题退出之前执行测试。建议执行静态(SAST)和动态分析(DAST)的自动化测试。

如果没有适当的工具,确保软件的安全是困难和费时的。UniSCA软件供应链安全管理平台可以支持 NIST SSDF 的需求。通过提供企业 DevOps 工具和基础设施的完全可见性来帮助提高软件供应链的安全性。功能包括全面的安全扫描和防止泄露的秘密、代码泄漏和其他常见问题,所有这些都在灵活的开发人员友好的工作流中。一旦集成到开发人员工作流程中,每个提交和部署都会被扫描以查找问题,直接帮助组织实现 NIST SSDF 提供的建议。补救既可以通过 GUI 也可以在 PR 中进行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GitMore

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值