云原生|小心,你的Docker别被挖矿了

目录
前言
一、漏洞藏在哪?
二、如何选择镜像?
三.自动化扫描漏洞
启用设置
总结
前言
在云计算飞速发展的背景下,围绕着如何提高资源利用率,容器技术横空出世,并迅速成为应用最为广泛的容器引擎 。
我们在讨论系统安全性的时候,往往会聚焦于软件代码实现方面,但由开发者编写代码出现的Bug其实往往危害性并不大,至少外部人员基本上无从知晓 。但如果我们容器中使用的是开源的代码或镜像时,一旦出现问题,可能会造成致命的伤害 。
比如,最近你有没有遇到,自己的突然沦为了矿机?CPU飙升并疯狂地帮人挖矿 。如果有,那么,恭喜你!你用了别人伪装的公开镜像了 。这些镜像隐藏了虚拟币矿机,并通过 Hub装到了你的里 。
恶意者利用的服务器挖矿的行为如此猖獗,甚至逼得官方无奈宣布停止免费账户的使用权限,不止 Hub,包含、、 Azure等各大提供云端服务的平台,均已成为挖矿劫持攻击的目标 。
一、漏洞藏在哪?
我们知道,是用于构建镜像的文本文件,其内包含了一条条的指令() 。每一条指令执行时都会构建一层镜像,举个例子,我们创建一个简单的文件:
FROM node:lts-alpine3.15WORKDIR /workdirRUN npm i express-openid-connect
那么,该 文件执行后就会构建三层:
我们的 容器中,使用的基础镜像基本上都是从网络上的镜像仓库中获取的,开发团队添加不同的层以整合实现所需要的功能 。这些层可能只是执行创建文件夹等操作的简单命令,但它们通常会引入额外的包 。而潜在的漏洞往往就隐藏在这些不同的层中 。
二、如何选择镜像?
获取镜像时,我们最好选择 Hub上面官方发布的镜像,或者已验证的发布者提供的镜像,在这些镜像后面都会有不同的标志,如下图中标注的就是官方提供的镜像,标注 的则是的合作伙伴发布的镜像,也能基本确保是可以信赖使用的 。
我们搜索镜像时,如果只想搜索官方镜像,可以使用--过滤,这样搜索的结果将仅限于官方镜像,示例如下:
docker search --filter=is-official=true nginx

云原生|小心,你的Docker别被挖矿了

文章插图
三.自动化扫描漏洞
Snyk是、、和等公司开发人员使用的安全扫描平台,它会自动发现你依赖包中的安全漏洞 。
官方或已验证的发布者提供的镜像也不可能完全避免没有漏洞,集成 Snyk 后可以帮助我们检测隐藏在任何镜像或代码中的任何威胁 。同时,它还能为我们提供镜像的修复建议,甚至能够识别出引入的漏洞具体在文件的哪一行 。
【云原生|小心,你的Docker别被挖矿了】启用设置
在设置中,我们开启镜像扫描功能后,当镜像仓库中推送了新的镜像时,Snyk 就会根据我们的文件和记录的漏洞列表,逐项的检查所有的包和依赖,并标记扫描结果,扫描发现了 23 个高危漏洞、26个中危漏洞、3个低危漏洞:
点击漏洞,能够显示详细信息以及完整的依赖关系树信息,同时可以看到更具体详细的漏洞详情和修复建议,这样就使得找出解决问题的方法变得更为简单 。
总结
漏洞自动扫描可以帮助更好的保护我们的容器化应用系统,通过集成原生Snyk工具提供的镜像安全性检查可以获得对镜像漏洞的可见性,并帮助我们更好的遵循开发最佳实践,并允许开发团队将漏洞测试作为内部开发流程的一部分,同时也能更好的满足系统合规性要求 。