写点什么

从安全视角来看 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:001798

评论

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

2021最新「阿里」Java高级工程师面试高频题

爱好编程进阶

Java 面试 后端开发

Docker入门简介

爱好编程进阶

Java 面试 后端开发

eclispe的快捷键大全

爱好编程进阶

Java 面试 后端开发

设计消息队列存储消息数据的MySQL 表格

Geek_8d5fe5

「架构实战营」

web前端培训React基础知识点的梳理

@零度

前端开发 React

2020大厂秋招面试末班车,阿里架构师献给java程序员的面试全攻略

爱好编程进阶

Java 面试 后端开发

2021春招涨薪跳槽技术必备:分布式宝典“限流

爱好编程进阶

Java 面试 后端开发

OpenHarmony 3.1 Beta样例:使用分布式菜单创建点餐神器

OpenHarmony开发者

OpenHarmony OpenHarmony应用开发 点餐

移动应用性能管理白皮书最新发布

基调听云

APM App 基调听云 行业报告

CentOS8安装Docker

爱好编程进阶

Java 面试 后端开发

CRUD多年,终获腾讯offer,就靠这几套面试题

爱好编程进阶

Java 面试 后端开发

入驻快讯|欢迎小红书技术团队正式入驻 InfoQ 写作社区!

InfoQ写作社区官方

入驻快讯

网易互娱基于 Flink 的支付环境全关联分析实践

Apache Flink

大数据 flink 编程 流计算 实时计算

大数据培训Flink 常见的维表 Join 方案

@零度

大数据 flink join

探究Presto SQL引擎(2)-浅析Join

vivo互联网技术

数据库 算法 presto

TASKCTL 作业流程与模块之间的区别

敏捷调度TASKCTL

Docker kettle 批量任务 调度引擎 ETL任务

DevOps转型到底值不值?

华为云开发者联盟

DevOps 敏捷 敏捷开发 软件工程 DevSecOps

攻克编译器技术

刘旭东

编程语言 编译器原理 4月月更

从玄学走向科学:在字节跳动广告投放这么干

字节跳动数据平台

大数据 字节跳动 广告系统 ab测试

网站速度优化的三套解决方案!

源字节1号

微信小程序 前端开发 后端开发 SEO优化

泡沫之下或许是中国的“第四消费时代”

基调听云

加速OpenHarmony生态繁荣,华为使能OpenHarmony发行版厂商

科技汇

测试的最终产物是什么

chenkl

测试 思维 测试原则

Flink 流批一体在小米的实践

Apache Flink

大数据 flink 编程 流计算 实时计算

云图说丨云数据库 RDS for MySQL一键开通读写分离,轻松应对业务高峰期

华为云开发者联盟

MySQL 华为云 读写分离 云数据库 rds for mysql

Docker 实战教程之从入门到提高 (六)

汪子熙

Docker 容器 docker image 容器镜像 4月月更

CVPR2022 前沿研究成果解读:基于生成对抗网络的深度感知人脸重演算法

阿里云CloudImagine

阿里云 计算机视觉 音视频 视频云 人脸算法

10月阿里面试总结:必问的Spring面试解析,面试时要注意的那些坑

爱好编程进阶

Java 面试 后端开发

28岁自学java,包装简历3年拿到15k薪资,分享我的学习经历

爱好编程进阶

Java 面试 后端开发

Demo:第三章:权限框架spring security oauth2

爱好编程进阶

Java 面试 后端开发

5 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训 认证

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