来自 Windows 世界,我习惯于将每个新的 EXE 或安装文件放入 Virustotal 之类的文件中,或者在 Stack Exchange/Reddit 上搜索特定文件的安全性(无恶意软件、无间谍软件等)的评论在安装软件之前。
使用 Linux,只要我使用从供应商映像安装新操作系统时附带的默认存储库,安装任何实用程序或软件是否几乎完全安全?
如果不是,那么验证特定 Linux 实用程序/程序/应用程序安全性的一般流程是什么?
来自 Windows 世界,我习惯于将每个新的 EXE 或安装文件放入 Virustotal 之类的文件中,或者在 Stack Exchange/Reddit 上搜索特定文件的安全性(无恶意软件、无间谍软件等)的评论在安装软件之前。
使用 Linux,只要我使用从供应商映像安装新操作系统时附带的默认存储库,安装任何实用程序或软件是否几乎完全安全?
如果不是,那么验证特定 Linux 实用程序/程序/应用程序安全性的一般流程是什么?
简短的回答
是的,只要您使用新安装的操作系统随附的默认存储库,安装任何实用程序或软件“基本安全”。默认存储库包含由 Linux 发行版的开发人员和/或维护人员测试的软件。
例子
有安全级别。以 Ubuntu 为例:
在 Canonical 工作的 Ubuntu 开发人员/维护人员全权负责服务器版本和各种 Ubuntu 桌面版本中使用的中央程序包(存储库主等)。在某些情况下,他们正在开发这些程序,但在许多情况下,这些程序是由其他人/团体(例如 Debian)“上游”开发和打包的。无论软件包的来源如何,所有软件包主要受益于 Ubuntu 本身提供的全面安全支持。
软件在 repositories Universe和multiverse中的功能经过测试,但该软件是由其他人或群体开发和打包的,Ubuntu 无法保证安全性。
来自 PPA 的软件未经 Ubuntu 开发人员和/或维护人员测试。质量和安全性取决于开发人员/维护人员。(我负责一个 PPA,我正在使用其他一些 PPA,但我知道很多人因为安全风险而远离他们。)
以上所有软件都会自动更新。
单独下载的软件(如 Windows 应用程序的典型案例)不太安全(例如,您必须检查它们是否是最新的)。
您自己编译甚至自己开发的软件可能安全也可能不安全,具体取决于您的技能和软件处理的内容。
这些链接更详细地描述了 Ubuntu 案例:
哪些 Ubuntu 存储库完全安全且没有恶意软件?
https://ubuntu.com/security
一般结论
以类似的方式,其他 Linux 发行版具有或多或少经过功能和安全性测试的存储库。在安装更多“外围”软件之前,您应该仔细检查其来源、声誉和维护情况。
在安装之前,最好在单独的“测试”系统中测试软件,例如在虚拟机或实时系统或第二台计算机中。
与 Windows 更新相比,所有主要 GNU/Linux 发行版的软件包都可能更好。如果您相信 Microsoft 不会通过 Windows Update 发布病毒,那么您也应该相信您的分销商。更重要的是,因为大多数软件包都是免费软件,源代码可供公众使用。
一些发行版,比如 Arch Linux,有单独的“官方”存储库和“非官方”用户生成的存储库(AUR),来自发行商支持的官方存储库的软件包,并且 AUR 警告用户不要信任来自它的软件包。
无论是 Unix、Linux、BSD 还是任何其他软件发行版,认为“安全”都是矛盾的。原因是,您信任其他人的数据。虽然我已经使用 Debian 大约 10 多年没有出现重大问题,但有几个有问题的软件包,但它超出了发行商的控制或知识范围。这是几年前的事,我不记得包的名称,但我确实记得一些包的功能。
这是在 Firefox 转向这种激进的发布过程之前,它将支持插件 n 年。该软件包或插件是关于检查网页/网站的安全性。众所周知,任何站点证书都涉及许多事情。您可能想检查证书的密码强度和各种事情,以了解该站点的安全性好坏。类似于https://github.com/andreicristianpetcu/Base64CertificateViewer/我正在使用自动取款机。唯一的区别是插件向第三方出售数据(使用插件的用户的 IP、用户要去的站点等)。人们在事实发生近 5-6 年后才知道它。有很多戏剧性的事情,最后插件从 Firefox 商店/插件页面中删除,他们还对外部插件查看和显示证书的程度进行了很多更改。
FWIW,在它被知道的那一刻,它也从 Debian 的存储库中删除,但损坏已经造成。我是最初请求该软件包在 Debian 中的请求者。而且我确实知道,很多使用 Debian 的人处于弱势地位,而有些人处于强势地位。如果这些组中的任何一个使用了来自 repo 的插件。他们让自己更加脆弱。
现在这种数据盗窃,我怀疑任何商店或任何人都可以预测。类似的例子在很多领域都出现过。例如 Freenode 的戏剧,
就社会动态而言,你不能排除任何事情或任何人。
自由软件确实试图让人们做正确的事。几乎所有软件都附带一个或多个许可证,并且大多数软件都是在特定时间点根据特定需求编写的。这些许可证中的大多数都需要添加、修改许可证,以便添加我们想要的数据保护。好消息是,这可以做到,因为大多数 foss 许可证也是 hacky,坏消息是如果有一个坏演员,他可能会以某种方式忽略许可证。
通常(这不是绝对规则)从发行版核心存储库安装软件是安全的,因为这些软件是由维护您的发行版的开发人员构建的。
直接在原始代码上可能存在问题,但通常在发布之前就发现了,但是检查代码或进行代码审查总是一个好主意。
关于这个问题的主要风险是当你作为管理员添加一个新的存储库时,无论何时它来自一个 ppa 或 yum 存储库,责任从分发到你决定添加的特殊应用程序的开发人员都有一个存储库,然后那里可能较少关注此特定应用程序的代码审查,然后可能会增加风险。添加存储库时,您必须注意代码审查的质量。
最后,当您通过从源代码下载并在您的系统上编译来添加软件时,还有一种风险更大的可能性,因为进行代码审查是您的责任,而每个人都没有能力胜任。