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

DevOps是否通过敏捷性为您提供了更好的安全性,或者使开发和部署过于快速而无法保证安全性?

123. 第二页
第2页共3页

在传统系统中,手动配置的服务器各不相同,不同系统上可能存在漏洞,攻击者可以看到管理员试图跟踪或阻止这些漏洞。Guckenheimer说:“它们是静态慢速网络中的特殊措施,但是有了DevOps,你就有了一个非常快速的自动发布管道,你就不断地重新部署。”。“如果你在网络上到处部署,看起来不像是针对攻击者采取的特殊行动。”

不自动的秘密

如果DevOps应该提高安全性,为什么不总是这样呢?有时问题是,公司正在使用DevOps工具,但并不真正理解DevOps。

Upguard的Sharp Paul说:“我们听说的主要错误是,在你知道你有什么东西之前,试图实现自动化。有人得到了DevOps的预算,出去接了Puppet Enterprise或Chef,结果遇到了一个又一个的障碍,因为他们不了解基础设施的实际工作性质。他们只是接受了“做DevOps”的紧迫感,不假思索地跳到了最深处,“这种方法的安全性现在应该相当明显了。

古肯海默同意。“我不认为DevOps会取代任何好的安全实践,比如密钥管理、密钥轮换、更改默认值或其他什么。我确实认为它改变了事物移动的速度;我把更多的东西存储为代码,并且我一直在重建基础设施,因为无论我是在做PaaS、Chef还是Puppet,我都将基础设施视为代码。这样,您可以更好地应用好的实践。如果你忽视他们,你就很脆弱。安全问题就在那里,而且会加剧或缓解;我认为你有一个放大器

有一些常见的安全错误。如果构建自动化意味着将云凭证放在代码存储库或部署脚本中,那么它们很容易受到攻击。在GitHub上搜索AWS和Azure证书,会发现很多人都在犯和Ashley Madison、Uber和D-Link一样的错误。

Ashley Madison泄露的代码包括硬编码的AWS令牌、数据库凭据、证书私钥和其他凭据。Uber拥有一个数据库,其中包含2014年泄露的驱动程序个人信息,此前Uber将密钥存储在一个公开可用的repo中,D-Link最近在用于固件更新的开源代码中发布了其私有代码签名密钥。你的云证书可能最终会补贴比特币开采商,他们扫描GitHub以获取密钥,然后用这些密钥来支付数百或数千美元的账单。

“人们在DevOps中没有必要做他们应该做的事情,即使用Azure Key Vault和类似的工具进行良好的秘密管理。我需要做的是将所有的秘密都放在外部,当我通过发布管道从一个环境到另一个环境时,我需要将这些秘密分别绑定到每个环境中,并确保这些秘密都是外部的、安全的、加密的和不断旋转的,”Guckenheimer说。

实际上,Azure CTO Mark Russinovich建议将教育与静态分析工具相结合来教授最佳实践。Russinovich说:“它需要尽可能地嵌入到CI/CD[流程]中,这样开发人员就不必选择使用它了,它就这么发生了。”“你可以整天告诉他们‘不要把秘密输入代码’,但总有人会这么做,所以你需要做的就是让他们知道;不要顺流而下,要在他们检查的时候及时检查,这样他们就知道自己做不到。”

但这种执行必须成为DevOps整体文化的一部分,Russinovich说。他说:“我们认为,实际上大多数开发商的出发点都是好的。他们可能会忘记,可能会有一些人没有接受过培训,有一段时间没有接受过培训,他们会忘记这一点,而大门就是要抓住这一点,因为不让他们接受培训风险太大了。”

Visual Studio团队处理凭证的方式可能是一个很好的模型。“我们运行Visual Studio云服务;我们有超过1000个秘密在里面,它们一直在旋转,”Guckenheimer说。“他们轮换的很好,开发人员没有机会接触到任何关于产品的秘密,他们在一个独立的领域。我们只练习足够的管理。所以是你以某种方式获得工程总监的账户——通过一些后门或社会工程,还是蛮力或偷他的徽章——它不会你很多好的,窃听到的生产服务,因为秘密会旋转。他将没有管理特权,因为这些特权是在‘刚刚好’、有时间限制的过期基础上启用的。”

Russinovich声称,“你最多可以访问他从他的代码库中看到的一小部分源代码——很可能对某些人来说,很明显他的账户被泄露了,我们会将其关闭。”

除了保护证书之外,DevOps还为您提供了一个机会,不仅可以监视开发人员编写的代码,还可以监视您所依赖的第三方代码;Forrester的比特纳建议将此视为供应链管理和材料清单的一部分。使用Sonatype和Artifactory这样的服务来监视您使用的二进制工件和组件是一个相对新颖的想法,但Guckenheimer预测,鉴于心脏出血、Poodle和Shellshock等问题,这将成为一种普遍做法。

转变安全离开

一个更基本的问题是DevOps和安全性之间的常见脱节。

通过在开发周期的早期发现缺陷,以及在部署到实时系统之前发现配置中的漏洞,让DevOps能够看到问题和漏洞,这是帮助您在安全性上“左移”的一部分。Forrester的分析师Amy DeMartine指出,安全问题和改进的潜力同样适用于基础设施和操作,47%的web应用服务器由于配置错误而存在漏洞。

如果处理得当,她认为DevOps应该始终包括安全性,但具有讽刺意味的是,它们不包括安全性的原因正是DevOps着手解决的问题的一部分。

[相关:为什么我们要去德沃斯?]

DeMartine说:“我认为许多公司启动DevOps而忘记安全人员的原因是这是另一种文化差异。”“安全人员说的是一种完全不同的语言——入侵、事件、漏洞和暴露——每个人都把它们放在开发生命周期的最后,如果它们被记住的话。”

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