Amazon Best VPN GoSearch

OnWorks 网站图标

guestfs-security - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 guestfs-security

这是命令 guestfs-security 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


guestfs-security - libguestfs 的安全性

商品描述


本手册页讨论了使用 libguestfs 的安全隐患,尤其是
不受信任或恶意的来宾或磁盘映像。

保安 OF 安装 文件系统
你永远不应该直接在你的主机内核上挂载一个不受信任的来宾文件系统(例如。
使用环回或 kpartx)。

当您挂载文件系统时,内核文件系统 (VFS) 中的错误可能会升级为
攻击者利用创建恶意文件系统。 这些漏洞非常严重
两个原因。 首先,内核中有非常多的文件系统驱动程序,许多
它们很少使用,并且没有太多的开发人员关注代码。
Linux 用户空间通过检测文件系统类型和
自动选择正确的 VFS 驱动程序,即使该文件系统类型是意外的。
其次,内核级漏洞利用类似于本地根漏洞利用(在某些方面更糟),
直接和完全访问系统直到硬件级别。

这些漏洞可以在内核中存在很长时间
(https://lwn.net/Articles/538898/)。

Libguestfs 提供了一种分层方法来保护您免受攻击:

不受信任的文件系统
--------------------------------------
设备内核
--------------------------------------
qemu 进程以非 root 身份运行
--------------------------------------
sVirt [如果使用 libvirt + SELinux]
--------------------------------------
主机内核

我们在 qemu 虚拟机中运行 Linux 内核,通常以非 root 用户身份运行。
攻击者需要编写一个首先利用内核的文件系统,然后
利用 qemu 虚拟化(例如,有问题的 qemu 驱动程序)或 libguestfs
协议,最后像主机内核漏洞一样严重,它需要
将其权限提升为 root。 此外,如果您使用 libvirt 后端和
SELinux,sVirt用于限制qemu进程。 这种多步骤的升级,执行
一个静态的数据,被认为是极其难做的,虽然我们从来没有说过
“从不”关于安全问题。

调用者还可以通过在挂载时强制使用文件系统类型来减少攻击面
(使用“guestfs_mount_vfs”)。

一般 保安 注意事项
小心您从访客下载的任何文件或数据(我们所说的“下载”是指
不仅仅是“guestfs_download”命令,而是任何读取文件、文件名、
目录或磁盘映像中的任何其他内容)。 攻击者可以操纵数据
欺骗你的程序做错事。 考虑以下情况:

· 数据(文件等)不存在

·在场但空虚

·比正常大得多

· 包含任意8位数据

· 处于意外的字符编码中

· 包含同形文字。

外交协定 保安
该协议旨在确保安全,基于 RFC 4506 (XDR)
消息大小。 但是,使用 libguestfs 的程序也必须小心 - 例如
你可以编写一个从磁盘映像下载二进制文件并在本地执行的程序,
再多的协议安全性也无法避免后果。

检查 保安
检查 API 的一部分(请参阅“检查”)直接从
来宾,这些可以包含任何 8 位数据。 调用者应小心避开这些
在将它们打印到结构化文件之前(例如,如果创建一个
网页)。

虚拟机的管理员可能会以不寻常的方式更改访客配置
机器,并且可能无法反映现实(特别是对于不受信任或主动恶意的
客人)。 例如,我们从配置文件中解析主机名,如
/etc/sysconfig/网络 我们在来宾中找到,但是来宾管理员可以轻松地
操纵这些文件以提供错误的主机名。

检查 API 使用两个外部库解析来宾配置:Augeas (Linux
配置)和 hivex(Windows 注册表)。 两者都被设计为坚固的面部
的恶意数据,尽管拒绝服务攻击仍然是可能的,例如
超大的配置文件。

跑步 未拉紧 GUEST 指令
从来宾运行命令时要非常谨慎。 通过在
来宾,您在同一用户下将 CPU 时间分配给您无法控制的二进制文件
account 作为库,尽管包含在 qemu 虚拟化中。 更多信息和
替代方法可以在“运行命令”部分找到。

CVE-2010-3851
https://bugzilla.redhat.com/642934

这个安全漏洞涉及 qemu 在磁盘上进行的自动磁盘格式检测
图像。

原始磁盘映像只是原始字节,没有标题。 其他磁盘映像,如 qcow2
包含一个特殊的标题。 Qemu 通过查找已知的头文件之一来处理这个问题,
如果没有找到,则假设磁盘映像必须是原始的。

这允许已获得原始磁盘映像的来宾写入一些其他标头。 在
下次启动(或当 libguestfs 访问磁盘映像时)qemu 将进行自动检测
并认为磁盘映像格式是基于来宾写入的标头的 qcow2。

这本身不会有问题,但 qcow2 提供了许多功能,其中之一是
允许磁盘映像引用另一个映像(称为“备份磁盘”)。 它通过
将备份磁盘的路径放入 qcow2 标头中。 此路径未经验证
并且可以指向任何主机文件(例如“/ etc / passwd文件”)。然后就暴露了后备盘
通过 qcow2 磁盘映像中的“漏洞”,这当然完全在控制之下
攻击者的。

在 libguestfs 中,除非在两种情况下,否则很难利用它:

1. 您已启用网络或已以写入模式打开磁盘。

2. 您还从来宾运行不受信任的代码(请参阅“运行命令”)。

避免这种情况的方法是在添加磁盘时指定预期的磁盘格式(
“guestfs_add_drive_opts”的可选“格式”选项)。 如果出现以下情况,您应该始终这样做
磁盘是原始格式,对于其他情况也是一个好主意。 (另请参见“磁盘映像
格式”)。

对于使用“guestfs_add_domain”之类的调用从 libvirt 添加的磁盘,获取格式
来自 libvirt 并通过。

对于 libguestfs 工具,使用 - 格式 命令行参数视情况而定。

CVE-2011-4127
https://bugzilla.redhat.com/752375

这是内核中的一个错误,它允许来宾覆盖主机驱动器的一部分
他们通常不应访问。

将 libguestfs 更新到任何 ≥ 1.16 的版本就足够了,其中包含的更改
减轻了这个问题。

CVE-2012-2690
https://bugzilla.redhat.com/831117

virt-edit 和guestfish“edit”命令的旧版本创建了一个新文件
包含更改但未设置新文件的权限等以匹配
旧的。 这样做的结果是,如果您编辑了一个安全敏感文件,例如
/ etc /阴影 那么它在编辑后将是世界可读的。

将 libguestfs 更新到任何 ≥ 1.16 的版本就足够了。

CVE-2013-2124
https://bugzilla.redhat.com/968306

这个安全漏洞是检查中的一个缺陷,其中一个不受信任的客人使用特殊的
在来宾操作系统中精心制作的文件可能会导致 C 库中的双重释放(拒绝
服务)。

将 libguestfs 更新到不易受攻击的版本就足够了:libguestfs ≥
1.20.8,≥ 1.22.2 或≥ 1.23.2。

CVE-2013-4419
https://bugzilla.redhat.com/1016960

使用时 客鱼(1) --远程 或客鱼 - 听 选项,guestfish 会创建
已知位置的套接字(/tmp/.guestfish-$UID/socket-$PID).

该位置必须是已知的,以便两端进行通信。 然而没有
检查已完成包含目录(/tmp/.guestfish-$UID) 归
用户。 因此另一个用户可以创建这个目录并可能劫持拥有的套接字
由另一个用户的 guestfish 客户端或服务器。

将 libguestfs 更新到不易受攻击的版本就足够了:libguestfs ≥
1.20.12,≥ 1.22.7 或≥ 1.24。

拒绝 of 服务 ,尤其是 检查 磁盘 图片 - 腐败 BTRFS
有可能使 libguestfs(以及使用 libguestfs 作为库的程序)崩溃
显示包含损坏的 btrfs 卷的磁盘映像。

这是由导致拒绝服务的 NULL 指针取消引用引起的,而不是
被认为可以进一步利用。

有关修复,请参阅提交 d70ceb4cbea165c960710576efac5a5716055486。 此修复程序包含在
libguestfs 稳定分支 ≥ 1.26.0、≥ 1.24.6 和 ≥ 1.22.8,以及 RHEL ≥ 7.0。
早期版本的 libguestfs 不易受到攻击。

CVE-2014-0191
Libguestfs 以前使用不安全的 libxml2 API 来解析 libvirt XML。 这些 API
默认允许在某些 XML 文档被创建时建立网络连接
提出了。 使用格式错误的 XML 文档也可能耗尽所有 CPU、内存
或机器上的文件描述符。

由于 libvirt XML 来自受信任的来源(libvirt 守护程序),因此不认为
这本来可以被利用。

这已在 libguestfs ≥ 1.27.9 中得到修复,并且该修复已向后移植到稳定版本 ≥
1.26.2、≥ 1.24.9、≥ 1.22.10 和 ≥ 1.20.13。

弹震 (重击 CVE-2014-6271)
这个 bash 错误间接影响了 libguestfs。 有关更多信息,请参阅:
https://www.redhat.com/archives/libguestfs/2014-September/msg00252.html

CVE-2014-8484
CVE-2014-8485
binutils 中的这两个 bug 会影响 GNU 字符串(1) 程序,因此
libguestfs 中的“guestfs_strings”和“guestfs_strings_e”API。 在一个上运行字符串
不受信任的文件可能会导致任意代码执行(仅限于 libguestfs
器具)。

在 libguestfs ≥ 1.29.5 和 ≥ 1.28.3 中,libguestfs 使用“字符串” -a 避免 BFD 的选项
解析文件。

CVE-2015-5745
https://bugzilla.redhat.com/show_bug.cgi?id=1251157

这不是libguestfs的漏洞,而是因为我们总是给一个virtio-serial port
对每一位客人(因为这是客人与主人沟通的方式),从
主机 qemu 进程的设备是可能的。 如果出现以下情况,这可能会影响您:

· 你的 libguestfs 程序在来宾之外运行不受信任的程序(使用“guestfs_sh”
等),或

· 在(例如)内核文件系统代码中发现了另一个漏洞,它允许
格式错误的文件系统来接管设备。

如果您使用 sVirt 来限制 qemu,那将阻止一些攻击。

权限 of .ssh .ssh/authorized_keys
https://bugzilla.redhat.com/1260778

工具 虚拟定制(1) 虚拟系统准备(1)和 虚拟建设者(1) 有一个 --ssh 注入
用于将 SSH 密钥注入虚拟机磁盘映像的选项。 他们可能会创建一个
~用户/.ssh 目录和 〜用户/.ssh/authorized_keys 来宾中的文件以执行此操作。

在 libguestfs < 1.31.5 和 libguestfs < 1.30.2 中,新目录和文件将获取模式
0755 和模式 0644 分别。 但是这些权限(特别是对于 ~用户/.ssh)
比 OpenSSH 使用的权限更广泛。 在当前的 libguestfs 中,目录
和文件是用模式 0700 和模式 0600 创建的。

使用 onworks.net 服务在线使用 guestfs-security


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。