今天,PC(笔记本电脑、台式机等)通常在我称之为“开放式 PC”的安全模型下工作。用户对自己的机器拥有完全的系统管理员/开发人员级别的访问权限。用户可以将他们选择的任意软件安装到他们的 PC 上。该软件可以做任何事情,或者至少是用户可以做的任何事情。软件应用程序没有沙盒;他们可以自由访问所有用户的数据并与所有其他应用程序交互或篡改 (*)。本质上,每个用户都是他们自己机器上的上帝,并且可以将上帝身份授予他们选择安装的任何软件应用程序。
您可以将恶意软件视为“开放式 PC”安全模型的结果之一。如果用户有能力安装他们选择的软件,并且如果该软件可以完全访问他们的 PC,那么攻击者需要做的就是说服用户安装恶意软件,然后用户就完蛋了。类似地,如果应用程序没有被沙盒化,那么攻击者需要做的就是破坏用户的应用程序之一,然后用户就会被吐司(攻击者可以访问用户的所有数据并可以破坏用户的所有应用程序) .
目前,“开放式 PC”安全模型已深深植根于 PC 的工作方式以及 PC 操作系统的工作方式中。
“开放式 PC”模型还有哪些其他替代方案?如果业界想在未来 5 到 10 年内摆脱“开放式 PC”模式,有哪些可能值得考虑的替代范式?它们的优点和缺点是什么?
例如,一种竞争范式是“应用程序”安全模型。在“应用程序”安全模型中,用户通常对自己的机器没有完全的 syadmin/开发人员级别的访问权限(除非他们采取了一些特殊的步骤,大多数用户不会采取)。用户可以安装应用程序,但对于大多数用户而言,应用程序的选择仅限于一些至少在某种最小意义上精心策划的列表(可能有办法从其他来源旁加载应用程序,但大多数用户大多不这样做) . 在安装应用程序之前,可以通过某种方式来了解该选择的安全性或风险性(例如,通过阅读评论、应用程序请求的权限或其他信息)。应用程序是沙盒的。防止每个应用程序干扰其他应用程序;一个应用程序无法访问用户的所有数据或干扰其他应用程序。
应用程序模型可以说对恶意软件更具弹性:它使攻击者更难说服用户安装恶意软件,并且它限制了恶意或受损应用程序可以造成的损害。
因此,我们可以将“应用程序”安全模型视为“开放式 PC”安全模型的一种替代方案。许多移动世界已经转向“应用”安全模型,我们甚至已经开始在桌面空间(例如,Windows 8)看到这个方向的一些变化。
另一种可能的替代方案可能是“设备”模型,您的 PC 不再是通用计算机,用户不再对他们的 PC 拥有完全的上帝权力。相反,系统管理外包给其他人(可能是您雇主的系统管理员,或其他一些进行系统管理的第三方公司)。一些基本的软件应用程序可能已预先安装(例如,Web 浏览器、一些办公/生产力软件),您可能无法安装其他任何东西,或者您可以安装的软件应用程序可能受到限制(例如,您只能安装某些允许应用程序白名单上的应用程序)。我将其称为“设备”模型,但其他合理的名称可能是“白名单”或“外包系统管理”模型。
还有其他完全不同的安全模型值得考虑吗?如果我们可以完全改变计算机和操作系统以及计算机体系结构的安全范式(如果需要,从头开始),是否还有其他范式/安全模型可以显着提高安全性?
(*) 脚注:好的,我知道我正在稍微简化对“开放式 PC”模型的描述。我意识到现代桌面操作系统确实在用户帐户和管理员/root 之间存在一些区别。但是,从某种意义上说,这是一个细节。例如,用户/根分离不提供应用程序之间的任何隔离。我们运行的大多数软件都在用户级别运行,因此在桌面操作系统中,任何用户应用程序仍然可以干扰任何其他用户应用程序。