所谓的"新姿势之Docker Remote API未授权访问漏洞分析和利用"

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 最近乌云上出现了一篇文章 http://drops.wooyun.org/papers/15892。这种作者就一个好,写文章比谁都快,可惜从来不愿意踏踏实实的分析,非得搞个大新闻,把Docker/Swarm批判一番。 先说结论,Docker采用C/S结构,但是它的client和server用的是同

最近乌云上出现了一篇文章 http://drops.wooyun.org/papers/15892。这种作者就一个好,写文章比谁都快,可惜从来不愿意踏踏实实的分析,非得搞个大新闻,把Docker/Swarm批判一番。

先说结论,Docker采用C/S结构,但是它的client和server用的是同一个binary文件: docker,根据参数不同执行不同的代码分支,所以很多人可能都不清楚Docker是C/S结构的。Docker的Server端,也叫作Docker Daemon,运行命令/path/to/docker daemon启动,启动后才能执行其他的docker命令,诸如docker info..., docker run...

docker client和docker daemon怎么通信呢?默认情况下,docker daemon监听unix domain socket /var/run/docker.sock,client和daemon通过这个domain socket通信。这个文件的模式是这样的

srw-rw---- 1 root docker 0 May 14 21:16 /var/run/docker.sock

显然只有root和docker组的用户才能访问。总结起来就是,默认情况下,只有本机上的root和docker组用户才能操作docker。

那么乌云上的“漏洞”是怎么回事呢?除了通过unix domain socket这种模式,还可以让Docker Daemon把服务暴露在tcp端口上,比如2375,这样就可以在网络上操作Docker了。把服务暴露在网络上带来了一个问题:安全。Docker本身没有身份认证的功能,只要网络上能访问到服务端口,就可以操作Docker。

对这个问题,Docker官方早就给了完整的解决方案,甚至用了数篇文档,不断强调安全性,某些人就是视而不见,连文档都不好好读。 https://docs.docker.com/engine/security/https/

耍大刀把自己砍死了还要怪刀???

阿里云容器服务也是Swarm+Docker的模式,Swarm配置了tls,注意,这里的tls真不是只为了解决中间人攻击。容器服务有一套完整的证书体系,用户连接自己Swarm的时候,需要下载证书,使用证书才能和swarm建立tls连接,没有证书连连接都见不了,扯什么蛋的中间人攻击。说完了Swarm,再说Docker Daemon。Docker Daemon完全不监听任何网络端口,而是反向连接到Swarm,你问怎么做到的?我只能说一句无可奉告。你可能会问:证书被盗了怎么办?没关系,只要到控制台上吊销再重新生成证书就行(妈妈再也不用担心证书安全问题了)

你们啊,毕竟还是too young,too simple,还得学习一个。

目录
相关文章
|
21天前
|
存储 数据挖掘 API
购物平台数据抓取实战指南:从API到深度分析
本指南介绍如何通过API接口抓取淘宝、京东、拼多多等电商平台的数据,涵盖API选择、注册配置、数据抓取与处理、深度分析等内容,帮助企业和开发者挖掘数据价值,支持市场分析和决策制定。
|
24天前
|
安全 API 数据安全/隐私保护
商品详情API接口的优势分析与应用价值
在数字化时代,商品详情API接口为商家和开发者提供了实时更新、高效集成、丰富功能、安全稳定、易于扩展及提升用户体验的解决方案,助力提高运营效率、降低成本并增强市场竞争力。
|
24天前
|
编解码 中间件 API
API实现跨平台访问的方式
【10月更文挑战第16天】API实现跨平台访问的方式
40 2
|
1月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
141 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
1月前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
2月前
|
API iOS开发 开发者
Snapchat API 访问:Objective-C 实现示例
Snapchat API 访问:Objective-C 实现示例
|
1月前
|
API 数据安全/隐私保护 开发者
淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据
此接口用于通过关键词搜索淘宝商品列表。首先需在淘宝开放平台注册并创建应用获取API权限,之后利用应用密钥和访问令牌调用接口。请求参数包括关键词、页码、每页数量、排序方式及价格区间等。返回结果含总商品数量及具体商品详情。使用时需注意签名验证及官方文档更新。
|
3月前
|
存储 JavaScript 前端开发
探索React状态管理:Redux的严格与功能、MobX的简洁与直观、Context API的原生与易用——详细对比及应用案例分析
【8月更文挑战第31天】在React开发中,状态管理对于构建大型应用至关重要。本文将探讨三种主流状态管理方案:Redux、MobX和Context API。Redux采用单一存储模型,提供预测性状态更新;MobX利用装饰器语法,使状态修改更直观;Context API则允许跨组件状态共享,无需第三方库。每种方案各具特色,适用于不同场景,选择合适的工具能让React应用更加高效有序。
77 0
|
3月前
|
UED 开发工具 iOS开发
Uno Platform大揭秘:如何在你的跨平台应用中,巧妙融入第三方库与服务,一键解锁无限可能,让应用功能飙升,用户体验爆棚!
【8月更文挑战第31天】Uno Platform 让开发者能用同一代码库打造 Windows、iOS、Android、macOS 甚至 Web 的多彩应用。本文介绍如何在 Uno Platform 中集成第三方库和服务,如 Mapbox 或 Google Maps 的 .NET SDK,以增强应用功能并提升用户体验。通过 NuGet 安装所需库,并在 XAML 页面中添加相应控件,即可实现地图等功能。尽管 Uno 平台减少了平台差异,但仍需关注版本兼容性和性能问题,确保应用在多平台上表现一致。掌握正确方法,让跨平台应用更出色。
49 0
|
3月前
|
数据采集 API TensorFlow
简化目标检测流程:深入探讨TensorFlow Object Detection API的高效性与易用性及其与传统方法的比较分析
【8月更文挑战第31天】TensorFlow Object Detection API 是一项强大的工具,集成多种先进算法,支持 SSD、Faster R-CNN 等模型架构,并提供预训练模型,简化目标检测的开发流程。用户只需准备数据集并按要求处理,选择预训练模型进行微调训练即可实现目标检测功能。与传统方法相比,该 API 极大地减少了工作量,提供了从数据预处理到结果评估的一站式解决方案,降低了目标检测的技术门槛,使初学者也能快速搭建高性能系统。未来,我们期待看到更多基于此 API 的创新应用。
34 0