CVE-2019-5736(runc逃逸)
影响版本 runc 1.0.0-rc6 及更早版本 Docker 18.09.2 之前的版本 Kubernetes、LXC、Apache Mesos 等依赖 runc 的容器平台 漏洞原理 CVE-2019-5736 的核心原理是runc 进程在启动容器时未正确隔离自身文件描述符,导致容器内恶意进程可覆盖宿主机的 runc 二进制文件,最终实现容器逃逸并获取宿主机 root 权限。 利用方式: 文件描述符泄露: runc 启动容器时,会通过/proc/self/exe(指向自身二进制文件)创建进程,且未关闭该文件描述符(FD)。容器内的进程可通过/proc/self/fd/访问此泄露的 FD,该 FD 直接指向宿主机上的 runc 二进制文件。 覆盖宿主机 runc: 容器内的恶意进程通过该 FD 以可写方式打开宿主机 runc 文件,循环写入恶意代码。 触发条件:攻击者需控制容器,由于 runc 通常以 root 权限执行,覆盖runc 后,宿主机后续任何调用 runc 的操作(如docker run)都会触发恶意代码,导致攻击者获得宿主机 root 权限。 注:文件描...
Docker基本知识总结
本文是学习《每天五分钟玩转Docker容器技术》的总结。是基础知识学习,熟悉docker容器技术,为了更好的研究docker相关漏洞。 容器知识图谱 容器的基本架构 Docker客户端:Client Docker服务器:Docker daemon Docker镜像:Image Docker仓库:Registry Docker容器:Container 通过docker我们可以方便地在Host上构建和运行容器。最常用的Docker客户端是docker命令。用户也可以通过REST API与服务器通信。 常用的命令 命令分类 命令 功能说明 常用示例 容器生命周期管理 docker run 创建并启动容器 docker run -d -p 80:80 --name mynginx nginx(后台启动 nginx,映射 80 端口) docker start [容器名/ID] 启动已停止的容器 docker start mynginx docker stop [容器名/ID] 停止运行中的容器(优雅关闭) dock...
重新出发
重新出发 今-2025年8月,一枚末流211本科毕业,从事网络安全相关工作5年的工程师(牛马),随着年龄、见识的增长,感觉前路有些许迷雾,重新搭建一个博客(避免熟人发现),梳理来路思考未来方向,跳出围城,不应该缺少重新出发的勇气。 来时路 2020年信息安全专业毕业,恰好遇上了口罩,毕业典礼都没有(ㄒoㄒ)。大学也确实没学到什么本事,家里没有人能给什么建议,想就业没有找实习,考研也没有想法,大学时懒惰,但是好在学习成绩还可以,靠着毕业设计的知识,勉强入职了家小公司做安全服务。 初创公司就几个人,做的东西很多很杂,现在回想也很感谢当初的老板让我学会了很多。技术学会了渗透、应急、java代码审计,后来还给公司的研发搭建了完整的SDLC,小公司的工作内容包括(大牛马):售前支持,售后执行,项目经理。 售前支持:协助销售对接客户,参与需求沟通与方案讲解,结合客户业务场景提供针对性安全测试建议,支撑销售签单; 售后执行:销售签单后,作为核心接口人对接客户,明确测试范围、获取系统权限、梳理业务流程等关键测试信息,确保测试方向与客户需求一致; 项目经理:从项目启动到最终交付,全程负责进度把控...