AI智能总结
江国龙腾讯安全云鼎实验室 云原生安全专家,腾讯安全云鼎实验室高级研究员。主要负责云原生安全相关领域的技术研究与安全能力建设、腾讯云原生安全治理与运营,有着丰富的云原生安全技术和实践经验。 01 目录Content 02 03安全能力建设与运营实践 04 容器镜像的基本原理 什么是容器镜像 容器镜像是由按层封装好的文件系统和描述镜像的元数据构成的文件系统包,包含应用所需要的系统、环境、配置和应用本身等。 分层存储写时复制联合挂载 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 容器镜像是怎么来的 üdockerbuild •cdpath/to/dockerfile•docker build-timage-eg. üdockercommit •docker commit container-id repository:tag dockerfileexample 容器镜像是怎么存储的 üdockerpush •docker image tagnginx:latestregistry-host:5000/myadmin/nginx:latest•docker image push registry-host:5000/myadmin/nginx:latest 基于镜像间的依赖关系(基础镜像),仓库内的镜像组成了“森林”存储结构 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 02 镜像安全的需求与挑战 镜像安全是云原⽣架构下的重要安全风险来源 容器镜像是云原生架构中重要的风险点,是攻击者重要的攻击对象 当前容器镜像的安全现状不容乐观 ü87%的镜像包含严重或者高危漏洞(Log4shell等)ü71%的镜像存在可以被修复的漏洞ü15%的严重或高危漏洞,存在于正在运行的容器中 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 容器镜像的风险分类 ü镜像供应链,镜像被恶意投毒利用•挖矿、病毒、木马ü容器镜像自身的脆弱性•漏洞、合规、隐私 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 针对镜像供应链的攻击传播快,影响范围⼴ ü恶意镜像主要以机器学习、编程语⾔和基础应⽤环境的基础镜像为主,这些镜像⼀旦被下载,将在内⽹⼴泛使⽤,威胁也将快速蔓延 ü据统计,编程语⾔类的基础镜像下载数量最⼤,通常4-5个⽉就可以达到10w左右的下载量 针对镜像的在野攻击⽰例 秘钥等敏感信息泄露 2021年4月1日,由于Codecov一个Docker文件配置失误,攻击者可以窃取凭据并修改客户使用的BashUploader脚本。通过恶意代码修改Bash Uploaders,并将环境变量和从一些客户的CI/CD环境中收集的密钥泄露给了一个受攻击者控制的服务器。 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 03 安全能力建设与运营实践 镜像安全运营的困惑 ü应该怎么处置镜像的安全问题ü几十万、上百万的镜像,真的要挨个的扫描,挨个的分析吗ü扫出来几十个,上百个风险,都需要处理吗ü怎么下手,怎么来做运营 镜像安全治理的实现路径 工具是基础 工欲善其事,必先利其器能够精准、高效的发现各种风险 ⼯具——镜像扫描的安全能⼒构建 ü威胁情报 •漏洞库、病毒木马库等 ü获取镜像信息•缓存、仓库的集成 ü分析镜像 •分布式计算、镜像组成、缓存、风险匹配 ü结果展现 •风险聚合、风险定位、镜像依赖分析 镜像安全治理的实现路径 框架是前提 明确治理思路,制定治理方案,确定实施步骤通过安全治理框架,在方法论上提供有效支撑 镜像安全治理总体思路 分批、分步的收敛已经存在的 ⾯向DevSecOps的容器镜像安全治理框架 分阶段实现安全保障 各个阶段间做好镜像的安全控制,确保有风险的镜像不会流入下游阶段 存储阶段 运行阶段 构建阶段 •基础镜像•Dockerfile检测•Yaml检测•SCA/SAST/IAST•… •准入控制•本地镜像管理•热补丁•… •镜像扫描•镜像签名•传输加密•… 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 镜像构建时使⽤黄⾦镜像作为基础镜像 黄金镜像是指已经过安全评估,解决了已知的安全风险,可以直接使用的安全镜像镜像必须使用基于Dockerfile的方式构建 黄金镜像的指标 Dockerfile安全要求 •最小化安装,仅包含必要的软件•修复所有已知的漏洞•最小化的权限配置•不包含木马、病毒等恶意文件•不包含密钥等敏感信息文件•…… •基础镜像必须使用黄金镜像•基础镜像必须使用指定版本,不能用latest•不要安装不必要的软件包•最小化层数,尽量避免过多的层引入•不配置默认root用户启动镜像,仅配置所需的最小权限用户•…… 镜像小、层数少、风险少 镜像进⼊运⾏时阶段做好准⼊控制 运行时阶段的准入控制是指只有符合安全要求的镜像才允许被拉起运行更左的阶段进行yaml文件检测,更右的阶段实现控制拦截 Yaml文件安全要求 •不应该使用特权的方式创建容器•不能使用CAP_SYS_ADMIN Capability•不应该在role中使用默认的ServiceAccounts•不应该将Secrets作为环境变量来使用•不应该在容器中共享主机的IPC、网络等命名空间•应该设置AlwaysPullImages•…… 存量镜像是镜像安全治理最⼤的挑战之⼀ 查漏补缺 •镜像所属业务是否安全敏感性高•镜像有没有被拉取到本地•镜像有没有运行中的容器在使用•运行容器的数量有多少•影响的业务数有多少•…… •最近最多被使用的•风险层级定位,确定风险引入位置•风险等级划分,确认需要修复的风险范围•识别基础镜像,确认并收敛基础镜像•修复业务镜像风险•…… 镜像安全治理的实现路径 制度是保障 确保框架内的各项措施能够高质量落地 04 总结展望 总结 ü镜像安全是云原生架构下实现DevSecOps的重要环节ü安全能力是最基础的前提,要确保高效准确ü云原生安全任重道远 Thanks DevOps时代社区荣誉出品