DevOps作为软件开发过程管理领域的新思维,已经被越来越多的IT企业所接受 。不得不说,DevOps所带来的业务效率提升是毋庸置疑的,“1天10次部署”、“15分钟从完成补丁到上线”已经逐渐成为更多企业用于评价开发和运维的新标准。
在前不久结束的RSA 2017大会上,安全连接DevOps(开发运维一体化)成为大会的一个热点话题,这也就是DevSecOps。
DevSecOps
改变安全的尴尬处境
“DevSecOps”,是一种全新的安全理念与模式, 从DecOps的概念延伸和演变而来,其核心理念:安全是整个IT团队(包括开发、运维及安全团队)每个人的责任,需要贯穿从开发和运营整个业务生命周期每一个环节才能提供有效保障。
来自Garnter研究公司的分析师David认为,当今的 CIO 应该修改 DevOps 的定义,使之包括安全理念变成为
DevSecOps
。DevSecOps是糅合了开发、安全及运营理念以创建解决方案的全新方法。其作用和意义建立在“每个人都对
安全
负责”的理念之上,其目标是在不影响安全需求的情况下快速的执行安全决策,将决策传递至拥有最高级别环境信息的人员。
随着 DevOps 的变化,传统安全不再是一种选择。在开发周期中,它的位置太靠后,而与迭代设计和系统发布相协作时,它又不够迅速。随着 DevSecOps 的引入,企业经营者或安全人员没有必要为了减少风险而遗弃它。
相反的,企业内的每个人都应该利用它,并加以改进,那些拥有可以为系统贡献安全价值的技术人员更应该支持它。没有内置安全控制,肯定会发生系统故障,因为单纯的回避安全,只会给系统带来更多的风险。因此,认为价值创造和安全不能协作的想法是荒谬的。
DevSecOps的理念使它成为协作系统,企业经营者可获得有助于安全决策的工具和流程,同时安全人员也可以使用和调试这些工具。在这种情况下,安全工程师与 DevSecOps 理念一致,作为安全从业者能够提供价值,并且为了能够给更庞大的生态系统提供安全价值,他们必须做出相应的改变。
这样,DevSecOps 工程师为系统提供的价值,是一种持续监测的能力,在非合作攻击者发现缺陷前,打击和确认漏洞。因为这些改变,DevSecOps 工程师是外部攻击者的有力竞争对手。这允许所有人,包括安全人员,在业务生态系统内为迭代价值创造做出贡献,而不需要将严重缺乏的安全从业人员额外添加到DevOps团队。
而且,
DevSecOps
作为一种理念和安全转型,进一步与其他安全变革相协作。换句话说,无论你是不是相信安全需要被添加到开发,运营,或其他业务流程中,事实就是如此!
安全需要被添加到所有业务流程中,并且需要创建一个专门的团队,理解业务,使用工具来发现缺陷,持续测试,而企业经营者则需要运用科学预测做出决策。更进一步,要完成完整的变革进程,DevSecOps需要高级管理层和董事会的参与,将信息作为业务运营的关键指标,在当今经济下,在竞争日益激烈的低信任环境中,证明自己的价值。
不只是DevOps,更需要DevSecOps
软件自动化和安全公司Sonatype,针对2700多名IT专业人士进行的关于《2017年DevSecOps社区》的调查数据显示:
-
IT企业将DevOps做法描述为非常成熟或者提高成熟度占比为67%;
-
47%的传统开发和运营团队报告安全团队和政策正在放缓;
-
58%的成熟DevOps团队将自动化安全作为持续集成实践的一部分;
Sonatype副总裁表示,调查能够给DevSecOps社区反馈一些消息。正面的是,早期推进自动化安全的发展已经发生。但也存在对DevOps怀疑或抵制的数据。调查发现一些企业正在抵制DevSecOps,58%的受访者表示安全性抑制了DevOps的敏捷性。
Weeks表示,对整个生命周期中采用的自动化安全措施感到惊喜。根据调查,当被问及企业执行应用程序安全分析的程度时,49%的受访者在进行质量检查/测试时作出回应,45%的受访者表示在上市之前,有27%的企业支出包括设计中的一切和架构阶段,直到软件投入生产都会考虑DevSecOps。
掌握7招轻松助你成为DevSecOps巨星
DevSecOps终将成为大势所趋,安全专业人员也需要在态度、工作习惯以及沟通方式等方面做出重大调整。接下来小编就带你了解安全架构师Michele Chubirka、以及DevSecOps和云可靠性领导者Troy Marshall对于如何成为DevSecOps领域巨星的相关探讨:
1. 重在改善而不是苛求完美
DevOps需要通过细小、频繁的代码部署逐渐改善软件。但是不幸的是,许多资深的安全专业人员很难达到这种心态,且无法根据风险对软件的安全性要求进行优先排序。
Marshall表示,“不要让完美成为阻碍前行的敌人!总是会有很多你想做的,但是你必须确定自己的最小可行产品(minimal viable product ,MVP)是什么,并将其对外发布,如此一来,你才能收集到用来改善产品的反馈信息。这是一个迭代的过程,这一点你必须牢记于心!”
2. 以客户为中心,消除摩擦点
近60%的IT专业人士认为,安全性是DevOps敏捷性的抑制剂。
这对业务而言确实是一个问题,尤其是在应用程序市场竞争中对所谓的敏捷性越来越依赖和重视的今天。
想要把安全和业务产出结合起来,有时就犹如把油和醋混合起来一样困难。因为安全专家考虑的是如何保护企业资产的安全,而业务专家关注的是如何冒险满足客户的需求以增加收入。这些原则性的差异会导致双方产生极大的摩擦。
而以客户为中心,可以协调业务与安全之间的关系,从而确保制定准确、完备的安全策略,同时也可以减少复杂性造成的风险控制障碍。此外,安全计划及产出可以适应客户需求和业务产出,其中的复杂性也可以通过自动化和报告进行展示。
最终,支持业务产出的必要控制应当简单易懂,让安全实现成为人人都可以做的事情。
3.与开发人员保持同步
DevSecOps实践需要开发人员、运维人员和安全人员通力合作,能站在对方的视角客观看待问题。具体到开发人员而言,不仅仅需要开发技能,还需要对运维及安全有了解,对运维人员和安全人员也是一样,需要各自扩充不同领域的通用技能与知识。
Chubirka说:“你总是会听到来自信息安全人士的抱怨,称培训开发人员根本不起作用,但是其实最大的挑战是培训信息安全人员去了解开发人员的工作流程,以便他们可以学习和使用相同的语言进行有效沟通。我认为和那些‘老派’的同事共事比跟开发人员合作更难。”
想要了解早期开发过程中保护代码的独特挑战,需要安全专业人员真正地了解开发过程到底是什么样的。信息安全专家需要成为开发人员更好的合作伙伴,所以与其抱怨开发人员忘记安全性,不如找到与他们更紧密合作的方法。例如,Chubirka建议将安全人员嵌入到开发团队中,他们将会“倡导‘安全是一项功能’的理念”。
4. 明确界定具体要求
当安全专业人员了解开发人员的语言时,以直接转化开发人员日常工作的方式来明确界定具体要求就变得更为容易了。
Chubirka说,“大多数安全机构在阐述他们的期望方面给出了非常模糊的概念,只是抛出‘最佳做法’以及‘NIST标准’等要求。”
她建议,DevSecOps专业人士可以首先在嵌入产品MVP语句的模板中传达其非功能需求(NFR)来获得更好的结果。
她说,“置身Scrum团队(指PO,SM和开发团队)中,并提供反馈意见,教他们威胁模型以及实施有助与此的标准问卷。”
5. 强制执行政策规范
有了客观标准可以帮助业务专家明白要在什么时候、以什么样的方式和顺序改善业务资源的安全情况。实际上我们可以认为,安全专家的唯一目标就是为业务伙伴提供可行的修复建议。建立客观标准来衡量企业资产安全无疑是最理想的方式,可以满足业务伙伴为了快速做出决策对可行性建议的需求。
有时,相比于策略,客观标准更为重要,因为它能促进企业内形成成熟的控制机制,使风险决策有据可依。
创建安全记分卡是制定 DevSecOps 计划的基本要素,因为它不仅可以为业务伙伴提供指导,而且还可以为持续监测企业资产安全的安全团队提供方向。根据对象的不同,记分卡可以通过检测仪器和记录结果为决策行为创设情景。
举个例子,如果面向的对象是开发部,使用的度量指标和提供的报告可能更倾向于开发方面,比如每行代码中存在的安全漏洞数量。反之,要是面向运营部,使用的度量指标可以是基础设施和配置方面存在的缺陷和漏洞。不过整体而言,只要创建记分卡便有助于各个团队排除干扰和分歧并做出快速、精准的决策。
6. 扩大您的工具选择范围
企业从不坚持培训开发人员的另一个原因是,大多数传统的安全工具最终不能与其他能够实现DevOps传送管道的工具保持一致。而且,如果开发人员无法在自然工作流程中使用安全工具,那么它们的使用频率也会越来越低。
Marshall表示,“关于工具,不要害怕离开你熟悉的可信任的工具,在开始DevSecOps之前,我们对商业DAST工具(一般来说,DAST工具只适用于使用简单
通信
协议(例如HTTP)的软件)进行了大量的分析,我们很快发现它不太适合我们所需要的自动化程度。”
相反,Ellucian团队转而使用替代的开源工具,使开发团队如何制作软件变得更加有意义。
他说:“这并不是完美的,而是满足了我们的初步需求,我们已经学到了很多可以应用到未来的地方。”
7. 构建自动化搜寻安全漏洞
想象一下,如果你的公司能够先于攻击者发现安全漏洞并在遭受攻击前将其修复,可以免掉多少损失?主动搜寻并测试业务资源的安全性,有助于及时发现可能会被对手轻易利用的弱点和缺陷。采取主动策略保护业务资源的安全,也有助于更好地衡量与扩展,因为在业务受损前发现重要的攻击面需要自动化和大量的数据。
但是,仅凭一个好的事件响应进程来实现这个需求是不够的,因为在外部发起尝试性攻击时才发现漏洞,已经为时太晚。
建立主动搜寻的最佳方式是实现构建自动化,利用自己的信息确定安全缺陷,防止漏洞成为攻击目标。另外,这类功能还可以利用攻击者目前最常使用的被动输入来加强自身的防御策略。从根本上来说,这类功能不仅可以巩固公司技术环境方面的侦察,而且它还允许内联测试与开发,可以在整个业务产出的支持系统中优先执行修复措施。
换句话说,加强内部的安全测试,主动搜寻安全漏洞,对企业很有帮助,因为修复建议可立即执行,而且还实现了与业务流程的整合。
最后,除了牢记以上7大原则,还要确保有连续检测和响应来完成信息发现和实时攻击检测。由于监管流程和基于纸质的控制缺少攻击分析,DevSecOps 需要持续检测、对照、关联和响应来弥补该欠缺。
简而言之,持续检测和响应至关重要,因为它通过监测和分析外部对公司目标发起的尝试性攻击,可以迅速击退事件。