共计 3811 个字符,预计需要花费 10 分钟才能阅读完成。
什么是云原生平安?
云原生平安是指将平安纳入企业整体云原生利用开发的策略。这一办法解决了建设平安应用程序所需的基础设施、团队和流程的变动。因而,云原生平安强调利用平安,以确保在云环境中检测和修复破绽。
实现云原生平安须要一个整体的布局使平安得以渗透到整个软件开发生命周期(SDLC)中。平安平台能够帮忙开发人员交付基于云原生理念的设计,开发团队应该负责提供平安代码。每个设计决策都应思考到云原生架构,以确保应用程序是齐全基于云原生架构的。
确保基于云架构的平安会面临一些挑战。开发人员能够通过基础设施即代码(IaC)配置动静地部署基础设施,通常是与利用程序代码同时编写基础设施代码。开发人员能够将平安工具整合到他们的工作流程中,为补救措施提供见解和倡议。例如,他们能够用命令行界面(CLI)工具进行本地测试,并使平安数据在集成开发环境(IDE)中可见。
云原生的平安有哪些须要思考的?
只管企业曾经领会到了云原生利用的劣势,但企业对治理和维持此类应用环境的平安仍旧缺乏经验。在云原生环境中,平安的含意是否真的与传统环境不同?这对你的安全策略和管制有什么影响?云原生环境的首要平安思考因素有以下几个:
1、继续交付要求继续安全性
随着微服务和容器在云原生环境中取代单体和传统的多层利用,软件交付和部署正在变得继续。如亚马逊之类的大型企业每天都会进行数百次部署。在这些类型的环境中,安全检查必须要轻量、继续并且嵌入到开发工具链中,否则就有可能被绕过。
2、爱护 server 工作负载是事不宜迟
传统企业的平安是爱护 endpoint 的平安,宰割网络和爱护网络边界(network perimeter)的平安。在云原生环境中,您不能依赖固定的路由、网关、网络边界,甚至无奈依赖 agent ——基于此,您的数据中心正面临威逼。此外,您的 server 工作负载比以往更容易裸露给攻击面。因而,将重点转移到确保数据中心和 server 工作负载的平安是事不宜迟。
3、疾速且大规模进行运行时检测
在微服务模型中,端到端的可见性、监控和检测都将变得更简单和难以执行,特地是当部署和降级都在继续一直进行时。因而攻打检测须要动静工作(如,缩小对动态签名的依赖),实时扩大,并且在不侵害生产环境的性能和稳定性的状况下进行。
4、整合混合堆栈的平安爱护
一些微服务利用程序运行在虚拟机上的容器中,而其余的则运行在裸机 Linux 上。但现如今爱护主机、虚拟机层、容器和应用程序的平安性能往往是相互独立的,不足整合。这种办法为执行实时平安响应和口头带来了复杂性和不必要的阻碍。打个比方,您会把要害工作的容器部署到一个须要打补丁的虚拟机上吗?然而,如果您没有虚拟机级别的可见性,您又怎么会晓得这个虚拟机须要打补丁呢?因而当初亟需在混合堆栈中整合可见性、监控和平安爱护,包含 Linux 主机、虚拟机、容器以及最初的应用程序及服务。
云原生平安的 4C 基础设施
为了帮忙您理解云原生安全策略,咱们将平安基础设施分为 4 类——Cloud 层、容器层、集群层和代码层。
Cloud
Cloud 层由运行云资源的基础设施组成。当你在云服务提供商(CSP)设置 server 时,该提供商负责大多数基础设施平安。然而,您依然须要负责配置服务、爱护您的数据安全,并对其进行监督。
影响 Cloud 层的典型平安问题包含谬误配置和主动攻打。攻击者会踊跃利用因谬误或忽略造成的谬误配置,如未扭转的默认设置或对治理控制台的弱拜访爱护。攻击者还能够利用自动化来扫描破绽并迅速发动攻打。
容器(Container)
容器层由容器镜像组成,这些镜像可能蕴含了您能扫描的破绽。企业经常会疏忽一些问题,如镜像平安、应用未知起源和弱权限配置。因而,放弃容器定期更新非常重要,这样能够尽量减少已知破绽造成的不良后果。此外,您还应该扫描和验证容器中运行的任何程序。
确保所应用的任何镜像是由已知的起源构建的或者来自一个受信赖的镜像仓库。一个镜像签名工具,如 Docker Content Trust (DCT),能够帮忙您确保容器内容来自可信赖的起源。
确保所有容器都应用特权用户运行,而不是应用主机的 root 权限。
集群(Cluster)
集群层由形成 Worker 节点和管制平台的 Kubernetes 组件形成。正是在这一层,您要爱护 Kubernetes 工作负载。Kubernetes 组件应用加密通信,申请 TLS 证书来验证彼此的身份。
须要爱护的最要害组件是 kube-api-server,因为它是 Kubernetes 的次要接口。默认状况下,该 server 只能通过 HTTPS 拜访,您也能够应用第三方身份认证程序来进一步爱护它。通常状况下,企业应用自定义的基于角色的访问控制(RBAC)规定进行 API server 受权,所以您能够治理集群及其工作负载,而无需 Secure Shell 拜访。
Code
代码层,也被称为应用层,提供最高级别的安全控制。你能够限度裸露的 endpoint、端口和服务来治理平安危险。你应该应用 TLS 加密来爱护外部和内部服务之间的通信。
代码层的典型平安问题包含不平安的代码、不充沛的危险评估以及第三方软件依赖项的破绽。您应该应用动态代码分析攻击来辨认不平安的代码并确保安全的 code 实际。您须要定期扫描并测试您的应用程序以抵挡跨站点申请伪造(CSRF)和跨站点脚本(XSS)等攻打。
大多数云原生利用都蕴含第三方代码库或依赖项,这些库或者依赖项通常未经动态剖析查看。您能够应用软件成分剖析工具来辨认有破绽的依赖项。
5 大云原生安全策略
企业通常会施行云原生安全策略以保障整个技术栈的平安,以下列举出了 5 个常见的云原生安全策略:
独特承当平安责任
DevOps 团队应该与平安团队严密单干。开发人员通常不是平安专家,但他们能够学习平安 coding 实际。同样,平安专家能够理解用于开发、测试和部署应用程序的工具和流程,从而帮忙他们进步安全性。
云原生平安须要各种治理开发和平安团队的办法,并须要亲密沟通协同工作。独特承担责任和合作是工作文化转变的一部分,这使组织可能将安全性整合到开发过程中。
平安左移
平安左移是另一个重要的文化转变,这通常须要新的平安工具来解决云原生利用开发环境的规模和速度。这一形式次要是为了在软件开发流程的晚期就开始驳回平安办法,如破绽扫描。开发人员必须在将利用程序代码部署到生产之前确保其安全性。
另一个爱护基础设施的形式是防止 serverless 的个性。攻击者能够利用在 serverless 性能代码和容器中的破绽。他们还能够利用云基础设施的谬误配置来拜访敏感数据,晋升权限,并横向挪动。
您应该在 CI/CD 流水线中防止应用不受信赖的容器镜像。平安团队应该在开发人员将镜像部署到应用程序之前查看它们是否蕴含破绽。
爱护依赖项
利用程序代码通常蕴含开源的依赖项,例如在 Python 软件包索引(PyPI)里发现的依赖项。您能够应用引入了综合破绽数据库的自动化工具来爱护应用程序的依赖项。云原生编排工具通过触发应用程序的平安动作能够帮忙您在开发期间保护安全性。您能够继续运行此类工具以防止将破绽依赖包引入容器和 serverless 性能中,因为它们会运行在生产环境中。
深度进攻
这一办法,也称为多层平安,次要应用网络监控来检测和修复单个威逼。平安团队应该监控网络的每一层,您能够应用多个工具和技术来避免和响应攻打并为正在进行的攻打制订应急打算。
兼容多云的平安办法
企业经常对其多云模型采纳能兼容多个云的平安办法。一个云原生平安平台(CNSP)能够帮忙您治理来自不同供应商的多个云的平安。您只需一个安全策略,其中蕴含了多方必须遵循的最佳实际——这有助于简化您的云原生监控、灾备复原和合规工作。
现实的云原生平安平台应该如何?
企业在启用安全策略推动云原生转型之前,他们须要思考以下这些需要:
- 高度的平安自动化: 传统基于告警的平安操作曾经无奈跟上以后近乎有限规模、动静性质更强的云原生零碎。因而,手动工作流程基本不是一个选项。规模化的自动检测和响应是云原生平安的必备条件。
- 设计时要思考到“混沌” : 在微服务架构中,任何性能可能都会牵涉到许多软件组件,它们在运行时中被拼接在一起。从平安的角度来说,这意味着检测逻辑和管制不能依赖于对运行状态和平安衰弱状态的先验了解。因而云原生平安必须拥抱混沌工程准则——被动试验、常常测试并疾速补救。
- 疾速检测、就地遏制、迅速复原: 云原生利用最终是分布式计算利用。在这样的环境下,通常不可能及时执行全局平安决策。因而,您最好优先思考哪些容许疾速检测、疾速复原,并在全零碎的歹意行为表现进去之前在本地管制影响的口头。即便平安决策不是 100% 准确,在本地采取行动和疾速复原也会为您提供一个更具弹性的零碎。
总结
云计算在一直急速倒退,随着翻新的步调一直放慢,须要开发出新的技术和工具来帮忙企业紧跟技术的倒退。很多时候,企业会将他们现有的企业本地的软件基础设施移植到云中,进而导致企业外部被强制应用过期的形象和平安模型,从而无奈领会到云原生所带来的劣势。
为本地托管时代建设的平安模型和工具是一个特地重要的责任。因为现存的工具中大多数是在云计算作为一级托管平台遍及之前设计的,无奈提供足够的安全性。在快节奏和竞争强烈的空间中,可能扩大、爱护您的应用程序是非常重要的。想要在古代云时代放弃竞争力,企业应该专一于构建云原生应用程序,并应用云原生平安平台来帮忙爱护它们。