【译文】用户小心:内容与代码之间的细微差别

每个人都喜欢主题。不管是文本编辑器还是厨房里的智能显示屏,我们都希望能根据自己的喜好轻松定制其外观和感觉。在设置新设备或新软件时,玩玩可用的主题可能是你最先做的事情之一,而不会考虑太多。毕竟,选错主题又不会做出什么疯狂的举动,比如默默删除电脑上的所有文件,不是吗?

不幸的是,这正是几天前[JeansenVaars]在 KDE 商店试用 Plasma 全局主题时发生的事情。根据他们在 Reddit 上发布的帖子,在为流行的 Linux 图形环境安装 “Gray Layout “主题后不久,系统开始出现异常,然后提示输入 root 密码。他们意识到情况不对,于是拒绝了,但此时已经太晚了,因为他们主目录中的所有个人文件都被删除了。

超出想象

到底发生了什么?关于到底是什么导致了事情的发展,目前还存在一些争论,但有一点似乎很清楚:这个主题并不是恶意设计的。虽然该主题在 KDE Store 上的评价并不高,但当 [JeansenVaars] 安装它时,仍有将近 3,800 次下载。一些 Reddit 用户在 “Gray Layout “的源代码中进行了搜索,发现了一些潜在的问题,比如下面这行:

rm -Rf "$configFolder"

该问题主题已被删除。

这肯定会触发 “糟糕的一天”(Bad Day),具体取决于 $configFolder 的值,但尽管看起来很吓人,其他人还是指出,这一行实际上来自一个上游项目,而且考虑到代码中其他地方拼凑字符串的方式,这条命令不可能明显指向整个文件系统。但也有人指出,该主题是为旧版本的 KDE Plasma 设计的,其中可能存在一些怪异之处。最终看来,[JeansenVaars]只是不走运地在某个地方遇到了边缘情况。

但等等……你可能会想,为什么图形主题首先要运行代码?当然,一个主题不应该只负责改变一些颜色,也许还会更换标题栏的样式。

你会这么想的。事实证明,这些所谓的 “全局主题 “实际上能够改变几乎整个桌面体验,包括安装新的软件组件和运行 Bash 脚本。再加上用户可以为他人创建和上传这些主题,因此无论有意还是无意,都会给你带来麻烦。

不保证安全

针对 Reddit 上的讨论,KDE Mastodon 官方账号发表了一篇文章,基本上是说他们不想对这个问题承担任何责任。在指出 “全局主题 “是由社区创建的之后,他们继续解释说,根据设计,”全局主题 “可以在没有警告的情况下运行任意代码。鉴于其安全影响,KDE 团队建议用户在从商店下载上述内容时 “要格外小心”。

几分钟后,该账户又发表了一篇帖子,鼓励用户使用 KDE 商店中的 “报告 “按钮,这样他们就能尽快 “找到并隔离有问题的软件”。言下之意很明显:他们没有足够的资源或方法来真正审查社区开发的内容,因此用户将不得不为他们做这些工作。

这个问题我们以前在类似的发布平台上见过,比如 Python 的 PyPi 和 JavaScript 的 NPM。一旦允许用户上传任何他们想上传的东西到资源库,有人滥用系统只是时间问题。就 PyPi 和 NPM 而言,这通常是以 “错字抢注”(typo-squatting)的形式出现的,即恶意软件以流行软件包名称的拼写错误版本上传。如果攻击者很聪明,他们甚至可以复制真正软件包的功能–当然还会添加一两个令人讨厌的 “功能”。

在输入要安装的软件名称时按错键,你可能会在不知不觉中陷入糟糕的境地。如果管理得当,就能在这些软件包公开之前就将它们扼杀在摇篮里,但这需要时间和精力,而开源项目并不总是有这样的时间和精力。

当然,这里的关键区别在于,下载恶意 KDE 全局主题并不需要犯错。攻击者只需在一个极具吸引力的主题中隐藏一些阴险的功能,用户就会心甘情愿地下载它。

名字里有什么?

针对目前的争论,KDE 开发者 David Edmundson 在他的博客上发表了一篇题为 Trusting content on the KDE Store 的文章。在这篇文章中,他解释说,全局主题执行任意代码的能力是必要的,在不减少功能的情况下,对其进行限制是不现实的。与其说这是一个技术问题,大卫认为这更像是一个沟通问题。

在他看来,真正的问题在于用户并不指望一个名为 “主题 “的东西能在他们的机器上运行代码,因此,他们不会像对待普通软件包那样谨慎。他认为,如果能更明确地指出安装全局主题可能会对系统造成意想不到的改变,将有助于把全局主题与传统的 “傻瓜 “主题区分开来。

从长远来看,David 认为 KDE 商店应该为任何能够在用户电脑上运行代码的东西设立一个单独的区域。换句话说,能够安装新软件包的主题不会与简单的壁纸包列在一起。此外,他还说他们还需要研究如何审核用户提交的内容,并改进沙盒功能,限制主题和插件的实际功能。

老实说,这对我们来说简直就是一场噩梦。我们的工作不是告诉人们如何使用他们的电脑,但至少在目前,我们可能会避开任何 KDE 全局主题。

本文文字及图片出自 USER BEWARE: THE FINE LINE BETWEEN CONTENT AND CODE

余下全文(1/3)
分享这篇文章:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注