解读OWASP软件保障成熟度模型SAMM

OWASP软件保证成熟度模型(SAMM)可为所有类型的组织分析和改进其软件安全态势提供有效和可衡量的方法。OWASP SAMM支持完整的软件生命周期,包括开发和获取,并且与技术和过程无关。

1. 简介

OWASP软件保证成熟度模型(SAMM)是一个开放的框架,用以帮助组织制定并实施针对组织所面临来自软件安全的特定风险的策略。由SAMM提供的资源可作用于以下方面:

  • 评估一个组织已有的软件安全实践;
  • 建立一个迭代的、权衡的软件安全保证计划;
  • 用于证明安全保证计划可带来的实质性改善;
  • 定义并衡量组织中与安全相关的措施。

SAMM以灵活的方式定义,以使它可被大、中、小型组织应用于任何类型的软件开发中,甚至是一个单一的项目。

最初的模型(v1.0版本)由Pravir Chandra编写于2009年。在过去的10多年里,它已被证明是一种广泛分布的有效模式,可用于改善世界各地不同类型组织的安全软件实践。在最新发布的2.0版本点此下载中文版文档原件(访问密码:6277),OWASP进一步改进了模型,以应对其旧模型的一些限制。

2. 三个主要特征

  • 可衡量:跨安全实践定义的成熟度级别;
  • 可操作:提高成熟度水平的清晰路径;
  • 通用性:对技术、流程和组织是通用的。

OWASP SAMM 社区由来自于企业和教育机构的安全知识型志愿者提供支持。全球社区
致力于创建可自由获得的文章、术语、文档、工具和技术。

3. 模型概览

Governance 治理Design 设计Implementation 实施Verification 验证Operations 操作
Strategy and Metrics 战略和指标Threat Assessment 威胁评估Secure Build 安全构建Architecture Assessment 体系结构评估Incident Management 事件管理
Policy and Compliance 政策和合规性Security Requirements 安全要求Secure Deployment 安全部署Requirements-driven Testing 需求驱动的测试Environment Management 环境管理
Education and Guidance 教育和指导Security Architecture 安全体系结构Defect Management 缺陷管理Security Testing 安全性测试Operational Management 运营管理

在这里插入图片描述

4. SAMM模型结构

SAMM基于15种安全实践,分为5个业务功能。每个安全实践都包含一组活动,分为3个成熟度级别。与成熟度较高的活动相比,成熟度较低的活动通常更容易执行,并且需要较少的形式化。
在这里插入图片描述

  • 在模型的最顶层,SAMM 定义了五种关键业务功能 每种业务功能是一组软件开发过程中具体细节的相关措施;就是任何组织的软件开发团队要在某种程度上必须运用到的每一个业务功能。
  • 对于每类业务功能,SAMM 定义了三个安全实践。每个安全实践都是一个为业务功能建立保障而与安全相关的领域。因此,总体来说,有 15 个独立的安全实践活动映射到五组业务功能,以改善软件开发中相对应的业务功能。
  • 对于每种实践活动,SAMM 定义了三个成熟度等级以作为目标。安全实践中的每个等级是由一个连续、且复杂的目标定义的;且每个等级的成功指标比上一个等级更加苛刻。另外,每类安全实践都能通过相关活动的优化单独改进。
  • 对于每个安全实践,SAMM 定义了两个活动流。每个活动流都有一个目标要达到,而且这个目标可以在提高成熟度水平时达到。活动流在不同成熟度级别上关联和链接至不同成熟度等级实践中的活动。

SAMM并强制要求所有组织在每个类别中都达到最大的成熟度水平。每个组织都可以为每个安全实践确定最适合的目标成熟度级别,并根据其特定需求调整可用模板。

5. 参考

[1] https://owasp.org/www-project-samm/
[2] https://owaspsamm.org/about/

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

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

相关文章

文生视频基础1:sora技术报告学习

sora技术报告学习 背景学后理解训练流程技术拆解编码解码扩散模型训练用数据 28号直播交流会后的一些想法自身的一点点想法 参考 原文地址:Video generation models as world simulators 背景 此项目的背景是基于Datawhale的关于sora技术文档的拆解和相关技术讲解…

什么是支持向量机(Support vector machine)和其原理

作为机器学习的基础算法,SVM被反复提及,西瓜书、wiki都能查到详细介绍,但是总是觉得还差那么点,于是决定自己总结一下。 一、什么是SVM? 1、解决什么问题? SVM,最原始的版本是用于最简单的线…

部署bpmn项目实现activiti流程图的在线绘制

本教程基于centos7.6环境中完成 github开源项目: https://github.com/Yiuman/bpmn-vue-activiti软件:git、docker 1. 下载源代码 git clone https://github.com/Yiuman/bpmn-vue-activiti.git2. 修改Dockerfile文件 声明基础镜像,将项目打包&#xff…

vue2+若依框架plus交互 路由介绍

本周及寒假 参加了校企合作的工程过程管理,和学长学姐一起写项目,之前学了vue也没有应用,然后对框架很多组件的用法不太了解,前期耽误了一些时间。 框架模块 首先是框架模块的介绍 api存了一些系统管理及发送请求的方法 例如p…

智能驾驶规划控制理论学习04-基于车辆运动学的规划方法

目录 一、线性二自由度汽车模型(自行车模型) 1、二自由度模型概述 2、不同参考点下的状态空间方程 3、前向仿真 二、运动基元生成方法 1、杜宾斯曲线(Dubins Curve) 2、Reeds Shepp Curve 三、多项式曲线(Poly…

redis7.2.2|Dict

文章目录 StructredisDBdictdictTypedictEntry 宏定义散列函数散列冲突dictEntry pointer bit tricks[指针位技巧]API implementation_dictReset_dictInitdictCreatedictGetHashdictSetKeydictSetValdictSetNextdictGetNextdictGetValdictGetKey_dictCleardictEmptydictRelease…

五、西瓜书——集成学习

1.个体与集成 集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能,这对“弱学习器”(weak learner)尤为明显因此集成学习的很多理论研究都是针对弱学习器进行的而基学习器有时也被直接称为弱学习器。 要获得好的集成个体学习器应“好而不同”…

详解JavaScript的函数

详解 JavaScript 的函数 函数的语法格式 创建函数/函数声明/函数定义 function 函数名(形参列表) { 函数体 return 返回值; // return 语句可省略 } 函数调用 函数名(实参列表) // 不考虑返回值 返回值 函数名(实参列表) // 考虑返回值 示例代码 //定义的没有参数列表&am…

5个好玩神奇还免费的工具网站收藏不后悔-搜嗖工具箱

生命倒计时 http://www.thismuchlonger.com 这是一个相哇塞的网站,可以让我们静下心来好好想想我们来这个世界究竟为了什么,因为当我们作为命运的主宰者。敲打键盘设定好自己一生长度的时候,我们的剩余寿命已经成绝对值,一旦生命…

mysql5.7配置主从

原理: MySQL主从复制的工作原理如下:1. 主服务器产生Binlog日志当主服务器的数据库发生数据修改操作时,如INSERT、UPDATE、DELETE语句执行,主服务器会记录这些操作的日志信息到二进制日志文件中。2. 从服务器读取Binlog日志 从服务器会向主服务器发送请求,主服务器把…

Linux网络编程——socket 通信基础

Linux网络编程——socket 通信基础 1. socket 介绍2. 字节序2.1 简介2.2 字节序举例2.3 字节序转换函数 3. socket 地址3.1 通用 socket 地址3.2 专用 socket 地址 4. IP地址转换(字符串ip -> 整数,主机、网络字节序的转换 )5. TCP 通信流…

智能驾驶规划控制理论学习05-车辆运动学规划案例分析

目录 案例一——Hybrid A*(基于正向运动学) 1、基本思想 2、 实现流程 3、启发函数设计 4、分析扩张(Analytic Expansions) 5、分级规划(Hierarchical planning) 案例二——State Lattice Planning&…

Vue3快速上手(十六)Vue3路由传参大全

Vue3路由传参 一、传参的多种方式 1.1 拼接方式 这种方式适合传递单个参数的情况&#xff0c;比如点击查看详情&#xff0c;传个id这样的场景 传参&#xff1a; <RouterLink to"/person?id1" active-class"active">person</RouterLink> …

RabbitMQ相关问题

RabbitMQ相关问题 一、RabbitMQ的核心组件和工作原理&#xff1f;二、如何保证消息可靠投递不丢失的&#xff1f;三、RabbitMQ如何保证消息的幂等性&#xff1f;四、什么是死信队列&#xff1f;死信队列是如何导致的&#xff1f;五、RabbitMQ死信队列是如何导致的&#xff1f;六…

PDF 解析问题调研

说点真实的感受 &#xff1a;网上看啥组件都好&#xff0c;实际测&#xff0c;啥组件都不行。效果好的不开源收费&#xff0c;开源的效果不好。测试下来&#xff0c;发现把组件融合起来&#xff0c;还是能不花钱解决问题的&#xff0c;都是麻烦折腾一些。 这里分享了目前网上能…

数据结构 第3章 栈、队列和数组(一轮习题总结)

第3章 栈、队列和数组 3.1 栈3.2 队列3.3 栈与队列的应用3.4 数组和特殊矩阵 3.1 栈&#xff08;1 10 11 20&#xff09; 3.2 队列&#xff08;6 12 14 17&#xff09; 3.3 栈与队列的应用&#xff08;6 11&#xff09; 3.4 数组和特殊矩阵 3.1 栈 T1 栈和队列具有相同的逻辑…

一周学会Django5 Python Web开发-Django5详细视图DetailView

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计28条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

Linux-信号2

文章目录 前言一、信号是如何保存的&#xff1f;int sigemptyset(sigset_t *set);int sigfillset(sigset_t *set);int sigaddset (sigset_t *set, int signo);int sigdelset(sigset_t *set, int signo);int sigismember&#xff08;const sigset_t *set, int signo);int sigpen…

leetcode 长度最小的子数组

在本题中&#xff0c;我们可以知道&#xff0c;是要求数组中组成和为target的最小子数组的长度。所以&#xff0c;我们肯定可以想到用两层for循环进行遍历&#xff0c;然后枚举所有的结果进行挑选&#xff0c;但这样时间复杂度过高。 我们可以采用滑动窗口&#xff0c;其实就是…

NoSQL--1.虚拟机网络配置

目录 1.初识NoSQL 1.1 NoSQL之虚拟机网络配置 1.1.1 首先&#xff0c;导入预先配置好的NoSQL版本到VMware Workstation中 1.1.2 开启虚拟机操作&#xff1a; 1.1.2.1 点击开启虚拟机&#xff1a; 1.1.2.2 默认选择回车CentOS Linux&#xff08;3.10.0-1127.e17.x86_64) 7 …