5个步骤实现有效的DevSecOps


几年来,DevSecOps一直是技术对话中的热门话题。这个想法并不新鲜。
但改变的是DevSecOps在软件交付中扮演的角色。当DevSecOps成为一个概念时,它被视为一种使安全性更好的方法,但不一定是健康CI / CD链的重要组成部分

今天,DevSecOps不是可选的。如果您想保持现代应用交付安全,那么这是必须的选项。我们来看看为什么。

DevSecOps
DevSecOps认为每个人,无论他们的工作角色如何,都要对安全负责。

DevSecOps背后的驱动概念是,你可以而且应该能够让开发人员、DevOps工程师或网络工程师(例如)在不牺牲他们正在处理的应用程序或项目的安全性的情况下制定基于安全的决策,并允许快速做出这些决定,以免扼杀生产力。

 那么,为什么DevSecOps是必选项?

在许多企业中,DevOps作为一个概念正在被大量使用 - 应用程序开发人员与运营工程师一起被迫在开发、部署和互操作性方面变得敏捷。随之而来的是对工程师技能交叉的要求,这使得他们不仅需要理解其他团队的工作,而且在某些情况下还可以替代他们工作。
全栈工程师倾向于成为这种思维模式的一个很好的例子。现代DevOps /全栈工程师需要熟悉的一项关键任务就是安全性。

实现DevSecOps
那么,一般的软件工程师如何才能获得DevSecOps所需的安全技能?让我们来看看。
1.合作
在过去,通常情况下,人们会将自己归入专业的工作角色,相互之间害怕参与对方角色(因为这是他们不熟悉的事情),或者只是因为公司文化的情况。。
识别安全风险和漏洞需要所有不同元素和人员之间的协作,最终使新产品或服务脱颖而出。同样,这并不意味着有关人员应该掌握所有这些技能,但了解它们是有用的。
这方面的一个例子是运营工程师与开发人员合作,以确定他们的应用程序中的安全漏洞 - 同样,开发人员与运营工程师密切合作。事实上,随着开源软件处于许多业务的最前沿,不仅要了解部署它,还要修补它,如果你发现问题的话。

 2.分享资讯
与协作一样,在安全性方面,共享信息至关重要。例如,如果您碰巧了解到新漏洞,那么请务必与他人共享。保持开放并表现出兴趣。这种沟通将使各方能够在解决问题方面取得进展,并将为所有相关方的学习过程做出贡献。

 3.主动监控
另一种可以将自己从DevOps工程师转变为DevSecOps工程师的方法是:在设计任何正在投入生产的监控系统时主动考虑安全性。起初可以像在监视服务中构建检查一样简单,监视系统以获取重要的安全更新,并提醒员工他们需要进行修补。这也可以使用SIEM来监控应用程序日志,并在失败的登录尝试,基于DoS / DDoS的攻击模式等方面构建警报仪表板。

 4.安全即代码
这将我们带到了另一个角度:安全即代码的概念。如果你正在读这篇文章,那么你很可能熟悉Ansible,Puppet和Chef。这些让你在文件中定义基础结构,并形成我们所知的基础架构代码。如果您正在执行上述操作,那么将知道在许多情况下,很可能必须在代码中定义要创建的安全组,并发布你希望的服务暴露。这需要一些网络知识,以及对这种从外部世界打开“漏洞”到您的应用程序或网络的影响的理解。你还可以使用NMAP等安全工具编写自动检查,这些工具将扫描新部署的服务器以查看哪些端口处于打开状态,并且如果发现不应该打开的端口如果被暴露,应该会失败。

 5.使用相关工具集
在考虑安全性时使用相关工具。例如,Twistlock具有连续集成工具,可直接插入现有的CI / CD管道系统(例如Jenkins)。这可以让您相对轻松地设置安全性和合规性的阈值,包括HIPAA,PCI,CIS基准测试,并在构建本身中执行此操作。您可以继续使用自定义警报设置警报或阻止不安全构建的策略,并指导下一步操作。
与上述类似,利用始终提供最新信息的API的安全服务远比坚持在某处创建的任意指南(可能会很快过时)更有效。

结论
DevSecOps的重要性不容小觑。随着邪恶的个体(人之初性本恶)能更加聪明地发现软件和硬件中的漏洞,IT专业人员也必须适应不断变化的环境。我们需要敏捷地采用我们的安全方法,并集体采取行动解决未来的问题。这样做可以减少我们最终部署的服务的攻击足迹,并使我们更好地了解安全性。

DevSecOps不仅是一种心态变化,而且应该为那些负责人提供正确的工具和指导,以便将安全性放在业务决策的最前沿。DevSecOps工程师提供了巨大的价值,他们可以不断评估日常工作中的安全性,并在发现问题时采取行动。它还消除了对更广泛的DevOps团队中单独的安全团队或单一安全工程师的依赖,他们可能无法全面了解基础架构或最近开发的应用程序。最后,为了实现这种思维方式的改变,让业务的高层决策者参与进来并了解DevSecOps的重要性是关键。