DevOps对安全性是好还是坏?

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

123. 第二页
第2页共3页

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

不自动的秘密

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

Upguard的夏普-保罗说:“我们听到的主要错误是,在你知道你得到什么之前就试图自动化。有些人拿到了DevOps的预算,然后去学习Puppet Enterprise或Chef,结果遇到了一个又一个的障碍,因为他们不了解他们基础设施的实际工作性质。他们只是带着一种紧迫感去“做DevOps”,并在没有考虑的情况下跳进了深水区。到目前为止,这种方法的安全性应该相当明显。

Guckenheimer表示同意。“我不认为DevOps会取代任何好的安全实践,比如密钥管理、密钥轮换、更改默认值等等。我认为它改变了事物移动的速度;我将更多内容存储为代码,并一直重建基础架构,因为无论我使用PaaS、Chef还是Puppet,我都将基础架构视为代码。这样,您就可以更好地应用好的实践。如果你忽视他们,你就很脆弱。安全问题存在,或加剧或缓解;(使用DevOps)我认为你有一个放大器。”

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

Ashley Madison泄露的代码包括硬编码AWS令牌、数据库凭据、证书私钥和其他凭据。优步的一个包含司机个人信息的数据库在2014年遭到泄露,此前该数据库将密钥存储在一个公开可用的回购文件中,D-Link最近在固件更新的开放源代码中发布了其私人代码签名密钥。你的云凭证最终可能会补贴比特币矿工,他们扫描GitHub寻找密钥,并使用它们积累数百或数千美元的账单。

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

实际上,Azure首席技术官Mark Russinovich建议结合教育来教授最佳实践和静态分析工具来实施它们。Russinovich说:“尽可能地,它需要被嵌入到CI/CD(过程)中,这样开发者就不必选择它了,它就这样发生了。”“你可以一整天都在告诉他们‘不要在代码中检查秘密’,但总会有人这么做的,所以你需要做的就是让他们立刻知道;不要在顺流而下的时候抓住它,要在他们检查的时候抓住它,这样他们就知道他们不能那样做。”

但Russinovich表示,这种强制执行必须成为DevOps整体文化的一部分。“我们认为,大多数开发商的意图都是好的。他们可能会忘记,可能有人没有接受过培训,有一段时间没有接受过,他们就会忘记,而大门就是为了抓住这一点,因为没有他们的风险太大。”

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

Russinovich声称,“充其量,你可以访问到他可以从他的存储库中看到的一点点源代码——这可能对某人来说是相当明显的,他的帐户被泄露了,我们会关闭它。”

除了保护凭证之外,DevOps还让您有机会监视开发人员编写的代码,以及您所依赖的第三方代码;Forrester的Bittner建议将其视为供应链管理和材料清单的一部分。通过Sonatype和Artifactory等服务监控二进制工件和组件,这是一个相对新颖的想法,但古肯海海预测,鉴于Heartbleed、Poodle和Shellshock等问题,这将成为普遍做法。

转变安全离开

一个更基本的问题是DevOps和安全之间的普遍脱节。

通过在开发周期的早期捕获漏洞,以及在部署到实时系统之前在配置中发现漏洞,获得对问题和漏洞的这种可见性是DevOps帮助您在安全性上“左移”的方法之一。Forrester分析师Amy DeMartine指出,潜在的安全问题和改进不仅适用于开发人员,也适用于基础设施和运营,并指出47%的web应用服务器存在漏洞,因为它们配置不当。

如果做得好,她认为DevOps应该始终包含安全性,但具有讽刺意味的是,他们没有包含安全性的原因是DevOps打算解决的问题的一部分。

[相关:为什么我们要跑到DevOps?]

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

123. 第二页
第2页共3页
SD-WAN买家指南:向供应商(和您自己)提出的关键问题