DevOps对安全性来说是好是坏?

DevOps是通过敏捷性给你提供了更好的安全性,还是让开发和部署太快而无法保证安全性?

如果你认为DevOps是快速失败的——就像Facebook曾经说的,“快速行动,打破事物”——那么你可能会认为快速发布、自动化、持续集成和部署给你较少的时间来发现安全问题。毕竟,您正在更快地更改代码、更新特性和添加新功能。这意味着有更多的机会引入错误或遗漏漏洞。

2016年将是DevOps成为主流的一年——Gartner预测,今年全球2000家企业中有25%将使用DevOps技术,惠普企业甚至更大胆地宣称,“在5年内,DevOps将成为软件开发的规范。”这是否意味着安全问题即将发生?

曾帮助微软将必应搜索引擎持续部署(该服务现在每天更新四到五次)的克雷格•米勒(Craig Miller)并不认为这是真的。米勒说:“经典的反应是,更快的速度可能意味着较低的质量或某些东西可能会通过这个过程,我认为这根本不是真的。”“CD,如果你做对了,可以提供所有你需要的审计,让你对自己推出的软件有信心。你必须确保你的软件是高质量的,我认为安全是质量的一个子集。”

Forrester分析师库尔特·比特纳(Kurt Bittner)对此表示赞同。Bittner说:“有一种观点认为,DevOps的速度是通过走捷径和跳过重要步骤来实现的,这是不受控制的。”“事实正好相反;这是一个非常受控制,非常结构化的环境。做正确的DevOps会给你更高的质量,更好的可视性和速度,而不是通过走捷径来达到速度。”

这对于安全性来说应该更好,但只有在持续集成和持续部署与持续安全性和监视相匹配的情况下。

Bittner说,关键在于集中化的标准化输送管道,这是DevOps必不可少的基础。“你可以看到正在建造的东西,你有机会注入各种各样的活动;这可能是代码扫描,也可能是同行评审,各种与安全相关的测试,对环境的控制和正确的设置。”

测试不是可选的

Miller对自动化测试的重要性毫不妥协。“我认为对很多公司来说最大的失败是他们允许在测试中出现失败。我们对失败一点也不能容忍。他警告说,这可能意味着改变你的工具和开发实践。“我们使用的网络安全工具集不是很可扩展;这是一个每周都有人运行的应用程序。我们不会接受一种工具,我必须有人来帮我。如果不能实现自动化,我认为设计存在问题。”

[相关:7个迹象表明你做错了DevOps]

在部署过程中,Bing用于签署二进制文件的工具也是手动的;两者都被重写了,这花费了时间和精力,但也改进了工具。“这是他们做事的方式,但我们不在乎他们是怎么做的,”米勒坚定地说。“我们不会这么做的。”

对于DevOps来说,快速恢复、适应和迭代都和速度一样重要,Miller不喜欢“快速失败”这个术语。“我喜欢快速学习,因为我不想失败;我在努力取得成功,但当我没有成功时,我想学习,希望下次它来的时候,我们知道现在如何做得更好,并随着时间的推移逐渐变得更好。”

DevOps工具供应商Upguard的联合创始人艾伦•夏普-保罗(Alan Sharp-Paul)表示:“在高速公路上设置护栏可以让你走得更快,而不是更慢。”通过适当的检查,你可以在问题成为阻碍事态发展的因素和生产中的安全风险之前发现它们。而当它成为自动化工作流程的一部分时,开销基本上是零。”

这也是Puppet 2015年DevOps状态报告中的数据所显示的:“高绩效IT组织部署频率提高了30倍,交付时间缩短了200倍;他们的故障减少了60倍,恢复速度加快了168倍。”

Bittner认为,OpenSSL中的“心脏出血”bug就是一个很好的例子。“拥有DevOps和更好的输送管道的人能够迅速做出反应,这在商业上引起了一些关注;他们几乎能立即做出反应,而其他人则手忙脚。当威胁发生时,能否迅速做出反应是最大的区别。”

Miller认为这是DevOps的好处之一。因为CD强调有一个代码审查过程,所以小的签入和快速的缓解是随之而来的。如果你能一天部署四五次,你就能在几个小时内减轻一些问题。”

微软开发工具团队的山姆•古肯海默(Sam Guckenheimer)表示,这同样适用于发现漏洞。“使用DevOps,你会担心诸如平均检测时间、平均补救时间、多快能找到妥协的指标等问题。如果配置上发生异常,你有遥测技术帮助你检测,你不断改进你的遥测技术,所以你能得到更好的检测,你能更好地发现妥协的迹象,你能更好地进行补救。”

Guckenheimer解释说,持续部署让攻击者的生活在两方面变得更加困难。“如果你是坏人之一,你想要什么?”你想要一个静态的网络,里面有很多雪花和很多不被触及的地方。如果有人发现你,你希望能够发现防御行动,这样你就可以采取对策。”

123. 第1页
第1页共3页
工资调查:结果在