@云原生之容器安全实践
随着越来越多的企业开始上“云” , 开始容器化 , 云安全问题已经成为企业防护的重中之重 。 今天的文章来自美团信息安全团队 , 他们从云原生的代表技术开始入手 , 以容器逃逸为切入点 , 从攻击者角度(容器逃逸)到防御者角度(缓解容器逃逸)来阐述美团在容器安全层面所进行的一些探索和实践 。
本文插图
概述
云原生(Cloud Native)是一套技术体系和方法论 , 它由2个词组成 , 云(Cloud)和原生(Native) 。 云(Cloud)表示应用程序位于云中 , 而不是传统的数据中心;原生(Native)表示应用程序从设计之初即考虑到云的环境 , 原生为云而设计 , 在云上以最佳状态运行 , 充分利用和发挥云平台的弹性和分布式优势 。
云原生的代表技术包括容器、服务网格(Service Mesh)、微服务(Microservice)、不可变基础设施和声明式API 。 更多对于云原生的介绍请参考CNCF/Foundation 。
本文插图
图1 云原生安全技术沙盘(Security View)
笔者将“云原生安全”抽象成如上图所示的技术沙盘 。 自底向上看 , 底层从硬件安全(可信环境)到宿主机安全。 将容器编排技术(Kubernetes等)看作云上的“操作系统” , 它负责自动化部署、扩缩容、管理应用等 。 在它之上由微服务、Service Mesh、容器技术(Docker等)、容器镜像(仓库)组成 。 它们之间相辅相成 , 以这些技术为基础构建云原生安全 。
我们再对容器安全做一层抽象 , 又可以看作构建时安全(Build)、部署时安全(Deployment)、运行时安全(Runtime) 。
在美团内部 , 镜像安全由容器镜像分析平台保障 。 它以规则引擎的形式运营监管容器镜像 , 默认规则支持对镜像中Dockerfile、可疑文件、敏感权限、敏感端口、基础软件漏洞、业务软件漏洞以及CIS和NIST的最佳实践做检查 , 并提供风险趋势分析 , 同时它确保部分构建时安全 。
容器在云原生架构下由容器编排技术(例如Kubernetes)负责部署 , 部署安全同时也与上文提及的容器编排安全有交集 。
运行安全管控交由HIDS负责(可参考《保障IDC安全:分布式HIDS集群架构设计》一文) 。 本文所讨论的范畴也属于运行安全之一 , 主要解决以容器逃逸为模型构建的风险(在本文中 , 若无特殊说明 , 容器指代Docker) 。
对于安全实施准则 , 我们将其分为三个阶段:
- 攻击前:裁剪攻击面 , 减少对外暴露的攻击面(本文涉及的场景关键词:隔离);
- 攻击时:降低攻击成功率(本文涉及的场景关键词:加固);
- 攻击后:减少攻击成功后攻击者所能获取的有价值的信息、数据以及增加留后门的难度等 。
容器风险
容器提供了将应用程序的代码、配置、依赖项打包到单个对象的标准方法 。 容器建立在两项关键技术之上:Linux Namespace和Linux Cgroups 。
Namespace创建一个近乎隔离的用户空间 , 并为应用程序提供系统资源(文件系统、网络栈、进程和用户ID) 。 Cgroup强制限制硬件资源 , 如CPU、内存、设备和网络等 。
容器和VM不同之处在于 , VM模拟硬件系统 , 每个VM都可以在独立环境中运行OS 。 管理程序模拟CPU、内存、存储、网络资源等 , 这些硬件可由多个VM共享多次 。
- 『浏览器』奇安信可信浏览器正式发布 打造信创生态安全纽带
- 「央视网」北约秘书长:北约军事同盟的安全没有因新冠病毒而减弱
- 云安全联盟区块链安全工作组启动,e签宝助力推动区块链安全发展
- 你的NMN安全吗?基因港、赛立复、瑞维拓的NMN安全吗?
- 福特汽车推出道路边缘探测功能,进一步保证行车安全
- 腾讯云推出全球首个云原生默认合规镜像 为用户免费打造合规的云服务器
- 「南方PLUS」银河证券首席经济学家刘锋:中国应打造世界安全资产中心
- 『数码狂人』华为网络工程师可以从事网络安全方面的工作吗?
- 光明网■【一图读懂】清明时节 安全防护与祭奠如何做到两不误
- [光明网]大数据“复学码”助师生安全复学