开发者称 snap 软件包格式在带有 X11 的 Ubuntu 环境中并不安全
创始人
2024-03-01 16:54:05
0

4/21 日,Canonical 揭晓了他们最新的 Ubuntu Linux 操作系统 Ubuntu 16.04 LTS(Xenial Xerus),在这个版本中,有个重要的功能是,Ubuntu 16.04 LTS 可以同时支持 deb 和 snap 两种软件包格式。snap 软件包格式用在 Canonical 的物联网操作系统 Snappy Ubuntu Core 中。

snap 软件包格式用来设计配合 Canonical 的新一代显示服务器 Mir 协同工作,它默认用在 Ubunut Touch 移动操作系统上,支持 Ubuntu 电话,以及新的 Ubuntu 平板: BQ Aquaris M10 Ubuntu 版,以给用户提供一流的安全性。

通过在 Ubuntu 桌面版和 Ubuntu 服务器版中支持安装 snap 软件包,Canonical 在给 Ubuntu 用户及时地提供软件更新方面取得了长足进展。Mozilla 是第一个在 Ubuntu 上以 snap 软件包格式提供软件的厂商,估计今年稍晚时候就会提供 Firefox 的 snap 包。

在 X11 下 snap 软件包并不安全

据著名的 CoreOS 安全开发者及 Linux 内核贡献者 Matthew Garrett 称, Canonical 的新式 snap 软件包格式用在 X.Org 服务器(X11 Window 系统)下很不安全,而 X11 目前仍旧是 Ubuntu 16.04 LTS 的默认显示服务器。

这个问题本质上是由于 X11 的古老设计,众所周知它在安全性上很差。Matthew Garrett 制作了一个简单的 snap 软件包来演示这个问题,它可以做到从其它的 X11 软件中偷取数据,比如可以获取你在 Mozilla Firefox 浏览器中输入的内容。

“我做了一个快速的概念验证,从 git 上获取了 XEvilTeddy,安装 Snapcraft (它在 16.04 中), 用 snapcraft 制作 snap,然后运行 sudo snap install xevilteddy*.snap,接着执行 /snap/bin/xevilteddy.xteddy。这是一个可爱的泰迪熊,真萌~ 现在打开 Firefox 并输入东西,然后去看看你的终端窗口。哦,天哪,我的小秘密呢… 再开一个终端窗口,然后将输入焦点放到其上,哦,我的天,一个被劫持的命令,它被替换成一个 curl 会话,可以上传你的 SSH 私钥到鬼才知道的某个地方。”

到目前为止,snap 格式还没流行起来,特别是因为目前只有很少的软件包支持这种格式。但是这也许不久就会改变,越来越多的开发者会以 snap 格式提供他们的软件,所以 Canonical 需要为使用 X11 的 Ubuntu 的安全性做些工作。

这也是为何大多数 GNU/Linux 发行版应该尽快切换到 Wayland 或 Mir 显示服务器的另外一个原因,尤其是现在的大多数桌面环境(如 GNOME 和 KDE)都支持它们了。不过,从另外一方面说,这个 snap 的安全问题不会影响到 Ubuntu 服务器操作系统,因为它根本没有显示服务器。

我们按照 Mr. Garrett 的指导,在一个最新更新的 Ubuntu 16.04 LTS 的机器上使用 Snapcraft 创建了 xevilteddy 的 snap 包。成功的创建了 snap 并安装之后,我们确认,当你看到如下的截屏时,这表明 xevilteddy 应用可以偷取你在另外一个 X11 应用中输入的任何内容,也能够使用 curl 将你的 SSH 密钥发送到远程的站点去。

相关内容

Debian和Ubuntu...
在Linux发行版世界中,Debian与Ubuntu长期占据服务器...
2025-05-07 11:47:15
【售后科普】ubuntu系...
一、问题描述 在Ubuntu系统中,用户成功安装显卡驱动后,通过命...
2025-04-27 10:16:52
在CentOS系统执行纯文...
对于需要在服务器或低配置设备上部署操作系统的用户来说,选择文本模式...
2025-04-21 06:17:42
Win11 学院:如何在 ...
2 月 18 日消息,科技媒体 pureinfotech 昨日(2...
2025-04-17 08:45:26
CentOS与Ubuntu...
CentOS与Ubuntu Server:服务器系统选择指南 在搭...
2025-04-17 08:45:13
Ubuntu 25.04 ...
2025-04-09 17:00:49 作者:狼叫兽 Ubun...
2025-04-17 06:45:31

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...