当前位置: 首页 > 科技观察

云原生安全的五项建议

时间:2023-03-12 07:48:09 科技观察

基于容器和无服务器平台的云原生应用程序正在被世界各地的组织快速部署。虽然云原生应用会带来可扩展性、无与伦比的弹性和快速的开发速度,但云原生应用也会带来挑战。云原生应用程序将有很多移动部件,并基于那些短暂的架构组件。这会给运维带来困难;此外,自然也存在安全隐患。云原生安全需要新的解决方案、策略和工具。这里有五个技巧可以帮助提高企业云原生安全性。什么是云原生?云原生应用是为云而生,整个软件开发生命周期——开发、部署、测试、升级——都将在云环境中完成。“云”的概念不仅限于公共云,还可以指具有远程和本地资源的混合云,或者具有多个云提供商的多云环境。云原生计算基金会(CNCF)认为云原生计算应该使用三种工具:容器化、微服务结构和动态编排。容器化是指将软件与其关联的依赖进行绑定,使软件可以移动和扩展;动态编排包括使用Kubernetes等工具来管理云容器;微服务结构可以优化资源。容器可以被另一种云原生计算能力——无服务器函数所取代。云原生安全挑战云原生应用给基础设施和应用安全带来了额外的挑战。以下是一些主要挑战:要保护多个实体:DevOps团队和基础架构团队使用微服务来运行云原生应用程序。过去,多个进程或软件功能会在虚拟机上运行。现在,每个流程或功能都被打包为一个单独的容器或无服务器功能。每个实体都容易受到损害,因此需要在整个开发周期中进行保护。结构多样:云原生系统涉及许多公有云和私有云、云服务和应用程序结构。每个结构都有不同的危险和安全需求。安全团队必须了解这种复杂的攻击面,并为每种不同的结构找到解决方案。不断变化的环境:公有云和私有云环境在不断变化。快速的软件发布周期意味着微服务应用程序的每个组件都必须每天更新。此外,使用不变性和基础架构即代码意味着应用程序会不断分解和重构。安全团队会发现在不减慢发布周期的情况下很难保护这些技术的应用程序。如何保护云原生应用程序有多种方法可以保护云原生应用程序,包括:向左移动安全性、在功能和容器级别应用边界安全性、实施最少角色和最少权限、保护应用程序依赖关系以及共同承担安全责任.1.安全性左移许多企业仍在使用无法处理云原生应用程序环境的速度、规模和动态网络的现有工具。添加无服务器功能会使整个基础架构更加抽象,并使问题变得更糟。网络攻击者寻找容器和无服务器代码中的漏洞,以及云基础设施中的错误配置,以获取对包含敏感信息的实体的访问权限,并利用它们提升权限并攻击其他实体。另一个问题是企业正在使用CI/CD工具来持续开发、测试和发布应用程序。在使用容器部署云原生应用时,开发者会从本地或公共库获取镜像,但一般不会检查这些镜像是否存在安全风险。一种解决方案是为安全团队提供工具来防止不受信任的图像进入CI/CD管道,并启用机制来防止不受信任的图像在进入生产之前产生安全问题。通过在开发过程的早期扫描图像中的漏洞、恶意软件组件等,开发人员可以执行安全标准。2.功能和容器级别的应用程序边界安全在无服务器应用程序中,系统将被分解为几个可调用的组件,这些组件可以从不同的资源接收项目触发器。这为攻击者提供了更多的攻击选项和更多的途径来执行恶意操作。一个重要的方法是使用为云原生环境制作的API和应用程序安全工具。除此之外,一种非常常见的做法是在功能级别使用边界安全性——识别功能是否由与平常不同的源触发,然后监视事件触发器是否存在异常。在容器化环境中,在不同级别实施安全性很重要——编排控制平面、物理主机、pod和容器。编排的一些最佳安全实践包括节点隔离、限制和监控容器之间的流量,以及对API服务器使用第三方身份验证机制。3、最小的角色和最小权限的云原生资源之间会有大量的频繁交互。如果能为每个serverless函数或函数配置一些独特的权限,就可以大大提高安全性。可以通过在每个功能的基础上使用IAM或通过对容器应用精细权限来加强访问控制。花点时间为每个功能或容器创建一个最小角色或权限列表。这确保即使云原生结构中的一个点出现故障,它也会造成最小的损害并防止其他元素出现特权升级问题。4.保护应用程序依赖Serverless功能和应用程序代码通常从npm或PyPI存储库获取依赖包。为了保护应用程序依赖性,需要包含完整开源组件及其漏洞数据库的自动化工具。同样,需要可以在开发过程中触发安全行为的云原生编排工具。通过持续运行这些工具,可以防止在生产线上运行具有潜在危险的代码包或容器。5.安全共同责任在开发人员、DevOps和安全团队之间建立亲密关系。开发人员不是安全专家,但他们可以学习安全实践,以便安全地编写代码。安全团队应该知道应用程序是如何开发、测试和部署的,以及过程中使用了哪些工具,以便安全团队可以有效地将安全元素纳入这些过程。云原生要求企业以多种方式管理安全和开发,因此尽快减少不同团队之间的孤岛至关重要。云原生的赋能,是企业形成协作与共享文化的难得契机。结论本文解决了云原生的挑战,包括需要保护的大量实体,以及不断变化的环境和结构。同样,也给出了五个可以改善云原生环境的最佳实践:把安全移到左边,避免问题进入生产线。边界安全应用于功能和容器级别。为云原生应用程序中的实体实施最少的角色和最少的权限。保护应用程序依赖性。鼓励开发、运营和安全团队之间共同承担安全责任。随着审核业务步伐的加快,越来越多的企业将使用Serverless等云原生应用,云原生安全也将受到更多关注。不难发现,在本文提到的5个安全建议中,软件安全相关的建议占了大部分:无论是安全左移,应用依赖的保护,还是DevSecOps整个安全协同的实现,最终还是离不开开发安全相关的。从这个角度来看,随着云原生的使用,DevSecOps和API安全的重要性将进一步增强。