如何将 DevSecOps 引入企业?
前 言
现如今,大部分企业已经在内部实现了 DevOps 实践。DevOps 为团队提供了交付可靠软件和快速更新的方法论。这种方法让团队更专注于质量而不是将时间浪费在运维上。然而,结果是,安全实践往往被留在交付流水线末端的安全专家手中。然后,由于意外往往出现在交付阶段的最后,所以使得特定的安全方法在交付过程中产生了不必要的支出。因此,团队没有足够的时间修复代码,并反复开始相同的流程,最终导致交付成本高且效率低。
随着大多数公司开始进行数字化转型,DevSecOps 已经变得越来越重要。随着这些计划的实施,公司正在向云端转移。这使得本地基础设施逐渐转移到公有云上。云服务提供商提供了具有成本效益、可扩展、高度可用和可靠的解决方案。然而,这些优势也伴随着新的安全挑战。
DevSecOps 将安全纳入 DevOps,作为 SDLC 的一个组成部分,而不是在软件开发几近完成后才开始考虑安全问题。它还将安全责任分配给团队成员,在于安全专家的协作中,团队可以实现一种“安全即代码(Security as code)”的文化,鼓励将安全与 SDLC 流水线中的其他组件放在同一位置对待。

什么是 DevSecOps ?
DevSecOps 是全栈式的,横跨整个 IT栈,包括网络、主机、服务器、云、移动端和应用安全。这些层都逐渐被各类软件替代,因此应用安全成为 DevSecOps 的关注点。DevSecOps 横跨整个软件开发生命周期,包括开发和运维。在开发中,安全的重点是识别和预防漏洞,而在运维中,监控和防御攻击是主要目标。
那么团队可以将 DevSecOps 实践和工具应用于非 DevOps 项目吗?答案是肯定的。如果您的团队目标是以最具成本效益的方式生产高度安全的软件,那么 DevSecOps 就是前进的方向。
实行 DevSecOps 的企业已经大受裨益。根据 Gartner 的数据,这些早起采用者的安全测试跟上频繁的应用程序更新的可能性要高出2.6倍,并且修复漏洞的时间减少了2倍。
借助 DevSecOps,开发、运维、测试和安全团队进行合作,并整合资源,以便在开发过程中尽早发现安全问题。开发也不会停滞不前,最终的结果是在更快、更有效的工作流程中创建更安全、更高质量的应用程序。
如果你是一名 IT 安全专业人员, DevSecOps 可以让你在谈判桌上拥有一席之地。你的团队不再被看作是一个沉重的枷锁,你们的意见将在开发之初就得到重视,你的组织将把你看作是推动安全集成的牵头人。
如果你是一名开发人员,你也会从 DevSecOps 中受益良多。因为对软件的安全性要求是不会消失的,如果只在最后一刻处理安全问题,那么只会拖累你的进度。安全是当今软件质量的一个重要组成部分,在开发阶段就开始注重软件安全,你的客户会为此感谢你。
DevSecOps 的5个要素
1、协作
协作的起点是在整个组织内建立一种安全责任共担的心态,同时得到领导层的支持。围绕着一个共同的目标,即在满足所有安全和合规要求的前提下,尽可能快地开发和发布高质量的产品,从而巩固合作。
安全团队从熟悉 DevOps 实践开始做好自己的工作,并将其整合到安全中。例如,频繁提供安全功能,并尽可能将安全任务自动化。反过来,开发人员也应该学习安全的最佳实践,对安全性的要求、风险意识和安全工具等。
2、沟通
开发人员和安全专家之间的沟通差距必须被弥合。安全专家需要用开发人员的术语来阐述控制的必要性和合规的好处。例如,在讨论安全风险时,以项目延迟和开发人员计划外的额外工作为例,将使解决这些风险的重要性深入人心。
开发人员应该清楚地了解他们身上的安全责任,这样他们就可以完全接受他们在一个更安全和合规的组织中的角色。这些责任包括意识到潜在的安全风险,并在编写代码时牢记安全的最佳实践。开发人员还应该准备好在整个开发过程中进行漏洞测试,以便在发现漏洞时及时进行修复。
3、自动化
自动化可能是一个成功的 DevSecOps 计划中最关键的组成部分。它可以让安全措施嵌入到开发过程中,并确保安全不会成为安全团队的负担。自动化的安全测试和分析可以集成到整个 CI/CD 流水线中,在不拖累创新和开发工作流程的情况下提供安全的软件。现在,开发人员和安全团队都很满意。
自动化还可以实现有价值的安全控制,如中断构建。这种安全故障保护机制是基于一个自动化的风险评分系统,当风险超过预先确定的阈值时就会发出警报。然后,所有的构建过程都会被冻结,直到开发人员补救安全问题。一旦安全问题被修复,开发人员可以继续完成构建并交付应用程序。
4、工具与架构安全
安全的软件始于安全的 DevOps 环境。保护工具、访问和架构在任何 DevOps 系统中都是至关重要的。安全团队应该带头选择和检查所有系统安全工具的配置,以确保在这些系统被批准广泛使用前已经配置好合适的功能。
识别和访问管理应该被认真对待。安全团队应该控制对 DevOps 架构和数据的访问权限,在整个开发流水线中保护凭证的使用。多因素认证(MFA)、最低访问权限以及对高级权限的临时访问都是你可以利用的访问控制策略。此外,CI/CD 流水线应该被隔离,以限制横向移动,所有不必要的访问 DevOps 工具的账户应该被消除。
有了 DevSecOps,安全和合规性控制被纳入基础设施,以涵盖所有环境,包括云。所有工作站和服务器都要接受定期的安全监控、漏洞扫描和补丁。可以使用自动化工具来扫描所有代码,以确保在检查代码库时没有遗漏。另外,所有新的虚拟机和容器都会自动接受正确配置的控制,以帮助抵御自动重建。集中的存储系统存放 DevOps 工具和密钥,所有这些都受到加密和多因素认证(MFA)的保护。
5、测试
历史上,安全测试是作为产品发布前的最后一步来运行的。理想情况下,测试应该贯穿整个开发过程。Keatron Evans,Infosec Skills Infosec Institute 的作者和顾问,解释说:“传统上,应用程序在完成开发后再进行测试,但如果开发人员在自动、持续的基础上进行测试,会更有效。开发者应该能够在整个开发过程中进行基本的 OWASP 十大测试,而不是测试一个完全构建完成的应用程序,因为前者将可以解决一半的网络安全问题。”
为了保持安全与发展同步,自动化测试的注入是至关重要的。自动化可以帮助执行简单的流程,如在代码被检查到代码库之前扫描代码的密钥,以确保密码没有被记录在事件日志中,以及搜索应用程序的恶意代码。
有效的测试方案包括静态应用安全测试(SAST)、动态应用安全测试(DAST)和不太频繁但同样重要的技术,如渗透测试、Red Teaming 和 Threat Modeling。后者可能很有价值,因为它们从黑客的角度接近代码,而不破坏生产环境。现在,许多组织通过“Bug 赏金”计划来激励进行彻底的测试,奖励发现潜在的安全问题。
DevSecOps 通过监测关键指标来评估测试机制,以衡量在整个开发过程中为了减少风险而进行的优化和安全实践的有效性。开发人员会收到自我评估的记分表,通过各种相关问题让他们保持对安全问题负责。例如,攻击面是否在减少?凭证滥用是否被发现?我们的渗透测试是否显示出更少的代码漏洞?含有密码的代码提交的百分比是多少?
如何将 DevSecOps 引入企业?
过渡到 DevSecOps 方法需要时间。为了确保整个组织的认同,建议采取循序渐进的方式。以下是引入 DevSecOps 计划时需要记住的一些关键点:
- 在组织内部建立一种以安全为中心的文化,强调安全是组织成员共同的责任。
- 寻找方法在整个开发过程中尽早整合自动化安全测试。
- 通过安全意识培训来引导开发人员了解安全威胁、安全编码要求和工具。
- 让开发人员接触当前的黑客技术,教他们像黑客一样思考和攻击代码。
- 让安全团队提供强大的渗透测试、红队练习和威胁建模,以积极测试代码。
- 在共享的跟踪系统中监控安全问题,以便在所有部门中获得最大的可见度。
- 提供相关的指标,以证明随着时间的推移DevSecOps 项目在持续改进并提供价值。
- 认识到开发人员需要时间来完全改变他们的思维方式和习惯。在日常活动中继续强调安全的概念并提升安全意识。
如何将 DevSecOps 引入企业?的更多相关文章
- 企业QQ 增加在线交谈链接
企业QQ的在线交流链接跟普通QQ的在线交流不一样,普通QQ的在线交流,可以在http://shang.qq.com/v3/widget.html生成:企业qq的链接可以按以下步骤添加: 第一步:引入企 ...
- 用友NC V6.3打造集团企业高效信息平台
近年来,随着互联网快速发展,信息化管理的应用也越来越普及,信息化建设已经深入到很多企业的核心业务,而且为了确保业务稳定.可靠并快速.有效地 开展,企业经常会运用多个信息系统进行辅助支撑,但是,许多企业 ...
- 企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理
为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能力框架(Architecture Capabil ...
- 灵雀云受邀加入VMware 创新网络,共同助力企业数字化进程
11月15日,在VMware主办的“VMware创新网络”2018高峰论坛上,VMware发布了VMware创新网络(VMwareInnovation Network,VIN)的长期发展规划和 ...
- 企业微信JS-SDK实现会话聊天功能
vue引入企业微信JS-SDK实现会话聊天功能 这两天在做一个对接企业微信实现会话聊天的功能, 发现企业微信文档这块儿做的不是特别详细,网上搜索也没找到特别完整的流程. 期间也踩了不少的坑, 在此进行 ...
- TOGAF架构能力框架之架构能力建设和架构治理
TOGAF架构能力框架之架构能力建设和架构治理 为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能 ...
- odoo:开源 ERP/CRM 入门与实践
看了这张图,或许你对odoo有了一些兴趣. 这次就是和大家一起交流开源ERP/CRM系统:odoo 对以下读者有帮助:研发.产品.项目.市场.服务.运营.管理等. 一.背景趋势 社交网络.电商O2O: ...
- Network Monitoring in Software-Defined Networking :A Review(综述)
来源:IEEE SYSTEMS JOURNAL 发表时间:2018 类型:综述 主要内容:概述了SDN监控的发展,并从收集信息.预处理.传送信息.分析.和描述五个阶段进行解读,并比较了传统网络和SDN ...
- odoo:开源 ERP/CRM 入门与实践 -- 上海嘉冰信息技术公司提供咨询服务
odoo:开源 ERP/CRM 入门与实践 看了这张图,或许你对odoo有了一些兴趣. 这次Chat就是和大家一起交流开源ERP/CRM系统:odoo 对以下读者有帮助:研发.产品.项目.市场.服务. ...
随机推荐
- 漏洞复现:MS12-020 远程桌面协议RDP远程代码执行漏洞
漏洞复现:MS12-020 远程桌面协议RDP远程代码执行漏洞 攻击机:Kali2019 靶机:Win7 64位 解题步骤: 1.打开Kali2019和Win7 64位 ,确定IP地址是多少 2.确定 ...
- Python 树表查找_千树万树梨花开,忽如一夜春风来(二叉排序树、平衡二叉树)
什么是树表查询? 借助具有特殊性质的树数据结构进行关键字查找. 本文所涉及到的特殊结构性质的树包括: 二叉排序树. 平衡二叉树. 使用上述树结构存储数据时,因其本身对结点之间的关系以及顺序有特殊要求, ...
- 架构师必备:Redis的几种集群方案
结论 有以下几种Redis集群方案,先说结论: Redis cluster:应当优先考虑使用Redis cluster. codis:旧项目如果仍在使用codis,可继续使用,但也推荐迁移到Redis ...
- 沁恒CH32V103C8T6开发环境笔记
CH32V103C8T6 CH32V103C8T6是沁恒的RISC-V内核MCU, 基于RISC-V3A处理器, 内核采用2级流水线处理,设置了静态分支预测.指令预取机制,支持DMA. 主要参数如下 ...
- Java 17中对switch的模式匹配增强
还记得Java 16中的instanceof增强 吗? 通过下面这个例子再回忆一下: Map<String, Object> data = new HashMap<>(); d ...
- Python学习4(字典的内存分布)
1.字典:是python数据类型之一,字典通过花括号来包含数据项,字典的每个元素由2个部分组成,键:值,字典是根据键来找对应的值. data = {"name": "Et ...
- 从 rails 窥探 web 全栈开发(零)
从 rails 窥探 web 全栈开发(零) 本文将讲述在学习之前几个必须要知道的概念,这些词汇在 rails 中都会出现. 本文前置条件:安装好 Ruby. 从 rails 窥探 web 全栈开发( ...
- 零基础学Java第一节(语法格式、数据类型)
本篇文章是<零基础学Java>专栏的第一篇文章,从本篇文章开始,将会连更本专栏,带领大家将Java基础知识彻底学懂,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! ...
- 一文讲透为Power Automate for Desktop (PAD) 实现自定义模块 - 附完整代码
概述 Power Automate for Desktop (以下简称PAD)是微软推出的一款针对Windows桌面端的免费RPA(机器人流程自动化)工具,它目前默认会随着Windows 11安装,但 ...
- http协议与html
目录 前端 HTTP协议 HTML简介 head内常见标签 body内基本标签 body内基本标签 特殊字符 布局标签(div.span) 图片标签(img) 超链接标签(a) 标签的两大重要参数(i ...