允许服务与桌面交互

允许服务与桌面交互

直流操作系统-Windows Server 2008 R2标准版

客户端操作系统 - Windows XP、Windows 7

我已经通过网络策略服务器实施了安全策略,并自动启用了有线自动配置服务。启用有线自动配置服务时,如果我选中“允许服务与桌面交互”,它在某些 Windows7 笔记本电脑中可以正常工作。

但在互联网上,它给我警告“交互式服务可以显示用户界面并接收用户输入。如果您允许服务与桌面交互,则服务在桌面上显示的任何信息也将显示在交互式用户的桌面上。恶意用户可以控制该服务或者从交互式桌面对其进行攻击。

您能否给我举一些例子,说明恶意用户如何控制服务或从交互式桌面对其进行攻击?

答案1

微软在 2008/Vista 中引入了会话 0 隔离。通过会话 0 隔离,现在所有 Windows 服务都在会话 0 中运行,而所有人员会话都在会话 1 及以上会话中运行。

因此,强烈反对设计需要与桌面交互的 Windows 服务。从技术上讲,设计与桌面交互的服务仍然是可行的,但强烈反对。这是错误的做法。

当 Windows 服务必须与桌面交互时,交互登录的人的桌面将切换到查看会话 0 的桌面,以便对话框或任何需要注意的内容得到注意。

现在我们有一个非常高权限的帐户,通常是本地系统,向标准用户显示一个对话框。该对话框在本地系统的上下文中运行。您为该标准用户提供了一个机会,可以利用该对话框中的某些内容并使其在本地系统的安全上下文中执行某些操作。所以这就是危险所在。

答案2

这里的重点是 Windows 的消息转发机制,它允许任何进程在其自己的会话中向任何窗口发送任何消息。如果其中一个窗口属于具有提升权限的进程,这显然会带来安全风险。这类攻击被称为“粉碎攻击”并且几年前就已经在安全领域进行了深入讨论。

由于根本原因无法解决 - 大多数(如果不是全部)为 Windows 编写的软件都依赖于此功能 - 因此已经决定解决这个问题的唯一方法是分段 - 在单个用户会话中运行的所有内容都必须在单个安全上下文中运行。自 90 年代末以来,服务设计指南一直反映这一点,并且不鼓励在服务上下文中运行 GUI 代码。这在 Windows Vista 中已成为必需,您只需不能让服务与用户桌面进行交互。

当然,这也适用于 Windows 7,通过选中“允许服务与桌面交互”,您允许服务与虚拟的用户看不到桌面。如果它能修复您的服务 - 那就这样吧。但请确保您没有任何 Windows XP 计算机,因为这确实会带来上述安全风险。

相关内容