请问Launchpad PPAs中的软件是否有任何保证,可以免受病毒和后门威胁?

随着Linux的不断发展壮大,我们使用Linux的次数越多,来自病毒的威胁也就越大。
我们知道,如果Linux中存在病毒/威胁,当它以普通用户身份运行时,它会遇到困难,无法运行或传播。但是,如果病毒/威胁以root用户身份运行,情况就完全不同了。
一个典型的危险例子是,如果病毒被放置在PPA中(无论是故意还是无意),或者某个应用程序有意植入后门(例如,pidgin可能会秘密发送密码到特定地址)。
如果我们从Launchpad PPA添加软件,是否有任何保证这些软件是没有病毒/后门威胁的?
3个回答

每个软件包的安装脚本都具有对您系统的根访问权限,因此添加PPA或从其中安装软件包本身就是您对PPA所有者的信任的明示声明。
那么,如果您的信任被误放,并且PPA所有者想要做坏事会发生什么呢?
为了上传到PPA,软件包必须由一个与Launchpad用户唯一相关的GPG密钥签名(确实是他们用来签署行为准则的相同密钥)。因此,在已知恶意PPA的情况下,我们只需禁止该帐户并关闭PPA(受影响的系统仍然会受到损害,但在那时没有好的方法来修复它们)。
在某种程度上,Launchpad的社交功能可以作为防范不良用户的一种预防措施 - 例如,那些在Ubuntu上有贡献历史和一定的Launchpad声望的人,很少会设立陷阱PPA。
或者,如果有人控制了不属于他们的PPA会怎么样呢?
嗯,这是一个比较棘手的威胁情景,但也不太可能发生,因为它需要攻击者同时获取到发射台用户的私钥文件(通常只存在于他们的计算机上)以及解锁码(通常是一个强密码,不用于其他任何事情)。如果发生这种情况,不过对于某人来说很容易发现自己的账户已被入侵(例如,Launchpad会通过电子邮件通知他们未上传的软件包),然后清理程序将是相同的。
总之,PPA是恶意软件的一种可能传播途径,但攻击者可能有更简单的方法来攻击你。

6我个人遵循一个“这个人/团队是开发者吗?”的原则。也就是说,他们是否是原始上游作者或者是Ubuntu开发者?如果两个问题的答案都是“否”,除非我了解这个人(例如,如果我在指导他们成为开发者),否则我不会完全信任他们。 - maco

建立一个(可能是分布式的)用于PPA的信任评级机制,在USC的路线图上已经有一段时间了,但目前还没有实施。

4如果有人不知道的话,“USC”是指“Ubuntu软件中心”(假设您自己没有点击链接)。 - belacqua

在一个社区支持的环境中,从来没有任何保证,我们靠“信念”茁壮成长。我已经添加了至少20个PPA到我的源中,直到现在都没有遇到过问题。如果,碰巧并且正如你所提到的,通过PPA在我的系统上植入了威胁/病毒/后门,我总会以某种方式得知,这要归功于社区,并简单地将其移除。顺便说一句,在添加PPA之前,我总是检查其中列出的软件包。
附注:Pidgin从不“秘密”向服务器(也不向第三方)发送用户名和密码。一切都是在用户的同意下进行的。为了让您无缝连接,Pidgin不能每次发送登录凭据给服务器时都通知您。假设您在提供详细信息后已经授权它这样做。在称呼Pidgin为“后门”之前,我宁愿三思而后行。 :)

1Pidgin确实以明文形式保存密码。 - Gödel
1即使谷歌浏览器保存了明文密码,但这些密码却可以通过 SQL 查询轻易地暴露出来(正如 Jamie Strandboge 指出的那样)。 - belacqua
关于你的第二段,我认为你误解了原帖作者的意图。他并没有暗示Pidgin存在后门问题,而是以它作为一个假设性的例子来阐述他的问题。 - Jon Bentley