导语:在今年夏天的BlackHat USA大会上,我非常专业的提到了AD的安全,并提供了关于如何能够最好程度上保护Active Directory安全的一些提示。

Active Directory的安全始于能确保安全地配置域控制器(DC)。在今年夏天的BlackHat USA大会上,我非常专业的提到了AD的安全,并提供了关于如何能够最好程度上保护Active Directory安全的一些提示。这篇文章主要关注域控制器的安全性和一些跨越Active Directory的安全性。毕竟我的博客被称为“ADSecurity” …

本文将会涵盖一些通过保护域控制器(简称“域控”)来保护Active Directory安全性的最佳方法,包括以下几个部分:

1. 默认域和域控制器策略
2. 创建域和域控制器安全基线GPO
3. 修补域控制器
4. 保护域控制器
5. 域控制器推荐的组策略设置
6. 配置域控制器审查模式(事件日志)
7. 需要监控的域控制器事件(事件日志)
8. 关键域控制器安全项

与基础架构的任何重大更改一样,请在部署更改之前进行测试。以免发生意外。

默认域和域控制器组策略(GPO)

当首次创建Active Directory域时,默认情况下会创建两个GPO:

默认域策略 - GUID:{31B2F340-016D-11D2-945F-00C04FB984F9}
默认域控制器策略 - GUID:{6AC1786C-016F-11D2-945F-00C04FB984F9}

请注意,这些GPO GUID对于每个Active Directory域实例都是相同的。 这是为了确保Windows可以快速找到这些GPO,如果它们被删除,则需要被恢复或重新创建。 Active Directory最佳实践分析工具查找默认GPO以确保其被正确应用。 GPO GUID与AD对象GUID不同,因为某些GPO GUID需要相同的跨AD实例。

默认域策略应只包含以下设置:

1. 密码策略
2. 帐户锁定策略
3. Kerberos策略

1487315930590361.png

Windows Server 2012 R2的默认域策略的默认设置如上图所示。

默认域控制器策略应只包含以下设置:

1. 用户权限分配

2. 一些安全选项

1487316161151430.png

1487316219162978.png

Windows Server 2012 R2的默认域控制器策略的默认设置如上图所示。

创建域和域控制器安全基准GPO

将自定义设置放入默认GPO是非常吸引人的。 请抵制住这种冲动,因为它能更好地在新的GPO中添加一层额外的安全层(并且更容易进行变更管理)。

请注意,域密码策略实际上是一个具有链接到域的最高链接顺序的GPO,因此可以使用自定义密码策略设置创建新的GPO,链接到域,并将链接顺序移动到第一的位置上(如下图所示)。

1487316370926340.png

1487316393851033.png

据说,许多组织只是在默认域策略GPO中定制密码策略,这很好。不过,不要添加新的设置到默认域策略GPO; 尽量保持卫它的原样。

默认域策略GPO中的默认密码策略的设置有很多不足之处。 我建议收紧这些设置,使它们更安全。 如果有需要较少限制要求的帐户,请使用细粒度密码策略为异常提供更多宽松的密码设置。

1. 强制密码历史记录:24(默认值很好)

2. 密码最大年龄:60 – 180,取决于组织要求和最小密码长度。

3. 密码最小年龄:1

将其设置为1或更高,以便用户不能简单地继续循环其新密码,直到他们翻阅密码历史记录以回到他们最喜欢的密码。

4. 最小密码长度:14

有趣的是:通过组策略管理控制台(GPMC)设置的唯一可接受的值是数字0到14。即使手动设置在SYSVOL中关联的组策略设置文件,也无法设置更高的值因为这是不受支持的设置。更好的想法是在此处将其设置为14,然后使用细粒度密码策略应用于组,并确保你希望将此设置应用的用户在此用户组中。

5. 密码必须满足复杂性要求:启用

6. 使用可逆加密存储密码:禁用

如果将此设置为启用,则在启用此设置时更改其密码的任何用户的密码都以可反转的方式存储在AD数据库(NTDS.dit文件)中,这意味着用户的密码可以提取。

7. 帐户锁定持续时间:1 – 90分钟

设置一些值以缓解密码猜测尝试的攻击方式

8. 帐户锁定阈值:5 – 20次登录尝试无效

设置以配置在锁定帐户之前需要多少次无效的登录尝试。

9. 在多长时间后重置帐户锁定计数器:5 – 60分钟

设置以配置在无需帮助台帮助的情况下帐户自动解锁需要多长时间。

第一步是创建两个新的GPO(这些只是示例)

1. 域安全策略基准
2. 域控制器安全策略基准

域安全策略基准应包含应用于整个域的设置。

创建安全域策略和域控制器安全策略的最佳方法是下载Microsoft安全合规性管理器(当前版本为4.0),并在要为其创建安全基准的操作系统版本下选择“安全合规性”选项GPO。查看选项,根据需要进行更改,并导出为GPO备份(文件夹)。在域中创建新的空白GPO,并从SCM GPO备份中“导入设置”,以便新的GPO具有与SCM导出的GPO有相同的设置。然后将此GPO应用于你的域控制器。如果你已配置了最小的安全设置,这将改进你的DC安全基线,特别是如果你还没有为现有的DC配置过GPO。

大多数包含的设置会在本文中的“保护域控制器”和“推荐的组策略设置”章节部分中进行标识和描述。

Microsoft SCM域安全合规性策略

(在部署之前请查看设置和测试)

1487316529306618.png

Microsoft SCM域控制器安全合规策略

1487316556112486.png

如果其中一个模板包含了FIPS合规加密,则需要验证是否需要设置此模板,因为Microsoft在2014年不推荐使用此模板。如果你不确定是否需要它,请最好不要启用它。 FIPS兼容加密实际上可能会导致一些问题。一些政府系统需要它,但请首先对应用程序进行广泛地测试。

作为开发安全基线的一部分,有几个大型组织花费时间和金钱来确定了什么才是“安全”:

DoD STIG:http://iase.disa.mil/stigs/os/windows
澳大利亚信息安全手册:
http://www.asd.gov.au/infosec/ism/index.htm
CIS基准:
https://benchmarks.cisecurity.org/downloads/browse/?category=benchmarks.os.window

如果你已经有了一个配置AD安全的GPO,你可以使用Microsoft的策略分析器你在SCM生成的“安全合规性”GPO进行比较。

组策略有两种不同的配置思维方式,一种是使用尽可能少的GPO,尽可能多地使用相同的设置,另一种是为每个目的使用单独的GPO。我倾向于站在这两种思维的中间。使用单独的GPO进行主要配置设置:Windows工作站配置,Windows服务器配置,用户配置等。除此之外,还需要为其他GPO配置一些新的测试设置。

对域控制器打补丁

重要的服务器需要在发布关键的安全补丁时尽快打上这些补丁。关注围绕“我应用了一个安全补丁,那它到底修补了什么?”。缓解对破坏性操作的担忧并确保安全补丁被及时应用是一种微妙的平衡,当然更多的是艺术而不是科学。

1. 首先应用补丁到域控制器的子集,让他们“烘烤”一段时间,然后再应用到另一个集,然后在所有的机器上安装补丁。一种流行的方法是首先将该补丁应用于偶数DC,然后再部署到奇数DC。

2. 首先应用关键的安全修补程序。任何标记为“关键”且适用于DC的安全补丁都需要尽快安装。这包括任何类型的远程代码执行(RCE),AD特权提升等等。

3. 确保DC上安装的任何服务也被正确地修补。域控制器经常会托管DNS,因此在DC上运行的易受攻击的DNS服务可能被利用以威胁Active Directory域的安全。

4. 确保服务器在升级为DC之前进行了完全的修补(像MS14-068这样的安全问题使得这样的检查确认变得至关重要)。

保护域控制器

域控的安全以及Active Directory的许多方面的安全都基于安装在域控制器上的Windows版本。这就是为什么在域控制器上运行当前的Windows版本非常重要 — 较新版本的Windows服务器有更好的安全性和增强的Active Directory安全功能。

一些Active Directory域功能级的安全功能在此处根据Windows版本列出:

Windows Server 2008 R2域功能级别:

1. Kerberos AES加密支持

允许从支持的类型中删除RC4 HMAC Kerberos加密。请注意,Windows 7和Windows Server 2008 R2不再支持Kerberos DES加密

2. 托管服务帐户

AD控制着服务帐户密码。

3. 认证机制保证

当使用智能卡进行身份验证时,用户会收到组内的其他成员。

Windows Server 2012域功能级别:

1.  组托管服务帐户

AD控制服务帐户密码。

2. 复合身份验证和Kerberos FAST(Kerberos Armoring)

结合用户和设备进行身份验证

保护Kerberos AS和TGT请求。

Windows Server 2012 R2域功能级别:

1. 认证策略和孤岛

保护特权帐户限制他们可以登录的位置。

2. 受保护用户安全组

PDC设置为Windows 2012 R2以创建组

受保护的用户主机保护(Win 8.1 / 2012R2)防止:

(1)使用NTLM,摘要认证或CredSSP进行认证。

(2)缓存凭据

(3)DES或RC4加密类型在Kerberos预认证中。

(4)帐户委派。

受保护的用户域强制阻止:

(1)NTLM身份验证。

(2)在Kerberos预认证中使用DES或RC4加密类型。

(3)委托不受约束或约束委派。

(4)将Kerberos TGT更新为最初的四小时生命周期。

Windows Server 2016新安全功能:

1. 特权访问管理 – 支持单独的堡垒(admin)林

2. Microsoft护照

只有已批准的且来自可信来源的软件才应该安装在域控制器上。这包括从受信任的来源安装Windows操作系统。

域控制器应启用Windows防火墙并配置为防止互联网访问。大多数时候,域控制器没有直接联网的好理由。

理想情况下,在域控制器上不应安装软件或代理,因为安装的每个附加程序都可能提供另一个攻击途径。安装的每个代理或服务都为应用程序所有者提供了在域控制器上运行代码的潜在能力。如果补丁基础设施管理着所有的工作站,服务器和域控制器,那么攻击者只需要拿到一个补丁基础架构的管理员权限,就会危及整个Active Directory环境。这就是为什么域控制器和管理工作站/服务器需要有他们自己的管理基础设施且需要独立于企业的其余部分,因为共享系统管理可以提供危害域的更多路径。域控制器和管理工作站/服务器应该有自己的打补丁的基础设施,如Windows Server Update Services(WSUS)。

保护Active Directory的最佳方法是限制域级别的管理权限。这包括限制对域控制器的访问,特别是登录和管理权限。以下用户权限分配应配置为通过组策略对域控制器实施最小权限:

1. 作为批处理作业登录:未定义
2. 拒绝作为批处理作业登录:来宾
3. 允许本地登录:管理员
4. 允许通过远程桌面服务登录:管理员
5. 从网络访问此计算机:管理员,已认证的用户,企业域控制器
6. 备份文件和目录:管理员(如果需要备份代理,则为备份操作员)
7. 还原文件和目录:管理员(如果需要备份代理,则为备份操作员)
8. 将工作站添加到域:管理员
9. 旁路遍历检查:未定义
10. 拒绝从网络访问此计算机:来宾,NT AUTHORITY\Local Account
11. 设备:禁止用户安装打印机驱动程序:启用
12. 作为服务登录:[只有需要此权限的特定帐户才应在此处列出]
13. 域控制器:允许服务器操作员计划任务:禁用
14. 拒绝通过远程桌面服务登录:来宾,NT AUTHORITY \ Local Account
15. 设备:禁止用户安装打印机驱动程序:启用
16. 关闭系统:管理员

源链接

Hacking more

...