本文要点
开发人员和IT领导者都说安全是最高优先级的事情。但是,不断有调查显示,说起来容易,做起来难。2019 DevSecOps社区报告(2019 DevSecOps Community Report)指出,将近一半的受访者表示没有时间将安全实践嵌入到其软件开发的生命周期中。GitLab的2019全球开发者报告(2019 Global Developer Report)强调,有49%的安全专业人员无法让开发人员优先考虑漏洞修复。 Enterprise Strategy Group的最新研究指出,有83%的受访者担心滥用特权帐户,而35%的受访者认为多重安全控制导致IT复杂性增加。
为了阐明在云时代有效的安全性实践,InfoQ与数据恢复和数字取证公司Gillware的CISO Christopher Gerg进行了交流。
InfoQ:随着组织不断将架构扩展至公有云,他们分别应该继续做、开始着手做和停止做哪些事情呢?
Gerg:我鼓励迁移至云中,在某些场景下,这会大幅降低成本。但是,我们也需要注意一些事情: 请记住,归根到底,这是其他人的计算机,运行在别人网络基础设施的数据中心中。合规性和数据机密性可能是一个挑战。例如,如果你是与HIPAA相关的组织,那么不仅需要在存储(静态)数据时要对其进行加密,而且在云环境的服务器之间传输数据时也需要对其进行加密。除此之外,服务器和服务应该采用相同的方法,以尽可能可靠的方式对用户进行身份验证,并对他们开展业务所必需访问的服务和数据进行授权,但是不能给他们更多的权限(“最低权限”原则”)。云供应商在确保功能可用以及服务器环境的硬件和物理部分的细节方面做得很好,但是无论是在“云”中还是在数据中心中,保护数据和服务的方式都是完全相同的。 只需要为使用的资源买单。这有助于帮你确定优先迁移哪些工作负载。如果你有一个大型的数据分析任务,需要运行几天的时间,那么可以增加该任务的资源,并且根据一定的规则在不需要这些资源的时候将其关闭。这是使用云来托管服务器和服务能够带来收益的起点。你还可以考虑使用容器化和健壮的编排机制,比如Kubernetes,按需增加处理能力(并在需求减少的时候,将容量调至较低的等级)。 使用云供应商所提供的服务,而不是仅仅将你的虚拟机放到云供应商之上。让我们继续对容器化服务和编排的讨论,要运行你的业务,没有必要运行完整的服务器。这确实需要一些重新思考,但“无服务器(serverless)”或容器化服务允许我们将抽象层在技术堆栈中再往上继续提升,它让使用更少的资源变得更加容易,因此为相同(或可能更多)的功能所支付的费用会更少。 安全规则并没有变化。网络隔离、补丁和更新、监控和告警、认证和授权、加密以及反恶意软件等等,依然非常重要。如果你想要迁移到云中,那么需要对云供应商如何保护你的服务和数据做出稳健的分析。不要想当然地认为他们会为你把所有的事情都做好。
InfoQ:你提到云用户要使用供应商所提供的服务,但是又提醒他们和以往相比重要的“安全规则并没有什么变化”。你是否见过有的公司在确定这些服务该负什么责任方面所面临的挑战?有些云服务会为基础设施打补丁,有些则没有。有些攻击面比其他人更宽。你建议公司该如何调和这些差异?
Gerg:当然,我并没有说使用云服务就一定很容易。最终,还是需要你理解自己的责任是什么,服务供应商的责任是什么(或者说,使用相关的服务时,你需要做什么配置变更)。有时候,使用服务并不是可行方案,因为它无法支持你的合规义务或无法令人满意地解决你的风险关切。你不能“把它扔那里就拉倒”,并假定它得到了正确的处理。你需要对服务如何工作有良好的理解。 一个很好的例子就是不同的云提供商提供都托管了Kubernetes服务。AWS的解决方案在许多方面与 Google云提供的解决方案就是不同的,这些解决方案对“服务器”之间加密数据的合规性义务会具有潜在影响。
InfoQ:在DevOps风格的产品团队中,你建议公司该如何嵌入或利用InfoSec技巧呢?
Gerg:尽早并且要经常这样做。在帮助DevOps组织集成信息安全方面,Gene Kim的DevOps Handbook是绝佳的参考资源。这里的底线是,良好的安全性需要从一开始就考虑进来,而不是事后再去解决。每个方面都需要考虑相关工作的信息安全:在开发规划的需求定义阶段需要信息安全专家参与,将信息安全检查作为代码评审的一部分,将安全检查列表作为发布过程的一部分。自动化工具可以在这方面提供帮助:静态代码分析、集成代码分析工具、集成安全检查的自动QA测试等。
InfoQ:关于安全性,软件开发人员需要在哪些方面做的更好一些?
Gerg:首先,不要相信“用户”告诉你的任何内容,输入校验至关重要。另外,像黑客一样进行思考。主动地故障排除非常有用,要思考“这样做可能会破坏哪些地方”,“如果我采取这种变更,接下来会发生什么?”。关注OWASP的十大安全风险(以及owasp.org上其他的应用安全资源)是一个很好的起点。DevOps相关人员的应用安全培训是高优先级的事情。
InfoQ:在安全实践方面,有帮助开发人员正确完成任务的工具或服务吗?有没有像API这样的服务能够提供默认的防护,即便开发人员不对每个服务进行安全防护,也能保证下游服务的安全?
Gerg:确实有一些非常好(而且在很大程度上是自动化的)工具,它们能够帮助开发,其中包括静态代码分析工具、应用扫描工具(如Appscan)、自动化QA测试工具,甚至帮助缓解某些应用安全风险的Web应用防火墙。
InfoQ:企业需要更好地应对哪些网络安全领域?应该如何开始?
Gerg:避免“MBM(Management by Magazine)这样的水准”(Management by Magazine指的是领导读到了某篇好文章或某本好书,就强行要求在组织内部采用的情况,参见该文——译者注)。过多关注诱人的工具会让你忘记基础。我看到有很多组织拥有一些功能极其强大(且成本高昂)的信息安全工具,但没有一种机制让工作站和服务器保持补丁和更新的最新状态。对信息安全的支出(时间和金钱)采用基于风险的方式是最好的方法。建议聘请第三方专家帮助处理此过程。
InfoQ:我们讨论了在安全领域,企业需要在哪些方面做得更好,但是,是不是有些地方是企业在解决基础问题之前过度投资或超前投资的?
Gerg:我认为,组织过于钟爱诱人的工具,看起来这些工具能够成为解决所有需求的安全解决方案。一个很好的例子是各种SIEM、SOAR和USM工具,我并不是说它们不能完成要做的事情,而是说如果你不对自己的工作站打补丁或者将管理员密码设置为“password123”,那么就不要花费成千上万美元在SIEM/SOAR/USM解决方案上面。
InfoQ:公有云是让企业更安全了,还是更不安全了?
Gerg:信息安全与CIA三要素密切相关,即机密性(Confidentiality)、完整性(Integrity)和可用性(Availability)。不管服务器/服务/数据位于何处,在很大程度上,组织仍然有责任有效控制保密性和完整性。云供应商最擅长的是可用性。他们的持续在线时间是非常强大的,跨地域复制实现冗余的能力非常出色。他们确实有有助于提升机密性和完整性的机制,但我们需要一些规划和规则才能使其生效。现在,有一种强烈的倾向,认为只要把东西扔进"云"中就万事大吉了,而忘记了要保护的东西,因为并没有一个让我们一劳永逸的方案。
作者简介
Christopher Gerg 是一位网络安全专家,拥有超过20年的经验。他是Gillware的CISO和网络风险管理副总裁。Gerg通过务实地评估组织并提供直接建议来简化信息安全、合规性和网络风险管理的复杂性,从而提升安全性。在业余时间,Gerg 喜欢和家人一起旅行,为切尔西足球俱乐部加油。
原文链接:
Improving Security Practices in the Cloud Age: Q&A With Christopher Gerg
领取专属 10元无门槛券
私享最新 技术干货