docker容器安全加固参考建议——筑梦之路

news2024/9/23 13:21:56

这里主要是rootless的方案。

在以 root 用户身份运行 Docker 会带来一些潜在的危害和安全风险,这些风险包括:

  1. 容器逃逸:如果一个容器以 root 权限运行,并且它包含了漏洞或者被攻击者滥用,那么攻击者可能会成功逃出容器,并在宿主系统上执行恶意操作。这会导致宿主系统的安全性受到威胁。

  2.  特权升级:在以 root 用户身份运行 Docker 的情况下,容器内的进程可能会尝试特权升级,获取宿主系统的 root 权限。这可能会导致严重的安全问题,因为攻击者可能会利用这些权限来控制宿主系统。

  3.  文件系统访问:以 root 用户身份运行的容器可以访问宿主系统上的文件系统,这可能会导致机密文件的泄漏或文件的损坏。

  4.  网络权限:容器以 root 权限运行时,可能会滥用网络权限,例如进行端口扫描、DDoS 攻击等恶意行为。

为了减少这些风险,推荐采取以下做法:

  •  以非root用户身份运行容器:最佳实践是在容器中以非root用户的身份运行应用程序。这可以通过在容器中指定普通用户来实现,并避免使用 USER 指令将容器进程切换到 root 用户。

  • 限制容器的权限:使用 Docker 的安全配置选项,如 --security-opt,可以限制容器的能力,例如禁止容器访问宿主系统的特定目录、文件和设备。

  • 更新和监控容器:定期更新容器的基础镜像和应用程序,以确保安全漏洞得到修复。同时,使用容器监控和审计工具来检测不寻常的活动。

  •  限制容器能力:使用 Docker 的能力(capabilities)设置来限制容器的权限,仅提供所需的最小权限来运行应用程序。

Docker Rootless 基本概念

Docker Rootless 是一种在非特权模式下运行 Docker 的方式,允许以非root用户身份来管理 Docker 守护进程和容器,以降低潜在的安全漏洞风险。在这种模式下,即使在 Docker 安装期间,也无需使用root权限。这有助于提高容器的安全性,因为以非特权用户身份运行容器可以限制容器内部的特权操作。对于特权模式的 Docker 容器,攻击者可能会利用宿主机文件读写权限等漏洞来逃逸,因此非特权模式更为安全。

同时,在 Docker 中,容器可以选择是否以特权模式运行,通过设置 --privileged=false 可以将容器切换为非特权模式。总的来说,Docker Rootless 模式提供了一种更加安全的方式来运行 Docker 容器,降低了潜在的安全风险,特别是在多租户环境中或需要更严格的容器隔离时,这种模式非常有用。

Rootless 模式允许以非 root 用户身份运行 Docker 守护进程(dockerd)和容器,以缓解 Docker 守护进程和容器运行时中潜在的漏洞。

Rootless 模式是在 Docker v19.03 版本作为实验性功能引入的,在 Docker v20.10 版本 GA。

Rootless 模式如何运作

Rootless 模式利用 user namespaces 将容器中的 root 用户和 Docker 守护进程(dockerd)用户映射到宿主机的非特权用户范围内。Docker 此前已经提供了 --userns-remap 标志支持了相关能力,提升了容器的安全隔离性。Rootless 模式在此之上,让 Docker 守护进程也运行在重映射的用户名空间中 

用户命名空间自 Linux 内核 v3.8 以来就已存在,因此该功能在 Docker 中已经存在很长时间了 

Rootless 模式在用户名称空间内执行Docker守护程序和容器。这与userns-remapmode非常相似,除了模式之外,userns-remap守护进程本身以root特权运行,而在Rootless 模式下,守护程序和容器都在没有root特权的情况下运行。

Rootless 模式不使用具有SETUID位或文件功能的二进制文件,除了newuidmapnewgidmap,它们是允许在用户名称空间中使用多个UID / GID所必需的。

Rootless 模式已知限制

• 仅支持以下存储驱动程序:

• overlay2 (仅在以5.11或更高版本的内核,Ubuntu风格的内核或Debian风格的内核运行时)

• fuse-overlayfs(仅在与内核4.18或更高版本一起运行且fuse-overlayfs已安装的情况下)

• btrfs(仅在使用内核4.18或更高版本运行,或~/.local/share/docker通过user_subvol_rm_allowedmount选项安装时)

• vfs

• 仅当与cgroup v2和systemd一起运行时,才支持Cgroup。请参阅限制资源。

• 不支持以下功能:

• AppArmor

• 检查站

• 叠加网络

• 暴露SCTP端口

• 要使用该ping命令,请参阅路由ping数据包。

• 要公开特权TCP / UDP端口(<1024),请参阅公开特权端口。

• IPAddress显示在中,docker inspect并在RootlessKit的网络名称空间中命名。这意味着如果不nsenter进入网络名称空间,则无法从主机访问IP地址。

• 主机网络(docker run --net=host)。

看似Rootless ,实则不然

• docker run --user foo:它允许你以非 root 身份在容器中执行进程。值得注意的是,你无法执行包安装等特权活动。runc、containerd 等仍以 root 身份运行。

• usermod -aG docker foo:允许非root用户连接到docker套接字。相当于允许用户以 root 身份运行。

• sudo docker和chmod +s dockerd: 无需解释

• dockerd --userns-remap:它允许你以非 root 身份运行容器。runc、containerd 等仍然以 root 身份运行。

Rootless 模式实践

容器快了,却不安全了,Rootless 安排上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2050680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

车载camera avm框图

一、关键词介绍: POC: power on coax LVDS: Low-Voltage Differential Signaling GMSL:Gigabit Multimedia Serial Link AVM: Around View Monitor Serdes:DeSerializer、Serializer DVP:Interface with ISP and Sensor: DVP(Digital Video Port) 二、车载camera avm…

书籍推荐:大数据之路 阿里巴巴大数据实践

书籍推荐&#xff1a;大数据之路 阿里巴巴大数据实践 这本书侧重于理论知识&#xff0c;并结合了阿里大数据发展的过程&#xff0c;将知识总结起来。总的来所&#xff0c;书中的有些章节个人感觉非常不错&#xff0c;比如&#xff1a;数据仓库建模&#xff1b;但是大部分章节都…

性能优化理论篇 | 如何保证数据安全落盘,5分钟彻底弄懂 一次write中的各种缓冲区 !

性能优化系列目录&#xff1a; 性能优化理论篇 | 彻底弄懂系统平均负载 性能优化理论篇 | swap area是个什么东西 性能优化理论篇 | Cache VS Buffer&#xff0c;傻傻分不清 &#xff1f; 在很多IO场景中&#xff0c;我们经常需要确保数据已经安全的写到磁盘上&#xff0c;以便…

xss之DOM破坏

文章目录 DOM破坏漏洞的复现https://xss.pwnfunction.com/基于bp学院DOM破坏漏洞复现思路分析实现 常见的xss触发的标签没有过滤的情况存在过滤的情况 DOM破坏 DOM破坏就是⼀种将 HTML 代码注⼊⻚⾯中以操纵 DOM 并最终更改⻚⾯上 JavaScript ⾏为的技术。 在⽆法直接 XSS的情…

Linux·权限与工具-make

1. Makefile/makefile工具 首先展示一下&#xff0c;makefile工具如何使用。我们先写一个C语言程序 然后我们建立一个Makefile/makefile文件&#xff0c;m大小写均可。我们在文件中写入这样两行 wq保存退出后&#xff0c;我们使用 make 命令 可以看到生成了可执行程序&#xff…

无人机模拟训练室技术详解

无人机模拟训练室作为现代无人机技术培训的重要组成部分&#xff0c;集成了高精度模拟技术、先进的数据处理能力及高度交互的操作界面&#xff0c;为无人机操作员提供了一个安全、高效、接近实战的训练环境。以下是对无人机模拟训练室技术的详细解析&#xff0c;涵盖系统基础概…

为TI的 AM355移植uboot和linux内核

一、uboot移植 在移植之前要先对uboot的源码结构有一定熟悉 1.uboot源码顶层目录下各源码文件夹的作用 2.编译后生成的uboot.xxx 各文件后缀含义 关于以上两点社区已经有很多前辈总结的很详细&#xff0c;这里不做赘述。 对于uboot源码分析韦东山老师b站上有免费的课程&#x…

QT中Charts基本用法

QT中Charts基本用法 第一步:创建工程,添加Charts库 第二步:添加charts视图 注意要打上对钩 第三步:添加所需成员 第四步:编写初始化函数 第五步:添加测试数据

C++学习笔记之算法模板

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、双指针1.1 有序数组的合并1.2 快慢指针/删除有序数组中的重复项1.3 求和 二、动态规划2.1 自底向上和自顶向下&#xff08;带备忘录&#xff09;2.2 带有当前状…

浅谈哈希长度扩展攻击

攻击原理&#xff1a; 我们首先需要了解一下Message Authentication codes (MACs) &#xff0c;称为消息验证码&#xff0c;一般用于服务器验证消息的真实性。服务器把密钥和消息连接起来&#xff0c;用摘要算法获取摘要&#xff0c;对于H&#xff08;secret data&#xff09…

RabbitMq的基本理解

MQ概念及同步异步&#xff1a; 同步调用&#xff1a; 是一种编程模型&#xff0c;其中调用者发送请求并等待响应。在同步调用中&#xff0c;调用者会阻塞&#xff0c;直到被调用的方法返回结果。 异步调用: 是一种编程模型&#xff0c;其中调用者发送请求后立即返回&#x…

09结构型设计模式——组合模式

一、组合模式的简介 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;主要用于处理树形结构中的对象组合问题。它允许你将对象组合成树形结构&#xff0c;以表示部分-整体层次结构。组合模式使得客户端能够统一地对待单个对象和对象组合&a…

SEREN MC2电源匹配器控制器Matching Network Controller手侧

SEREN MC2电源匹配器控制器Matching Network Controller手侧

NC 反转链表

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 给定一个单链…

亲测解决Bundler HTTPError Could not fetch specs from

这个问题源于ruby的网站连接不上&#xff0c;解决方法是修改网页地址或者网络配置。 环境 win11 ruby 问题原文 Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/ due to underlying error <IO::TimeoutEr…

C# 将Dll嵌入exe中发布

一、制作模版Dll 二、在exe工程中添加Dll 1、添加上述“创建Dll”&#xff0c;并修改属性为&#xff1a;不复制到输出目录的嵌入资源 2、引用“Resource”中的dll文件&#xff0c;并修改属性&#xff1a;不复制到本地 三、添加重载Dll代码 1、添加以下代码 class DependentFi…

Modbus 通信协议详解

目录 一、概述二、Modbus 的作用三、Modbus 的工作原理1、四种数据类型2、三种工作模式3、三类功能码3.1 标志功能码3.2 Modbus 封装接口3.3 异常 4、Modbus 协议层4.1 协议数据单元4.2 访问数据4.3 数据模型寻址4.3.1 数据寻址范围4.3.2 数据地址起始值 4.4 大数据类型4.4.1 位…

频率检测计

前言 频率计是一种用于测量信号频率的仪器。它可以准确地确定电子信号的频率&#xff0c;广泛应用于电子设备的测试和维护中。频率计的工作原理通常包括对输入信号进行采样&#xff0c;并通过内部电路计算信号的周期&#xff0c;从而得到频率值。现代频率计通常具有高精度、高稳…

无线通信代码搬运/复现系列(1) : 重新审视具有每天线功率约束的 MIMO 容量:固定点迭代和交替优化

无线通信代码搬运/复现系列(1) “Revisiting the MIMO Capacity with Per-antenna Power Constraint: Fixed-point Iteration and Alternating Optimization,” IEEE Trans. Wireless Commun., vol. 18, no. 1, pp. 388-401, Jan. 2019 by T. M. Pham, R. Farrell, and L.-N. …

C++入门——05STL

STL&#xff08;Standard Template Library&#xff0c;标准模板库&#xff09;是C标准库的重要组成部分&#xff0c;是一个通用的数据结构和算法库。STL提供了一组经过精心设计的模板类和函数&#xff0c;用于处理各种常见的数据结构&#xff08;如容器&#xff09;和算法&…