运行在云平台上的容器产品,因为具备一个完整的可移植应用程序环境,能够帮助用户轻松地完成对应用程序的开关控制,提升应用程序的敏捷性,同时节约企业的IT建设成本。在巨大优势作用下,容器产品的采用率在2021年达到了新高,容器编排引擎工具的使用也不断攀升。与此同时,容器也面临更大的安全风险。
常见容器安全风险
据Red Hat公司调查数据显示:有94%的受访者在过去12个月内遭遇过Kubernetes安全事件。而Akamai日前也进行了一项实验,将一个简单的Docker容器蜜罐用于攻击测试,结果显示该容器在24小时内被攻击者用于四起不同的犯罪活动,这些攻击的目的各不相同:一起攻击试图使用容器作为代理,以访问数据流或其他服务,另一起企图让目标感染僵尸网络,还有一起执行加密货币挖掘,最后一起是通过容器针对居家办公用户实施诈骗。
研究发现,牟利仍是网络犯罪分子攻击容器的主要动机。不法分子企图访问随后可以牟利的资源或数据。CPU时间和带宽等资源可以出售给其他犯罪分子用于地下服务,甚至直接用于挖掘加密货币,这些动机在使用容器的环境中大量存在。
风险一:错误配置
影响容器安全的因素有很多,但配置错误是最常见的原因。Gartner近期的一项分析显示,到2025年,99%以上云安全事件的根源将是用户配置错误或配置不当造成的。
容器常常大批量部署在非常动态的环境中,访问、网络及其他设置一旦出现错误配置,就会给网络犯罪份子留下可乘之机。另外,很多公司在配置容器时,通常会选择默认配置设置,不能充分利用更精细化的配置功能,配置错误或采用安全性远不如自定义设置的默认配置方案,都可能造成安全问题。配置错误的问题不仅局限于容器本身,容器编排引擎工具的配置错误也需关注。
风险二:镜像感染
除了错误配置外,被感染的镜像是容器面临的另一大风险。镜像由开源存储库提供,是随带的可执行代码的预制静态文件,可以在计算系统上创建容器,方便用户部署。攻击者会通过植入恶意软件或将挖矿软件预先安装在镜像中来破坏容器,用户在部署了这些镜像之后,攻击者就可以通过恶意软件来访问受害者的资源。
这种攻击事件已经发生了多起。例如,2020年Containerd运行过程中,曝出存在工具漏洞,该工具用于管理主机系统的整个容器生命周期。这个漏洞(CVE-2020-15157)存在于容器镜像拉取过程中,攻击者通过构建专用的容器镜像成功实施了攻击活动。
风险三:漏洞攻击
此外,影响容器安全的另一个因素是漏洞。2021年研究人员曾发现了多个容器漏洞,这些漏洞可以让攻击者渗入到公有云的多租户容器即服务产品当中。虽然云供应商投入了大量资金来保护云平台,但未知的零日漏洞层出不穷,容器所面临的漏洞安全风险始终存在。
容器安全防御的最佳实践
鉴于当前普遍应用的容器环境,企业需要具备数据分析能力,发现容器环境下的异常行为,以下梳理总结了容器安全防护中采用的有效实践经验,供大家参考:
•确保集群基础架构的补丁程序能够及时更新;
•定期修改容器运行参数,避免默认配置;
•使用强密码,并定期进行密码和权限的变更;
•避免将特权服务账户的令牌发送到API服务器以外的任何方,防止攻击者伪装成令牌所有者;
•启用"BoundServiceAccountTokenVolume"功能,尽量减小令牌被盗的影响;
•部署策略执行器以监控和防止容器集群内的可疑活动,尤其是查询SelfSubjectAccessReview或SelfSubjectRulesReview API以获得许可的服务账户或节点;
•从信誉良好的来源拉取容器镜像,存储在安全存储库中,用信任证书加以标记和签名,将过时的版本从镜像存储库移除;
•评估编排系统的最低权限配置,确保持续集成/持续交付(CI/CD)中的移动得到验证、记录和监控;
•全方位了解云应用程序环境以及传统IT基础架构的风险;
•部署数据分析工具和可以对分析结果做出反应的自动化操作手册;
•为安全运营人员及时提供容器运行数据,以便他们及时对告警信息进行处置;
•在容器的出口处部署数据泄露防护措施。