云原生安全的第一步-镜像安全
发布时间:
2021-10-26 09:02
前言
讨论云原生安全,大家首先会想到容器镜像安全。虽然传统安全领域没有这个概念,但在云原生安全领域,容器镜像的安全首当其冲,也是规划与建设的第一步。
传统的主机在发现漏洞后,可以通过打补丁的方式进行修复,因此也被称为“可变基础设施”或“动态基础设施”。而在云原生技术栈中,作为镜像的运行态副本,容器内的所有修改都不会保存到镜像。因此当容器重启或弹性扩容时,新生成的容器仍然是与镜像保持一致。这也就是所谓的“不可变基础设施”。
不可变基础设施带来了一系列收益,例如更高的一致性和可靠性,以及更简单,更可预测的部署过程,也能缓解和防止配置漂移和“雪花服务器”等问题。同时也引入了安全运营时处置方法的差异。因为基于安全的镜像生成的容器是安全的,基于不安全的镜像生成的容器仍然是不安全的。所以在云原生领域,如果发现了容器的安全风险,第一反应就是修复镜像。
容器镜像
镜像是一个特殊的文件系统,通常包含了容器运行时所需的程序,库,资源,配置等,还可能包含一些为运行时准备的一些配置参数,但不包含任何动态数据。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的可读写层,如下图所示。所以镜像可以描述为一堆只读层的统一视角。

安全扫描
由于这种分层的存储形态,使得传统漏洞扫描产品无法支持,而必须采用专门的镜像扫描工具或产品,例如开源项目 Clair、Trivy便是其中的佼佼者。小佑科技也早在2019年便推出了自己的镜像扫描功能,以企业安全运营为设计要求,包含更多功能,也更贴合安全运营场景。

漏洞扫描
我们在之前文章也介绍过,调查发现Dockerhub中的超过50%的官方镜像存在高危漏洞,接近70%的镜像存在高危或中危漏洞。
小佑科技自研的Poseidon(波塞冬)引擎能够支持CVE和各类基础操作系统的镜像(包括但不限于Debian、Ubuntu、RHEL、CentOS、Alpine、Oracle Linux、Photon Linux、SUSE等)外,还能够支持中文漏洞库CNNVD和各类国产化操作系统(例如麒麟、欧拉)的镜像。除了操作系统,小佑也支持各类第三方组件的扫描,例如各种应用框架。事实上,经常利用的第三方组件,往往也是攻击者最喜欢的。
小佑科技还采用了更为优秀的算法策略,保证漏扫结果的准确性。另外,针对每一个镜像,我们提供可执行的修复建议,而不是参考链接,减少用户的修复成本。
恶意软件
在容器云环境中,病毒木马种类和数量相对于Windows办公环境有较大差异,但仍然可能存在一些挖矿病毒或各种Webshell。因此镜像扫描不应只是做漏洞扫描,还应支持对恶意软件进行查杀。小佑科技通过多引擎的方式来满足用户需求,即传统杀毒引擎负责病毒、木马、黑客工具等,自研的Apollo(阿波罗)引擎则更侧重Webshell的查杀。
敏感信息
对于企业自研软件的镜像,一定不要将敏感信息保存在镜像之内,通常我们所说的敏感信息包括下述内容,或者其他用户自定义的其他敏感信息。
• IP地址
• 账号和凭据
• SSH私钥
• 连接数据库的字符串
• 个人信息例如邮箱
包含此类信息的镜像如果被恶意人员获取到,则可能会被进一步利用造成严重危害,事实上也有这样的案例。一方面我们建议研发人员将敏感信息使用k8s secret或专用的配置中心来保存,另一方面从安全管理的角度,也可以使用小佑的镜像扫描功能,对镜像进行深度扫描,杜绝潜在问题。
开源许可
开源软件的广泛应用使得开源治理变得十分必要。不同的开源软件遵循不同的开源许可,其约束亦有不同。因此企业在引入开源软件时,务必清晰了解各个软件的合规性和兼容性风险,避免知识产权风险。2019年,北京一家软件公司便因涉及GPL协议侵权,被判决进行赔偿。
小佑科技的镜像扫描功能包含了此部分功能特性,可以将镜像内涉及的开源许可进行盘点,供企业客户判断和决策。
镜像合规
小佑科技还支持合规方面的安全检查,主要内容有:
• 容器使用可信的基础镜像
• 容器中不安装没有必要的软件包
• 启用docker内容信任
• 将HEALTHCHECK说明添加到容器镜像
• 不在dockerfile中单独使用更新命令
• 在dockerfile中使用copy而不是add
• 涉密信息不存储在dockerfile
• 仅安装已经验证的软件包
镜像拦截
只有检测,没有响应是不完整的。小佑科技具备的镜像拦截功能,为企业客户提供了安全策略落地的抓手。顾名思义,当对镜像深度扫描后发现存在高危漏洞、病毒木马或违反其他自定义的策略时,小佑科技的产品可以在两个阶段进行阻断拦截,防止镜像流转到下一阶段。
1) CI阶段:与企业的DevOps流程进行集成,在构建完成后立即触发镜像扫描,如果发现严重问题则不允许其上传至镜像仓库。
2) CD阶段:在启动容器前,对镜像进行扫描,如果发现严重问题则不允许其上线。
企业客户可以根据自身需求,对上述特性进行启用或调整。

其他管理性特性
• 安全溯源:基于镜像层进行分析,清晰展示每一层引入的安全问题
• 白名单管理:对特殊情况的镜像进行额外处理
• 自定义策略:除默认的内置规则,支持用户按需配置自定义策略
• 自定义评分:对镜像的整体评分,允许用户自定义规则
• 扫描报告:完整的扫描报告,对镜像安全的整体态势进行分析
总结
通过上述功能特性的组合,企业用户可以有效地管理容器云中的镜像安全,从开始就做好云原生安全。





