漫画的基本思想是用户帐户的分离是为大型机设计的:大型计算机,由许多用户共享。在该模型中,潜在的攻击者是其他用户。帐户分离是为了保护用户免受其他用户的伤害;只有神一样的管理员账户才能访问机器上的所有内容,管理员有责任使用他的权力打击试图逃离其账户界限的用户。系统管理员一直喜欢这种模型,即使只是因为它固有的自我奉承效果。
然而,个人计算机不是这样处理的。他们有一个用户希望在他的系统上拥有管理员权限。更重要的是,进攻方和防守方都发生了变化。攻击者现在是远程实体——来自外部的非用户,他们将尝试通过各种漏洞进入机器,从广义上讲(这包括 USB 密钥上的病毒、网页上的恶意脚本、远程漏洞网络堆栈...)。用户试图保护的资产大多归结为他们的“在线身份元素”,特别是浏览器 cookie 集及其自然扩展,即用户键入的密码。
漫画以图形的方式指出,单独的管理员帐户绝对不能保护这些资产。它没有害处,但没有附加价值。
操作系统应该做什么?实际上,并不多——更多的是关于Web 浏览器应该做什么的问题。Web 浏览器越来越多地成为操作系统,我们认为的操作系统可能不得不重新命名为“硬件驱动程序集合”。这就是Chrome OS试图充分探索的想法。
大型机中的帐户分离是一项损害遏制功能。其目的是防止邪恶的传播,并允许系统管理员对异教徒进行打击并将其踩在脚下,即压制帐户。坏疽的肢体没有被保存,但它被切断了,以便有机体的其余部分在某种程度上保持安全。这如何转化为个人电脑的真正使用方式?请记住,要保护的主要是浏览器 cookie 集。然后,损害遏制需要基于域的沙盒。
实际上,cookies 已经是域分离的:来自给定域的服务器可以获取该域的存储 cookie ,而不能获取其他域。同样,脚本和其他浏览器语言受到同样基于域的同源策略的约束。CSRF、XSS和所有安全从业者喜欢的相关首字母缩略词仍然是关于跨域边界的。这实际上指向了一个安全模型,其中每个目标域都是它自己的世界,并且给定的浏览器实例应该包含在一个允许访问它的盒子中仅域(仅该域中的计算机,仅来自该域的 cookie)。如果一个浏览器实例被破坏,那么沙盒机制有望阻止其他浏览器实例的破坏:如果您的 Facebook 浏览器被黑客入侵,您的 gmail 帐户仍然是安全的。
共享资源仍有争议。即使我们可以让用户在心理上将他的使用模式分离到单独的浏览器实例中(这可以或多或少是自动的,例如,通过让与单个域相关的每组选项卡由其自己的沙盒进程管理),用户仍然拥有独特的屏幕、键盘、大脑、一双眼睛和一组手指。USB 密钥就是一个很好的问题示例:用户将它们视为“文件”,而不是“我的 Facebook 相关任务的文件”。用户将使来自 USB 密钥的文件在系统范围内可用。
此外,用户真的很喜欢跨站点行为。例如,他们真的希望博客站点具有 Facebook 按钮,这些按钮可以在博客站点上执行与 Facebook 相关的事情。真正的任务分离是一个约束。这类似于潜艇中的压力门:即使门保持打开状态,您仍然会注意到它们,并且在决定物体和人员应该去哪里时仍然需要考虑它们。
总而言之,在现代个人计算机中并不真正需要单独的系统管理帐户。您仍然需要一个,不是因为在安全性方面有任何真正的好处(系统管理员帐户不保护需要保护的重要内容),而是因为当前的操作系统仍然以这种方式组织,并且违背它可能会破坏太多东西。一如既往,这主要是一个传统问题。
如果你想减轻入侵的影响,你需要的是应用任务分离,这与操作系统强制执行的进程分离是完全正交的;事实上,Web 浏览器是一个典型的跨多个任务的单一进程的例子,这就是 cookie 存储库的体现,它将您所有最重要的秘密保存在一个地方。
而且,当然,内部分离仍然是一种缓解措施:如何在保持低整体损失的同时在漏洞中幸存下来。如果一开始就不允许违规发生,那就更好了……这再次将问题转化为其他地方。在潜艇的类比中,压力门很好,但避开敌人的鱼雷更好。