AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

从安全视角来看 LXD 容器管理程序

  • 2016-10-24
  • 本文字数:955 字

    阅读完需:约 3 分钟

上个月在 Linux 安全峰会上的演讲,介绍了LXD 在容器安全方便存在的问题。LXD 是Canonical 基于Linux 容器(LXC)开发的容器管理程序。 Stéphane Graber 和 Tycho Andersen 的议题讨论了一些问题的细节。

LXD 不是一种新的虚拟化技术,而是一个利用 LXC 特性的工具。LXC 使用由内核提供的名字空间(namespace)和控制组(control groups, cgroups)特性来实现。因此,它使用名字空间API 提供的安全功能。

LXD 中广泛使用了 cgroups 来实施资源配额,对容器的 CPU、内存交换、磁盘和网络流量进行限制。这也使得任何因为共享内核资源引起的问题,会影响到所有运行中的容器。其中一个示例是用于追踪文件系统变动的 inotify 句柄。该资源的全局限制是每个用户 512 个,这意味着主机上所有运行的容器最多能使用 512 个句柄。这对于像 systemd 这样的应用程序来说是远远不够的。当 systemd 因为 inotify 句柄不足退而使用轮训文件系统时,对系统影响会更大。其他类似的资源还包括网络表(例如用于保存路由项)和 ulimit。

对于上述问题中的一部分,建议的解决方案是虚拟化存在限制的环境,例如将限制绑定到名字空间,使其成为容器的局部属性。然而,对于类似 ulimit 这样的属性,目前还不完全清楚哪个名字空间比较适合。

LXD 以 root 特权的守护进程运行,这意味它比 LXC 拥有更多的特权。LXD 确实从其容器中移除了一些功能,例如加载 / 卸载内核模块,但是保留了大部分功能,因为它无法提前预知容器中运行的应用程序需要哪些功能。

Linux 安全模块(Linux Security Modules, LSM)是一个 Linux 框架,它允许插入一个安全模块的实现,在不依赖特定模型的情况下来执行访问控制。LSM 的实现有 AppArmor 和 SELinux。LXC 同时支持 AppArmor 和 SELinux,而 LXD 目前只支持 AppArmor。LXD 容器的首选隔离方案是名字空间,但是也安装了一个 AppArmor 配置文件以避免跨容器访问资源(例如文件)。

演讲的第二部分覆盖了容器的检查点和恢复功能。检查点和恢复进程保存运行中的容器内存状态,并允许在将来的某个时间点恢复回来。检查点 / 恢复功能的技术涉及到通过类似 ptrace 系统调用来深入获取进程的状态。然而,类似 seccomp 这样的安全措施可能会阻止类似的系统调用,因此检查点功能需要特别的处理。

查看英文原文: Security Insights into the LXD Container Hypervisor

2016-10-24 19:001504

评论

发布
暂无评论
发现更多内容

自己手写一个redux

helloworld1024fd

JavaScript

彻底搞懂React-hook链表构建原理

夏天的味道123

React

那些你不知道的炫酷导航交互效果

南城FE

CSS 前端 交互设计 导航 交互

云计算基础:云计算运用越来越广泛,我们应该如何去学习云计算

Python-派大星

10月月更

redux原理是什么

xiaofeng

React

面试官:说说React-SSR的原理

beifeng1996

React

面试官:能用JavaScript手写一个bind函数吗

helloworld1024fd

JavaScript

前端常考手写面试题汇总

helloworld1024fd

JavaScript

数据湖(十六):Structured Streaming实时写入Iceberg

Lansonli

数据湖 10月月更

深入React源码揭开渲染更新流程的面纱

goClient1992

React

【沙丘大会】九科信息研发中心自动化负责人郑文茂受邀分享央企数字员工实践案例

九科Ninetech

一文读透react精髓

xiaofeng

React

关于前端面试你需要知道的知识点

beifeng1996

React

三年经验前端vue面试记录

bb_xiaxia1998

Vue

说说你对Vue的keep-alive的理解

bb_xiaxia1998

Vue

长安链源码分析共识机制1

从实现一个React到深度理解React框架核心原理

夏天的味道123

React

人人能读懂redux原理剖析

夏天的味道123

React

python计算机二级 常用函数操作

Python-派大星

10月月更

面试官:vue2和vue3的区别有哪些?

bb_xiaxia1998

Vue

谈谈前端性能优化-面试版

loveX001

JavaScript

深度分析React源码中的合成事件

goClient1992

React

react源码分析:深度理解React.Context

flyzz177

React

查看Spark任务的详细信息

程序员欣宸

大数据 spark 10月月更

面试官:你是怎样进行react组件代码复用的

beifeng1996

React

对Swift中some和any关键字的理解

珲少

长安链源码分析同步服务器1

腾讯前端一面必会面试题(边面边更)

loveX001

JavaScript

华为云从入门到实战 | 云服务概述与华为云搭建Web应用

TiAmo

华为 华为云 10月月更

react源码分析:组件的创建和更新

flyzz177

React

经常会采坑的javascript原型应试题

loveX001

JavaScript

从安全视角来看LXD容器管理程序_Linux_Hrishikesh Barua_InfoQ精选文章