写点什么

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

评论

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

参天生长大模型:昇腾AI如何强壮模型开发与创新之根?

脑极体

2022-Java后端工程师面试指南-(计算机网络)

自然

网络 watt network 8月月更

【LeetCode】把二叉搜索树转换为累加树Java题解

Albert

LeetCode 8月月更

风控逻辑利器---规则引擎

转转技术团队

Java 规则引擎 风控 后端、 特征工程

从企业的视角来看,数据中台到底意味着什么?

BeeWorks

RocketMQ 消息集成:多类型业务消息——定时消息

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列

一次由groovy引起的fullGC问题排查

转转技术团队

机器学习模型验证:被低估的重要一环

澳鹏Appen

人工智能 机器学习 模型开发 模型开发训练 模型验证

What's new in dubbo-go-pixiu 0.5.1

apache/dubbo-go

dubbogo Dubbo3 Dubbo网关

IFIT的架构与功能

穿过生命散发芬芳

8月月更 IFIT

10道不得不会的Docker面试题

JavaPub

redis Docker

开源一夏 | 提高代码可重用性,减少重复劳动--手把手带你实现Python自定义模块并上传到pypi,贡献自己创造的轮子为所有人使用,让Python开发更加简单

迷彩

Python 开源 签约计划第三季 8月月更 自定义模块

每日一R「03」Borrow 语义与引用

Samson

8月月更 ​Rust

什么是企业知识库?有什么作用?如何搭建?

金陵老街

vue cli 知识库 spring-boot

【C#】WCF和TCP消息通信练习,实现群聊功能

南蓬幽

签约计划第三季 8月月更

Java System.lineSeparator 方法

HoneyMoose

选择是公有云还或是私有云,这很重要吗?

BeeWorks

CEO对今天的CIO们真正的要求是什么?

BeeWorks

《DevOps围炉夜话》- Pilot - CNCF开源DevOps项目DevStream简介 - feat. PMC成员胡涛

玩转Devop和研发效能DevStream/DevLake

开源 DevOps cncf WLB

云服务器基于 SSH 协议实现免密登录

昆吾kw

Linux SSH 云服务器

云渲染的应用正在扩大,越来越多的行业需要可视化服务

Finovy Cloud

云渲染 GPU渲染

超大模型工程化实践打磨,百度智能云发布云原生 AI 2.0 方案

Baidu AICLOUD

资源调度 异构计算 AI加速 GPU容器虚拟化 云原生AI

AIRIOT答疑第8期|AIRIOT的金字塔服务体系是如何搞定客户的?

AIRIOT

低代码 物联网 低代码,项目开发

测试开发【Mock 平台】08 开发:项目管理(四)编辑功能和Component抽离

MegaQi

8月月更

Apache DolphinScheduler 3.0.0 正式版发布!

白鲸开源

海豚调度 DolphinScheduler 调度器 版本发布

RocketMQ整体架构与基本概念

急需上岸的小谢

8月月更

Thread State 详解

自然

Thread 8月月更

ThreadLocal全面解析(一)

自然

ThreadLocal 8月月更

元宇宙社交应用,靠什么吸引用户「为爱发电」?

融云 RongCloud

元宇宙

shell运算详解,看这一篇就够了!

Albert Edison

Linux centos 运维 shell脚本编程 8月月更

MySQL高级指令

武师叔

8月月更

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