常见的安全错误是将服务配置为使用过度宽松的安全描述符(参阅已经过身份验证的用户还包括 Active Directory 林中的每个用户或计算机帐户,不论该帐户是远程计算机上的管理员组的成员还是本地计算机上的管理员组的成员。 这些过多的权限可能会被滥用并对整个网络造成严重破坏。
鉴于这一问题的普遍性和潜在严重性以及假定任何足够大的域都将包含被破坏的计算机的现代安全实践,我们引入了新的系统安全设置,该设置要求远程调用者必须同时也是计算机上的本地管理员才能请求以下服务权限:
SERVICE_CHANGE_CONFIG
SERVICE_START
SERVICE_STOP
SERVICE_PAUSE_CONTINUE
DELETE
WRITE_DAC
WRITE_OWNER
新的安全设置还要求远程调用者必须同时也是计算机上的本地管理员才能请求以下服务控制管理器权限:
SC_MANAGER_CREATE_SERVICE
注意 此本地管理员检查是对服务或服务控制器安全描述符的现有访问检查的补充设置。我们从 Windows 10 版本 1709 和 Windows Server 2016 版本 1709 中开始引入该设置。 默认情况下,该设置为启用状态。
对于其服务依赖于非管理员进行远程启动或停止的某些客户,这一新检查可能会导致出现问题。 如有必要,可以从此策略中选择个人服务,方法是在以下注册表位置将服务名称添加到 RemoteAccessCheckExemptionList REG_MULTI_SZ 注册表值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM
为此,请按照下列步骤操作:
依次选择“开始”、“运行”,在“打开”框中键入 regedit,然后单击“确定”。
在注册表中找到并选择以下子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM
注意如果子项不存在,则必须创建一个子项:在“编辑”菜单上,选择“新建”,然后选择“项”。键入新子项的名称,然后按 Enter 键。
在“编辑”菜单上,指向“新建”,然后选择“REG_MULTI_SZ 值”。
键入 RemoteAccessCheckExemptionList 作为 REG_MULTI_SZ 值的名称,然后按 Enter 键。
双击“RemoteAccessCheckExemptionList”值,键入从新策略中豁免的服务的名称,然后单击“确定”。
退出注册表编辑器,然后重启计算机。
想要全局禁用这一新检查并恢复旧设置(不太安全的行为)的管理员可在以下注册表位置将“RemoteAccessExemption”REG_DWORD 注册表值设置为非零值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
注意 临时设置该值是确定此新权限模型是否是导致出现应用程序兼容性问题的快速方法。
为此,请按照下列步骤操作:
依次选择“开始”、“运行”,在“打开”框中键入 regedit,然后单击“确定”。
在注册表中找到并单击以下子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
在“编辑”菜单上,指向“新建”,然后选择“REG_DWORD (32 位)值”。
键入 RemoteAccessExemption 作为 REG_DWORD 值的名称,然后按 Enter 键。
双击“RemoteAccessExemption”值,在“值数据”字段中输入 1,然后单击“确定”。
退出注册表编辑器,然后重启计算机。