我可以使用“ sudo apt-get install”感染病毒吗?


74

我想确保使用可以安全下载软件sudo apt-get install。包裹是否扫描过?使用此命令下载的所有软件包都免费吗?

如果不能保证它们不是无病毒的,则在安装包含病毒的软件包之后,攻击者能否完全控制我的计算机?有什么办法可以检查我计算机上安装的所有软件包?(不是系统自动执行的。我想过滤它们以查看由我而非系统手动安装的所有软件包。)


8
这个问题是有效的,但包含对病毒的误解。尽管由于Windows的倒置安全模型而无处不在,但将黑名单作为避免感染的唯一方法是一种非常糟糕的方法 “扫描”软件包是防止恶意行为的可怕方法。
通配符

2
Tomas,您的评论已被主持人删除。请不要一遍又一遍地发布它。
jokerdino

Answers:


108

apt在默认的Ubuntu系统上,极不可能感染病毒。但是,这并不意味着不可能:

  • 恶意PPA
    APT的功能之一是管理员可以将个人软件包档案(PPA)或其他软件源添加到APT缓存中。这些第三方APT来源不一定受信任,并且可能携带病毒。但是,机器管理员需要采取有意的操作来添加这些感染源之一,这使得添加源变得相当困难。
  • 被入侵的存储库
    理论上,软件存储库可能被恶意方入侵,从而导致下载的.deb文件潜在地携带恶意有效负载。但是,非常仔细地监视官方软件存储库,并且这些存储库的安全性非常严格。黑客很难清除掉Ubuntu的官方软件来源之一,但第三方软件资源(见上文)可能容易受到危害。
  • 主动的MITM /网络攻击
    如果高层(例如,您的ISP)破坏了网络,则有可能从官方软件来源感染病毒。但是,这种能力的攻击需要付出极大的努力,并且需要能够在中间位置进行许多操作,包括GPG密钥分发服务器和官方存储库。
  • 不良编写/恶意代码
    漏洞确实存在于开放源代码,经过同行评审和维护的代码中。尽管从定义上讲,这些东西在技术上不被视为“病毒”,但是代码中隐藏或从未公开的某些漏洞利用程序可能会允许恶意攻击者在系统上放置病毒或伪装您的系统。此类问题的一个例子是来自OpenSSL的Heartbleed,或者是最近出现的Dirty CoW。需要注意的是从程序universemultiverse回购是这个口径的潜在威胁,如解释在这里

apt(由于它在Linux系统上的重要性)(在客户端和服务器端)几乎都受到了严密的防范。尽管有可能,但知道自己在做什么并且知道如何读取错误日志的管理员将能够防止发生任何此类攻击。

此外,apt还强制执行签名验证,以确保下载的文件是合法的(并且正确下载了),这使得恶意软件更难以通过其潜行apt,因为这些数字签名无法被伪造。


对于响应恶意软件感染事件,绝对最简单的方法是将系统刻录到地面,然后从最近(且已知为干净)的备份重新开始。由于Linux的特性,恶意软​​件很容易在系统中如此深入地表现出来,永远无法找到或提取出来。但是,类似clamav和的软件包rkhunter可用于扫描系统是否存在感染。


6
“将系统烧掉”-对于一种写得很好的病毒,这几乎是真实的。硬件的物理破坏将是安全的;少做任何事情都将是艰巨的工作(例如,如果硬盘固件已植根)。
马丁·邦纳

2
值得注意的是,这三个示例并不互斥。您可以添加已被MITM入侵的第三方PPA。
el.pescado

11
(3)怎么可能?这些软件包已签名,并且Ubuntu官方存储库的公共密钥来自Ubuntu安装媒体。我认为除非您从假安装介质开始,否则您不会被感染。
费德里科·波洛尼

6
您应该在官方包装中添加选项4:不正当代码。像Heartbleed这样的错误表明,严重的错误甚至可以在严重维护的开源软件中公开存在多年。因此,攻击者总是有可能以可以在同行评审中幸免的方式将恶意代码注入到存储库中。在这种情况下,您只需要从原始服务器下载后门,将其作为完全签名的包即可。
法尔科

22
请注意,在非Linux系统上,情况肯定不会比这更好。事实恰恰相反。在Windows上获取软件的标准方法实际上是从某个随机站点下载它,希望没有发生任何不良情况。您所描述的是关于安全安装软件方面可以做的最好的事情。(我认为这在答案中值得一提,因为有人问这个问题是新手,可能没有意识到。)
jpmc26

16

apt-get只会从已检查的正式Ubuntu储存库或已添加到源中的储存库进行安装。如果添加遇到的每个存储库,最终可能会安装一些讨厌的东西。不要那样做


1
在某些情况下,您需要从其他网站安装* .deb,但我相信它们也有校验和/哈希值。有时您需要添加ppa以便从其他存储库下载,但是仍然使用apt-get命令。如果可能的话,最好根据已知的“不良网站”列表检查ppa ...
WinEunuuchs2Unix 16/08/29

8
校验和可以防止意外损坏,但不能防止故意的篡改-OpenPGP签名可以防止篡改。
查尔斯·达菲

1
假设您信任签收包裹的人,并且可以以可信赖的方式检查钥匙。坦白说,每个人有时都会从网络上下载软件。存储库很大,但不是无限的。完美的安全性和信任是一个梦想。
安德里亚·拉扎罗托

但是您不能添加其他存储库吗?
杰里米(Jeremy)

“如果添加遇到的每个存储库,最终可能会安装一些令人讨厌的东西。不要这样做。”
Marc

5

将下载的文件sudo apt-get与该文件的校验和/哈希和进行比较,以确保该文件未被篡改并且没有病毒。

确实,当您在Google上搜索“ sudo apt get hash sum”时,人们遇到的问题是对病毒的安全性过高。

Linux并非完全没有病毒,但是事件可能比Windows少1000倍。

然后再次根据我的屏幕名称判断,我可能会有所偏见:)

2017年11月28日的评论提到Windows如何比Linux多拥有1,000台工作站,以及为何要入侵Linux。事实证明,Linux现在可以在所有500个更快的超级计算机上运行,​​而且大多数Web服务器都在运行Linux,这使其成为黑客攻击连接到Internet的所有Windows工作站的最佳方法。

谷歌浏览器,Android和Windows 10为用户提供了充分的机会,让他们可以同时放弃自己的隐私和一些安全性。


4
嗯 校验和的问题与其说是避免意外损坏,不如说是避免故意修改-除非上面有签名(是的,Debian软件包具有OpenPGP签名),校验和的修改与原始数据本身的修改一样多。 。如果软件包的校验和与构建时的校验和不匹配,则没有合理的期望可以提取该软件包以获得所需的原始内容。
查尔斯·达菲

@Jeremy然而,Linux正在运行前500名超级计算机和大多数Web服务器,这是破解所有连接的Windows客户端的好方法。
WinEunuuchs2Unix

3

尽管apt-get只能从Ubuntu官方存储库安装,但不能保证100%打包的软件包都是干净的。

如果存储库被黑客入侵,则黑客可能会将危害代码注入软件包中。以Linux Mint服务器为例,黑客将恶意软件注入了他们的ISO文件中。 http://www.theregister.co.uk/2016/02/21/linux_mint_hacked_malwareinfected_isos_linked_from_official_site/


3
最近,甚至NSA,DNC和比特币交易所也遭到黑客入侵。我认为可以肯定地说Ubuntu存储库不含99.99999%的病毒,这是问题和我们的答案的精髓。确实,在此问答中,实际上没有人提出过Ubuntu病毒。KASLR修复了长期存在的Linux病毒/恶意软件,大多数人甚至都不知道,而我只在非MSM备用网站(不是基于Linux且仅基于全球新闻)上阅读。我想说Linux的病毒要比Windows少得多,而Ubuntu Update是安全的。但是,一如既往要小心网站。
WinEunuuchs2Unix

2
将恶意代码注入ISO和apt服务器之间有很大的区别。ISO尚未完全签名-有可用的现代工具可用于此类签名(EFI签名可保护引导加载程序,GRUB OpenPGP验证可保护内核和initrd,dm-verity可保护根文件系统),但dm -verity尚未在ChromeOS之外广泛使用。另一方面,apt服务器的内容都具有OpenPGP签名-您需要进入一个受信任的开发人员的工作站才能伪造它们。
查尔斯·达菲

1
注入ISO和提供受感染的apt软件包是完全不同的。可以对服务器进行黑客攻击,并可以提供受感染的iso服务,但不能以这种方式分发。有签名可以阻止它
Anwar

-4

取决于您的sudo权限是什么。根访问权限?所有的赌注都没有-您实际上是将信任放在可能或可能不安全的apt-get生态系统中。我认为这是一个糟糕的主意,但我一直都这样做,因为这是唯一的选择。如果您运行的是安全性非常重要的敏感安装,那么在没有完全控制的情况下运行sudo可能是疯狂的。如果您只是普通的书呆子,那您可能还可以。


这里的问题是,apt-get生态系统实际上是否安全以及在什么程度上安全,我不确定这个答案是否能直接解决。至于“糟糕的主意”-除了将受信任的开发人员拥有的OpenPGP密钥与操作系统一起分发(已经完成),并且需要显式的用户操作来启用其他密钥(例如在添加PPA时),还有什么其他措施可以或可能采取什么措施?如果要构建自己的软件分发系统,您会添加吗?
查尔斯·达菲

不,这个问题很明确。只需阅读操作。“我可以感染病毒吗?” 是的,毫无疑问。建立自己的软件分发系统是一个完全不同的问题。
mobileink

ps。我说“我认为”这是一个可怕的主意,不能质疑。实际上,对于软件分发系统来说,要求sudo是一个糟糕的主意。
mobileink

6
我认为,允许无特权的用户在其他无特权用户的默认PATH中的位置安装软件是一个可怕的想法。Homebrew在这里是一个严重的违法者-一旦执行了设置,任何在相关uid下运行的受到破坏的进程都可以在其下安装软件,/usr/local/bin而无需用户确认他们打算允许管理活动。
查尔斯·达菲

3
从理论上讲是可能的,但可能性要小得多。这不是Security SE,我们从事的只是理论上的工作-它是Ask Ubuntu,专注于最终用户,他们在实践中遇到了问题。
查尔斯·达菲
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.