注意:我在Ubuntu安全团队工作,并参与设计了Ubuntu的应用程序限制故事。我为了更清晰地表达,重新组织了问题。
问:“相对于系统和用户数据来说,点击包是否会更安全,还是一样安全?”
答:总体而言,相对于系统和用户数据,点击包比deb包更安全。
点击包不包括像deb包那样在安装时以root身份运行的维护脚本。点击包只是被解压,然后使用系统提供的钩子(如果由点击声明)来执行操作。例如,点击包可能声明使用桌面钩子来生成桌面文件,或者使用AppArmor钩子来生成应用程序的AppArmor配置文件。因为deb包装有维护脚本的概念,旨在允许对软件或系统进行广泛定制,所以deb包应该只从可信任的来源安装,例如来自Ubuntu等发行版的签名存档。点击包可以直接安装,您可以相当确信安装包不会破坏您的系统。然而,这只是故事的一部分--如果您从不受信任的来源安装点击包,不能保证它会在清单中声明正确的限制,因此虽然安装是可以的,但运行可能不是(即,软件可能在没有限制的情况下运行,从而能够窃取您的数据或以您的用户身份运行程序)。
点击的真正力量在于与具有严格政策的软件仓库结合使用。例如,从Ubuntu应用商店安装的点击包的安全性通常比从可信存档安装的deb包要高。这是因为在Ubuntu应用商店中,信任模型是将应用程序视为不受信任*,并采取政策和检查措施以确保商店中的点击包具有适当的安全清单,因此在非常严格的限制下运行。相比之下,在Ubuntu存档中的deb包中,信任模型是将软件和deb打包视为可信任的,并且通常情况下软件不会在限制下运行(尽管有很多例外情况,其中一个AppArmor配置文件与软件一起提供以防止安全漏洞)。
- 可信包也可以通过Ubuntu应用商店交付。虽然不常见,但它们通常由Canonical开发,并且可能或可能不在限制下运行。
回答您的具体问题:
问:点击基于与deb相同的系统吗?
答:点击的底层包格式是deb。然而,点击打包更简单,它使用声明性清单和钩子,而不是传统的打包文件和维护者脚本。
问:AppArmor能否在没有用户交互的情况下为应用程序提供特权访问?
AppArmor是一个强大的根权限管理工具,可以根据定义的安全策略允许或拒绝对系统资源(文件、DBus、网络等)的访问。一个click包本身并不需要提供AppArmor安全清单,也不需要提供一个“安全”的AppArmor安全清单。系统的安全性取决于click和应用商店的政策的结合。通过Ubuntu应用商店交付的click包将使用非常严格的AppArmor策略,不允许在后台进行特权操作(例如,在此策略下运行的应用程序无法在系统上执行程序、访问您的Facebook帐户、窃取您的GPG或SSH密钥、操纵网络等)。
用户在安装时是否会被提示授予应用程序访问权限,类似于Android?(例如,“此应用程序能够扫描您的/home目录并访问网络”)
A: 不需要。可以使用低级工具自动安装点击包。在Ubuntu上,应该通过Ubuntu应用商店安装点击包(参见上文),由于Ubuntu应用商店的政策结合了点击功能和Ubuntu系统,所以不需要点击即可进行无上下文的安装提示。Ubuntu之所以能够做到这一点,是因为从Ubuntu应用商店安装的应用程序在受限制的封闭环境下运行(即它们不能在幕后做坏事),当应用程序需要额外访问权限时,会使用受控API进行提示。
在特权API的情况下,我们有信任助手的概念,用户可以得到上下文提示来允许或拒绝访问(带有(可选的)可撤销缓存,以便用户不需要每次都被询问)。例如,如果应用程序需要访问位置服务(一个受信任的助手),当应用程序尝试使用位置服务时,用户将被提示允许访问,这样用户就可以做出明智的决策。对于视频和音频录制也是如此。通常,我们根本不需要安全提示,可以根据用户与应用程序的交互来允许访问。例如,如果应用程序想要上传一张图片,会弹出对话框选择图片。在幕后,由于应用程序无法访问~/Pictures目录,它将使用内容中心API,该API将启动图库文件选择器,供用户选择要上传的图片。然后,内容中心会从图库中获取图片并提供给应用程序。这种方式下,没有安全对话框,只有用户的自然交互,但在幕后,有一个隐含的信任决策。
Q:关于这个问题:.apk和click在政策和用户体验方面是否有类似的语言?
A: 不,由于上述原因,没有安装提示。Android权限和Ubuntu定义的click软件包的安全权限有一些相似之处,但是它们是不同的,并且实现方式也不同。
Q: 具体来说,使用click,一个应用程序能否在我不知情的情况下将我的所有私人数据发送到网络上,或者它会以某种方式受限制以防止这种情况发生?
A: 如果您从不受信任的来源安装了一个click软件包,那么是的,它可以做任何事情。如果您从Ubuntu应用商店安装了一个click软件包,那么不,一个应用程序不能将您的所有数据发送到网络上,因为它无法访问这些数据。当然,一个应用程序可以表现出一种行为,实际上却做另一种事情,所以如果用户授予位置服务的访问权限或者给予应用程序对图片的访问权限,那么该应用程序可能会滥用这些数据,但这就是评级/评论和应用商店安全政策发挥作用的地方。如果有人举报此类应用程序,将会进行调查。如果合适,该应用程序将被从商店中移除,并且将从已安装该应用程序的任何设备中移除,并且开发者的应用商店访问权限将被撤销。
Q: 可以说click软件包比deb软件包更安全,但由于受到更多限制,所以功能更弱?
A: 从上面可以看出,答案并不简单。单击本身可能会传送可以执行任何操作的软件。点击打包格式是故意通用的,可以以任何方式使用,并不仅限于Ubuntu。对于Ubuntu来说,click、Ubuntu API、AppArmor和应用商店策略的组合为开发人员提供了一个非常强大的环境,使他们能够以安全且易于使用的方式向用户提供应用程序。应用程序本身的效用取决于底层系统向应用程序提供的API。在Ubuntu的首批手机上提供的初始API集将允许开发人员使用丰富的API和SDK创建各种有趣和实用的应用程序。随着我们向前推进,这些API将在广度和效用上扩展,以更好地支持开发人员和用户。
click-packages
已经可用。 - Pandya