2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:004224
用户头像
万佳 前InfoQ编辑

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

关注

评论

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

Sa-Token 单点登录 SSO模式二 URL重定向传播会话示例

Java 登录验证 SaToken

贪心算法:Dota2 参议院 🏯

空城机

LeetCode 5月月更

借势双碳东风:干“实事”的“虚拟”电厂

脑极体

云图说丨每个成功的业务系统离不开API网关(APIG)的保驾护航

华为云开发者联盟

云计算 华为云 API网关 业务系统 APIG

LabVIEW控制Arduino实现示波器(基础篇—7)

不脱发的程序猿

单片机 LabVIEW Arduino LIAT Arduino实现示波器

LabVIEW控制Arduino驱动1602液晶显示屏(基础篇—10)

不脱发的程序猿

单片机 LabVIEW Arduino LIAT 驱动1602液晶显示屏

哈希能作弊吗?哈希竞猜游戏防作弊系统开发逻辑(稳定运营)

开发微hkkf5566

全链路压测(十四):生产全链路压测SOP

老张

性能测试 全链路压测 稳定性保障

客观的聊一聊,裁员这件糟心事

互联网 职场 裁员

模块2作业

Geek_701557

值得收藏:当向数据库导入大量数据时,mysql主键唯一键重复插入,如何丝滑操作并不导入重复数据呢

迷彩

MySQL 数据库 大数据运维 5月月更

微信朋友圈的复杂度

爱晒太阳的大白

LabVIEW控制Arduino实现舵机联控(基础篇—9)

不脱发的程序猿

单片机 LabVIEW Arduino LIAT 舵机联控

对于编程思想和能力有重大提升的书有哪些?

宇宙之一粟

书单推荐 编程思想 5月月更

带你认识String类

开发微hkkf5566

LabVIEW控制Arduino实现RGB调色灯(基础篇—6)

不脱发的程序猿

单片机 LabVIEW Arduino LIAT RGB调色灯

什么是区块哈希?哈希趣投娱乐竞猜游戏开发逻辑(成熟源码)

开发微hkkf5566

高性能 PHP 应用容器之 Workerman

CRMEB

Crypto巨头们纷纷聚焦“Building platonic”,PlatoFarm会是解决方案吗?

西柚子

带你读顶会论文丨基于溯源图的APT攻击检测

华为云开发者联盟

安全

Crypto巨头们ALL IN元宇宙,PlatoFarm或能突围

BlockChain先知

leetcode 153. Find Minimum in Rotated Sorted Array 寻找旋转排序数组中的最小值(中)

okokabcd

LeetCode 查找

三、KVM管理工具

穿过生命散发芬芳

kvm 5月月更

LabVIEW控制Arduino实现模拟数据采集(基础篇—8)

不脱发的程序猿

单片机 LabVIEW Arduino LIAT 模拟数据采集

研发效能团队规模、职能划分和优劣势分析概述(第一篇)

laofo

DevOps cicd 研发效能 组织架构 平台建设

架构实战营模块2课后作业

Geek_53787a

【LeetCode】检查句子中的数字是否递增Java题解

Albert

LeetCode 5月月更

GitOps自问自答

俞凡

最佳实践 研发效能 gitops

解析数仓lazyagg查询重写优化规则

华为云开发者联盟

数据库

Java设计模式系列学习

梁歪歪 ♚

设计模式

JAVA SPI机制

源字节1号

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