利用Kubernetes的企业的DevSecOps最佳实践

发布于:2021-01-06 15:29:11

0

208

0

devops devsecops 安全性

在DevOps流程结束时,安全性已不再承担责任。它需要集成到开发和操作的每个步骤中,以消除应用程序出厂前的漏洞。本质上,DevOps需要发展为DevSecOps。

如果我们告诉您,多达92%的DevOps团队在将代码投入生产之前没有发现所有安全漏洞,您会感到惊讶吗?我们相信他们中的大多数人很高兴他们比其他人更早发现了该漏洞。因为,优秀的安全团队知道,即使在应用程序中出现一个小漏洞,也可能会带来风险。

当企业应用程序团队以比以往更多的时间和更快的速度部署时,尤其如此。传说Amazon每秒部署一次,而Netflix,Google和其他公司则每天部署数千次。实际上,您可能会看到的金融服务公司CapitalOne每天会部署50次。

能够实现这种快速发展的技术关键趋势之一就是集装箱化。Kubernetes正在将多个企业应用程序提供给云。结合强大的DevOps,企业应用程序开发可提供更高的速度和敏捷性。但是,这并不完全妥协。

长期以来,安全性一直被认为是一个过程中的破坏者-在快速的应用程序开发空间中,您会发现有关“牺牲”安全性的速度的一些对话。结果,我们看到“容器软件中的漏洞在2019年上半年与2018年同期相比增加了46%,与两年前的数字相比增加了240%。”

以这种速度,安全不再是DevOps流程结束时的负担。它需要集成到开发和操作的每个步骤中,以消除应用程序出厂前的漏洞。本质上,DevOps需要发展为DevSecOps。

什么是DevSecOps?

如果DevOps要打破开发和运营之间的孤岛,DevSecOps会对DevOps和安全性做同样的事情。DevSecOps将安全性纳入软件开发生命周期,以尽快消除漏洞。

四个关键因素强调了DevSecOps:

  • 从一开始就考虑安全性。

  • 将安全程序集成到DevOps流程中。

  • 在开发生命周期中建立可观察性和可审核性。

  • 尽可能使安全任务自动化。

让我们一一看一下。

从一开始的安全性

您的应用程序团队中有多少名Infosec工程师?现在,信息安全工程师与开发人员和操作员的比例是多少?可能是,您没有足够的信息安全工程师。这是很常见的。通过向左移动安全性,DevSecOps使安全性成为应用程序团队的集体责任,而不是部署瓶颈处的孤独的信息安全专业人员。从一开始,您可以通过以下几种方法来包括安全性。

  • 将安全团队带到DevOps表。鼓励他们自由分享有关已知威胁的见解和反馈。

  • 对您的开发团队进行安全编码培训,以消除常见和重复的错误,甚至在错误出现之前也是如此。

  • 解决出现的安全性问题,而不是在受到攻击或应用程序受到威胁之后。

  • 反复检查所有设备和工具,以确保它们符合您的安全策略。

流程驱动的DevOps的安全性

即使是最有心的开发人员,也可能会忙于快速开发工作软件,从而无法跟踪应用程序的安全需求。为了使安全性不可转让,您需要明确的流程,标准化和常规检查点。这里有一些开始设置它的方法。

  • 进行全面的风险收益分析,以衡量您的风险承受能力并了解您的安全状况。

  • 为访问控制,机密管理,防火墙,漏洞扫描等安全功能构建明确的流程并将其付诸实践。

  • 为您的应用程序代码以及系统中所有基础代码或平台代码实施版本控制过程。

  • 如果使用可变系统,请考虑不可变的基础架构。

通过可观察性和可审核性确保安全性

我们已经讨论过,要成功采用DevSecOps,安全团队必须向左移动。但是,承担责任不只是编写具有安全意识的代码。开发和运营团队必须在整个多云部署中的整个应用程序开发生命周期中构建一个监视和审核系统。您可以通过以下几种方法实现这一目标。

  • 在整个企业中建立“安全支持者”网络,这些人是非安全团队中注重安全性的成员。本质上,在不实际增加团队人数的情况下获得更多的信息安全工程师。

  • 使监视和可观察性达到服务水平。设置对容器,集群和容器的监视。

  • 设置工件级别的元数据以标识容器映像,使用的库,存储库信息,提交信息等。

  • 具有配置更改的实时可见性。

  • 针对合规性和安全性相关问题自动发出警报。

自动化安全

如果我们必须选择Kubernetes的一项主要优势,那就必须是规模化。即使在复杂的多云或混合环境中,K8s仍能以前所未有的规模实现应用程序部署。但是以这种规模手动实施安全检查点实际上是不可能的。这就是为什么将自动化纳入DevSecOps流程至关重要的原因。

  • 自动化基础架构配置。

  • 将扫描集成到您的CI / CD管道中,并在生产开始之前确保所有容器映像都是安全的。

  • 隔离容器注册表,并控制其访问。

  • 使用安全性静态和动态分析工具嵌入自动代码审查和安全性测试。

  • 自动更新安全补丁。

到2020年,完全忽略企业应用程序开发中的安全性。风险很高,其后果(财务,声誉和合规性)可能很重要。将安全掌握在一些专家手中同样有风险。企业需要的是将安全性战略性纳入DevOps流程,端到端监视和审计以及安全性任务的周到自动化的完美结合。解决该问题的另一种有效方法是找到一个可以提供安全管理功能的部署自动化平台。