我们什么时候才能获得安全的桌面操作系统? (2018)

2021-07-25 15:56:51

PC/Mac 使用人。我们出现了问题。那个问题是我们的机器不是远程安全的。 10 年前我过去并不真正担心它但我觉得如果不尽快完成某些事情我们都会丢失我们的数据并且我们的银行帐户被盗等等......也许这来自于在 Chrome 上的工作安全性受到重视。这并不是说它在其他地方不严重,而是在 Chrome 上工作,了解程序可以做坏事的所有方式以及如何阻止它们出现。当然,浏览器运行“不受信任的代码”,他们的意思是,除非您关闭 JavaScript,否则您访问的每个页面都可以通过 JavaScript 和/或 WebAssembly 在您的机器上运行代码。这真是太棒了 IMO。它为我们提供了像 Google Maps 这样令人惊奇的东西,像 Google.com/flights 这样提供即时和实时结果的东西,但这也意味着浏览器必须保持警惕,必须考虑 API 的设计方式,以便随机站点的代码不会做坏事你的电脑。当然,有些人会读到这篇文章并抱怨浏览器不应该首先运行代码。我不同意。我认为使用 JavaScript 的 Google Maps 比不使用 JavaScript 好得多。但是,这不是重点。区别应该是浏览器中的代码可以来自任何地方。您最喜欢的网站上的广告包含跟踪您的代码。该网站本身有代码可以做任何事情(实时获取最新帖子或向您发送消息通知)。您没有明确说“我信任此代码”,因此它“不受信任”。这应该与您在计算机上安装的应用程序形成对比。选择安装本机应用程序的行为隐含地说“我信任这个应用程序”。这是一个问题。你不应该相信应用程序。您不应该信任应用程序,就像您不必信任网页一样。应用程序可能与网页一样邪恶。事实上,应用程序可能更邪恶,因为目前它们没有在 Mac、Windows 或 Linux 上进行沙盒处理,因此它们的危害远远超过网页。

应用程序可以读取您的整个硬盘驱动器或至少您的用户文件夹中的所有数据,这可能是您所有重要数据所在的任何位置。这意味着它可以查看您的所有照片、所有电影,读取所有文件,包括任何内容您保存在计算机上的财务文件。如果您是一个极客,并且您的私人 SSH 密钥存储在 ~/.ssh 中,那么您安装的任何软件都可以读取所有这些密钥。本机应用程序可以不断读取您的剪贴板,即使它不是前端应用程序并将其发送到网络上的某个服务器。本机应用程序无需询问即可打开您的相机或麦克风。它可以扫描您的网络以查找其他设备,其中一些设备可能存在已知漏洞。当然,很大一部分应用程序,尤其是在 Windows 上,甚至在 Mac 上,都要求管理员权限安装,这意味着他们几乎可以做任何他们想做的事情。安装键盘记录器并观察所有按键。安装屏幕阅读器并随时下载桌面图像。他们可以查看您正在运行哪些应用程序,并将报告返回给各自的公司。他们可以报告您正在观看的视频的文件名。他们可以监控您的网络以查看您正在访问哪些站点,正在下载哪些文件。这种方式的原因基本上是历史性的。在所有机器都连接到互联网之前,任何人都不会想到这些事情可能是问题。我们曾说过 20 到 30 年,只是假设安装的应用程序值得信赖。因此,我们面临的问题是,如果 Windows 和 MacOS 以及 Linux 在一夜之间切换以防止应用程序执行这些操作,所有旧软件都会崩溃。因此,很难将沙盒应用程序作为默认设置。苹果和微软都通过各自的应用商店在这方面迈出了一步。从 Mac App Store 或 Windows App Storerun 安装的应用程序有些沙盒。微软最近删除了沙箱要求,因为他们正在 Windows App Store 上发布他们的 Ubuntu 集成并且它可以访问所有内容。一般来说,我认为任何应用程序都不应该拥有访问您的麦克风或相机的永久权限。甚至 Facetime 也应该每次都请求许可。用户体验不会那么糟糕。你打个电话,操作系统会提示“Facetime 想使用摄像头是/否”,然后你的电话就会被打出来。问题是一旦你给一个应用程序 perission 然后你永远不知道它什么时候打开麦克风或相机。对于移动设备,这可能不是问题,因为至少在 iOS 上,一次只运行一个应用程序,因此您知道某些后台应用程序不能使用麦克风 (AFAIK)。对于台式机而言,情况并非如此,因此一旦您授予应用程序使用相机的权限,您就真的永远不知道它何时会这样做。当然,在桌面上,即使是沙盒,也没有相机权限。你只是通过安装它的行为给了它许可。你可以看到 MacOS 甚至没有阻止应用程序访问麦克风或相机的选项。

而且,这不仅仅是信任每家公司的问题。您可能会信任 Slack 并安装他们的 Slack 应用程序。或者,您可能会信任 Adob​​e 并安装 Photoshop,但这些公司正在使用 100 多个第三方库。对于您安装的每个软件,您真的很信任 1000 人。您信任所有 1000 多人并没有试图做任何坏事。所有 1000 多人,每个心怀不满的员工,链条中的每个诡计多端的人,都没有决定尝试偷偷进入某个后门。而且,即使他们不是故意做坏事,仍然存在错误。你安装了一些像使命召唤这样的游戏。那个游戏在玩家之间发送数据。原来是因为一个错误,另一个玩家可以破解他们电脑上的网络,通过游戏向你的电脑发送不良数据。然后他们可以拥有您的机器,读取您的所有数据,使用您的相机、麦克风等,入侵您的路由器,感染您网络上的其他机器。任何在用户之间交换数据的应用程序都可能存在这种错误。您的聊天应用程序(slack、irc)、您的电子邮件应用程序、您的在线游戏、您的社交网络应用程序(facebook、line、whatsapp)等……您相信没有错误。现在有一个非常流行的应用程序框架,叫做 Electron。许多著名的和不那么著名的应用程序都使用它。然而,默认情况下它是不安全的。我猜如果你使用的是基于 Electron 的应用程序,并且该应用程序与服务器通信,那么它的可能性大于 50% 它是不安全的。应用程序本身可能被硬编码为只与应用程序公司的服务器通信,这意味着一些随机黑客无法使用它轻松地攻击你的机器(尽管当你使用他们的假 wifi 时他们可能可以)。但是,除非遵循所有安全建议,否则任何心怀不满的员工或邪恶的经理都可以利用公司和您的计算机之间的路径利用不安全因素对您的机器做任何他们想做的事情。哎呀,即使没有像 Electron 这样的框架,应用程序也会自动更新,每次更新都可能向您的机器添加代码来做坏事。启动该应用程序的好人可能已被不太好人所取代。制造该应用程序的公司已经决定,为了营销目的,他们想要对您的机器进行更多的监视,因此您曾经值得信赖的软件不再值得信赖。沙盒应用程序解决了,或者至少是解决所有这些问题的一个步骤。使用好的沙盒应用程序无法读取其他应用程序的数据或文件(未经您的许可)。使用好的沙盒应用程序无法访问麦克风或相机。有了一个好的沙箱,即使该应用程序存在让其他用户入侵您的应用程序的错误,他们也只能影响该应用程序及其数据,而不是您的整个计算机和所有数据。一个非常好的沙箱甚至可以阻止扫描您的本地网络。 Steam 最近有一个漏洞,任何人都可以用来入侵您的机器。当然他们修复了它,但这不是应该吸取的教训。应该吸取的教训是 Steam 永远不应该能够利用您的整个机器。它应该在沙箱中运行!人们,尤其是软件开发人员,反对将他们的软件沙箱化的想法。这尤其令人沮丧,因为他们应该能够看到危险。开发软件本身就有这个问题。许多开发人员几乎每天都安装软件。他们将软件库作为包或 git 存储库下载,并且相信那些库不拥有他们的机器或监视它们。说真的,键入 npm install pick-your-favorite-lib 就像字面上相信 100 多个您从未见过的人不会破坏您的计算机或窃取您的数据。被告知键入 apt get some-package 和或 brew install package 不应该打开您的数据被盗。需要有更好的方法来沙盒甚至命令行应用程序。

解决这个问题的一种方法是为每个项目创建一个新的 VM,但目前这太繁重了,以至于几乎没有人这样做。微软显然正在添加一个功能来做到这一点,但这听起来不是一个严肃的解决方案。仅用于临时运行某些软件。这不是为了将每个应用程序放在自己的沙箱中。另一种解决方案是运行像 Qubes OS 这样的沙盒操作系统。不幸的是,人们想要运行的应用程序通常无法在 Qubesso 上使用,这并不是真正的解决方案。 Apple 和 Micrsoft 确实是需要领导解决此问题的两家公司。不幸的是,他们目前的解决方案目前已被打破。首先,他们的新闻沙盒是可选的。您仍然可以安装在沙盒之外运行的软件,因此这仍然是安装非沙盒软件的标准。可能 95% 安装在两个操作系统中的所有软件都未沙盒运行。 steam上的所有游戏以及几乎所有品牌应用程序都未经沙盒运行。其次,他们的桌面沙箱是有漏洞的。请注意摄像头和麦克风尚未沙箱化的事实。而且,最后也是最重要的是他们将沙盒与他们的商店混为一谈。从官方商店获取应用程序应该与沙盒应用程序分开。任何应用程序,无论它是如何安装的,默认情况下都应该受到沙盒限制。您不应该只让商店应用程序被沙盒化。默认情况下,操作系统应设计为安全的。我相信你可以想到一个例外,一些不能在沙箱中运行的软件,这基本上没问题,但这应该是例外,苹果和微软以及广大用户应该羞辱和抵制任何试图避免沙箱的软件。这包括像 Adob​​e 这样的公司,它们以在深层次上入侵您的操作系统来监视您而闻名。我没有屏住呼吸,我相信我会在评论中得到一些关于沙盒的咆哮。我什至看到有人认为沙箱不是解决方案。对于这个论点,我会反驳,如果您认为沙箱不是解决方案,那么您应该可以在关闭沙箱的情况下运行浏览器,并且应该以 root/admin 身份运行所有软件。如果您不愿意,那么您确实相信沙箱在保护您的计算机方面发挥着重要作用。

在某些时候,我预计漏洞会像疯了一样成倍增加。我敢打赌大多数多人游戏都有漏洞。我敢打赌,许多具有半恒定网络的应用程序都有漏洞。我敢打赌,越来越多的桌面应用程序会以一种或另一种方式监视您。而且我敢打赌,这会随着时间的推移变得越来越糟,直到我们清楚我们需要沙箱。我认为 iOS 和 Android 已经展示了它们的重要性。台式电脑也不例外。让我们希望微软和苹果做出更好的沙箱。我们也希望他们将它们与他们的商店和他们的认证系统分开。沙箱应该是默认的。