写点什么

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

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

关注

评论

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

react源码解析5.jsx&核心api

全栈潇晨

React React Hooks

5W1H聊开源之What——开源是什么?

禅道项目管理

开源 软件 开发

C 语言数据结构的封装方法

实力程序员

裕民银行 x mPaaS | 移动应用“适老化”改造,可不止是字体变大

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS APP开发

【Flutter 专题】113 图解自定义 ACEPieWidget 饼状图 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

anyRTC Web SDK 实现音视频呼叫功能

anyRTC开发者

音视频 WebRTC RTC sdk

最近打算重新写一遍爬虫“指北”

IT蜗壳-Tango

IT蜗壳教学 6月日更

【Vue2.x 源码学习】第三篇 - 对象的单层劫持

Brave

源码 vue2 6月日更

网络攻防学习笔记 Day34

穿过生命散发芬芳

网络攻防 6月日更

【通俗易懂】JWT-使用的可能正确姿势

蛋先生DX

JWT 6月日更

【LeetCode】连续数组Java题解

Albert

算法 LeetCode 6月日更

5分钟速读之Rust权威指南(十六)

wzx

rust

PMP-项目管理标准

索隆

pmp 6月日更

音视频学习--弱网对抗技术相关实践

Fenngton

音视频 网络 视频编解码 弱网下的极限实时视频通信 实时视频

ARTS--week 10 补打卡

steve_lee

记一次K8s排错实战

雪雷

k8s 6月日更

超超超超级详细的多边形游戏问题分析(动态规划)

若尘

算法 动态规划 6月日更

华云大咖说 | 安超OS全面升级 最新亮点解密

华云数据

详解浏览器跨域访问的几种办法

华为云开发者联盟

安全 浏览器 跨域 WEB安全 跨域访问

🏆【声网Agora】「WebRTC-如何搭建语音认证服务」

码界西柚

WebRTC RTC征文大赛 Agora 6月日更

C++多线程强制终止

华为云开发者联盟

c++ 安全 线程 多线程 可信

Dubbo 线程池模型

青年IT男

dubbo

Golang Testing 概览 - 基本篇

hedzr

Unit Test testing Go 语言

踩准时钟节拍、玩转时间转换,鸿蒙轻内核时间管理有妙招

华为云开发者联盟

鸿蒙 时间管理 计数器 时间转换 计时

如履薄冰--亚马逊直运系统重构实录

蔡超

软件架构 软件重构 软件自动化测试

有点难的知识点:Webpack Chunk 分包规则详解

范文杰

webpack 6月日更

6000年,看懂了「硬核山东」!

云计算

分库分表 vs NewSQL 数据库

xcbeyond

分库分表 6月日更

ETL工程师必看!超实用的任务优化与断点执行方案

敏捷调度TASKCTL

大数据 ETL算法 ETL ETL任务 ETL系统

《开源 PassJava》1、项目介绍

悟空聊架构

开源 面试 刷题 spring cloud alibaba 6月日更

傲腾持久内存如何为数据赋能,加速应用落地?

白玉兰开源

人工智能 英特尔 傲腾

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