企业如何通过安全左移加强生产过程中的安全

VSole2023-05-23 10:30:01

在传统上,保护运营环境意味着采取防火墙等安全措施。然而,像在2020年遭遇的SolarWinds这样的网络攻击在软件供应链上的威胁越来越大。研究表明,网络攻击者变得更加深思熟虑,并在软件开发生命周期的早期阶段进行攻击。

对安全软件开发生命周期的日益增长的需求引发了围绕“安全左移”概念的讨论。几十年来,安全性一直处于软件开发周期的末端,软件开发基本上是线性规划的。随着云原生应用程序的发展,以及用户对实时和全天候软件服务的需求,这种在开发周期结束时安排安全性和测试的线性方法可能会产生重大的开发、运营和成本影响。

因此,需要的不仅仅是保护外围。开发商从开发生命周期的开始,从编写第一行代码并在整个过程中运行开始,到应用程序在生产环境中运行,企业必须采取更广泛的视角来关注安全性。

安全性应该被视为基础设施元素,就像网络和存储一样。然而,与网络和存储不同的是,安全性出现问题意味着应用程序的停机和随之而来的损失,而破坏安全性可能导致敏感信息的丢失,这可能会造成更大的损失,并且在许多情况下是无法挽回的。

全面看待安全问题

企业的安全涉及多个方面,包括企业资产、设备、工具、文档和其他内部信息的安全。随着企业实施数字化转型,他们依靠软件来提供所寻求的敏捷性、性能和可扩展性优势。但是,怎样才能在生产环境中安全地运行应用程序呢?

如果企业希望改善其安全状况,则需要在流程、人员和产品上进行大量投资。仅仅在这些领域中的一个方面进行改进可能不会改善整体的安全状况,其缺点可能导致整体的软件安全风险,这就是为什么这些投资应该携手并进的原因。

例如,如果安全团队不能有效地与开发和运营团队进行沟通和协作,那么网络攻击者发现安全漏洞只是时间问题。

通过Kubernetes实现业务敏捷性

现代应用程序基于云原生技术和微服务架构。容器已经成为打包微服务的默认方式,因为它们提供了一致性、可迁移性和可重复性。随着越来越多的企业转向云原生应用程序,Kubernetes已经成为事实上的容器编排器,使得部署、发现和扩展这些微服务变得更加容易。

Kubernetes和容器在将新代码交付到生产环境时提供了急需的业务敏捷性。然而,这使得安全环境更具挑战性。Kubernetes使用熟悉的概念,例如authZ和authN、证书和加密。同时,它引入了新的概念,如部署、pod、入口、名称空间、基于角色的访问控制、服务帐户、秘密、网络策略、资源限制和配额,这些概念不仅对开发人员和运营团队来说是陡峭的学习曲线,对安全团队来说也是如此。

DevSecOps的利弊

Kubernetes打破了DevOps和安全团队之间的界限,并鼓励了DevSecOps的概念,进一步推动了安全向左转移的趋势。DevSecOps可以优化DevOps实践,将软件开发周期缩短到几周甚至几天的时间,从而满足企业和用户的多样化需求。

许多企业在尝试在生产环境中保护Kubernetes环境时发现了采用DevSecOps的挑战。DevSecOps和左移的概念要求开发人员具备更丰富的安全知识,他们还需要管理设计、开发、架构、基础设施和测试。额外的安全职责会给已经承受压力的DevOps团队带来更大的压力,这为处理Kubernetes问题打开了一个新的窗口。

采用DevSecOps和左移实践的现实方法

在大多数情况下,要求开发人员也成为遇到上述挑战的安全专家是不切实际的期望。企业的最佳选择是采用默认安全的工具和技术,并将安全专家作为平台团队的一部分,他们可以了解安全结构并构建护栏,并将安全最佳实践应用于该平台。

另外,企业可以开始关注软件物料清单(SBOM)。就像材料的详细菜单一样,软件物料清单(SBOM)列出了代码库中的开源和第三方组件,帮助团队更好地理解开发周期中单个项目和特定代码之间的关系。

SBOM还包含组件许可信息,这可以帮助企业理解许可和法规信息,从而更容易自动化遵从性检查。详细的软件文档还提高了开发人员和安全团队的代码审查效率,减少了开发人员的负担。

循序渐进提高安全性

提高安全性并不一定是孤注一掷。随着企业团队获得了运行安全生产环境的信心,这通常是一个缓慢提高企业安全状况的过程。这个过程可以从保护来自集集群外部的访问和网络流量(南北流量)开始,然后保护来自集群内部的访问和网络流量(东西向流量),最后应用安全性最佳实践。

然后,安全团队可以专注于实现安全合规性、构建零信任架构和改进供应链安全性。每个阶段都需要培训,包括学习如何部署和管理Kubernetes。成功在很大程度上取决于团队实现这些能力的速度有多快。将流程分解并以这种方式进行将使企业能够朝着实现更好的应用程序安全性稳步前进。

kubernetes软件
本作品采用《CC 协议》,转载必须注明作者和本文链接
Clair可以与K8s集成以持续扫描容器镜像,分析容器映像并提供已知漏洞的报告。Checkov可以集成到CI/CD管道中,以防止部署不安全的设置。Kube-bench可用于验证K8s的安装、执行定期检查并确保符合最佳实践。它可以与K8s集成以提供流量管理、安全性和可观察性。
Kubernetes 是一个开源容器编排系统,用于自动化软件部署、扩展和管理。Shadowserver 基金会开始扫描可访问的 Kubernetes API 实例,这些实例以 200 OK HTTP 响应对探测器进行响应。
CRI-O 允许你直接从 Kubernetes 运行容器,而不需要任何不必要的代码或工具
在2021年春季关于Kubernetes安全状况的报告中,RedHat指出,94%的受访者在其 Kubernetes环境中遇到过安全事件。这主要是因为在快速采用的同时,K8s仍在不断发展。托管Kubernetes会将大部分负担交给托管供应商,并让组织能够专注于工作负载而不是基础设施。这将导致更少的配置错误,减少攻击面。
Kubernetes通常被称为“K8s”,是一种非常流行的开源容器编排系统,可以自动部署、扩展和管理容器化工作负载。
尽管Kubernetes的默认设置为开发人员赋予了较大的灵活性和敏捷性,但是却没有考虑安全防护层面的需求。为了保护Kubernetes上应用数据的安全,企业必须确保对集群配置的合理性和安全性,以获得更充分的安全防护能力。企业在Kubernetes应用中,不能忽视保护集群网络中的应用系统,并对重要业务系统及数据实现隔离防护。
序从 2021 年 10 月开始,NGINX 的 Kubernetes Ingress Controller开始受到安全研究人员的关注。曾披露了CVE-2021-25742漏洞:攻击者可以通过定制化的Snippets特性创建或修改集群中的Ingress实例,从而获取集群中所有的Secret实例信息。
报告称,许多攻击者使用被动扫描,利用 Shodan 等服务或 Nmap 等工具查找托管 Docker 守护程序或 Kubernetes 容器编排平台的服务器,试图使用窃取的凭据或漏洞攻击这些平台。此外,创建和使用容器的开发人员往往不关注安全性。报告指出,一个新的蜜罐在五小时内遭到第一次攻击。2021 年,攻击者的重点似乎将从破坏单个容器转向由 Kubernetes 或 K8s 管理的容器集群。
Palo Alto Networks的Unit 42研究人员在Google Kubernetes Engine(GKE)中发现了一个漏洞链,该漏洞链可能允许攻击者提升权限并获得对整个集群的未经授权的访问。
VSole
网络安全专家