安全的责任通常落在最终用户身上,很少关注负责构建产品的开发人员。为了成功地向开发人员推出安全性,安全性必须易于部署。它是关于如何使安全性成为最简单的选择,从而使构建安全的应用程序必然比构建不安全的应用程序更容易。正如思科的温迪·纳瑟(WendyNather)在他的2020RSA主题演讲中所说的那样:“安全性应该设计用于部署,而不仅仅是设计用于强制执行。”随着越来越多的人采用现代开发实践,开发人员被鼓励对其产品的发布管理生命周期负责。然而,应用程序开发的快速步伐让安全团队难以跟上,而且安全团队往往资源不足。安全团队努力及时为开发人员提供可访问、适用且可操作的指导。最后,开发人员没有收到必要的安全指导,这意味着部署的应用程序通常存在安全漏洞。然而,加剧这些挑战的相同开发实践也有助于推进技术来解决这些挑战。基础架构即代码(IaC)就是这样一种技术。现代开发实践使用IaC将应用程序架构定义为代码并自动部署这些架构。通过使用IaC,只需更新代码,应用程序架构就会变得更加安全和合规。IaC有助于为开发人员提供可访问、适用且可操作的指南,以指导他们的应用程序架构应如何设计以确保安全性。安全民主化需要什么?安全团队很少参与开发过程的早期阶段。当他们参与时,他们遵循基于纸张的工作流程——在Word文档或Excel工作表上。现代安全实践应该将自动化纳入现代开发工作流程。这将使安全团队能够看到整个应用程序组合,及早参与,并在通过IaC进行更改时为开发人员提供指导。对于拥抱安全的开发人员来说,重点是确保安全准则适用于正在开发的产品或功能。通用准则经常被开发人员忽略或拒绝,因此准则必须清晰且相关。此外,开发人员和安全工程师不会说同一种语言。安全条款通常很复杂或开发人员无法访问。因此,以开发人员易于理解的简单术语提供重要指导也很重要。安全培训是安全民主化的另一个关键组成部分。良好的安全培训可帮助开发人员理解安全概念,而无需成为安全专家。该策略还可以帮助开发人员更好地理解安全同行的指导。开发团队和安全团队之间还应该有一个强大的反馈循环。在提供安全指南时,反馈应推动持续改进。我们如何自动化安全功能?为了使安全成为阻力最小的途径,我们需要制定关于“什么”可访问和适用的安全要求,同时我们还需要帮助开发人员解决“如何”问题。IaC建立了关于如何使用代码的指南。如果您可以将事情自动化,开发人员就可以轻松部署安全性。当最佳实践通过代码实现自动化时,开发人员无需成为安全专家。相反,开发人员只需要了解他们的业务用例以及他们围绕安全性和合规性的目标。了解他们的应用程序需要什么(他们的消费者是谁,应用程序需要遵守哪些法规或标准等)已经是他们工作的一部分。使用这种方法,可以消除许多通常阻碍民主化的摩擦和文化问题。自动化代码中的最佳实践有助于改进安全开发过程。我们正在接近一个转折点,在这个转折点上,安全民主化不仅是可能的,而且可以加强开发人员和安全团队之间的关系。
