DevSecOps背后的思想仅是对DevOps的扩展。就像开发人员以瀑布式开发风格将项目扔给运营团队以使其在生产中工作一样,即使使用“ DevOps”,安全性也与应用程序开发或运营完全分开。

DevSecOps一词通常与“向左移动安全性”结合使用。这意味着应用程序的开发人员应在设计时考虑安全因素,而不是将其单独留给安全团队。似乎大多数人自然而然地将注意力集中在DevSecOps方法,如何着重于将安全性集成到开发过程中,特别是CI / CD管道,但人们也可能会说DevSecOps也涉及“转移权利”。

容器安全公司Snyk的创始人Guy Podjarny说:“这是一个概括性的术语,就像DevOps一样,适用于我们如何构建和分类以及运输和交付软件,以及如何在运行时对其进行分类。”

为什么采用DevSecOps?

相对忽略运营和安全性如何组合的原因是,大多数人从迁移到DevSecOps时获得的最大好处既不是提高安全性也不是提高可靠性。在大多数情况下,组织似乎采用DevSecOps的原因与更快地将应用程序推向市场有关。换句话说,是为了满足与DevSecOps团队开发人员通常相关的激励措施。

“我认为已经成功完成DevSecOps的组织能够将产品,新产品,新功能交付市场,比竞争对手快得多。” Palo Alto Networks公共云首席安全官Matt Chiodi解释说。“有纯粹的商业利益。”

红帽 OpenShift产品经理Kristen Newcomer表示,她发现公司通过采用DevSecOps,将部署周期从38周转移到了7周。

在传统的安全设置中,安全团队通常不会检查代码,直到代码已经遍及整个开发流程为止。发现问题后,安全团队将把项目以及要修复的问题列表发送给开发人员。漫长的反馈循环减慢了项目的交付速度,同时也加剧了安全与开发人员之间的紧张关系。

在实践中,将安全性分开还可以使安全性问题更容易进入生产环境。Chiodi说:“大多数组织花费80%或更多的时间在运行阶段。” “当安全性在构建,发布和运行过程中平均分配时,您最终会减少很多的漏洞,然后这些漏洞会在运行时出现。”

但是,在接受采访的安全专家中,似乎已经达成共识,即改善组织的安全状况不是采用DevSecOps的核心动机,而是令人意想不到的辅助效果。

正确设置DevSecOps

哪个组织不希望更快,更安全地交付应用程序?许多新公司从一开始就采用DevSecOps方法,但是要成功建立起大型组织的DevSecOps并不容易。从DevOps迁移到DevSecOps可能至少与从瀑布式迁移到DevOps一样具有挑战性。

“我所见过的在DevSecOps上真正成功的团队在执行层得到了认可,” Newcomer解释说。DevSecOps需要重大的文化变革,并涉及对每个参与人员激励措施的转变。如果没有高层的支持,DevSecOps要求的文化变革可能无法实现。

集装箱安全公司StackRox的产品负责人Hillaryaryson解释说:“ 每当您必须改变人们的思维或行动方式时,这将是最艰难的战斗。” “而且,关于如何获得DevSecOps必杀技,还没有真正的既定蓝图。”

改变安全性的角色

Newcomer说:“安全是No团队的声誉。” DevSecOps的目标是改变这种动态,以使安全性不再是部署路径上的障碍。但这涉及更改安全专业人员的工作方式。

首先,DevSecOps需要高度的自动化。安全团队根本不应该运行手动测试,而应该将测试集成到CI / CD管道中,应该在没有安全专业人员干预的情况下获得有关应用程序或功能的安全风险的反馈。

相反,在DevSecOps模型中,安全团队的作用是创建安全策略,帮助开发人员和操作员了解安全自动化工具和服务器作为顾问的输出。开发人员不需要成为安全专家,但是他们确实需要变得对安全性更加了解。毫无疑问,安全专业人员还必须更加熟悉基础架构和软件开发。

这并不总是一条容易走的路。Benson解释说:“如果您是安全专业人员,并且花了很多时间来学习这些技能,那么对于进入使您学习完全不同的技能的东西,您可能不会感到非常兴奋。”

统一激励措施

DevSecOps的主要挑战之一是,它涉及将以不同方式激励的团队召集在一起。开发人员希望快速推出新功能,安全团队希望解决每一个潜在的安全风险,运营商希望获得超级可靠的应用程序。

这种紧张局势是成功收获DevSecOps所必须获得高层支持的核心原因之一。即使将安全性集成到DevOps团队中,共享KPI还是很重要的,这些KPI汇集了团队中每个人的传统目标。

但是,谁最终对安全负责呢?这是一个棘手的问题。有些人认为安全性仍然应该是安全专业人员的责任,有些人认为责任应该转移给开发人员,而其他人则认为这应该是每个人的责任。当然,“每个人的责任”的风险在于,安全不会成为任何人的责任。

如何衡量DevSecOps的成功?

考虑到大多数公司采用DevSecOps的动机,因此开发速度是DevSecOps成功的关键指标就不足为奇了。使用开发指标的另一个优势是:很难增加安全性。

Benson解释说:“特别是在安全性方面衡量任何事情的困难之处在于,您有点在衡量反事实。” “如果什么都没有违反,这意味着您做得很好,或者这意味着您很幸运。”

但是,如果DevSecOps至少在文化转型方面与在技术方面同样重要,那么用组织指标衡量成功的意义就至少一样重要。例如:安全专业人员是在花费时间自己运行测试还是在为DevOps团队创建或配置工具来使用?安全专家在提出建议时是否了解并考虑了功能的业务原理?开发、安全性和操作之间多久通信一次…… ……

了解更多

安全性只是辅助效果?解读DevSecOps的核心动机的更多相关文章

  1. 外媒解读Web安全核心PKI的四大致命问题

    Web安全的立足根基在于复杂的PKI部署体系,但实际生活中得到正确部署的比例却非常有限,而且这一切都将随着摩尔定律的滚滚洪流灰飞烟灭. 我个人算是PKI(即公共密钥基础设施)的忠实拥护者.我热爱数学与 ...

  2. 深度解读 - Windows 7核心图形架构细致分析(来自微软)

    编辑:马志文 时间: 2009-12-29 如现在大家所想的那样, Windows7 其实是 Windows Vista 的改进版. Windows 7 在 Windows Vista 的基础上进行了 ...

  3. 用js实现动画效果核心方式

    为了做好导航菜单,有时候需要在菜单下拉的时候实现动画效果,所以这几天就研究了研究如何用js实现动画效果,实现动画核心要用到两个函数,一个是setTimeOut,另一个是setInterval. 下边我 ...

  4. Redis核心解读(转)

    原文:Redis核心解读 Redis是知名的键值数据库,它广泛用于缓存系统.关于Redis的信息已经不用我多介绍了.这个系统的Redis文章主要从另外一个角度关注,Redis作为一个开源项目,短短2W ...

  5. ThreadPoolExecutor源码解读

    1. 背景与简介 在Java中异步任务的处理,我们通常会使用Executor框架,而ThreadPoolExecutor是JUC为我们提供的线程池实现. 线程池的优点在于规避线程的频繁创建,对线程资源 ...

  6. 民生银行十五年的数据体系建设,深入解读阿拉丁大数据生态圈、人人BI 是如何养成的?【转】

    早在今年的上半年我应邀参加了由 Smartbi 主办的一个小型数据分析交流活动,在活动现场第一次了解到了民生银行的阿拉丁项目.由于时间关系,嘉宾现场分享的内容非常有限.凭着多年对行业研究和对解决方案的 ...

  7. fastclick.js源码解读分析

    阅读优秀的js插件和库源码,可以加深我们对web开发的理解和提高js能力,本人能力有限,只能粗略读懂一些小型插件,这里带来对fastclick源码的解读,望各位大神不吝指教~! fastclick诞生 ...

  8. 详解Tomcat核心配置、http协议

    Tomcat服务器 Tomcat配置与部署(IDEA) https://www.cnblogs.com/gonghr/p/14731266.html Tomcat手工创建和打包第一个Web工程 在ap ...

  9. Material Design Reveal effect(揭示效果) 你可能见过但是叫不出名字的小效果

    Material Design Reveal effect(揭示效果) 你可能见过但是叫不出名字的小效果 前言: 每次写之前都会来一段(废)话.{心塞...} Google Play首页两个tab背景 ...

随机推荐

  1. matlab 提示 Continuous sample time is not supported by discrete derivative 错误的解决办法

    Simulink仿真的时候,出行错误提示:Continuous sample time is not supported by discrete derivative 中文意思是:连续采样时间不支持离 ...

  2. shell 循环结构

    前言 循环结构在编程中十分常见,也是程序中是较为重要的一部分,在bash中有 for,until,while 这三种语句可以进行重复执行部分程序流程,下面会进一步讨论这三个指令的使用以及注意事项 fo ...

  3. JDBC01 mysql和navicat的安装

    navicat的安装 从网上下载的,详细过程,略 mysql8.0.11(win10,64)安装 1.下载 MySQL8.0 For Windows zip包下载地址:https://dev.mysq ...

  4. JUC之CountDownLatch源码分析

    CountDownLatch是AbstractQueuedSynchronizer中共享锁模式的一个的实现,是一个同步工具类,用来协调多个线程之间的同步.CountDownLatch能够使一个或多个线 ...

  5. 关于redis,你需要了解的几点!

    一.关于 redis key: 1.是二进制安全的,也就是说,你可以使用任何形式的二进制序列来作为key,比如一个string,或者一个jpg图片的数据,需要说明的是,空字符串也是一个有效的key. ...

  6. Mysql 常用函数(19)- mod 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html mod 的作用 求余数,和%一样 mod的语法格式 ...

  7. Postman学习之Postman简介

    前言:对于测试人员来说,接口测试是必须掌握的一个技能:在工作中掌握了接口自动化测试无疑是如虎添翼,那么怎么开展接口测试呢?下面将介绍一款接口测试的神器——postman 1.postman背景介绍 p ...

  8. Java的泛型详解(一)

    Java的泛型详解 泛型的好处 编写的代码可以被不同类型的对象所重用. 因为上面的一个优点,泛型也可以减少代码的编写. 泛型的使用 简单泛型类 public class Pair<T> { ...

  9. 51Nod栈

    LYK有一个栈,众所周知的是这个数据结构的特性是后进先出的. LYK感觉这样子不太美妙,于是它决定在这个前提下将其改进,也就是说,每次插入元素时,可以在栈顶或者栈底插入,删除元素时,只能在栈顶删除.L ...

  10. 【MySQL】索引的本质(B+Tree)解析

    索引是帮助MySQL高效获取数据的排好序的数据结构. 索引数据结构 二叉树 红黑树 Hash表 B-Tree MySQL所使用为B+Tree (B-Tree变种) 非叶子节点不存储data,只存储索引 ...