导语:在今年夏天的BlackHat USA大会上,我非常专业的提到了AD的安全,并提供了关于如何能够最好程度上保护Active Directory安全的一些提示。
Active Directory的安全始于能确保安全地配置域控制器(DC)。 在今年夏天的BlackHat USA大会上,我非常专业的提到了AD的安全,并提供了关于如何能够最好程度上保护Active Directory安全的一些提示。 这篇文章主要关注域控制器的安全性和一些跨越Active Directory的安全性。毕竟我的博客被称为“ADSecurity” …
本文将会涵盖一些通过保护域控制器(简称“域控”)来保护Active Directory安全性的最佳方法,包括以下几个部分:
默认域和域控制器策略 创建域和域控制器安全基线GPO 修补域控制器 保护域控制器 域控制器推荐的组策略设置 配置域控制器审查模式(事件日志) 需要监控的域控制器事件(事件日志) 关键域控制器安全项
与基础架构的任何重大更改一样,请在部署更改之前进行测试。以免发生意外。
推荐的域控制器组策略设置
本节涵盖了推荐的域控制器安全设置,其中有许多安全设置是在SCM中的Microsoft安全基准中进行了描述和设置。
请在应用这些设置前进行完整的测试。
启用NTLM审查
限制NTLM:审查收到的NTLM流量:启用对所有帐户的审查
此策略设置允许你审核传入的NTLM流量。
至少在Windows 7或Windows Server 2008 R2以上支持此策略。
注意:审计事件被记录在此计算机上位于应用程序和服务日志/Microsoft/Windows/ NTLM下的“操作”日志中。
限制NTLM:审查此域中的NTLM身份验证:启用所有
此策略设置允许你从此域控制器中审核该域中的NTLM身份验证。
此策略至少在Windows Server 2008 R2上受支持。
注意:该审计事件被记录在此计算机上位于应用程序和服务日志/ Microsoft / Windows / NTLM下的“操作”日志中。
LAN Manager认证级别:仅发送NTLMv2响应。拒绝LM&NTLM
默认情况下,此配置设置为“仅发送NTLMv2响应”。
在Microsoft安全合规性管理器中,Microsoft建议将此配置设置为“仅发送NTLMv2响应。拒绝LM&NTLM。然而,许多网络环境中仍在使用NTLMv1进行身份验证,因此可能需要启用NTLM身份验证审查模式以识别在企业中是如何使用NTLM进行身份验证的。
LAN Manager(LM)是一个早期的Microsoft客户端/服务器软件系列,它允许用户在单个网络上将个人计算机链接在一起。网络功能包括传输文件和打印共享,用户安全功能和网络管理工具。在Active Directory域中,Kerberos协议是默认的身份验证协议。但是,如果Kerberos协议由于某种原因未协商,Active Directory将使用LM,NTLM或NTLMv2。
LAN Manager身份验证包括LM,NTLM和NTLM版本2(NTLMv2)变体,并且是用于在执行以下操作时对所有的Windows客户端进行身份验证的协议:
加入域 在Active Directory林之间进行身份验证 对下级域进行身份验证 验证不运行Windows 2000,Windows Server 2003或Windows XP的计算机 向不在域中的计算机进行身份验证 对于网络安全性:LAN Manager进行身份验证的级别设置的可能值有如下几个: 发送LM和NTLM响应 发送LM&NTLM - 如果协商则使用NTLMv2会话安全 仅发送NTLM响应 仅发送NTLMv2响应 仅发送NTLMv2响应\拒绝LM 仅发送NTLMv2响应\拒绝LM和NTLM 未定义的
网络安全:LAN Manager认证级别设置用于确定用于网络登录的挑战或响应认证协议。此选项影响客户端使用的身份验证协议级别,计算机协商的会话安全级别以及服务器接受的身份验证级别如下:
1. 发送LM和NTLM响应。客户端使用LM和NTLM身份验证,并且从不使用NTLMv2安全会话。域控制器接受LM,NTLM和NTLMv2身份认证。
2. 发送LM&NTLM – 如果协商使用NTLMv2会话安全。客户端使用LM和NTLM进行身份验证,如果服务器支持的话,则会使用NTLMv2安全会话。域控制器接受LM,NTLM和NTLMv2身份认证。
3. 仅发送NTLM响应。客户端仅使用NTLM身份验证,如果服务器支持,则使用NTLMv2会话安全性。域控制器接受LM,NTLM和NTLMv2认证。
4. 仅发送NTLMv2响应。客户端仅使用NTLMv2进行身份验证,如果服务器支持的话,则会使用NTLMv2安全会话。域控制器接受LM,NTLM和NTLMv2身份认证。
5. 仅发送NTLMv2响应\拒绝LM。客户端仅使用NTLMv2进行身份验证,如果服务器支持,则使用NTLMv2安全会话。域控制器拒绝LM(仅接受NTLM和NTLMv2身份验证)。
6. 仅发送NTLMv2响应\拒绝LM&NTLM。客户端仅使用NTLMv2进行身份验证,如果服务器支持,则使用NTLMv2安全会话。域控制器拒绝LM和NTLM(仅接受NTLMv2身份验证)。
这些设置对应于在其他Microsoft文档中讨论的级别如下:
1. Level 0 – 发送LM和NTLM响应;从不使用NTLMv2安全会话。客户端使用LM和NTLM进行身份验证,并且从不使用NTLMv2安全会话。域控制器接受LM,NTLM和NTLMv2身份认证。
2. Level 1 – 如果协商使用NTLMv2安全会话。客户端则使用LM和NTLM进行身份验证,如果服务器支持,则使用NTLMv2安全会话。域控制器接受LM,NTLM和NTLMv2身份认证。
3. Level 2 – 仅发送NTLM响应。客户端仅使用NTLM身份验证,如果服务器支持,则使用NTLMv2安全会话。域控制器接受LM,NTLM和NTLMv2认证。
4. Level 3 – 仅发送NTLMv2响应。客户端使用NTLMv2进行身份验证,如果服务器支持,则使用NTLMv2安全会话。域控制器接受LM,NTLM和NTLMv2认证。
5. Level 4 – 域控制器拒绝LM响应。客户端使用NTLM进行身份验证,如果服务器支持,则使用NTLMv2安全会话。域控制器拒绝LM身份认证,也就是说,只接受NTLM和NTLMv2。
6. Level 5 – 域控制器拒绝LM和NTLM响应(仅接受NTLMv2)。如果服务器支持,客户端使用NTLMv2进行身份验证并使用NTLMv2安全会话。域控制器拒绝NTLM和LM身份验证(只接受NTLMv2)。
Lsass.exe审核模式:启用
启用“Lsass.exe审核模式”以确定在启用LSA保护时可能阻止的程序。
在启用LSA保护之前,请查看以下事件以确定一些潜在的问题:
1. 事件3065:此事件会记录执行代码完整性检查以确定进程(通常为lsass.exe)尝试加载在共享节中不满足安全要求的特定驱动程序。但是,由于设置的系统策略,将允许加载镜像。
2. 事件3066:此事件会记录执行代码完整性检查以确定进程(通常为lsass.exe)尝试加载不满足Microsoft签名级别要求的特定驱动程序。但是,由于设置的系统策略,将允许加载镜像。
你可以配置此设置以启用对Lsass.exe的审核,以便你可以评估启用LSA保护的可行性。你可以使用审计模式来识别在LSA保护模式下将无法加载的LSA插件和驱动程序。在审计模式下,系统将生成事件日志,标识在LSA保护启用时将无法在LSA下加载的所有插件和驱动程序。在不阻止插件或驱动程序的情况下记录消息。
如果启用此设置,将启用Lsass.exe审核模式,并在事件日志中生成事件。
如果禁用或不配置此设置,Lsass.exe审核模式将被禁用,并且事件日志中不会生成相关事件。
启用LSA保护:启用
在域控制器上启用此保护设置之前,请先启用“Lsass.exe审核模式”以确定可能阻止哪些程序。
使用此保护设置为本地安全机构(LSA)进程配置其他保护,以防止可能危及凭证的代码注入。
在使用安全引导和UEFI的基于x86或基于x64的设备上,当通过使用注册表项启用LSA保护时,UEFI固件中将设置UEFI变量。当设置存储在固件中时,UEFI变量不能在注册表项中删除或更改。 UEFI变量必须重置。
不支持UEFI或安全引导的基于x86或基于x64的设备此保护设置将被禁用,无法将固件中的LSA保护配置存储,而仅仅依赖于注册表项的存在。在这种情况下,可以通过使用对设备的远程访问来禁用LSA保护。
如果启用此设置,则启用LSA保护。
如果禁用或不配置此设置,则不会启用LSA保护。
域成员:需要强(Windows 2000或更高版本)会话密钥:启用
默认值为“Disabled”。
用于在域控制器和成员计算机之间建立安全通道进行通信的会话密钥在Windows 2000中要比在以前的Microsoft操作系统中强得多。
只要有可能,你应该利用这些更强的会话密钥来帮助保护通信的安全通道以免受网络劫持会话和窃听的攻击。 (窃听是一种黑客攻击的形式,网络数据在传输过程中被读取或改变,数据可以被修改或更改发送者,或被重定向)。
启用此策略设置后,只能与能够使用强会话密钥(128位)加密的安全通道数据的域控制器来建立安全通道。
要启用此策略设置,域中的所有域控制器必须能够使用强密钥加密安全通道数据,这意味着所有域控制器必须运行Microsoft Windows 2000或更高版本。如果需要与非基于Windows 2000的域进行通信,Microsoft建议你禁用此策略设置。
网络安全:基于NTLM SSP(包括安全RPC)服务器的最小会话安全性:需要NTLMv2安全会话,需要128位加密
默认设置为“无最小值”。
在Microsoft安全合规性管理器中,Microsoft建议将此配置设置为“需要NTLMv2安全会话且需要128位加密”以提高NTLM的安全性。
此策略设置以确定允许使用NTLM安全支持提供程序(SSP)的应用程序使用哪些行为。 SSP接口(SSPI)由需要身份验证服务的应用程序使用。该设置不会修改身份验证序列的工作方式,而是在使用SSPI的应用程序中需要某些行为。
网络安全性的可能值:基于NTLM SSP(包括安全RPC)服务器的最小会话安全性设置为:
1. 需要消息机密性。此选项仅在Windows XP和Windows Server 2003中可用,如果未协商加密,连接将失败。加密操作会将数据转换为在解密之前不可读的形式。 2. 需要消息完整性。此选项仅在Windows XP和Windows Server 2003中可用,如果未协商消息完整性,则连接将失败。可以通过消息签名来评估消息的完整性。消息签名证明消息未被篡改;它附加并标识发送者的加密签名,并且是消息的内容的数字表示。 3. 需要128位加密。如果未协商强加密(128位),连接将失败。 4. 需要NTLMv2会话安全性。如果未协商NTLMv2协议,连接将失败。 5. 未定义。
Microsoft网络服务器:数字签名通信(如果客户端同意):启用
默认设置为Disabled。
会话劫持允许攻击者访问与客户端或服务器相同的网络来中断,结束或窃取正在进行的会话。攻击者可能会拦截和修改未签名的SMB数据包,然后修改流量并将其转发,导致服务器可能执行不良操作。或者,攻击者可以在合法认证之后作为服务器或客户端,并获得对数据的未经授权的访问。
SMB是许多Windows操作系统支持的资源共享协议。它是NetBIOS和许多其他协议的基础。 SMB会在用户和托管数据的服务器之间进行签名验证。如果任意一侧的认证过程失败,则不会进行数据传输。
此策略设置确定服务器端SMB服务是否能够签名SMB数据包,如果尝试建立连接的客户端请求这样做的话。如果客户端没有签名请求,同时如果Microsoft网络服务器:数字签名通信(始终)设置为未启用,那么将允许没有签名的连接。
注意在网络上的SMB客户端上启用此策略设置,使其能够完全有效地与你的环境中的所有客户端和服务器进行数据包签名通信。
Microsoft网络服务器:数字签名通信(始终):启用
Microsoft网络客户端:数字签名通信(始终):启用
默认情况下,这两个设置都配置为“禁用”。
会话劫持允许攻击者访问与客户端或服务器相同的网络来中断,结束或窃取正在进行的会话。攻击者可能会拦截和修改未签名的SMB数据包,然后修改流量并将其转发,导致服务器可能执行不良操作。或者,攻击者可以在合法认证之后作为服务器或客户端,并获得对数据的未经授权的访问。
SMB是许多Windows操作系统支持的资源共享协议。它是NetBIOS和许多其他协议的基础。 SMB签名验证用户和托管数据的服务器。如果任一侧认证过程失败,则不会发生数据传输。
此策略设置确定SMB客户端组件是否需要数据包签名。如果启用此策略设置,Microsoft网络客户端计算机无法与Microsoft网络服务器通信,除非该服务器同意签名SMB数据包。在与旧版客户端计算机的混合环境中,建议将此选项设置为“已禁用”,因为这些计算机将无法验证或访问域控制器。但是,你可以在Windows 2000或更高版本的环境中使用此策略设置。
注意当基于Windows Vista的计算机已启用此策略设置,并且当它们连接到远程服务器上的文件或打印共享时,此时,重要的一点是该设置将会同步为当前连接的服务器的设置,Microsoft网络服务器:使用数字签名与那些服务器进行通信(总是)。有关这些设置的详细信息,请参阅威胁和对策指南第5章中的“Microsoft网络客户端和服务器:数字签名通信(四个相关设置)”部分。
网络访问:不允许匿名枚举SAM帐户和共享:已启用
默认设置为“禁用”。
未经授权的用户可以匿名列出帐户名称和共享资源,并使用该信息尝试猜测密码或执行社会工程学攻击。
此策略设置控制匿名用户枚举SAM帐户和共享的能力。如果启用此策略设置,匿名用户将无法枚举环境中的工作站上的域帐户用户名和网络共享名称。
网络访问:不允许匿名枚举SAM帐户和共享,建议在本指南中讨论的两个网络环境中配置为启用。
WDigest身份验证(禁用可能需要KB2871997):禁用
默认情况下,在Windows Server 2012 R2及更高版本上是禁用了WDigest验证的,因此此设置将强制被禁用。
WDigest在Lsass.exe内存中留下用户的纯文本的等效密码,这使密码容易受到Pass-the-Hash和其他凭证窃取攻击。
当启用WDigest身份验证时,Lsass.exe会在内存中保留用户明文密码的副本,以防存在被窃取的风险。 Microsoft建议禁用WDigest身份验证,除非需要。
如果未配置此设置,则在Windows 8.1和Windows Server 2012 R2中禁用WDigest身份验证;它在Windows和Windows Server的早期版本中默认是启用的。
必须首先安装更新KB2871997才能在Windows 7,Windows 8,Windows Server 2008 R2和Windows Server 2012中将此设置为禁用WDigest身份验证。
启用:启用WDigest身份验证。
禁用(推荐):禁用WDigest身份验证。要使此设置在Windows 7,Windows 8,Windows Server 2008 R2或Windows Server 2012上正常工作,必须先安装KB2871997。
有关详细信息,请参阅http://support.microsoft.com/kb/2871997,
http://blogs.technet.com/b/srd/archive/2014/06/05/an-overview-of-kb2871997.aspx 。
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential