Office 2010 中受保护的视图
大家好,我叫 Vikas,在 Office 可信计算安全团队工作。今天我将向各位详细介绍我一直从事的称之为“受保护的视图”的功能。受保护的视图是 Office 2010 中新增的深度防御安全功能之一。如果您还没有读过 Brad 有关此功能和其他新增安全改进的文章,请花几分钟时间读一读这些文章,绝对值得。
为什么害怕打开 Office 文档?
对于复杂软件的任何片段,随着时间的推移,或许都能找到针对该片段的新的文件分析漏洞利用情况。旧的 Office 二进制文件格式很容易受到此类攻击。在过去几年中,黑客们找到了操纵 Office 二进制文件的方法,只要这些文件一打开和进行分析,他们就能让自己的代码嵌入到这些文件中并运行。在 Office 2007 中,为解决此类二进制文件分析攻击,曾引入了几种新的基于 XML 的文件格式。这些 XML 文件格式更容易分析,安全性也明显高于旧的二进制格式。我们了解到至今仍有几十亿的二进制文件在使用,也理解迁移到新的 XML 格式会花不少时间,但有一点是肯定的,那就是您越早迁移过去,就会越早享受到这些新格式在安全方面所带来的好处。
过去,为解决这些攻击,Office 团队发布了 MOICE(Microsoft Office 隔离转换器环境)。MOICE 的工作方式是:提取可能有风险的二进制文件类型,在沙箱流程中转换为新的 XML 格式,然后再转换回二进制格式并打开。进行此项转换是希望删除任何隐藏在文件中的攻击代码。但是 MOICE 有一些缺点,即需要很长时间进行转换的文件可能需要很长时间才能打开,这让用户感到很懊恼。此外,转换过程不能始终百分之百地保持文档的布局,因此,就用户的总体感觉而言,此功能还有待改进。
我们在 Office 2010 中做了哪些进一步的改进?
在 Office 2010 中,如果文件似乎来自某个可能有风险的位置(如 Internet),那么现在它将在受保护的视图中打开。受保护的视图在外观上与任何其他只读视图的外观相似。但在这相似的外观之下,如果文件在受保护视图中打开,它实际上是在新的 Office 2010 沙箱中打开。Office 2010 沙箱是前面所述的 MOICE 沙箱的“下一个版本”。与 MOICE 不同,Office 2010 沙箱中不进行文件转换。实际发生的情况是,文件在应用程序(Word、Excel、PowerPoint)的一个沙箱实例中打开;如果文件中存在恶意代码,我们的目标将是使该代码找不到篡改您的文档的途径,因此就不能更改您的配置文件或其他用户设置。我将在本文的稍后部分详细介绍这一点。
何时使用受保护的视图?
因为受保护的视图是只读视图,我们清楚不能将它用于您所处理的所有文件。在设计此功能时,我们的目标是只在以下高风险情形下使用它:
· 从 Internet 打开的文件。当从 Internet 下载文件时,Windows 附件执行服务在文件的备用数据流中放置一个标记,以指示该文件来自 Internet 区域。当打开含有此标记的 Word、Excel 或 PowerPoint 文件时,文件将在受保护的视图中打开,直到用户决定信任并编辑它为止。此操作可以通过按“Enable Editing”按钮来完成,如下所示:
在某些情况下,如果从您认为是 Intranet 区域一部分的网络共享中打开文件,则文件将在受保护的视图中打开,同时在信任栏中指示该文件源自一个 Internet 位置。这种情况会由于以下原因而发生:您的代理的设置方式,或者您没有在“Internet Options”的“Local Intranet”中选中“Automatically detect intranet network”设置,如下所示:
· 从 Outlook 2010 打开的附件。当从 Outlook 2010 打开附件时,它将在受保护的视图中打开。管理员可以配置是在受保护的视图中打开所有附件,还是只打开从其 Exchange 环境之外的发件人处发送的那些附件。
· 从非安全位置打开的文件。非安全位置的一个示例就是从您的 Internet 临时文件夹打开的文件。作为管理员,您可以扩展该列表,以包括您感觉也不安全的目录。
· 文件阻止策略所阻止的文件。在 Office 2007 中,我们引入了一项称为文件阻止的功能。这允许管理员定义不应打开的文件类型。当某个类型被阻止时,根本就无法打开它。从您的反馈中我们了解到,就可用性而言,这种限制有些过头,因为用户仍希望“阅读”那些文件。在 Office 2010 中,现在可以在受保护的视图中打开这些被阻止的文件,并且作为管理员,您可以设置策略来表明是允许用户(通过编辑文件)离开受保护的视图,还是强制他们留在那里。我们希望这种设计能够将您遇到的所有问题和困扰一扫而空!
· Office 文件验证失败。Office 文件验证是一项新的功能,该功能在 Office 文件打开时对文件进行扫描,并根据已知架构进行验证。当文件与架构不一致时,文件就不能通过验证,因此将在受保护的视图中打开。与文件阻止功能类似,也可以使用策略来决定在验证失败时,是允许还是拒绝用户编辑文件。
· 打开文件对话框。可以使用“Open”按钮明确地在受保护的视图中打开文件:
受保护的视图如何为我提供更好的用户体验?
最大的受益就是,它在为您提供较以往更强的保护的同时,还允许我们去除“您确定吗”这样的安全提示。例如,如果您是像我一样的 Outlook 用户,您大概已经注意到,每次打开附件时,系统都会问您一个问题:
对我来说,不先看看文件的内容,就很难回答这个问题。在 Office 2010 中,我们去除了该对话框,改为直接在受保护的视图中打开文件!这样,您就可以查看内容,明智地决定是否真的信任该文件。如果您并不信任它,或者只是想阅读它,则可以在阅读完后将其关闭。正是因为如今有众多的深度防御检查在发挥着作用,我们才能放心地直接打开文件。
除了打开提示,我们还去除了 Outlook 预览窗格提示,如下所示:
如今,启用受保护的视图后,当您在 Outlook 预览窗格中阅读 Word、Excel、PowerPoint 和 Visio 文件时,系统再也不会先提示您是否真的信任文件了。
受保护的视图设计的外观如何?
受保护的视图改变了 Word、Excel 和 PowerPoint 的架构方式。在受保护的视图中打开文件时,将同时运行应用程序的两个实例。以 Word 为例,一个是在您的登录帐户上下文中运行的 winword.exe 实例,我们称之为“主机”进程;另一个是在严格隔离的进程中运行的 winword.exe 实例,我们称之为“客户端”进程(也称为“Office 沙箱”,两个术语可以混用)。
用图片来描述是最好不过的。客户端进程是用黑色突出显示的用户界面的一部分,其他都属主机进程,如下所示:
当用户在主机进程用户界面的任何部分上单击时,由于 UIPI 的原因,我们可以完全相信操作是来自用户,不需要用额外的“您确定要这样做吗?”对话框予以提示。主机进程拥有如上所示的顶层应用程序框架窗口,其中包括窗口标题、功能区、信任栏、状态栏等。主机进程管理受保护的视图和非受保护的视图窗口,并充当客户端进程的“代理 (broker)”。任意给定时间只能运行一个客户端/沙箱实例,所有在受保护的视图中打开的文件都共用应用程序内的同一个沙箱实例。当所有受保护的视图窗口都关闭时,客户端进程将终止。当客户端需要执行特权任务(如访问文件系统、注册表或其他系统资源)时,它会向主机进程发出请求,如果主机认为适当,则会进行代理并执行操作。
我们曾在前面间接提到,客户端进程是在用户帐户上下文中运行的另一个 Windows 进程,但使用的令牌是受限令牌。通过使用受限令牌,我们可以删除此进程所具有的多项权利和权限。为进一步锁定客户端进程,我们现在还将其作为低完整性进程来运行。受限令牌和低完整性 (UIPI) 共同为我们的 Office 2010 沙箱奠定了基础。
正如我们所讨论的,受保护的视图是 Office 2010 中的众多安全防御措施之一。一个恶意软件若要真能够在受保护的视图中运行,它必须首先找到途径来绕过 DEP、ASLR、GS 和我们的新增 2010 Office 文件验证检查。完成这一系列步骤之后,恶意软件还需要找到一种方法来破坏沙箱。
希望您现在再收到“吓人”的 Word、Excel 或 PowerPoint 文件时,能够在受保护的视图中打开它,放心地阅读,而不必担心计算机上会发生什么不好的事情。
感谢您读到这里,敬请继续关注后续的有关安全方面的更多文章!
谢谢。
Vikas Malhotra
Office 可信计算
安全项目经理
Posted: Thursday, August 13, 2009 8:27 PM by OffTeam
这是一篇本地化的博客文章。请访问 https://blogs.technet.com/office2010/archive/2009/08/13/protected-view-in-office-2010.aspx 以查看原文。