洞悉10大容器安全风险态势
提出28项容器安全检查解决方案
详述成功的云原生应用企业容器安全实践案例
2022容器安全
洞察及解决方案报告
洞悉10大容器安全风险态势
提出28项容器安全检查解决方案
详述成功的云原生应用企业容器安全实践案例
2022容器安全
洞察及解决方案报告
服务热线:400-188-9287
1
目 录
摘 要
第一部分 10 大容器安全风险态势洞察
洞察 1:针对云原生的攻击复杂度越来越高
洞察 2:攻击目的主要是劫持资源进行挖矿和 DoS 攻击
洞察 3:76%的镜像最终以 root 身份运行
洞察 4:公共镜像仓库越来越受到信任
洞察 5:RHEL 是迄今为止最受欢迎的基础镜像
洞察 6:约 50%容器镜像在一周或更短的时间内被替换
洞察 7:大多数容器能够更改主机系统上的重要文件
洞察 8:52%的镜像是在运行时被扫描
洞察 9:在生产环境中,运行的 85%的镜像至少包含一个可修补漏洞
洞察 10:在关注告警中,Kubernetes.node.ready 最常用
第二部分 全生命周期容器安全解决方案
1.容器安全解决方案的 5 大核心能力
2.容器安全解决方案的 28 项检查点
第三部分 13 万容器规模企业安全实践案例
1.案例概要——知名互联网公司部署容器超 130,000 个
2.现实挑战——单月拉取镜像 18,000 次安全问题突出
3.解决方案——构建、分发、运行全生命周期安全管理
4.重要价值——容器得到有效保护安全效率提升 10 倍
服务热线:400-188-9287
2
摘要
随着组织将更多的容器工作负载转移到生产中,需要将安全性和合规性集成到 DevOps
工作流程中。容器镜像构成了云原生环境中的标准应用交付格式,容器镜像在容器安
全中起着至关重要的作用。在长期跟踪容器安全的研究之后,输出容器镜像安全风险
10 大洞察趋势及解决方案报告。第一部分 10 大容器安全风险态势洞察
洞察 1:针对云原生的攻击复杂度越来越高,有的攻击者使用具有明确镜像名称的
专用恶意镜像,有的攻击者使用合法的镜像名称,攻击者还会利用受信的基础镜像,
如图 1 所示,各种针对镜像攻击的复杂度逐渐提升。
图 1:对云原生攻击的复杂度分析
服务热线:400-188-9287
3
洞察 2:目前,云原生场景下,攻击者的主要动机是劫持资源进行挖矿和 DoS 攻击,
具体攻击方式,如图 1 所示。
图 1:拒绝服务攻击方案
以挖矿场景为例:在这类攻击中,攻击者主要使用二进制文件 xmrig,这些镜像明确
地声明了其设计目的就是为了挖矿。另一方面,如果某人拉取并运行的镜像中隐藏了
加密挖矿进程时,该组件很可能会成为有害的应用程序(PUA)。由于这种攻击行为
会导致性能下降,MITRE ATT&CK 框架将其定义为资源劫持。
以 DoS 攻击场景为例:Slowloris 攻击是一种使用专用软件(如 slowhttptest)、针
对 HTTP 服务器发起的拒绝服务(DoS)攻击。在攻击过程中,攻击机器发送不完整的
HTTP 请求,导致受害主机在等待接收剩余请求信息的同时打开多个链接。结果,主机
服务器达到最大并发打开链接极限,无法打开新链接为合法的 HTTP 请求提供服务。
服务热线:400-188-9287
4
洞察 3:76%的镜像最终以 root 身份运行,如图 3 所示。
图 3:以 root 身份运行的容器
洞察 4:公共镜像仓库越来越受到信任,从 2020 年的 47%增加到 2021 年的 61%,
如图 4 所示。
图 4:镜像仓库拉取(公有仓库 vs 私有仓库)
服务热线:400-188-9287
5
洞察 5:RHEL 是迄今为止最受欢迎的基础镜像,占使用基础镜像的 36%,只有 25%
的人使用 Alpine,如图 5 所示。通过使用像 Alpine 这样的精简基础镜像,可以减
少容器的攻击面。
图 5:基本镜像操作系统
洞察 6:镜像生命周期数据反映了代码发布之间的时间变化(如图 12 所示),大约
一半的容器镜像在一周或更短的时间内被替换。
图 6:容器镜像生命周期
服务热线:400-188-9287
6
洞察 7:在容器工作负载中,在 62%容器中检测到 shell,38%检测到使用敏感挂载
点启动的容器,如图 7 所示,这意味着该容器能够更改主机系统上的重要文件。
图 7:容器运行时安全警报
洞察 8:52%的镜像是在运行时扫描的,42%是在 CI/CD 管道中进行最初扫描的,如
图 8 所示。青藤建议在镜像生产、分发、运行阶段都需要不断重新扫描所有容器,
以发现任何新披露的漏洞。
图 8:扫描镜像的位置
服务热线:400-188-9287
7
洞察 9:在生产环境中,运行的 85%的镜像至少包含一个可修补漏洞。此外,75%的
镜像包含“高”或“严重”的可修补漏洞,如图 9 所示。
图 9:运行时可修补漏洞
洞察 10:在关注告警中,Kubernetes.node.ready 仍然是最常用的,其次是 CPU 使
用率和正常运行时间指标,如图 10 所示。
图 10:Top10 警报
服务热线:400-188-9287
8
第二部分 全生命周期容器安全解决方案
镜像安全是保护容器安全的基础,镜像扫描是解决镜像安全问题的基础手段。针对
镜像风险问题,有效提升镜像扫描能力是关键。据研究表明,虽然很多机构已经意
识到镜像扫描的重要性,但是通过对 7 天内扫描的镜像的通过率和失败率进行抽样
调查,发现其中 50%的镜像未通过。镜像风险问题不容小觑,镜像扫描不仅要做,
而且要做好,这成为摆在容器应用企业面前的一个难题。
1、容器安全解决方案的 5 大核心能力
要执行镜像扫描,一方面可以借助镜像仓库自带的漏洞扫描工具,比如 Docker Hub
和 Quay 等内置的扫描器可以实现对镜像的扫描。但是这还远远不够,对于更深层次
的镜像风险,做好深度的镜像检查仍然至关重要。
成熟、有效的镜像安全解决方案需要对镜像多个阶段进行持续监控扫描,包括镜像
构建过程中扫描(可 CI 集成 jenkins、azure 等)、镜像仓库中镜像扫描、运行时
镜像扫描,支持单镜像扫描、批量镜像选中扫描、全部镜像立即扫描等,具体体现
在下述几大能力上。
应用组件漏洞
鉴于漏洞的持续增长,需要持续监测新产生的漏洞。镜像安全解决方案需要扫描镜
像中应用组件的漏洞,对二进制包进行逐层深度扫描,快速分析漏洞所影响镜像的
分布范围,并以可视化方式展示漏洞详细信息,包含了漏洞类型、严重程度、漏洞
描述、标签、检查脚本、修复建议等,可以更好地帮助用户完成漏洞评估,帮助用
户查找和定位问题,为用户漏洞修复提供指导。
木马病毒和 Webshell
服务热线:400-188-9287
9
镜像安全解决方案需要能够发现镜像中的恶意文件,比如二进制木马、病毒、
Webshell 等,并提供相应恶意文件的路径、类型以及危险识别等信息。
敏感信息
镜像扫描时可以根据配置的敏感信息规则发现镜像中存在的敏感信息、操作,如环
境变量中的用户密码、镜像中的数据文件等,在进行告警的同时也可以把敏感信息
作为阻断规则,阻断存在敏感信息的镜像。
历史行为/安全溯源
镜像扫描的历史记录对后期镜像的历史行为追踪和重新检测大有益处,可查看攻击
告警名称类型、攻击源信息等详细内容。通过溯源报告,可方便实现回溯攻击过程,
进而找到不明来源的或者存在问题的镜像,溯源分析攻击事件,分析攻击者的攻击
入口和攻击路径,为更有效的制定安全防御策略提供参考。
可信镜像识别
通过设置并识别受信任的镜像,在进行镜像扫描时,根据受信镜像规则判断镜像是
否可信,从而也可以检查出是否存在不受信任的镜像。
2、容器安全解决方案的 28 项检查点
容器镜像需要大量分发和部署,因此,需要确保容器镜像在构建、分发和运行全生
命周期内的安全。镜像扫描是检查操作系统和安装包中是否存在已知漏洞的一项基
本措施。除此之外,还有很多措施可以加强容器镜像的安全。如下表所示,基于镜
像安全 4 个阶段、11 个要求、28 项检查点,全面检测容器生命周期各个阶段的镜像
风险,确保容器镜像的安全。
服务热线:400-188-9287
10
第三部分 13 万容器规模企业安全实践案例
1、案例概要—知名互联网公司部署容器超 130,000 个
某企业是知名的互联网公司,专注于智能终端产品的研发,拥有近 3,000 名员工,
其旗下的主打应用程序月活量超过 1 亿,致力于为全国用户提供多样化的科技服务。
服务热线:400-188-9287
11
在互联网圈,产品迭代次数极其频繁,业务更新速度快,为了确保业务稳定性,该
企业另辟蹊径,部署了超过 130,000 多个容器,以应对快速增长的业务量,逐步走
向云原生化。
2、现实挑战—单月拉取镜像 18,000 次安全问题突出
云原生环境下,互联网的基础设施保护依然重要,其安全保障若不到位,会使用户数
据面临重大风险。容器是在云上提供弹性应用程序的新一代基础设施,基于镜像而运
行,镜像如果受到威胁,容器就存在被攻陷的可能。在使用容器的过程中,该企业公
开可用的容器镜像数量呈现指数级增长,单月从存储库中拉取的镜像的最高峰值更是
达到 18,000 次,镜像安全问题引发重视。
面对当下最棘手的问题,青藤基于实战经验,为该互联网企业首先进行了诊断,提出
了“想要保护好镜像,不仅仅是要保护好镜像本身的安全,更要确保镜像在运行过程
中不会被篡改,并且确保镜像仓库的安全”,发现该企业的容器镜像存在着三方面的
问题:
有些镜像是过期的,这增加了风险暴露面,很容易被攻击者利用。
有些镜像构建不合规,这些镜像并非恶意镜像,而是错误的配置导致的。
有些恶意镜像隐藏着诸多后门,是危险系数最高的镜像。
3、解决方案—构建、分发、运行全生命周期安全管理
服务热线:400-188-9287
12
该互联网企业通过青藤蜂巢·云原生安全平台,在镜像构建时就对镜像进行扫描,一
旦检测到漏洞、错误配置、威胁等相关问题,便会通过蜂巢控制台向企业的操作管理
员进行提示,如图 11 所示,进行漏洞风险闭环管理。
图 11:漏洞风险闭环管理
我们不仅要更早地发现和修复容器漏洞,更要监测生产环境中的应用程序,确保这些
程序在部署后也能保持安全。在运行时阶段,青藤蜂巢还会自动检测正在运行的容器,
对容器的任何操作执行最低权限的要求,确保镜像的不变性,杜绝未经授权的镜像部
署、恶意代码注入、篡改、非法数据泄露以及各类攻击等安全风险,做到全生命周期
镜像扫描,如图 12 所示。
服务热线:400-188-9287
13
图 12:全生命周期镜像扫描
透过该互联网企业的云原生安全实践经验来看,当涉及到镜像安全保护时,我们要注
意这几个细节的关键点:
基础镜像构建阶段即启动镜像扫描,使用数字签名来验证镜像的真实性。
优先选择从最小的基础镜像进行构建。
尽早、持续性地检查镜像是否存在漏洞问题,创建受信任的基础镜像。
已经通过所有安全检查的基础镜像,在创建新镜像时也需要再次扫描。
全生命周期多个节点进行扫描:CI/CD、镜像仓库及集群运行时容器等。
4、重要价值—容器得到有效保护安全效率提升 10 倍
通过青藤蜂巢·云原生安全平该企业容器镜像漏洞修复效率显著提升,相较传统扫描
工具的流程,过去需要用将近 1 小时的漏洞扫描已经缩减到 6 分钟,效率提升 10 倍。
在经历了容器化部署和应用青藤蜂巢·云原生安全平台之后,该企业已经朝着云原生
安全的方向迈出了重要一步:凭借贯穿整个应用开发生命周期的安全性,该互联网企
业的容器基础设施安全保护得到有效保障,实现了降本增效。