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

    文章

    541

    浏览量

    23057
  • 虚拟机
    +关注

    关注

    1

    文章

    976

    浏览量

    30764

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Docker容器启动失败的常见原因和排查思路

    Docker 容器启动失败是日常运维中最常遇到的问题之一。和物理/虚拟机不同,容器启动失败的原因更加多样化——可能是镜像问题、配置错误、资源不足、网络不通、权限限制、健康检查失败、依
    的头像 发表于 05-14 10:30 356次阅读

    虚拟化数据恢复】ESXI虚拟机还原快照致数据丢失?完整恢复方案解析

    虚拟机技术作为虚拟化技术的一种,在现代信息技术领域扮演着重要角色。虚拟化技术的核心是将事物从一种形式转变为另一种形式,它在多个方面都有广泛应用。 常见的虚拟化技术,比如操作系统中
    的头像 发表于 03-12 15:17 312次阅读
    【<b class='flag-5'>虚拟</b>化数据恢复】ESXI<b class='flag-5'>虚拟机</b>还原快照致数据丢失?完整恢复方案解析

    企业级KVM虚拟化平台搭建实战

    的出现彻底改变了这一局面,通过在单台物理机上运行多个虚拟机,将资源利用率提升至60%以上,同时实现了分钟级的虚拟机创建和弹性伸缩。
    的头像 发表于 03-11 09:38 845次阅读

    【米尔全志T153开发板评测】虚拟机资料下载与安装

    【前言】 米尔全志开发板在资料中提供了虚拟机的环境,这使得开发容易,这里讲一下,下载好虚拟机包报进行较验的经验。 【缘由】 在米尔开发者中心下载到Tools后,解压,在解压时提示头部有问题,因此需要
    发表于 03-10 12:29

    虚拟机数据恢复—虚拟机vmdk文件被删除的数据恢复案例

    本次数据恢复涉及一台R710系列服务器和一台MD3200系列存储,上层是ESXI5.5版本的虚拟机虚拟文件。因客户机房非正常断电,虚拟机无法启动。机房管理员检查发现虚拟机配置文件丢失
    的头像 发表于 02-10 17:05 671次阅读
    <b class='flag-5'>虚拟机</b>数据恢复—<b class='flag-5'>虚拟机</b>vmdk文件被删除的数据恢复案例

    服务器数据恢复—EqualLogic存储硬盘离线导致上层虚拟机不可用的数据恢复案例

    某公司IT部门一台EqualLogic 6100存储设备突然崩溃。 经过初步检查发现服务器存储崩溃的原因是该存储一组阵列上的2块硬盘出现故障离线,上层虚拟机不可用、存储崩溃。该存储设备已经过保,无法申请售后(即使没有过保,存储设备厂商的售后也只为硬件提供质保,对存储设备中的数据
    的头像 发表于 01-20 14:52 232次阅读
    服务器数据恢复—EqualLogic存储硬盘离线导致上层<b class='flag-5'>虚拟机</b>不可用的数据恢复案例

    Arm架构助力Azure Cobalt 100虚拟机工作负载性能提升

    自从微软推出基于 Arm 架构的 Azure Cobalt 100 虚拟机 (VM) 以来,已有众多客户选择这款新实例运行各类用例。目前,Cobalt 100 虚拟机已在全球微软 Azure 云
    的头像 发表于 12-15 14:42 892次阅读
    Arm架构助力Azure Cobalt 100<b class='flag-5'>虚拟机</b>工作负载性能提升

    虚拟机数据恢复—异常断电致ESXI存储失联?这份实战数据恢复案例请收好

    服务器存储数据恢复环境: 一台服务器上部署esxi虚拟化平台。上层采用通过FreeNAS构建的iSCSI方式FCSAN功能,FreeNAS层采用UFS2文件系统。 esxi虚拟化系统有3台虚拟机
    的头像 发表于 11-11 14:11 506次阅读

    蜂鸟e203在虚拟机unbuntu上面验证时报错的可能原因及解决措施

    内容:蜂鸟e203在虚拟机unbuntu上面验证时报错的可能原因 现象: 解决措施: 蜂鸟e203在虚拟机unbuntu上面验证时不要重复输入命令: make install make compile SIM=iverilog 只需输入一遍
    发表于 10-24 08:27

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

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

    干货分享 | RK3588 Ubuntu系统Docker容器使用指南

    的Docker实战流程。1.Docker简介Docker本质是轻量级虚拟化技术,通过容器化机制打包应用及其依赖环境。与传统虚拟机不同,Docker容器直接共享主机内核,启动
    的头像 发表于 06-27 12:01 4388次阅读
    干货分享 | RK3588 Ubuntu系统Docker<b class='flag-5'>容器</b>使用指南

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

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

    迅为RK3588开发板挂载Windows以及虚拟机Ubuntu测试

    使用以下命令测试,如下图所示: 电脑端 IP 为 192.168.1.96 共享文件夹为 share-tian 虚拟机 Ubuntu 端 IP 为 192.168.1.6 共享文件夹为 samba
    发表于 06-19 10:32

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

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

    虚拟化数据恢复—XenServer虚拟化平台上VPS不可用的数据恢复案例

    虚拟化环境: 某品牌720服务器中有一组通过型号为H710P的RAID卡+4块STAT硬盘组建的RAID10,上层部署Xen Server服务器虚拟化平台。虚拟机安装的Windows Server
    的头像 发表于 05-30 11:35 873次阅读
    <b class='flag-5'>虚拟</b>化数据恢复—XenServer<b class='flag-5'>虚拟</b>化平台上VPS不可用的数据恢复案例