运行不需要安装的应用程序是否安全?

我有Ubuntu 14.04 LTS

我已从这里下载了Telegram 链接。该文件以tar.xz的扩展名进行压缩。

我已解压缩此文件并使用普通用户(非管理员)运行Telegram文件(无扩展名)。应用程序启动并正常工作。

但为什么Ubuntu不告诉我"不要运行此应用程序,因为它不安全"?

运行这种不需要安装、双击即可运行的应用程序真的安全吗?

这样的应用程序被称为什么?它们有什么名称? "便携"?


1关于Telegram和安全的话题,您可能会对这个问题感兴趣:https://security.stackexchange.com/questions/49782/is-telegram-secure - Reverent Lapwing
1相关问题讨论的是Windows,但概念相同:https://security.stackexchange.com/q/178814/84287 - JPhi1618
2评论者们:我很难理解这个问题如何是“主要”基于观点的。回答可以并且已经解释了相关的安全考虑。 - Eliah Kagan
4必看的XKCD漫画:https://xkcd.com/1200/ - Andrea Lazzarotto
1在Ubuntu中,那个警告甚至存在吗? - user253751
1@immibis,由于OP问为什么它没有出现,也许问题本身并不需要它的存在来有意义... - Zanna
@Zanna 嗯,是的,但如果Ubuntu没有“不安全应用程序”警告,那就解释了为什么他/她没有收到警告。 - user253751
你已经提到了一个符合这些条件的可以运行的程序(未安装,并且通过双击轻松运行):每个安装程序。你如何知道你运行的任何程序都不会安装东西? - Keeta - reinstate Monica
2个回答

这个文件是一个二进制可执行文件。它已经从源代码编译成了你的CPU可以执行的形式,你只需要请求执行它就可以运行。
当你运行像APT这样的软件包管理器时,下载的软件通常也包含预编译的二进制文件,所以这种类型的文件并没有什么特别之处。文件的打包工作会做一些有用的事情,比如告诉软件包管理器将二进制文件复制到文件系统的哪个位置,并提供脚本确保程序能够找到任何共享库和其他依赖的程序,并设置所需的环境。
你可能认为这个程序不安全的原因是它来自一个未知的来源,而Ubuntu软件仓库中的软件来自一个已知的来源,并且通过签名验证过程protected by a signature verification process来确保它们在传输到你的系统时没有被篡改。
基本上,从未知来源下载和运行可执行文件是不安全的,除非你信任提供者并且可以验证下载的文件完整无损。为了达到后者的目的,发行商可能会提供某种校验和,你可以用它来检查上传的文件与你下载的文件内容是否相同。
关于Telegram,有一个令人鼓舞的事情是它是开源的:
这个软件采用GPL v3许可证发布。 源代码可以在GitHub上找到。
这意味着任何人都可以阅读程序的源代码,以确保它不会对您的系统造成任何不良影响。实际上,大多数终端用户并不愿意花时间去阅读源代码以确保程序的安全性,也不愿意学习如何做到这一点。然而,我对参与其中的社区能够发现开源软件中的安全漏洞和错误还是有一些信心的。
至于为什么Ubuntu不会警告该程序不安全,嗯,向用户询问他们可疑决策并不符合Linux的传统。Linux系统通常被设计成只做你要求它做的事情,不多不少。用户被认为有责任意识到安全问题和其他潜在风险,并且很少会收到警告说他们即将危及或损坏自己的系统。
我使用一个PPA来安装Telegram 请参考这个答案了解所有安装Telegram的方法。PPAs使用APT的签名验证机制,但它们仍然存在一些风险,因为你需要信任维护者。PPAs确实提供了一些便利,比如在运行更新时自动更新(如果维护者更新了PPA),让软件包管理器知道你已经安装了该软件等等。

6一个Linux系统通常被设计成按你要求的方式工作,而不做其他事情。 - RonJohn
6尽管Telegram的源代码在Github上,但这并不意味着你下载的编译二进制文件是使用完全相同的源代码生成的。因此,最终,这里实际的问题是对整个链条的信任,而这更好地由你的操作系统软件包来处理。 - jjmontes
当然,他可以放弃这个二进制文件,获取那个源码并自己进行编译,然后使用它或者将其与他已经拥有的二进制文件进行比较,只要他以完全相同的方式进行编译(尽管这可能难以复制)。 - ttbek
1@RonJohn,我找不到任何能澄清你为什么在与那个句子相关联(相对于?)时提到他的东西。你是在谈论某种隐晦的PulseAudio期望破裂,还是其他什么? - Wildcard
@Wildcard systemd - RonJohn
2请验证下载文件是否完整地传达到您手中。为了实现这个目的,分发者可能会提供一种校验和,您可以用它来检查上传的文件与您下载的文件内容是否相同。需要注意的是,如果校验和通过与下载文件使用相同的渠道传递给您,那么这并不会增加任何额外的安全性,因为校验和也有可能被篡改。 - Jon Bentley

本地安装的软件

下载(或以任何方式本地复制)并在本地运行的软件(从您的用户身份)可能会执行您不需要管理员权限的任何操作。这包括删除您的(个人)文件,这对大多数人来说都是有害的。

如果您已登录到任何账户,并且软件以您的用户身份运行,同样要考虑您可能添加到sudoers文件中的脚本或命令。

如果您拥有管理员账户,并且软件要求您输入密码,而您不小心提供了密码,那么任何事情都可能发生。

警告?

如果没有提供密码,潜在的损害将仅限于您自己的账户。您不希望Ubuntu为您运行的每个命令都发出警告,无论是故意还是无意。

这就是为什么您绝对不应该运行来自您不确定是否可以信任的源代码,除非您完全理解该代码。


7潜在的损害将仅限于您自己的账户。虽然我不反对主要原则,但说实话,我想不出在我的设备上有任何有价值的数据不在我的账户上。 - Mirek Długosz
11@MirosławZalewski 强制性的xkcd: https://xkcd.com/1200/ - Olorin
除了xkcd之外:恶意软件可能会尝试垃圾邮件或黑客攻击其他服务器(我已经亲眼目睹过这种情况)。这不仅对他人很烦人,而且还可能使你被列入黑名单。 - allo