什么是 DevSecOps?2022 年的定义、流程、框架和最佳实践

2023-11-18

728873b3ccf40412bdaebd645a3366ca.png

DevSecOps 是一套实用且面向目标的方法,用于确保系统安全。DevSecOps 被定义为通过与 IT 安全团队、软件开发人员和运营团队合作,在标准 DevOps 周期中建立关键安全原则的过程。以下是对 2022 年 DevSecOps 管道、框架和最佳实践的深入分析。

目录

  • 什么是 DevSecOps?

  • DevSecOps 管道如何工作?

  • 了解 DevSecOps 框架

  • 2022 年 5 大 DevSecOps 最佳实践

什么是 DevSecOps?


DevSecOps 是指通过与 IT 安全团队、软件开发人员和运营团队合作,在标准 DevOps 周期中建立关键的安全原则。

4cd74d7edf1ca54354d1cc0c528ee5a3.png

顾名思义,DevSecOps 是DevOps 概念的延续。它基于这样一个事实,即组织中的每个部门都同样负责在软件开发周期的每个阶段集成安全性。
以尽可能快的方式执行新代码发布到生产是所有组织的共同目标。然而,在这个在线安全问题、网络威胁和其他安全漏洞日益严重的时代,每个阶段都需要遵循特定的安全协议,这就是 DevSecOps 的用武之地。

DevSecOps 的主要优势之一是它可以最大限度地减少任何产品的漏洞,并使其完全准备好供最终用户使用。由于每个流程和相关工作流程都通过严格的安全检查实现自动化,因此可以更准确地满足安全要求。但是,选择正确的工具来维护持续集成 (CI) 中的安全性至关重要。安全团队需要经过充分培训才能帮助实现这一目标。

DevSecOps 管道如何工作?

通常,DevOps 管道涉及多个步骤。DevSecOps 通过确保每个阶段的严格安全标准从传统方法中脱颖而出。软件开发生命周期 (SDLC)过程的主要阶段包括规划、编码、构建、测试、发布和部署。

  • 计划:在计划阶段,执行主要的安全分析。工程师制定适当的测试策略,用于确定测试的方式、地点和时间。

  • 代码:在编码步骤中使用各种类型的 Git 控件和工具来保护敏感信息,例如应用程序编程接口 (API) 密钥和密码。

  • 构建:编写和执行用于构建源代码的代码至关重要。在这里,静态应用程序安全测试 (SAST) 技术被广泛用于使代码无错误。

  • 测试:在测试阶段,动态应用程序安全测试(DAST)工具主要用于测试产品/应用程序,保护用户身份验证,并识别 SQL 注入和 API 端点中可能存在的问题。

  • 发布:发布阶段是指在渗透测试和漏洞扫描过程中执行的安全分析。

  • 部署:部署阶段是在生产中实施适当的安全协议,为最终部署做好准备。

如前所述,在 DevSecOps 的每个阶段都实施了多项安全措施。以下是此类安全程序的各个阶段:

第一阶段:威胁建模

威胁建模总结了可能的攻击场景,列出了敏感数据的流向,并突出了漏洞和缓解替代方案。此阶段有助于解决安全问题并提高团队的安全理解。

第二阶段:扫描

扫描阶段评估代码以确保其安全且没有安全漏洞。此处包括手动和自动代码审查。在此步骤中,使用了 SAST 和 DAST 等 AppSec 工具。由于处于软件开发生命周期的早期,此阶段允许工程师解决大多数安全漏洞和缺陷。

第三阶段:分析

分析所有先前获取的数据和指标,以识别此阶段的任何安全漏洞。然后将危险分类到一个列表中,从最严重到最轻微。一些 SAST 程序(例如 Klocwork)可以自动执行此过程。

第四阶段:补救

补救阶段处理在先前阶段已识别和组织的安全漏洞。一些 DevSecOps 技术(例如 SAST)可以针对发现的漏洞、缺陷和缺陷提出修复建议。这使得在出现安全问题时更容易处理它们。

第五阶段:监控

在监控阶段,跟踪发现的漏洞,努力减轻或消除它们,并对应用程序进行整体安全状况评估。跟踪和管理实际指标值和目标指标值之间的变化也很好。在软件开发生命周期中,这有助于做出明智的数据驱动决策。组织应首先在安全单元测试中实施持续安全。安全单元测试要求与我们编写的其他单元测试一样重要。

了解 DevSecOps 框架

DevOps 有助于加速软件交付,这对标准安全实践提出了挑战。由于这个问题,DevSecOps(或 SecDevOps)一词被创造来描述将安全程序整合到 DevOps 系统中。了解 DevSecOps 在不同行业中采用何种方式以提供最佳安全级别至关重要。为此,您需要清楚了解构建 DevSecOps 框架所需的主要功能和解决方案。接下来,我们将引导您了解应用安全产品的顶级标准功能,以创建 DevSecOps 框架。

1.安全扫描

安全扫描是应用安全产品的主要功能之一。它基本上有两种类型——基于代理的和无代理的。虽然这两种扫描模型都很流行,但无代理扫描模型的工作方式却截然不同。在这里,应用程序安全服务从安全管理员那里收集项目和相关数据,然后在无代理扫描架构中执行安全扫描。

安全管理员可以使用 Web 仪表板输入项目信息或编写脚本将数据传输到应用程序安全服务的公开 API。无代理安全扫描基于两个主要组件——扫描代理和应用程序安全服务。扫描代理的主要作用是运行彻底的安全扫描并将输出提交给应用程序安全服务进行进一步的扫描和分析。

如果没有应用程序安全服务,安全代理的扫描结果将毫无用处。例如,对于 SCA 产品,扫描库的签名可以在结果中,而漏洞详细信息是预期的。另一方面,对于 SAST 产品,结果包含漏洞代码。因此,扫描结果只能与应用程序安全服务的数据库一起使用。

2.获取源代码

应用安全产品一般通过两种主要方式接收源代码——版本控制系统方式和文件上传方式。在这个过程中,相关安全管理员根据需要将源代码压缩后上传到应用安全产品。上传过程通过已发布的 API 或 Web 管理界面进行。
安全管理员通过版本控制系统的方式为项目配置存储库信息。一些示例是——存储库统一资源定位器、存储库访问凭证等。
应用程序安全服务使用一组特定的数据从版本控制系统获取源代码。由于获取完整的源代码可能更加耗时和复杂,因此它会检索更新的代码以确保获得更好的结果。
此外,使用版本控制系统还有其他优点,例如增量扫描、更严格的身份验证过程、与项目相关的简化操作等。这是使获取多个级别的源代码变得独特而有效的主要因素之一。

3.项目组织

每个项目都由不同的团队根据组织层次结构进行生产和管理。用户和组用于组织应用程序安全产品中的任务。
每个用户都是一个或多个组的成员,每个组都可以访问一个或多个项目。此外,员工经常需要同时处理多个软件项目。此类项目通常与公司的单个部门相关联。
因此,直接从组织结构映射是不切实际的。因此,每个项目都被分配到一个组,该组包括该项目的所有使用应用程序安全产品的用户。
DevSecOps 架构中有两个主要部分,尤其是在高级架构中。这里的代理是指一个易于使用的脚本,它提取和收集源代码并将其发送到相关引擎。这是 CI(持续集成)过程的关键部分。

在这里,单体架构和微服务架构是两种架构。由于这些原因,该框架的引擎是利用微服务架构构建的:

  • 维护更简单:引擎支持不同的安全程序(如安全扫描、报告检索和凭证管理)。每个特性都可以定义为架构中的一个单独的微服务,可以独立创建和维护。如果选择整体设计,更改或添加一个安全功能将需要更改或添加另一个元素。

  • 更高的可靠性和可用性:当一个安全组件(例如,安全报告)发生故障时,它不会影响其他安全功能。如果为此框架采用单体架构,则单个安全功能故障可能会导致整个框架失败。

  • 更易于扩展:每个服务都可以单独扩展,以便在必要时提供更多资源。使用单体架构时,必须扩展整个引擎以满足单个功能的资源需求。

2022 年 5 大 DevSecOps 最佳实践

要释放 DevSecOps 的潜力,您必须遵守设定的最佳实践。在这里,我们列出了 DevSecOps 的最佳实践,以确保高水平的安全性、降低风险和提高运营效率。目标应该是确保高标准的安全性。

1. 使用安全编码技术

安全编码技术是 DevSecOps 不可或缺的一部分,以确保软件得到充分保护,免受任何低漏洞级别的威胁。除非代码高度安全,否则将存在数据泄露、网络安全攻击和其他安全威胁等风险。建议在安全编码技术上投入所需的时间和资源,以避免将来出现严重的安全攻击。始终选择有经验的开发人员并遵守正确的编码标准。

2. 整合正确的工具

集成正确的工具是有效实施 DevSecOps 的基础之一。大多数公司利用顶级应用安全技术,例如 SAST、DAST、交互式应用程序安全测试 (IAST) 和源组合分析 (SCA) 等,以确保正确使用和优化工具。
DevSecOps 工具中一些常见但备受追捧的功能是图像保证、入侵检测、运行时保护和其他微服务安全功能。随着容器化和微服务成为现代应用程序基础设施的基础,必须将适当的 DevSecOps 工具集成到企业 SOP 中。这就是开发良好且易于使用的 API 发挥作用的地方,因为它们有助于跨不同平台和应用程序领域扩展和集成工具。

3. 使用自动化

手动流程更容易出错,并且通常不方便扩大规模。此类技术还增加了错误配置的风险,这是企业面临的最具影响力、最严重的安全威胁之一。
需要在整个 CI/CD 管道中应用和验证严格的安全协议和措施,而自动化是简化整个过程的原因。这就是为什么它是 DevSecOps 最有效的最佳实践之一。企业必须尽可能实现自动化——从 IDE 中的代码编写到生产中的 IAM 角色——通过避免错误配置来预防、检测和修复问题。

4. 采用安全即代码

安全即代码是指安全策略的编码、扫描和验证。安全作为代码的主要优点是它确保了适当的安全规则。协议在整个基础设施中统一实施。它还有助于加快部署并使用管道的版本控制和自动化。
安全即代码,如自动化和其他 DevSecOps 最佳实践,提供了加强安全性的好处并有助于改进操作。此外,一旦记录在案,它就简化了迭代和扩展安全方法。

5. 安全左移

传统上,安全扫描和评估是在软件生产之后进行的。因此,解决安全漏洞是复杂、昂贵且容易受到时间限制的。为了解决这些困难,左移安全强调尽早将安全集成到软件开发生命周期 (SDLC) 中。
左移不仅仅是代码。它还需要在 SDLC 的规划、分析和设计阶段优先考虑安全性。企业可以及早发现安全问题和错误配置,提高产品质量和安全性,同时减少修复漏洞所需的时间和精力。

关于我们

DevOps云学堂,一个盛满新技术实践的学习平台。技术开放交流,技术实践实施分享。目前课程正在进一步覆盖DevOps全流程!

b456ea9f3a699c25c58f527f79361f05.gif

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是 DevSecOps?2022 年的定义、流程、框架和最佳实践 的相关文章

随机推荐

  • TCP的几个状态 SYN, FIN, ACK, PSH, RST, URG

    2019独角兽企业重金招聘Python工程师标准 gt gt gt TCP的几个状态对于我们分析所起的作用 在TCP层 有个FLAGS字段 这个字段有以下几个标识 SYN FIN ACK PSH RST URG 其中 对于我们日常的分析有用
  • 数据挖掘技术-绘制散点图

    绘制散点图 前置步骤 准备数据guomin npz 下载数据guomin npz到Linux本地的 course DataAnalyze data目录 绘制散点图 绘制2000 2017年各季度的国民生产总值散点图 如代码 41所示 代码
  • 【华为OD机试真题 JAVA】执行时长

    JS版 华为OD机试真题 JS 执行时长 标题 执行时长 时间限制 1秒 内存限制 262144K 语言限制 不限 为了充分发挥GPU算力 需要尽可能多的将任务交给GPU执行 现在有一个任务数组 数组元素表示在这1秒内新增的任务个数且每秒都
  • Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法

    最近在编写Python脚本过程中遇到一个问题比较奇怪 Python脚本完全正常没问题 但执行总报错 AttributeError module object has no attribute xxx 这其实是 pyc文件存在问题 问题定位
  • #C++矩阵类的实现

    C 矩阵类的实现 环境 Win10 VS2017 最近老师布置一个简单的C 作业 实现一个矩阵类 并且实现矩阵运算 主要实现运算为矩阵的加 减 乘 除以及求行列式 伴随矩阵 代数余子式和逆矩阵等 在参考网上的一些前辈的代码后 写出了这些运算
  • 信号与系统复习题

    选择题 2分 题 1 频谱与时域的关系 时域压缩 频域展宽 时域有限 频域无限 2 填空题 20分 2分 空 1 冲击信号的性质 抽样性 尺度变换性 奇偶性 2 线性时不变的概念 线性 齐次性 输入夸大多少倍 输出扩大多少倍 可加性 相应的
  • HFP协议

    通话专题HFP协议学习总结 一 配置和角色 二 HFP的连接 2 1服务级连接建立 2 1 1 服务发现和RFCOMM的连接 2 1 2 支持的特性交换 2 1 3 codec协商 2 1 4 HF指示器 2 1 5 AG指示器 2 1 6
  • ctfshow 文件上传 web151~170

    目录 web151 web 152 web 153 web 154 web 155 web 156 web 157 159 web 160 web 161 web 162 163 web 164 web 165 web 166 web 16
  • STM32F030C8T6 多通道ADC采集

    void adc init void ADC InitTypeDef ADC InitStructure GPIO InitTypeDef GPIO InitStructure RCC ADCCLKConfig RCC ADCCLK PCL
  • 动态规划算法解决背包问题(Java实现)

    文章收藏的好句子 你在书本上花的任何时间 都会在某一个时刻给你回报 目录 1 动态规划算法的概述 2 背包问题 3 动态规划算法解决背包问题 3 1 不可重复装入商品 3 2 思路分析 1 动态规划算法的概述 1 动态规划算法的思想是 将大
  • Python psycopg2使用SimpleConnectionPool数据库连接池以及execute_batch批量插入数据

    有关快速插入大量数据到数据库的一个比较好的博文如下 Fastest Way to Load Data Into PostgreSQL Using Python 其中文末还有提到几种不同方式的对比 效率十分的震撼 可以看看 1 连接池和批量插
  • MYSQL 安装

    MySQL8安装Installer 图文教程 编程宝库 Windows10 MySQL Installer 安装 编程宝库
  • shell提取字符串中的数字保存到变量中

    1 提取数字到变量 temp echo helloworld20180719 tr cd 0 9 echo temp 输出 20180719 2 重定向到文件 echo helloworld20180719 tr cd 0 9 gt mid
  • 【数据结构与算法】--排序

    目录 一 排序的概念及其运用 二 常见的排序算法 2 2选择排序 2 3 交换排序 2 3 4 1 快速排序优化 一 排序的概念及其运用 1 1 排序的概念 排序 所谓排序 就是使一串记录 按照其中的某个或某些关键字的大小 递增或递减的排列
  • [OpenAirInterface实战-14] :OAI nFAPI VNF/PNV持续集成测试的xml配置文件详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120850348 目录 1 nFAPI
  • 23种设计模式之装饰模式

    装饰模式 一个简陋的房子 它可以让人在里面居住 为人遮风避雨 但如果给它进行装修 那么它的居住环境就更加宜人了 程序中的对象也与房子十分类似 首先有一个相当于 房子 的对象 然后经过不断装饰 不断对其增加功能 它就变成了使用功能更加强大的对
  • Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换

    Cinemachine在2017版中正式加入 结合Timeline可以轻松的制作出一下相机动画 相比Unity自带的标准相机 这个Cinemachine插件可操作的变量更多 不同虚拟相机 用来控制相机的 可以平滑转换等 具体可以参考上篇 U
  • pytorch:如何修改加载了预训练权重的模型的输入或输出--(原权重文件修改参数)

    在使用pytorch的过程中 我们往往会使用官方发布的预训练模型 并在此基础上训练自己的模型 为了适配训练数据 有时候需要局部修改这类预训练模型的结构 本文将分别以修改输入的通道数和输出的分类数为例 讲解一种通用的方法来修练模型的结构 加载
  • 图像去模糊:MSSNet 模型详解

    本内容主要介绍实现单图像去模糊的 MSSNet 模型 论文 MSSNet Multi Scale Stage Network for Single Image Deblurring 代码 官方 https github com kky7 M
  • 什么是 DevSecOps?2022 年的定义、流程、框架和最佳实践

    DevSecOps 是一套实用且面向目标的方法 用于确保系统安全 DevSecOps 被定义为通过与 IT 安全团队 软件开发人员和运营团队合作 在标准 DevOps 周期中建立关键安全原则的过程 以下是对 2022 年 DevSecOps