容器大小_无根容器内部结构浅析

随着云计算的发展,容器变得越来越流行,同时也产生了实现容器的新方案,其中之一就是无根容器。本文介绍了无根容器的内部结构,并分析了无根容器网络组件中的漏洞。

随着云计算的发展,容器变得越来越流行,同时也产生了实现容器的新方案,其中之一就是无根容器。无根容器是不需要root即可创建的容器,尽管无根容器在安全方面具有优势,但它们仍在测试开发中。本文介绍了无根容器的内部结构,并分析了无根容器网络组件中的漏洞。

无根容器

无根容器与常规容器相同,区别在于它们不需要root即可形成。无根容器仍处于早期阶段,无根容器出现的原因有很多。

  1. 添加新的安全层。 如果容器运行时受到攻击,攻击者将无法获得主机的root特权。
  2. 允许多个非特权用户在同一台计算机上运行容器。
  3. 允许隔离嵌套容器。

Linux内核的一项新开发使此方案成为可能,允许无特权的用户创建新的用户空间。 当用户创建并输入新的用户空间时,他将成为该空间的root用户,并获得生成容器所需的大多数特权。

网络连接

为了允许容器联网,通常创建虚拟以太网设备(VETH)负责联网。 但只有root才有权创建此类设备,主要的解决方案是Slirp和LXC-user-nic。

  • Slirp

Slirp最初被设计为面向非特权用户的Internet连接。 随着时间的流逝,它成为虚拟机和仿真器(包括著名的QEMU)的网络堆栈,可对其修改调整以启用无根容器中网络连接。它把容器用户和网络名称空间分开并创默认路由设备。 然后,它将设备的文件传递给默认网络名称空间的父级,使其可以与容器和Internet进行通信。

2d7e83a9d0e5609e17289287c1758206.png
  • LXC-User-Nic

另一种方法是运行setuid创建VETH设备。 尽管它可以启用容器内的联网功能,但是它会要求容器文件以root权限运行。

存储管理

容器的复杂元素之一是存储管理。 默认情况下,容器使用Overlay2(或Overlay)创建文件系统,但是无根容器不能做到这一点,大多数Linux不允许在用户名称空间中安装overlay文件系统。解决方案是使用其他驱动程序,例如VFS存储驱动程序。虽然有效但效率低。更好的解决方案是创建新的存储驱动程序,适应无根容器的需求。

兼容状态

以下容器引擎支持以下组件无根容器:

54d7c5c4994e473dfc33c06fc4d0765f.png

安全分析

从安全角度来看,无根容器中的漏洞还是配置错误都会导致容器中软件受到破坏,应该始终以有限特权运行软件,当漏洞产生时,影响将降至最低。LXE-user-nic具有多个漏洞,攻击者可利用漏洞提权,例如CVE-2017-5985和CVE-2018-6556。Slirp近年来也披露了多个漏洞。

Slirp – CVE-2020-1983:

在对该软件进行模糊测试时,发现了一个可能导致Slirp崩溃的漏洞。该漏洞分配编号为CVE-2020-1983。

这个问题与Slirp如何管理IP碎片有关。 IP数据包的最大大小为65,535字节,错误是Slirp无法验证分段IP数据包的大小,当它对大于65,535的数据包进行分段时就会会崩溃。

libslirp中的其他漏洞可在容器上执行代码,甚至可从容器逃逸到主机以及其他容器。2020年发现了两个此类漏洞:CVE-2020-8608和CVE-2020-7039,受影响的Slirp版本是4.0.0至4.2.0。

总结

无根容器提供了一种新的容器解决方案,该方法增加了安全层。 它会成为云容器中的下一个演变方向。虽然无根容器仍然存在许多局限性,其功能仍处于试验开发中,随着时间和技术的发展,无根容器可以完全发挥作用并代替传统容器。

https://www.linuxprobe.com/no-root-jg.html

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

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

相关文章

windows7使用Sphinx+PHP+MySQL详细介绍

安装(Windows) 1.官方下载 Sphinx下载地址: 下载 2.解压并重命名 此处下载版本为3.0.3,将 sphinx 文件夹命名为sphinx 3.文件夹目录介绍 sphinx --api(各语言支持的api) --bin(二进制程序) --doc&#xff0…

php layout布局文件,layout(布局) - jQuery EasyUI中文文档 - EasyUI中文站

Layout(布局)使用$.fn.layout.defaults重写默认值对象。布局容器有5个区域:北、南、东、西和中间。中间区域面板是必须的,边缘的面板都是可选的。每个边缘区域面板都可以通过拖拽其边框改变大小,也可以点击折叠按钮将面板折叠起来。布局可以进…

Bootstrap系列 -- 11. 基础表单

表单主要功能是用来与用户做交流的一个网页控件,良好的表单设计能够让网页与用户更好的沟通。表单中常见的元素主要包括:文本输入框、下拉选择框、单选按钮、复选按钮、文本域和按钮等。其中每个控件所起的作用都各不相同,而且不同的浏览器对…

python excel centos_centos中使用python遇到的几个问题

用python搞了一个从excel中读取cobbler节点信息并加入cobbler中的脚本,运行的过程中出了不少问题,这里记录下来,方便日后查找!一、yum install python,我通过这个命令安装python,默认安装的是2.6的版本&…

oracle集群监听启动,在RAC中lsnrctl和srvctl操作监听区别

朋友今天询问了一个问题RAC中使用srvctl 操作监听和lsnrctl 操作监听结果不一样,下面我通过实验说明问题0.listener.ora文件内容LISTENER_RAC1 (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST rac1-vip)(PORT 1521)(IP FIRST))(ADDRESS (PROTO…

how to use webpart container in kentico

https://docs.kentico.com/k11/developing-websites/developing-websites-using-the-portal-engine/using-web-part-containers Webpart Container webpart container中的orangebox, SELECT * FROM dbo.CMS_WebPartContainer WHERE ContainerDisplayName LIKE %orange%; 把…

IE通过推理IE陈述的版本号

样例&#xff1a; 1. <!--[if !IE]> 除IE外都可识别 <![endif]--> 2. <!--[if IE]> 全部的IE可识别 <![endif]--> 3. <!--[if IE 5.0]> 仅仅有IE5.0能够识别 <![endif]--> 4. <!--[if IE 5]> 仅IE5.0与IE5.5能够识别 <![endif]--…

自己调试接口遇到的错误记录

200 请求成功500 请求失败 失败原因在http body里面403 未认证404 服务未找到 转载于:https://www.cnblogs.com/ruixin-jia/p/5734767.html

excel如何找到高频词_拟录取后:应届生和往届生档案哪里找;重灾院校区;高频词背诵表...

今日消息1、应届生和往届生档案哪里找&#xff1f;2、重灾院校区3、考研云督学班高频词背诵表汇总1、应届生和往届生档案哪里找&#xff1f;往年这个时候论文答辩、复试已经结束&#xff0c;已经进入毕业季&#xff01;现在你们毕业答辩结束了吗&#xff1f;你们都顺利上岸吗&a…

oracle 中表,oracle中表操作

1.1&#xff1a;创建一表空间 TABLESPACE01,初始大小50MB,允许自动增长数据库文件,每次增长10MBCREATE TABLESPACE TABLESPACE01LOGGINGDATAFILE’F:\TABLESPACE\DATA01.DBF’ SIZE 50MREUSE AUTOEXTEND ON NEXT 10M;1.2:创建用户 (oracle12c)此处创建用户报错&#xff0c;原因…

UDP Ping程序实现--第2关:接收并转发消息

✨创作不易&#xff0c;还希望各位大佬支持一下 &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01; ⭐️ 收藏&#xff0c;你的青睐是我努力的方向&#xff01; ✏️ 评论&#xff0c;你的意见是我进步的财富&#xff01; 任务描述 本关任务&#xff1a;在…

JAVA经典题--死锁案例

死锁原理: 两个线程相互等待对方释放同步监视器 例子程序: 1 public class TestDeadLock implements Runnable {2 3 public int flag 1;4 static Object o1 new Object(), o2 new Object();5 6 public void run() {7 if (flag 1) {8 s…

考研编程练习----排名

题目描述&#xff1a;今天的上机考试虽然有实时的Ranklist&#xff0c;但上面的排名只是根据完成的题数排序&#xff0c;没有考虑每题的分值&#xff0c;所以并不是最后的排名。给定录取分数线&#xff0c;请你写程序找出最后通过分数线的考生&#xff0c;并将他们的成绩按降序…

linux下安装dovecot

Dovecot是一个开源的&#xff0c;为Linux/Unix-like系统提供IMAP,POP3服务的软件。主要是为了安全产生的&#xff0c;不管大小应用&#xff0c;Dovecot都是一个非常优秀的选择。它非常快&#xff0c;配置简单&#xff0c;不需要专业的管理员&#xff0c;而且它也非常节省内存。…

放大镜_指甲钳上有放大镜?再也不怕夹到肉了

扒姬说&#xff1a;剪指甲钳最害怕什么&#xff0c;是没注意夹到肉有没有。尤其是近视的人和手脚不便的老人&#xff0c;或者是给较小的宝宝剪指甲时&#xff0c;总是看不清指甲边缘的形状、刀口的位置&#xff0c;一不小心就会夹到手指、脚趾。今天&#xff0c;扒姬推荐一个特…

linux学习规划

转载于:https://www.cnblogs.com/Alight/p/4601510.html

oracle如何在本地建库,oracle在本地建库

oracle数据库本地建库&#xff0c;需要使用oracle安装路径下面的-配置和移植工具-Database Configuration Assistant 通过一次点击下一步进行建库。 在库建好后&#xff0c;使用系统账号 User:sys password:sys Connect as SYSDBA在客户端进行登录 --创建表空间 Create tablesp…

「BZOJ1485」[HNOI2009] 有趣的数列 (卡特兰数列)

「BZOJ1485」[HNOI2009] 有趣的数列 Description 我们称一个长度为2n的数列是有趣的&#xff0c;当且仅当该数列满足以下三个条件&#xff1a; (1)它是从1到2n共2n个整数的一个排列{ai}&#xff1b; (2)所有的奇数项满足a1<a3<…<a2n-1&#xff0c;所有的偶数项满足a2…

wedo2.0编程模块介绍_能量黑科技模块系列十:RFID魔块

RFID魔块RFID此模块可以对套件配套的RFID卡或者空白RFID卡进行读写&#xff0c;用于权限验证的DIY制作。常规的公交卡、地铁卡是无法进行写入&#xff0c;但可以读取UID号。配套RFID卡内存为1K&#xff0c;有16个分区&#xff0c;每个分区有3个数据块可进行写入此模块可以对套件…

Android 6.0权限问题

Android 6.0 open failed: EACCES (Permission denied) 对于6.0权限问题&#xff0c;报错如上&#xff1a; 解决方案&#xff1a; Android 6.0 (Marshmallow). 添加新的权限模型&#xff0c;需要在运行时动态获取所需要的权限。 首先判断手机系统版本是否在6.0然后才是支持运行…