问题描述
安装随机(讨厌?).deb可能很危险,因为它会为安装的应用程序和守护程序授予所有权限,因为.deb有一些配置,如果用户在安装过程中验证了密码,则要求应用。
点击包不需要密码(据我所测试)。
点击包对系统/用户数据更安全还是相同?为什么?
一些方面很有待回答:
-
是基于相同系统(dpkg)的点击和deb?
-
apparmor可以在没有密码的情况下提供对应用程序的root访问权限吗?
-
是否会提示用户在安装时接受应用程序的访问权限(android-like示例:此应用程序将能够扫描您的/home和访问网络)或在需要权限的情况下运行(browser-like示例请求权限使用凸轮)?
-
接近这个问题:.apk和click会说同样的话(关于政策和用户故事)吗?
-
主要是:一个应用程序可以通过点击发送我在网络上的所有私人数据,而不是让我明确知道它,或者它至少具有用户验证的权限,或者它是否会在沙盒中被阻止?
-
诚然说:点击套餐功能不强(限制更多东西),但更安全?
最佳解决方法
注意:我在Ubuntu安全团队工作,并帮助设计Ubuntu的应用程序限制故事。为了清楚起见,我重复了问题。
问:“关于系统和用户数据,点击包会更安全吗?还是会一样?”
答:一般来说,对于系统和用户数据,点击包比deb更安全。
Click包不包括在deb包安装时以root身份运行的维护者脚本。只需解压缩Click包,然后使用系统提供的挂钩(如果通过单击声明)。例如,单击可能声明使用桌面挂钩生成桌面文件或AppArmor挂钩以生成应用程序的AppArmor配置文件。由于deb打包具有维护脚本的概念,旨在允许对软件或系统进行广泛的自定义,因此deb软件包应仅从受信任的源安装,例如来自Ubuntu等分发的签名存档。可以直接安装Click包,您可以合理地确定包安装不会破坏您的系统。但是,这只是故事的一部分 – 如果您从不受信任的来源安装点击包,则无法保证它会在其清单中声明它已被正确限制,因此在安装它时可以,运行它可能不会是(即,软件可以运行而不受限制,因此能够窃取您的数据或作为您的用户运行程序)。
点击的真正强大之处在于它与具有强策略的软件存储库结合使用。例如,从Ubuntu App Store安装的单击包的安全性通常高于从受信任的存档安装的deb的安全性。这是因为在Ubuntu App Store中,信任模型是应用程序被认为是不可信的*并且策略和检查已到位,以确保商店中的点击包具有适当的安全清单,因此在非常严格的限制下运行。与Ubuntu存档中的deb软件包相比 – 信任模型是软件和deb包装被认为是可信的,并且通常软件不会受到限制(尽管AppArmor配置文件随软件一起提供的例外情况很多防范安全漏洞)。
-
可信包也可以通过Ubuntu App Store提供。虽然不常见,但它们通常由Canonical开发,可能会或可能不会受到限制。
回答您的具体问题:
问:是否基于与deb相同的系统点击?
答:点击的低级包格式是deb。但是,单击打包更简单,因为它使用声明性清单和钩子而不是传统的打包文件和维护者脚本。
问:AppArmor可以在没有用户交互的情况下提供对应用程序的特权访问吗?
答:AppArmor是root强大的,可以根据定义的安全策略允许或拒绝访问系统资源(文件,DBus,网络等)。只需单击一个包即可运送AppArmor安全清单或运送’safe’的AppArmor安全清单。使系统安全的原因是点击和提供点击包的商店政策的组合。通过Ubuntu App Store提供的点击包将使用非常严格的AppArmor策略,并且不允许幕后的特权操作(例如,在此策略下运行的应用程序无法在幕后的系统上执行程序,访问您的Facebook帐户,偷你的gpg或ssh键,操纵网络等)
问:是否会在安装时提示用户授予对Android应用程序的访问权限? (例如,“此应用程序能够扫描您的/家庭和访问网络”)
答:不可以。可以使用低级工具安装单击包本身而不提示。在Ubuntu上,应该通过Ubuntu App商店安装点击包(见上文),并且由于Ubuntu App商店策略结合了点击功能和Ubuntu系统,因此不需要click-through,context-less安装提示。 Ubuntu可以这样做,因为从Ubuntu App商店安装的应用程序在限制性限制下运行(即它们不能在幕后做坏事),并且当应用程序需要额外访问时,它使用受控API(可能包括提示)这样做。
在特权API的情况下,我们有可信帮助程序的概念,这样用户将有一个上下文提示来允许或拒绝访问(使用(可选)可撤销缓存,因此每次都不会询问用户)。例如,如果应用程序需要访问location-service(受信任的帮助程序),则会在用户尝试使用location-service时提示用户允许访问,这样可以提供上下文,以便用户做出明智的决定。视频和音频录制也会发生同样的情况。通常,我们根本不需要安全提示,我们可以允许基于user-driven与应用程序的交互进行访问。例如,如果应用想要上传图片,则会有一个对话框来选择图片。在幕后,因为不允许应用程序访问〜/Pictures目录,它将使用content-hub API,它将启动图库文件选择器,供用户选择要上传的图片。然后content-hub从画廊拍摄照片并将其提供给应用程序。以这种方式,没有安全对话框,只有用户的自然交互,但在幕后,存在隐含的信任决定。
问:与此问题相关:.apk和click会在策略和用户体验方面有类似的语言吗?
答:不,没有安装提示上述原因。针对Ubuntu定义的点击包的Android权限和安全权限有一些相似之处,但是不同并且实现方式不同。
问:具体来说,通过点击,应用程序可以在我不知道的情况下通过网络发送我的所有私人数据,还是会以某种方式限制它以防止这种情况发生?
答:如果您从不受信任的来源安装点击,是的,它可以做任何事情。如果您从Ubuntu App Store安装了一个单击,否则,应用程序无法通过网络发送所有数据,因为它无法访问它。当然,一个应用程序可以看起来做一件事而做另一件事,所以如果用户授予对location-service的访问权限或让应用程序访问图片,那么应用程序可能对这些数据不利 – 但这就是评级/评论和App Store安全策略生效。如果报告此类应用,则会进行调查。如果合适,应用程序将从商店中删除,应用程序将从安装它的任何设备中删除,并且开发人员的App Store访问权限将被撤销。
问:可以说点击套餐比债券更安全,但功能更少,因为它们更受限制吗?
答:从上面可以看出,答案并不那么简单。单击一下就可以发送可以执行任何操作的软件。点击打包格式是故意通用的,可以以多种方式使用,并且完全不是Ubuntu所特有的。对于Ubuntu,click,Ubuntu API,AppArmor和App Store策略的组合为开发人员提供了一个非常强大的环境,以便用户可以安全,方便地使用应用程序。应用程序本身的实用程序取决于底层系统提供给应用程序的API。在Ubuntu的第一批手机上提供的初始API将允许开发人员使用丰富的API和SDK创建各种有趣和有用的应用程序。随着我们向前发展以更好地支持开发人员和用户,这些API将在其广度和实用性方面得到扩展。
次佳解决方法
我将尝试回答有关安全性和点击包的一些最重要的问题。
-
一个应用程序可以一键发送我在网络上的所有私人数据,而不让我明确知道吗?
-
点击应用将在限制下运行。这意味着应用程序无法做坏事:它只能访问自己的私人目录。
-
-
可以安装应用程序,然后拥有root权限吗?没有密码或具体提示?
-
…
-
-
是否会提示用户接受应用程序的权限?什么时候?
-
点击应用将访问用户允许该应用使用的功能(注意:尚未提供当前/每日Ubuntu Touch版本)。
-
-
它是基于同一系统的点击和deb?
-
Debian(.deb)包装完全不同。但是,如果您的应用程序是使用Ubuntu SDK制作的,则不需要使用Debian打包,而是可以使用Click打包,这对于最终用户来说更容易使用且更安全。
-
-
与上面类似,要比较:做.apk(Android)和点击工作方式相同吗?
-
Android软件包和Ubuntu Click软件包将以类似的方式工作,因为每个应用程序都有自己的空间来存储数据,并且(理想情况下)禁止直接访问其他应用程序的数据。目前,Android软件包还可以从SD卡或内部存储中读取数据,其中没有访问限制。 Ubuntu Click包还必须请求特定功能的权限。
-
-
诚然说:点击套餐功能不强(限制更多东西),但更安全?
-
…
-
由于这些原因,Click包非常安全,发布它们的审核过程要简单得多。
资料来源: