响应flatkill.org.

2021-03-22 23:47:55

在开始此响应之前,我想快速介绍自己,以提供一些关于我所做的信息。我维护了一些Flatub的FlatePak包。一些最重要的是Microsoft Edge和VKBasalt。我也为一些FlatePak包装贡献了一些FlatePak包,例如Zoom和Czkawka,我花了很多时间通过Linux支持渠道,为那些遇到FlatPak问题的人。

几乎所有流行的应用程序在flathub上仍然带有filesystem = host或filesystem = home权限,换句话说,写入访问用户主目录(和更多)所以所有它需要逃脱沙箱是琐事echo下载_and_execute_evil>> 〜/ .bashrc。而已。

我部分同意这一点。一些目录,如〜/ .local / share / flatpak /覆盖,被阻止。即使它们有家庭或主机访问,它们仍然需要显式权限以使锁定的目录获取读写访问。用.bashrc,.zshrc和其他shell配置文件从安全性的角度来看是非常有用的,以防止沙箱转义。

但是,开发人员了解这个问题并正在努力;他们介绍了门户网站。简而言之,门户是从应用程序单独运行的进程,仅为会话分配给应用程序的数据,因此您无需访问一系列权限以访问特定数据。大多数gtk> = 3和Qt> = 5个应用程序利用门户。

我想指出的另一件事是,如果您认为应用程序具有太允许的权限,即,应用程序可以做的更多,可以使用FlatPak覆盖或平板实现来硬化所需的应用程序。 FlatSeal是FLOTPAK的图形许可管理器,最终用户更容易。

不幸的是,由于以下原因,Linux桌面上的起始位置已经是一个大问题:

Debian,Fedora,Arch Linux和其他Linux发行版使用不同的包格式,不同的存储库和不同的包管理器。这使得Linux桌面更加困难,因为软件开发人员必须为多个分布包装或有利于一个分发,同时忽略其他分布。 FORTPAK通过为每次分发提供一致的构建来修复该问题;

缺乏安全标准:X11套接字允许“授予对显示器的任何应用程序(在基于X11的桌面上,例如GNOME)[to]读取和注入keject keystrokes [...],拍摄桌面或单个窗口的快照,以及甚至移动并调整Windows大小。“ (来源)FlatPak侧重于Wayland(来源)的开发,提供分离的窗口和用于共享屏幕的适当实现,随着时间的推移,FLOTPAK将能够为普通Linux用户提供孤立的窗口;

Pulseaudio套接字允许“应用程序[to]做他们喜欢的任何东西,以便用户的声音(来源)。 FlatPak还专注于Pipewire的开发,允许脉冲液的替代品,它允许在应用程序之间隔离声音输出,使用网络摄像头捕获视频的安全方法等。

在沙盒中的冲孔孔不是世界上最安全的实现,而且只是一个临时解决方案。它根本不是沙箱。

Flathub上最受欢迎的应用仍然遭受这一目标 - GIMP,Vscrodium,Pycharm,Octave,Inkscape,Audacity,VLC仍然没有沙箱。

好的,让我们试着为自己确认这一点。在Flathub站点上,有一个包含50个最流行应用的类别。这是我要做的:我要去这50个应用程序,转到各自的存储库,阅读清单,检查文件系统= home或filesystem = host。

我将使用Spotify作为一个例子:我在Flathub上打开Spotify页面,向下滚动,点击查看详细信息,单击“<>代码,然后单击com.spotify.client.json,这是Spotify Manifest。查看Spotify的清单,它不包含文件系统=主机或文件系统= Home。请注意,一些清单以YAML编写,因此具有.yaml文件类型。

如果我们检查自己,50个应用程序中的27个无法访问Home或主机文件系统。剩下的23确实可以访问。假设作者首先检查了“几乎所有”是正确的,这是因为已更改,因为超过一半的流行应用程序无法访问主页或主机文件系统。 (此数据于2021年2月11日收集。

另一件事是他们的三个例子,vscrodium,pycharm和八度音,是IDES。对IDE具有访问主页或主机文件系统的IDE至关重要,用于GIT存储库以及其他外部用途,否则它不是很有用。他们的两个例子,gimp和inkscape分别是图像和矢量编辑器。他们还需要其他权限来工作,因为它们使用用于所有主机系统的门户,因此在技术上是复杂的。 Audacity和VLC面临着类似的障碍,但所有这些应用程序最终都应该能够使用门户而不是直接主页或主机系统访问而不会失去功能。

虽然23个应用程序有家庭或主机访问,GIMP,Pinta,Inkscape,VLC,Shotcut,Pitivi,KdenLive和Blender是媒体创建工具;它们需要在外部设备,Git存储库等上工作的权限。GNOME框需要共享文件夹。 Fedora Media Writer需要他们写入外部设备。 WPS办公室,唯一办公室和Libreoffice是办公室套房;他们需要有用的权限......许多这些应用程序都有有效的理由需要这些权限。没有他们,他们并不是很有用。

事实上,用户仍然误导了令人放心的蓝色“沙箱”图标。两年不足以添加警告,即如果它附带危险权限(如完全访问您的主目录),应用程序不是沙盒的警告?严重地?

我部分不同意这一点。从技术上讲,随着FLOTPAK开发人员所说,应用程序总是沙箱。允许访问主机文件系统不会通过您的系统提供完全统治。这一示例是/ proc目录,该目录存储有关在背景中运行的进程的信息。允许访问主机的文件系统的应用程序仍然不允许知道在后台运行的过程。此外,除非允许它们,例如org.gnome.shell.screenshot等,否则应用程序仍然无法访问D-Bus接口。

幸运的是,在最近的更新中已经解决了这个问题。如果这个问题持续存在,我也会批评它:

我花了大约20分钟的时间来找到具有完整主机访问的Flathub应用程序中的第一个漏洞,我甚至没有伤心使用漏洞扫描仪。

一个完美的例子是CVE-2019-17498,公共利用有限8个月。 Flathub上的第一个应用程序我发现要使用libssh2库是gitg,事实上,它确实使用了未被斑驳的libssh2。

大多数情况下,如果不是全部,则用libssh2发货的分发也不会使libssh2包装。这种分发的一个例子是拱门Linux。此外,如果这是一个非常大的交易,Libssh2维护者将立即发布包含补丁的新版本。尽管是一个非常活跃的项目,但它们仍然没有发布新的更新,以便写入此响应。更正:我想为传播错误信息道歉。一些最常用的Linux发行版,例如opensuse,debian,gentoo,最近的ubuntu发行和fedora都附带了修补的libssh2构建。只有Arch Linux没有。

几个月前,我在Gitg问题跟踪器中提交了一个问题。维护者回复了我:“查看SSH功能,甚至没有触及Gitg或Libgit2-Glib,只是对Libgit2,[...]的依赖性。 (来源)

虽然它附带了一个未分割的libssh2,但Gitg不使用包含漏洞的部分。

最近,我偶然发现了2011年的一篇文章,这开始了今天被称为FlatPak的文章,以项目创始人的话:

“另一个问题是Bundled库中的安全性(或错误修复)更新。由于您需要查找和升级使用它的每个应用程序,因此与捆绑图书馆更难升级单个库。更好的工具和升级器支持可以减少这一点,但不会完全消除它。“

在阅读后,由于没有惊喜,FlatPak仍然存在与2年前相同的安全问题,因为FlatPak开发人员从一开始就了解这些问题。

有效点。由于FlatPak开发人员充分意识到了这个问题,因此他们提出了可接受和简便的解决方案:FlatPak-interface-Data-Checker(F-E-D-C)。 F-E-D-C是一个自动检查外部源的工具,例如依赖关系和二进制文件。找到更新时,Flathubbot会自动提交合并请求。以下是一些具体示例:[1] [2]。

解决每个问题并立即进行所有所需的更改是不可能的。优先事项是一个视角和各自的威胁模型的问题。它实际上是不可能拥有一个无问题的/错误/ security-hont程序。要指出一个问题是不够的,重要的是,与他人相比,这个问题是否更加重要,或者是否值得解决它。

很多Flatkill.org的陈述是在Linux社区中煽动恐惧。鉴于所有FlatPak包都可以通过任何人可以进行,适当的响应是教育为什么这是一个问题,然后修复它。 Flatkill.org接近这个问题的方式说了很多。

如果您不喜欢FlatPak以获得个人原因,我尊重您的意见,但基于声称“批评”FlatPak的匿名帖子的论点,但没有提供漏洞在Flatpak套餐内已被利用的统计数据或证据,但没有可靠的信息来源。

编辑1:改善句子的音调和质量(信用kellegram和poäng) - (2021-02-12)

编辑3:更加现实,同意有效点;修复错误和改进句子(信用莱昂尔致命) - (2021-02-14)

编辑4:提及门户并改善句子;删除错误信息(信用卡,Deepl Translator和Vidal72) - (2021-03-16)