写点什么

400 万 Docker 镜像中,51% 的镜像存在高危漏洞

  • 2021-01-14
  • 本文字数:2197 字

    阅读完需:约 7 分钟

400万Docker镜像中,51%的镜像存在高危漏洞

通过扫描 Docker Hub 中的 400 万个容器镜像,Prevasio 发现 ,其中有 51%的镜像存在高危漏洞,并且有 6432 个镜像包含病毒或恶意程序。

 

据悉,Prevasio 是一家聚焦容器安全的网络安全创业公司。数月前,这家公司宣布对托管在 Docker Hub 上的 400 万个容器镜像完成了扫描。



扫描结果 令人大吃一惊:

 

  • 在 400 万个容器镜像中,超过一半的容器镜像存在一个或多个高危漏洞。


  • 6432 个危险镜像占 Docker Hub 公开可利用镜像总数的 0.16%,它们累计被下载了超过 3 亿次;


  • 有些原始的镜像并非恶意的,但是在下载时,它们却被植入脚本来运行挖矿的源代码,在编译后执行。

最大的互联网公共应用仓库:Docker Hub


Prevasio 报告称,“自从容器技术在 20 年前被发明以来,世界在如何构建、部署和管理应用上见证了一个革命性的飞跃。”

 

今天,随着云原生时代的到来,容器技术越来越受欢迎。

 

目前,Docker Hub 上有超过 400 万个公开的 Docker 容器镜像。据悉,仅在 2020 年 1 月,Docker Hub 中的 Docker 镜像拉取次数(下载)就高达 80 亿,并且还在不断增加。2020 年全年,Docker 镜像的拉取次数(下载)将近 1000 亿次,远远超过了 Google Play 270 万 Android 应用一年 840 亿次的下载次数。

 

毫无疑问,Docker Hub 已经成为最大的互联网公共应用仓库。



有业内专家对 InfoQ 表示,“虽然镜像仓库的规模呈指数级增长,但是其安全形势却不容乐观。”

 

在 2019 年,开源安全公司 Snyk 发现,10 大最流行的 Docker 镜像中,每个镜像至少有 30 个安全漏洞。

 

科技媒体 ZDNet 此前发表了一篇名为《Docker malware is now common, so devs need to take Docker security seriously》的文章。文章开篇写道,“随着云原生技术的流行,网络犯罪团队开始瞄准 Docker 和 Kubernetes 系统。”


以恶意软件为例。过去几年,有些恶意软件会扫描用于 Docker 的服务器,比如 Doki、Ngrok、Kinsing(H2miner)、XORDDOS、AESDDOS、Team TNT、Xanthe 等。这些恶意软件专门搜寻将 Docker 管理 API 暴露在网上的服务器,利用它们部署恶意的 OS 镜像,从而植入后门或安装加密货币挖矿程序。

Docker Hub 中的安全风险


有专业人士指出,Docker Hub 中存在四类安全风险:

 

  • 泛滥的矿机程序;

 

  • 通过公开的制品库(像 npm 等)传播的恶意程序;

 

  • 开发者在镜像中大量使用 GoLang、PowerShell 这样的跨平台语言,也给攻击者提供了捷径。攻击者只需通过一种攻击方式和语言就可以在跨平台的主机上随意执行;

 

  • 一些镜像可能不直接包含恶意程序或漏洞,而是部署了给攻击者提供入侵工具的平台框架或是在运行时刻动态下载攻击脚本,从而避开常规的静态镜像安全扫描。

 

目前,Docker Hub 中最常见的一类安全风险是加密货币挖矿。比如,在 2018 年,安全厂商 Fortinet 与 Kromtech 发现 17 个受感染的 Docker 容器,它们以公开可下载镜像的形式存在,其中包含可用于挖掘加密货币的程序。后续调查发现,这些镜像的下载次数高达 500 万次,这意味着黑客能将命令注入这些不安全的容器中,从而将相关代码注入到其他合法的 Web 应用程序中。

 

2020 年 8 月,Palo Alto 安全团队发现有攻击者在 Docker 容器中注入木马,进行劫持挖矿,并使用 Docker Hub 分发恶意镜像。一个名为 azurenql 的 Docker Hub 账号从 2019 年 10 月开始一直处于活动状态,并托管了六个用于包含挖掘 Monero 的恶意木马。镜像中的挖矿木马通过使用 ProxyChains 和 Tor 的网络匿名化工具来逃避网络检测。账户上托管的镜像累计拉取次数超过 200 万,攻击者至少赚取了 36000 美元。

 

有些容器镜像看似安全,实则不然,它会在运行时下载恶意负载。

 

众所周知,每个 Docker 镜像包都有运行应用程序所需的依赖项。因此,应用程序可以在任何平台、操作系统和基础结构上以相同的方式运行,恶意应用程序也能以同样的方式部署。攻击者使用 Docker Hub/Quay 等公共容器注册中心来存储和传递恶意容器镜像。由于 Docker Hub 是大多数 Docker 主机的默认注册表,因此经常用于存储和传递恶意镜像。这些恶意镜像被作为容器直接安装并运行在受损主机上,它们通常只是窃取 CPU、内存或网络资源,而不会损害同一主机上的其他容器或进程。

 

对企业而言,镜像安全风险会直接影响其线上业务的安全稳定性,企业赖以生存的基础设施可能因为镜像构建流程中不经意的几行代码沦为矿机。

七大措施保障镜像安全

 

无论对开发团队,还是对企业来说,容器镜像的安全性至关重要。那么,可以采取哪些措施呢?有专业人士给出以下建议:

 

第一,权限隔离,实行细粒度的访问控制;

 

第二,使用镜像扫描工具,动态更新漏洞库,实时监控和发现镜像漏洞;

 

第三,建立完备的仓库操作审计;

 

第四,实行镜像签名;

 

第五,镜像最小化;

 

第六,使用可信的容器镜像,绝不从不可信的公开仓库中下载镜像;

 

第七,规范化镜像构建:不要泄露敏感信息(证书密钥、密码、认证 token 等),COPY 比 ADD 更安全,当 COPY 嵌套目录时注意其中的敏感信息,使用 linter 工具提高 dockerfile 质量。

 

企业需要规范业务开发流程,面向云原生零信任的网络环境,面向容器技术和 K8s 带来的敏捷、弹性和可扩展等特性,升级自己的安全防护技术,提升防护意识,保证软件供应链的安全性。

 

有专业人士对 InfoQ 记者说:“在云原生的大背景下,除了 Docker 镜像和其他云原生制品的供应链安全外,对于提供服务的云厂商和部署业务应用的企业,它们还需要关注底层基础设施的安全性和业务应用在运行时刻的安全。”

2021-01-14 12:003631
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 357.8 次阅读, 收获喜欢 1800 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营week06

FG佳

架构师一期

Week2作业

幸福小子

【架构师训练营第 1 期 06 周】 学习总结

Bear

极客大学架构师训练营

架构师训练营第 2 期 第二周总结

月下独酌

第二周作业

hunk

极客大学架构师训练营

架构师训练营 第二周学习总结

阿光

链表实现插入排序、机器学习Top 10 算法、图数据库实战Neptune、John 易筋 ARTS 打卡 Week 24

John(易筋)

学习 ARTS 打卡计划 链表实现插入排序 图数据库实战 Neptune

第二周

宇文青

架构师训练营 - 第六周 - 作业一

行者

第 2 周 - 命题作业

willson

依赖倒置原则

落朽

架构第六周作业

Geek_Gu

极客大学架构师训练营

第 2 周 框架设计总结

心在那片海

第二周总结

孤星

架构师训练营 week2 课后练习

花果山

极客大学架构师训练营

架构师系列之3 接口分离原则

桃花原记

第二周作业总结

hunk

极客大学架构师训练营

第2周作业

Steven

极客大学架构师训练营

架构师训练营第六周作业

CmHuang

【架构师训练营第 1 期 06 周】 作业

Bear

极客大学架构师训练营

【面经】面试官:如果让你设计一个高并发的消息中间件,你会怎么做?

冰河

面试 高并发 异步 限流 消息中间件

极客时间 - 架构师一期 - 第六周作业

_

极客大学架构师训练营 第六周作业

第 6 周 作业

Pyr0man1ac

第二周-总结

jizhi7

架构师训练营 第二周作业

阿光

架构师1期week05

FG佳

第 5 周 作业

Pyr0man1ac

第六周 技术选型 学习总结

应鹏

学习 极客大学架构师训练营

架构师训练营第六周总结

xs-geek

极客大学架构师训练营

第六周作业 (作业二)

Geek_83908e

极客大学架构师训练营

第二周总结

willson

400万Docker镜像中,51%的镜像存在高危漏洞_安全_万佳_InfoQ精选文章