0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

虚拟机的优势是什么?是否比容器更安全?

pIuy_EAQapp 来源:未知 作者:胡薇 2018-07-19 15:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

IBM Research 已经创造出一种新的软件安全性衡量方法——Horizontal Attack Profile(简称 HAP),其发现适当保护下的容器(Containers)几乎能够提供与虚拟机(VM)相媲美的安全水平。

虚拟机是否比容器更加安全?

虚拟机比容器更加安全!——这可能被大多数人认为是正确答案,但 IBM Research 却发现,容器完全有可能与虚拟机同样安全,甚至更加安全。

容器

可以被视为不在虚拟机管理程序上运行的超极简虚拟机。容器不需要安装主机操作系统,可直接将容器层(比如LXC或libcontainer)安装在主机操作系统(通常是 Linux 变种)上,直接利用宿主机的内核,抽象层比虚拟机更少,更加轻量化,启动速度极快。

软件安全性衡量方法——HAP方案

IBM Research 工程师兼顶尖 Linux 内核开发人员詹姆斯·博顿利(James Bottomley)写道,“目前关于容器与虚拟机管理程序间安全性辩论中的一大核心问题,在于没人能够开发出一种真正可靠的安全性衡量方法。所以争论完全仅限于定性方面(由于接口宽度,虚拟机管理程序“让人觉得”比容器来得更安全),但实际上还没有人进行过定量比较。

为了解决这个难题,博顿利创造了HAP方案,旨在以客观方式衡量并描述系统的安全性水平。博顿利发现,“采用精心设计的安全计算模式(seccomp)配置文件(用于阻止意外系统调用)的Docker容器提供了与虚拟机管理程序大致相当的安全性。”

垂直攻击配置文件VAP

博顿利首先定义了垂直攻击配置文件(简称 VAP)。该配置文件中的全部代码用于通过遍历提供服务,从而实现数据库输入与输出信息的更新。与其它程序一样,这部分代码自然也存在 Bug。尽管其 Bug 密度各不相同,但一般来讲遍历的代码越多,其中存在安全漏洞的可能性就越大。HAP就是堆栈安全漏洞(可以跳转进入到物理服务器主机或虚拟机)。

HAP 原理

HAP 是最为严重的一类安全漏洞。博顿利将其称之为“潜在的商业破坏事件”。当问到如何利用HAP来衡量系统安全时,博顿利解释称:

衡量 HAP 的定量方法表明,安全人员可以选定 Linux 内核代码的 Bug 密度,并将其乘以所运行系统在达成稳定状态后(意味着其似乎不再遍历任何新的内核路径)会经过的惟一代码量。

这种方法假定 Bug 密度是均匀的,因此 HAP 将近似于稳定状态下所遍历过的代码量。显然,对正在运行的系统进行衡量时不可采取这样的假设,但幸运的是 Linux 内核中存在一种名为 ftrace 的机制,可用于对特定用户空间进程所调用的一切函数进行追踪,从而给出合理的遍历代码行近似值。(注意,这里只是一个近似值,因为我们在测量函数中的总代码行数时由于 ftrace 无法提供足够的细节,而没有考虑到内部代码流的情况。)

此外,这种方法对于一切容器都非常有效。控制流通过系统调用信息由一组已声明进程发出,但其并不适用于虚拟机管理程序。这是因为除了对接口进行直接超调用外,大家还需要从后台守护程序处添加追踪(例如 kvm vhost 内核线程或 Xen 中的 dom0)。

运行的代码越多越可能存在HAP安全漏洞

简而言之,你衡量一个系统(无论它是裸机、虚拟机还是容器)运行某个特定应用程序使用了多少行代码。其运行的代码越多,存在HAP级别的安全漏洞的可能性就越大。

在确定了 HAP 以及如何对其加以衡量之后,博顿利随后运行了几轮基准测试:

redis-bench-set;

redis-bench-get;

python-tornado;

node-express。

后两者亦运行有配备简单外部事务客户端的 Web 服务器。

博顿利在此次测试当中使用到了:

Docker;

谷歌 gVisor(一套容器运行时沙箱);

使用KVM的同一个容器沙箱gVisor-kvm(KVM是Linux内置的虚拟机管理程序)

Kata Containers,一套开源轻量化虚拟机;

Nabla,IBM刚刚发布的、具有强大服务器隔离能力的容器类型。

博顿利发现,Nabla 运行时拥有“优于 Kata 虚拟机管理程序容器技术的 HAP,这意味着发现了一种在 HAP方面优于虚拟机管理程序(即安全性更高)的容器系统。”

不过体现出安全优势的绝不只有 IBM 公司的项目。他同时表示,“具有经过精心策划的 seccompt 配置文件的 Docker 容器(能够阻止意外系统调用)同样能够提供与虚拟机管理程序基本相当的安全表现。”

GVisor 的表现则有所不同。好消息是,gVisor 在 Docker 用例方面表现不错;但在另一个用例中,其表现则不及虚拟机管理程序。

博顿利推测,这是因为“gVisor 试图通过在 Go 中重写 Linux 系统调用接口以改善兼容性。但是开发人员并没有注意到 Go语言运行时实际使用的系统调用量,而这些结果实际上会暴露在外。”如果他的猜测没错,那么博顿利认为 gVisor 的未来版本可以通过重写来解决这一安全问题。

不过,真正的问题并不在于哪种技术本身更加安全。对于最严重的安全问题而言,容器与虚拟机的安全水平大致相当。博顿利认为,“事实上完全有可能出现比虚拟机管理程序更加安全的容器解决方案,而这将给两种技术谁更安全的争论彻底划上句号。”为了弄清二者在恶意应用面前的暴露水平,可能需要采用某种类型的模糊测试。

除此之外,博顿利的工作仅仅只是一个开始。他表示,这项工作的价值在于证明以客观方式衡量应用程序安全性并非不可能。他解释称,“我认为这项工作并不代表着争论的结束;但通过对此次测试的详尽描述,他希望更多的人也可能开始自己的量化衡量尝试。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 容器
    +关注

    关注

    0

    文章

    521

    浏览量

    22813
  • 虚拟机
    +关注

    关注

    1

    文章

    968

    浏览量

    30178

原文标题:容器和虚拟机,谁更安全?

文章出处:【微信号:EAQapp,微信公众号:E安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    搭建自己的ubuntu系统之创建ubuntu虚拟机

    打开VMware软件,点击创建新的虚拟机。进入以下界面:选择自定义,点击“下一步”。选择对应VMware版本的兼容性,版本可在帮助->关于VMware Workstation中
    发表于 09-25 09:39

    中软国际鸿云虚拟机安装指南

    虚拟化解决方案,鸿云虚拟机不仅解决了兼容性难题,通过深度优化的技术架构,让Windows专业软件在鸿蒙环境中获得接近原生的性能表现。
    的头像 发表于 06-23 16:31 2834次阅读

    TECS OpenStack资源池虚拟机网络二层地址无法互通的问题处理

    某运营商TECS OpenStack使用主机overlay SDN方案组网,运维人员在创建虚拟机测试虚拟机网络状态时发现问题:在其中一台主机上创建两台同网段虚拟机虚拟机之间二层地址无
    的头像 发表于 06-12 09:28 681次阅读
    TECS OpenStack资源池<b class='flag-5'>虚拟机</b>网络二层地址无法互通的问题处理

    Linux 5.15.52_2.1.0 (Yocto) 是否支持Xen虚拟机管理程序?

    我正在使用 Yocto 和 i.MX8QM 板,我对 Xen 支持有几个问题: Linux 5.15.52_2.1.0 (Yocto) 是否支持 Xen 虚拟机管理程序? If yes
    发表于 03-27 06:17

    hyper 备份,Hyper备份:虚拟机备份与恢复

    的解决方案。今天就为大家介绍Hyper备份:虚拟机备份与恢复。    在虚拟化环境中,备份和恢复虚拟机是确保数据安全和业务连续性的关键操作。Hyper-V提供了多种备份和恢复方法,帮助
    的头像 发表于 02-08 09:53 1419次阅读
    hyper 备份,Hyper备份:<b class='flag-5'>虚拟机</b>备份与恢复

    hyper-v虚拟机,为何需要用hyper-v虚拟机

    随着科技的飞速发展,各类任务与数据量急剧攀升,批量管理恰似航行在信息海洋中的坚固灯塔,照亮高效管理的航道。今天小编给大家分享为何需要用hyper-v虚拟机。 使用Hyper-V虚拟机的主要原因包括
    的头像 发表于 02-07 13:37 754次阅读
    hyper-v<b class='flag-5'>虚拟机</b>,为何需要用hyper-v<b class='flag-5'>虚拟机</b>?

    hyper v 上网,Hyper-V上网:虚拟机网络配置

    大家介绍Hyper-V上网:虚拟机网络配置。    在Hyper-V环境中,正确配置虚拟机的网络设置是确保虚拟机能够正常访问外部网络的关键。以下是详细的Hyper-V虚拟机网络配置指南
    的头像 发表于 02-06 10:29 4133次阅读
    hyper v 上网,Hyper-V上网:<b class='flag-5'>虚拟机</b>网络配置

    hyper cpu,Hyper CPU优化:提升虚拟机性能

    :提升虚拟机性能。    在虚拟化环境中,CPU性能优化对于提升虚拟机的整体性能至关重要。Hyper-V提供了多种工具和策略,帮助用户根据虚拟机的工作负载需求合理分配和优化CPU资源。
    的头像 发表于 02-06 10:25 1553次阅读
    hyper cpu,Hyper CPU优化:提升<b class='flag-5'>虚拟机</b>性能

    hyper-v 备份,hyper-v怎样进行虚拟机的创建

    虚拟机技术打破了传统计算机的限制,为我们带来了全新的计算机模式。今天给大家介绍hyper-v怎样进行虚拟机的创建?    hyper-v怎样进行虚拟机的创建?    使用PowerShell启用,以
    的头像 发表于 02-05 14:54 797次阅读
    hyper-v 备份,hyper-v怎样进行<b class='flag-5'>虚拟机</b>的创建

    hyper v 删除,怎么样删除hyper-v中的虚拟机

    对于任何追求卓越运营的企业而言,批量管理如同精密时钟的核心齿轮,精准地调控着各项业务的有序运转。今天小编要带来怎么样删除hyper-v中的虚拟机。    要删除Hyper-V中的虚拟机,可以按照以下
    的头像 发表于 02-05 13:39 1511次阅读
    hyper v 删除,怎么样删除hyper-v中的<b class='flag-5'>虚拟机</b>?

    hyper 内存,Hyper内存:如何监控与优化hyper-v虚拟机的内存使用

    :如何监控与优化hyper-v虚拟机的内存使用。    在虚拟化环境中,合理监控和优化Hyper-V虚拟机的内存使用对于提升性能和资源利用率至关重要。本文将详细介绍如何监控Hyper-V虚拟机
    的头像 发表于 01-24 14:15 1681次阅读
    hyper 内存,Hyper内存:如何监控与优化hyper-v<b class='flag-5'>虚拟机</b>的内存使用

    hyper内存条,hyper-v 添加虚拟机还需要硬盘吗

    在计算机技术的浩瀚星空中,虚拟机犹如一颗璀璨的明星,散发着独特的光芒。今天给大家介绍hyper-v添加虚拟机还需要硬盘吗?    hyper-v添加虚拟机还需要硬盘吗?    Hyper-V是
    的头像 发表于 01-24 14:01 697次阅读
    hyper内存条,hyper-v 添加<b class='flag-5'>虚拟机</b>还需要硬盘吗

    vSAN数据恢复—异常断电导致虚拟机无法启动的vSAN数据恢复案例

    异常断电导致vSAN存储上层虚拟机无法启动。
    的头像 发表于 01-08 13:18 698次阅读
    vSAN数据恢复—异常断电导致<b class='flag-5'>虚拟机</b>无法启动的vSAN数据恢复案例

    Ubuntu系统的虚拟机安装步骤 如何在Ubuntu系统上编译软件

    Ubuntu系统上安装虚拟机的步骤 在Ubuntu系统上安装虚拟机是一个相对简单的过程,通常可以通过安装VirtualBox或KVM等虚拟化软件来实现。以下是使用VirtualBox在Ubuntu
    的头像 发表于 12-12 14:36 1865次阅读

    Hyper-V创建虚拟机配置IP等网络配置原理(Linux、Windows为例)

    大家知道Windows系统里面内置了Hyper-V管理器,用来创建和管理本地虚拟机环境。今天我创建了两台虚拟机,一台是CentOS7.9(Linux),另一台是Windows 11,然后发现
    的头像 发表于 12-09 10:24 5587次阅读
    Hyper-V创建<b class='flag-5'>虚拟机</b>配置IP等网络配置原理(Linux、Windows为例)