货拉拉容器安全实践分享

196体育app官网-(2024官方)IOS安卓手机版APP  » 虚拟主机 »  货拉拉容器安全实践分享
0 Comments 下午9:33

随着云计算的发展,以容器和微服务为代表的云原生技术,逐步在企业中广泛使用,其中Docker和Kubernetes (k8s)是企业容器运行时和容器编排的首要选择。但在容器应用和K8S使用过程中,伴随云原生技术也逐步产生一系列新的安全问题,如何保障业务的容器安全,使得安全能力内嵌到云原生中已成为各企业关注的焦点。

本文结合货拉拉在业务逐步迁移容器化过程中,分享信息安全部在容器安全的落地实践经验,以供参考。

在k8s集群中,有两种性质的物理节点,一个是Master管理节点,下图中的Control Plane,另一个是Node工作节点。

某公司在某公有云部署的k8s集群未授权访问遭到入侵,集群节点全部沦陷,被植入挖矿程序,严重影响业务。根本原因是k8s集群鉴权配置不当,将system:anonymous用户设置为cluster-admin用户组,攻击者通过APIServer的6443端口匿名访问控制k8s APIServer,控制整个k8s集群大脑,再遍历选择Node结点创建Pod,下发执行挖矿和横向移动动作。

2、攻击者通过k8s API Server会在指定Node创建一个Pod,该Pod启动docker:latest镜像,在镜像内部通过command参数再启动一个特权容器,与主机共享进程、网络空间。

随着货拉拉业务的扩大,业务服务逐步从云上的ecs虚拟机部署迁移容器,实现服务的快速迭代,敏捷开发,更好的降本增效。业务在容器部署后,传统的像主机安全问题也并没有消失,比如getshell、挖矿、web应用入侵等依然存在,新增加k8s多个服务节点、容器Pod与宿主机ecs共享内核、namespace隔离机制不彻底等原因,导致docker面临新的安全问题;容器的安全攻击场景发生变化,从原来的ecs入口转变成Pod入口,并且能横向到相邻容器,甚至越权到宿主机、k8s的Master集权管理节点,容易造成严重的安全事件。

从容器的整个生命周期看,包括从镜像构建、编排分发、容器运行、销毁主要的这四个阶段,因此容器安全建设根据生命周期拆分成四项核心安全能力,分别是镜像安全、生态安全、基线安全、运行时安全。在镜像生成阶段,对应镜像安全,主要检查是否是有毒的镜像;在容器编排阶段,对应是容器生态安全,主要检查k8s依赖的组件(像APIServer)是否安全;在容器启动后,对应是运行时基线安全和运行时安全,基线安全检查Pod启动后一些不合规配置;运行时安全面临主机安全类似的反入侵检测场景。

容器安全各模块详细的安全能力,主要是参考微软发布的k8s威胁矩阵。国内阿里云、腾讯云也发布各自的类似k8s矩阵,供安全建设参考。

在初始访问、窃取凭证阶段,主要涉及是容器的镜像安全、生态安全的相关能力;在执行、持久化、权限提升、横向移动等阶段是容器运行时基线、运行时安全的检测场景。

镜像安全检查是否是含毒镜像,主要检测存在敏感信息(密码、密钥等)泄漏、高危cve漏洞、 后门和恶意软件等安全问题。

镜像安全检测主要流程:CICD推送镜像到镜像仓库后,发起镜像扫描。当前我们使用某云镜像扫描能力,主要包括两部分,第一部分扫描镜像层信息,构建镜像时所使用的命令和配置参数,还原镜像文件构建过程,另外像开源的clair, dockerscan都有提供这方面镜像扫描能力,各有不同侧重点;第二部分主要是扫描系统软件的cve漏洞信息。

容器生态安全主要扫描k8s集群容器编排的依赖组件,检测点包括:对k8s的Master管理节点、Node工作节点上的服务进行配置检查、安全策略检查和接口安全等检查。

容器基线安全检测Pod在运行后不合理的安全基线配置,当前主要根据CIS-Docker、CIS-Kubernetes Benchmark优秀实践方案,挑选高风险的基线项,自定货拉拉Pod安全基线运营。

Pod开启特权容器或敏感系统(/根目录)被挂载时,攻击者利用漏洞进入Pod容器内,可以操作宿主机文件,达到容器逃逸的目的;Pod在开启CAP_SYS_ADMIN,允许执行系统管理任务,例如加载或卸载文件系统,安全风险较大。

下面是扫描一个Pod基线结果,详细列出Pod的基础信息以及对应安全基线不合规等级和详细项,方便安全运营跟踪处理。

部署的业务服务在容器内会面临宿主机ecs同样反入侵安全问题,容器运行时安全也按入侵攻击链拆分出攻击事前、事中、事后三个阶段,以k8s威胁矩阵参考,建设运行时安全检测能力。

事前侧重点梳理docker的资产、开放端口和业务进程等 ;事中同主机安全检测同类似的安全场景,爆破、反弹shell和命令注入等场景;事后主要围绕应急溯源相关的基础审计,像登入记录、Pod容器命令执行记录等

货拉拉业务部署在国内外多朵云环境, 为降低成本和提高安全运营效率,安全部自研实现主机安全HIDS统一部署和运营。

主要有三个安全组件(Agent端、Server、管控端)和一个数据中心存储层。在ecs主机上需要部署一个探针Agent,Agent端实现分层,包括最基础数据采集层、数据处理层、安全检测引擎;后端部署多个服务端,接收Agent发来的基础数据、告警,分别存入数据中心的Mysql、ES、Hive等存储中,告警也会同时推送到办公I。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注