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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 最近乌云上出现了一篇文章 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,还得学习一个。

目录
相关文章
|
4月前
|
JSON API 开发工具
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
|
26天前
|
负载均衡 数据可视化 API
像素流送api ue多人访问需要什么显卡服务器
本文总结了关于像素流送技术的五大常见问题,包括是否支持Unity模型推流、UE多人访问的最大并发数、所需服务器配置、稳定性问题及API支持情况,旨在帮助开发者更好地理解和应用这一技术。
52 1
|
27天前
|
API
如何申请微店的API访问权限?
申请微店API访问权限需先注册账号并完成实名认证,随后提交开发申请,学习API接口,实现功能和数据传输,申请授权获取API Key,测试接口,最后正式上线并持续维护优化。
|
1月前
|
Web App开发 API Windows
取接口访问者信息[IP,浏览器,操作系统]免费API接口教程
此API用于获取访问者的IP地址、浏览器和操作系统信息,支持70多种浏览器和操作系统。通过POST或GET请求至`https://cn.apihz.cn/api/ip/getapi.php`,需提供用户ID和KEY。返回结果包括状态码、消息、IP、浏览器和操作系统信息。示例:{"code":200,"ip":"175.154.88.178","browser":"Chrome","os":"Windows 10"}。详情见官网文档。
|
2月前
|
编解码 中间件 API
API实现跨平台访问的方式
【10月更文挑战第16天】API实现跨平台访问的方式
55 2
|
2月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
254 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
3月前
|
API iOS开发 开发者
Snapchat API 访问:Objective-C 实现示例
Snapchat API 访问:Objective-C 实现示例
|
3月前
|
SQL 安全 数据库
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
620 1
|
4月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之海外是否可以访问人物动漫化的api版本
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
56 0
|
4月前
|
存储 安全 API
【Azure API Management】实现在API Management服务中使用MI(管理标识 Managed Identity)访问启用防火墙的Storage Account
【Azure API Management】实现在API Management服务中使用MI(管理标识 Managed Identity)访问启用防火墙的Storage Account