我想确保使用 下载软件是安全的sudo apt-get install
。软件包是否在某处进行扫描?使用此命令下载的所有软件包是否都没有病毒?
如果不能保证它们没有病毒,那么在安装包含病毒的软件包后,攻击者是否能够完全控制我的机器? 有什么方法可以检查我安装在计算机上的所有软件包?(不是由系统自动安装的。我想过滤它们以查看我手动安装的所有软件包,而不是由系统安装的软件包。)
答案1
apt
在默认的 Ubuntu 系统上,感染病毒的可能性很小。然而,这并不意味着不可能:
- 恶意 PPA
APT 的一个功能是管理员能够将个人软件包存档 (PPA) 或其他软件源添加到 APT 缓存中。这些第三方 APT 源不一定是可信的,并且可能携带病毒。但是,需要机器管理员有意添加这些受感染的源之一,因此很难自行添加。 - 被黑的存储库
理论上,软件存储库可能会被恶意方入侵,导致下载的.deb
文件可能携带恶意负载。但是,官方软件存储库受到非常严格的监控,这些存储库的安全性非常严格。黑客很难摧毁 Ubuntu 官方软件源之一,但第三方软件源(见上文)可能更容易受到攻击。 - 主动中间人攻击/网络攻击
如果网络受到上层攻击(例如,您的 ISP 攻击),则有可能从官方软件源感染病毒。但是,这种级别的攻击需要付出极大的努力,并且需要能够对许多站点进行中间人攻击,包括 GPG 密钥分发服务器和官方存储库。 - 编写不当/恶意代码
漏洞确实存在于开源、同行评审和维护的代码中。虽然这些东西在技术上不被视为“病毒”,但代码中隐藏或从未透露的某些漏洞可能会让恶意攻击者在您的系统上植入病毒或攻破您的系统。此类问题的一个例子是 OpenSSL 的 Heartbleed 或更近期的 Dirty CoW。请注意,来自universe
或multiverse
存储库的程序是这种级别的潜在威胁,如前所述这里。
apt
(由于它在 Linux 系统中的重要性)在客户端和服务器端都受到严密的保护,可以抵御几乎所有此类攻击。虽然这些攻击是可能的,但了解自己在做什么并知道如何读取错误日志的管理员将能够阻止任何此类攻击的发生。
此外,apt
还强制进行签名验证,以确保下载的文件是合法的(并且已下载正确地),这使得恶意软件的潜入变得更加困难apt
,因为这些数字签名是无法伪造的。
至于应对恶意软件感染事件,最简单的方法是彻底摧毁系统并从最近的(已知干净的)备份重新启动。由于 Linux 的性质,恶意软件很容易在系统深处显现,以至于无法找到或提取。但是,可以使用clamav
和等软件包rkhunter
扫描系统以查找感染。
答案2
apt-get
只会从经过检查的官方 Ubuntu 存储库或您已添加到源中的存储库进行安装。如果您添加遇到的每个存储库,最终可能会安装一些令人讨厌的东西。不要这样做。
答案3
将下载的文件与sudo apt-get
该文件的校验和/哈希和进行比较,以确保其未被篡改且不含病毒。
确实,人们在谷歌搜索“sudo apt get hash sum”时遇到的问题是针对病毒的安全性太高了。
虽然 Linux 并非完全没有病毒,但发生病毒事件的可能性可能比 Windows 少 1000 倍。
然后再次根据我的屏幕名称来判断我可能有偏见:)
2017 年 11 月 28 日的评论提到 Windows 的工作站数量比 Linux 多 1,000 个,所以为什么要费心攻击 Linux。它提出了这样一个事实:Linux 现在在所有 500 台速度更快的超级计算机上运行,而且大多数 Web 服务器都在运行 Linux,这使其成为攻击连接到互联网的所有 Windows 工作站的最佳方式。
Google Chrome、Android 和 Windows 10 为用户提供了充足的机会来放弃他们的隐私,同时也可能放弃一些安全保障。
答案4
取决于您的 sudo 权限。root 访问权限?一切都不确定 - 您当然信任 apt-get 生态系统,而它可能安全也可能不安全。我认为这是一个糟糕的想法,但我一直这样做,因为这是唯一的选择。如果您正在运行一个敏感的安装,安全性至关重要,那么在您无法完全控制的任何东西上运行 sudo 可能是疯了。如果您只是一个普通人,那么您可能没问题。