Secure Software Lifecycle Management (SSLM)安全软件生命周期管理

文章目录

  • 前言
  • 一、现代理念
  • 二、安全的软件生命周期管理
  • 总结


前言

The concept of integrating security into the software development process is not new. While I cannot definitively assert that Microsoft was the pioneer of this concept, the Secure Development Lifecycle (SDL) published by Microsoft in 2002 undoubtedly laid the foundation for what is now commonly known as a Secure Software Development Lifecycle (Secure SDLC or SSDLC).

将安全性融入软件开发过程并非新概念。虽然我不能断言微软是这一概念的先驱,但微软在 2002 年发布的安全开发生命周期(SDL)无疑为现在通常所说的安全软件开发生命周期(Secure SDLC 或 SSDLC)奠定了基础。
在这里插入图片描述

Even today, over 20 years later, Microsoft’s SDL can still be useful for illustrating the general concept of an SSDLC. However, it may not be the optimal choice as a blueprint for implementing software security in today’s practical scenarios. Without delving into extensive details here, it’s worth noting that our comprehension of software development and security has naturally progressed over the past two decades.

即使在 20 多年后的今天,微软的 SDL 对于说明 SSDLC 的一般概念仍然有用。不过,在当今的实际应用中,它可能并不是实施软件安全的最佳蓝图。在此,我们无需深入探讨大量细节,但值得注意的是,在过去二十年中,我们对软件开发和安全的理解自然也在不断进步。

Development has become more complex, agile, and the boundaries between development, operations, and security have blurred significantly. What we require now is a more comprehensive understanding of software security that encompasses all relevant aspects, extending beyond just the development process, and encompasses aspects like training and incident response. I’d like to refer to this approach as Secure Software Lifecycle Management (SSLM).

开发变得更加复杂和敏捷,开发、运营和安全之间的界限也变得非常模糊。我们现在需要的是对软件安全有一个更全面的理解,它包含所有相关方面,不仅仅是开发过程,还包括培训和事件响应等方面。我想把这种方法称为安全软件生命周期管理(SSLM)


一、现代理念

Although this term seems not to be widely used yet, we find the idea behind it implemented by many of today’s secure software development frameworks. For instance, SafeCodes Fundamental Practices for Secure Software Development from 2018, the BSA Framework from 2020, the NIST SSDF from 2021, and OWASP SAMM from 2020.

I recently came across another interesting concept that is absolutely worth mentioning in this context. In their book Agile Secure Software Lifecycle Management by Barry Derksen and others from the Secure Software Alliance, the authors describe their version of a modern secure software lifecycle management in the following way:

尽管这一术语似乎尚未被广泛使用,但我们发现,当今许多安全软件开发框架都在贯彻这一术语背后的理念。例如,2018 年的《SafeCodes 安全软件开发基本实践》、2020 年的《BSA 框架》、2021 年的《NIST SSDF》和 2020 年的《OWASP SAMM》。

最近还发现了另一个有趣的概念,在这方面绝对值得一提。在安全软件联盟 Barry Derksen 等人所著的《敏捷安全软件生命周期管理》一书中,作者用以下方式描述了他们版本的现代安全软件生命周期管理:

在这里插入图片描述

I think this is a great example of such a lifecycle for a particular application or product, starting with the initial project kickoff and ending with its operational servicing time which shows a lot of understanding of the practice to me. However, this is, of course, not really a framework but an example implementation like Microsoft SDL. Also, what I miss a bit are practices like AppSec architecture & governance that are not part of the development process or lifecycle itself.

这是一个很好的例子,说明了特定应用程序或产品的生命周期,从最初的项目启动开始,到其运行服务时间结束,这在我看来显示了对实践的理解。当然,这并不是一个真正的框架,而是一个类似于微软 SDL 的实施范例。此外,还有点怀念那些不属于开发流程或生命周期本身的应用安全架构和治理等实践。

二、安全的软件生命周期管理

After some reflection, I came up with the following holistic view of how a Secure Software Lifecycle Management could look like and which works with all kinds of development methodologies, including DevOps. It even includes one important aspect that I often came across: Companies can actually have multiple Secure SDLC processes – e.g. one for modern development and one for SAP development.

得出了以下关于安全软件生命周期管理的整体观点,它可以与包括 DevOps 在内的各种开发方法一起使用。它甚至包括我经常遇到的一个重要方面:公司实际上可以有多个安全 SDLC 流程,例如一个用于现代开发,一个用于 SAP 开发。

在这里插入图片描述

It’s important to understand that the underlying concept here is not about establishing a new standard or similar measures. Naturally, not everyone would (or should) be required to implement all these practices. However, this visualization can be valuable for identifying relevant practices and especially crucial areas that may have been overlooked.

Addressing AppSec in governance and, particularly, central AppSec architecture are two such areas that often receive insufficient attention. Especially in a landscape dominated by DevOps, where releases are frequently brief and development teams are granted increasing autonomy, establishing a robust AppSec architecture becomes vital. This can be achieved through reference architectures, blueprints, and guardrails, providing dev teams the flexibility to make their own decisions.

Since not every organization builds and operates software in the same manner, there can’t be a universal standard applicable to everyone. Here are some important aspects that distinguish what parts of an SSLM you may consider implementing and how to do that:

重要的是要明白,这里的基本概念并不是要制定新的标准或类似措施。当然,并不是每个人都会(或应该)被要求实施所有这些做法。不过,这种可视化方法对于识别相关实践,尤其是可能被忽视的关键领域,还是很有价值的。

在治理中解决 AppSec 问题,尤其是中央 AppSec 架构,就是这样两个经常得不到足够重视的领域。特别是在以 DevOps 为主导的环境中,发布时间经常很短,开发团队被赋予越来越多的自主权,因此建立一个强大的 AppSec 架构变得至关重要。这可以通过参考架构、蓝图和护栏来实现,为开发团队提供自主决策的灵活性。

由于并非每个组织都以相同的方式构建和运行软件,因此不可能有一个适用于所有人的通用标准。以下是一些重要的方面,可以区分 SSLM 的哪些部分可以考虑实施,以及如何实施:

  • 工程思维:企业、机构或混合
  • 开发模式:自主开发、由提供商开发或作为提供商开发
  • 运营模式:自己运营、由供应商运营、由客户运营
  • 安全风险和风险偏好。
  • 范围

可以根据企业的独特情况为其量身定制 SSLM 实施方案。这种灵活性解释了为什么该领域有众多不同的实施方案。


总结

When aiming to enhance AppSec across an entire organization, we must consider more than just the development process. Software security extends beyond the shift-left paradigm; we need to integrate security comprehensively. This is particularly crucial in the era of Dev(Sec)Ops, where the distinctions between development, operations, and security are becoming increasingly blurred.

Given the unique nature of each organization, there cannot be a one-size-fits-all set of practices. The concept behind SSLM is to promote a more holistic perspective on AppSec and assist organizations in identifying gaps and controls that may be missing

当我们要在整个组织内加强 AppSec 时,我们必须考虑的不仅仅是开发流程。软件安全超越了左移模式;我们需要全面整合安全。这一点在 Dev(Sec)Ops 时代尤为重要,因为在这个时代,开发、运营和安全之间的界限正变得越来越模糊。

鉴于每个组织的独特性,不可能有一套放之四海而皆准的做法。SSLM 背后的理念是促进从更全面的角度看待 AppSec,并帮助企业找出可能缺失的差距和控制措施。

When aiming to enhance AppSec across an entire organization, we must consider more than just the development process. Software security extends beyond the shift-left paradigm; we need to integrate security comprehensively. This is particularly crucial in the era of Dev(Sec)Ops, where the distinctions between development, operations, and security are becoming increasingly blurred.

Given the unique nature of each organization, there cannot be a one-size-fits-all set of practices. The concept behind SSLM is to promote a more holistic perspective on AppSec and assist organizations in identifying gaps and controls that may be missing

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

清理docker Build Cache缓存文件

使用docker构建镜像,发现docker的overlay2文件会越来越大。 使用命令查看docker系统占用资源: docker system df 可以看到已经占用了26.7GB,清理这个缓存 docker builder prune 再次查看,已经没有缓存了,清理成功。 …

【UE】中文字体 发光描边材质

效果 步骤 1. 先将我们电脑中存放在“C:\Windows\Fonts”路径下的字体导入UE 点击“全部选是” 导入成功后如下 2. 打开导入的“SIMSUN_Font”,将字体缓存类型设置为“离线” 点击“是” 这里我选择:宋体-常规-20 展开细节面板中的导入选项 勾选“使用距…

Redis缓存淘汰策略

Redis缓存淘汰策略 1、各种面试题 生产上你们的redis内存设置多少?如何配置、修改redis的内存大小如果内存满了你怎么办?redis清理内存的方式?定期删除和惰性删除了解过吗?redis缓存淘汰策略有哪些?分别是什么?你用哪个?redis的LRU了解过吗?请手…

FastApi接收不到Apifox发送的from-data字符串_解决方法

接收不到Apifox发送的from-data字符串_解决方法 问题描述解决方法弯路总结弯路描述纵观全局小结 问题描述 这里写了一个接口,功能是上传文件,接口参数是file文件和一个id字符串 gpt_router.post("/uploadfiles") async def create_upload_fi…

基于ora2pg迁移Oracle19C到postgreSQL14

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

linux socket套接字

文章目录 socket流socket(TCP)数据报socket(UDP) 讨论 socket 所谓套接字,就是对网络中不同主机上的应用程序之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,套接字提供了应用层进程利…

AI - FlowField(流场寻路)

FlowField流场寻路,利用网格存储每个点对目标点的推力,网格上的单位根据对于推力进行移动。用于大量单位进行寻路对于同一目的地的寻路,常用于rts游戏等。 对应一张网格地图(图中黑块是不可行走区域) 生成热度图 计算所有网格对于目标点(…

【Flutter】graphic图表实现tooltip一段时间后自动隐藏

概述 graphic图表中提供了自定义tooltip的事件,可通过selections中on和clear配置手势选项和可识别设备,默认情况下tooltip需要双击隐藏,但这并不符合我们的需求。通过调研发现,若想实现tooltip隔几秒后隐藏,可通过Str…

西工大网络空间安全学院计算机系统基础实验一(9, 10, 11, 12, 13)

还是那句话,专心做好你自己的,老老实实把基础打好,不要被其他人带跑节奏,不要跟他打,跟着这系列博客,稳扎稳打一步一步来。即使你VMware workstation没下载好,即使你Ubuntu虚拟机没配好&#xf…

【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第三次作业

Written Part 1. 基于表 1 1 1 回答下列问题(min_sup40%, min_conf75%): Transaction IDItems Bought0001{a, d, e}0024{a, b, c, e}0012{a, b, d, e}0031{a, c, d, e}0015{b, c, e}0022{b, d, e}0029{c, d}0040{a, b, c}0033{a, d, e}0038…

【计算机网络笔记】交换机

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

Vue3依赖注入

适用场景 尤其针对一个变量需要从顶层组件开始透传,途径很多个子组件最后在第n代子组件使用的时候。对于这些途经的子组件而言,它们不但不使用而且完全不关心该变量具体是什么,只是作为一个传递工具罢了。这种情况下,使用依赖注入…

asla四大开源组件应用示例(alsa-lib、alsa-utils、alsa-tools、alsa-plugins)

文章目录 alsa设备文件/dev/snd//sys/class/sound/proc/asoundalsa-lib示例1alsa-utilsalsa-toolsalsa-plugins参考alsa设备文件 /dev/snd/ alsa设备文件目录位于,/dev/snd,如下所示 root@xboard:~#ls /dev/snd -l total 0 drwxr-xr-x 2 root root 60 Nov 6 2023 …

vuepress-----7、发布在GitHub

# 7、发布在GitHub 在你的项目中,创建一个如下的 deploy.sh 文件(请自行判断去掉高亮行的注释): #!/usr/bin/env sh# 确保脚本抛出遇到的错误 set -e# 生成静态文件 npm run docs:build# 进入生成的文件夹 cd docs/.vuepress/dist# 如果是发…

PTA_2023年软件设计综合实践_10(回溯法与分治限界法)

7-1 桥本分数 将1-9九个数不重复地赋给不同的9个元素 ,实现形如a/bcd/eff/hi 的形式。例:1/265/784/39 1/325/967/84 (注意:1/265/784/39 和5/781/264/39 只能算一种解),共有多少种不同的解。 语言选C #…

36 - 电商系统表设计优化案例分析

如果在业务架构设计初期,表结构没有设计好,那么后期随着业务以及数据量的增多,系统就很容易出现瓶颈。如果表结构扩展性差,业务耦合度将会越来越高,系统的复杂度也将随之增加。这一讲我将以电商系统中的表结构设计为例…

服务器数据恢复—V7000存储raid5崩溃导致上层卷无法使用的数据恢复案例

服务器数据恢复环境: 某品牌V7000存储中有一组由几十块硬盘组建的raid5阵列。上层操作系统为windows server,NTFS分区。 服务器故障: 有一块硬盘出现故障离线,热备盘自动上线替换离线硬盘。在热备盘上线同步数据的过程&#xff0c…

【springboot】idea项目启动端口被占用

问题 idea本地启动springboot项目端口老是被占用 解决 关闭被占用的端口进程 步骤: 1. winR打开程序框 2. 查出被占用端口的进程id netstat -ano | finderstr 端口号 例如 netstat -ano | finderstr 81013.杀死进程 taskkill /pid 进程id -t -f 例如 taskkill /pid 2…

TZOJ 1369 求绝对值

答案&#xff1a; #include<stdio.h> int main() {double a0.0; 要求输入实数&#xff0c;实数包括小数&#xff0c;所以不能用int&#xff0c;只能用浮点型doublewhile (scanf("%lf", &a) ! EOF) //多组数据输入{if (a < 0.0) //如果是负数a -a…

用IDEA创建Java类时,自动生成作者、时间和版本号、注释等信息

1.File->settings… 2、Editor->File and Code Templates->Includes->File Header(双击)&#xff0c;然后在右边输入框内输入代码即可 代码可以直接复制 /*** Author 作者名* Date ${DATE} ${TIME}* version 1.0* 注释*/上边你也可以自定义生成的内容。