写点什么

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

评论

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

【愚公系列】2022年06月 通用职责分配原则(九)-受保护变量原则

愚公搬代码

6月月更

Go Web 编程入门:验证器

宇宙之一粟

Go 语言 表单校验 6月月更

阿里出品!图形化的ant脚本——IDEA插件CloudToolkit

Java全栈架构师

Java 阿里巴巴 程序员 IDEA 开发工具

微服务测试效率治理

阿泽🧸

微服务 6月月更

滴滴工程效能平台建设之路

laofo

互联网 DevOps 研发效能 持续交付 工程效能

JUnit VS TestNG

FunTester

eureka的解析

卢卡多多

Eureka 6月月更

微博关闭发布多个兼职诈骗信息违规账号:如何打击数据造假灰产

石头IT视角

JAVA SOCKET编程——TCP/UDP

乌龟哥哥

6月月更

盘点常见的漏洞利用方式

穿过生命散发芬芳

漏洞利用 6月月更

SRE Lesson One -- Day2 熟练使用 Markdown

耳东@Erdong

SRE 6月月更 SRE Lesson One

Java Core 「14」J.U.C 线程池-Future & FutureTask

Samson

学习笔记 Java core 6月月更

唐太宗把微服务的“心跳机制”玩到了极致!

悟空聊架构

微服务 Eureka 悟空聊架构 6月月更 心跳机制

redis精讲系列介绍七-过期策略

Nick

Redis 核心技术与实战 6月月更 redis精讲 redis 过期策略 redis 底层原理

爆肝!阿里大佬自曝10w字Java面试核心知识手册,基础到高级足足涵盖30个技术专题

Java全栈架构师

Java spring 架构 面试 JVM

在线文本按行批量反转工具

入门小站

工具

Android 修改系统屏幕亮度及监听

yechaoa

android 6月月更 Brightness

leetcode 279. Perfect Squares 完全平方数(中等)

okokabcd

LeetCode 动态规划 算法与数据结构

vue2升级vue3:this.$createElement is not a function—动态组件升级

zhoulujun

在线JSON转HTMLTable工具

入门小站

工具

数据库每日一题---第19天:排名靠前的旅行者

知心宝贝

数据库 前端 后端 云 原生云 CTO 6月月更

有一说一,高并发系统设计其实一点都不难!

Java全栈架构师

Java 程序员 面试 高并发 架构设计

vue2升级vue3:webpack vue-loader 打包配置

zhoulujun

vite webpack vue-loader

linux几个没用但是有趣的命令

入门小站

Linux

如何使用物联网低代码平台进行报表管理?

AIRIOT

物联网 低代码平台

uni-app进阶之样式框架/生产环境【day10】

恒山其若陋兮

6月月更

数据治理的重要性

奔向架构师

数据治理 数据资产 6月月更

再次认识 WebAssembly

devpoint

typescript webassembly 6月月更

JVM调优简要思想及简单案例-老年代空间分配担保机制

zarmnosaj

6月月更

DOM 节点

Jason199

DOM js DOM事件 6月月更

SRE Lesson One -- 写给SRE新手的入门手册

耳东@Erdong

SRE SRE Lesson One

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