随着我们学习本模块的进展,我们查看了 Active Directory 中内置的许多特性和功能。所有这些都是围绕集中管理的前提和快速、随意地向大量用户共享信息的能力而构建的。因此,Active Directory 在设计上可能被认为是不安全的。默认的 Active Directory 安装将缺少许多可用于保护 AD 实施的强化措施、设置和工具。当我们考虑网络安全时,首先出现的问题之一是机密性、完整性和可用性之间的平衡,也称为 CIA 三元组。找到这种平衡是很困难的,并且 AD 非常倾向于其核心的可用性和机密性。

CIA Triad

image.png
我们可以利用 Microsoft 的内置功能来帮助平衡规模,这些功能可以启用/调整以强化 AD 以抵御常见攻击。下面的列表并不详尽。许多其他一般的安全强化原则必须在组织内实施,以确保采用适当的纵深防御方法(拥有准确的资产清单、漏洞补丁、配置管理、端点保护、安全意识培训、网络分段等)。本节可以被认为是任何组织都将从中受益的最低限度的通用 AD 安全最佳实践。我们将在后面的模块中深入探讨 Active Directory 防御。让我们深入研究并从一些针对 AD 的一般强化措施开始。

General Active Directory Hardening Measures

Microsoft 本地管理员密码解决方案 (LAPS) 用于随机化和轮换 Windows 主机上的本地管理员密码,并防止横向移动。

LAPS

可以将帐户设置为按固定时间间隔(即 12 小时、24 小时等)轮换密码。这个免费工具有助于减少单个受感染主机在 AD 环境中的影响。组织不应仅依赖此类工具。尽管如此,当与其他强化措施和安全最佳实践相结合时,它仍然可以成为本地管理员帐户密码管理的非常有效的工具。

审核策略设置(日志记录和监视)

每个组织都需要设置日志记录和监视,以检测可能表示攻击的意外更改或活动并对其做出反应。有效的日志记录和监视可用于检测添加用户或计算机的攻击者或未经授权的员工,修改AD中的对象,更改帐户密码,以未经授权或非标准的方式访问系统,执行攻击(例如密码喷涂)或更高级的攻击(例如现代Kerberos攻击)。

组策略安全设置

如本模块前面所述,组策略对象 (GPO) 是策略设置的虚拟集合,可应用于 OU 级别的特定用户、组和计算机。这些可用于应用各种安全策略,以帮助强化 Active Directory。以下是可以应用的安全策略类型的非详尽列表:

  • 帐户策略 - 管理用户帐户与域的交互方式。其中包括密码策略、帐户锁定策略和与 Kerberos 相关的设置,例如 Kerberos 票证的生存期
  • 本地策略 - 这些策略适用于特定计算机,包括安全事件审核策略、用户权限分配(主机上的用户权限)和特定安全设置,如安装驱动程序的能力、是否启用管理员和来宾帐户、重命名来宾和管理员帐户、阻止用户安装打印机或使用可移动媒体、 以及各种网络访问和网络安全控制。
  • 软件限制策略 - 用于控制可在主机上运行的软件的设置。
  • 应用程序控制策略 - 用于控制某些用户/组可以运行哪些应用程序的设置。这可能包括阻止某些用户运行所有可执行文件、Windows 安装程序文件、脚本等。管理员使用 AppLocker 来限制对某些类型的应用程序和文件的访问。组织阻止不需要 CMD 和 PowerShell(以及其他可执行文件)的用户访问 CMD 和 PowerShell(以及其他可执行文件)的情况并不少见。这些策略并不完美,通常可以绕过,但对于纵深防御策略是必需的。
  • 高级审核策略配置 - 可根据审核活动(如文件访问或修改、帐户登录/注销、策略更改、权限使用情况等)进行调整的各种设置。

    高级审核策略

    image.png

    更新管理

适当的补丁管理对于任何组织都至关重要,尤其是那些运行Windows / Active Directory系统的组织。Windows Server Update Service (WSUS) 可以作为角色安装在 Windows Server 上,并可用于最大程度地减少修补 Windows 系统的手动任务。 (SCCM) 是一种付费解决方案,它依赖于正在安装的 WSUS Windows Server 角色,并且本身提供了比 WSUS 更多的功能。补丁管理解决方案可以帮助确保及时部署补丁并最大限度地扩大覆盖范围,确保没有主机错过关键的安全补丁。如果组织依赖于手动方法来应用修补程序,则可能需要很长时间,具体取决于环境的大小,并且还可能导致系统丢失并容易受到攻击。System Center Configuration Manager

组托管服务帐户 (gMSA)

gMSA 是由域管理的帐户,它提供比其他类型的服务帐户更高的安全级别,可用于自动运行但需要凭据才能运行的非交互式应用程序、服务、进程和任务。它们使用域控制器生成的 120 个字符的密码提供自动密码管理。密码定期更改,任何用户都不需要知道密码。它允许在多个主机之间使用凭据。

安全组

安全组提供了一种分配对网络资源的访问权限的简单方法。它们可用于将特定权限分配给组(而不是直接分配给用户),以确定组的成员可以在 AD 环境中执行哪些操作。Active Directory 在安装过程中会自动创建一些默认安全组。一些示例包括帐户操作员、管理员、备份操作员、域管理员和域用户。这些组还可用于分配访问资源(即文件共享、文件夹、打印机或文档)的权限。安全组有助于确保您可以向用户集体分配粒度权限,而不是单独管理每个用户。

内置 AD 安全组

image.png

账户分离

管理员必须有两个单独的帐户。一个用于他们的日常工作,另一个用于他们必须执行的任何管理任务。例如,用户可以使用其帐户登录其计算机以发送/接收电子邮件,创建文档等。它们应具有单独的帐户(如 ),以访问用于执行管理任务的安全管理主机。这有助于确保如果用户的主机受到威胁(例如,通过网络钓鱼攻击),攻击者将仅限于该主机,并且不会获取在域中具有相当访问权限的高特权用户的凭据。个人还必须为每个帐户使用不同的密码,以降低在其非管理员帐户遭到入侵时密码重用攻击的风险。sjones``sjones_adm

密码复杂性策略 + 密码短语 + 2FA

理想情况下,组织应使用密码短语或使用企业密码管理器随机生成的大型密码。标准的7-8个字符的密码可以使用Hashcat等工具通过GPU密码破解设备非常快速地离线破解。更短,不太复杂的密码也可能通过密码喷涂攻击被猜到,使攻击者在域中站稳脚跟。AD 中仅靠密码复杂性规则不足以确保强密码。例如,密码将满足标准的复杂性规则(大写,小写,数字和特殊字符的4个中的3个),但将是我在密码喷涂攻击中尝试的第一批密码之一。组织还应考虑实施密码筛选器,以禁止包含一年中的月份或季节、公司名称以及常用字词(如 和 )的密码。标准用户的最小密码长度应至少为 12 个字符,理想情况下,管理员/服务帐户的密码长度应更长。另一个重要的安全措施是为对任何主机的远程桌面访问实施多重身份验证 (MFA)。这有助于限制可能依赖于 GUI 访问主机的横向移动尝试。Welcome1``password``welcome

限制域管理员帐户的使用

功能强大的域管理员帐户应仅用于登录到域控制器,而不是个人工作站、跳转主机、Web 服务器等。这可以显著降低攻击的影响,并在主机受到威胁时减少潜在的攻击路径。这将确保域管理员帐户密码不会保留在整个环境中的主机上的内存中。

定期审核和删除过时的用户和对象

对于组织来说,定期审核 Active Directory 并删除或禁用任何未使用的帐户非常重要。例如,可能有一个特权服务帐户是在八年前创建的,该帐户的密码非常弱,从未更改过,并且该帐户不再使用。即使密码策略已更改为更能抵御密码喷涂等攻击,像这样的帐户也可能是域内横向移动或权限提升的快速简便的立足点或方法。

审核权限和访问

组织还应定期执行访问控制审核,以确保用户仅具有其日常工作所需的访问级别。审核本地管理员权限、域管理员的数量(我们真的需要其中的 30 个吗?)和企业管理员以限制攻击面、文件共享访问、用户权限(即某些特权安全组中的成员身份)等非常重要。

审核策略和日志记录

对域的可见性是必须的。组织可以通过可靠的日志记录,然后使用规则来检测异常活动(例如,许多失败的登录尝试,可能表明密码喷涂攻击)或正在尝试 Kerberoasting 攻击的指示器来实现此目的。这些还可用于检测 Active Directory 枚举。值得熟悉 Microsoft 的审核策略建议,以帮助检测危害。

使用受限组

受限制的组允许管理员通过组策略配置组成员身份。它们可用于多种原因,例如,通过将域中所有主机上的本地管理员组成员身份限制为仅本地管理员帐户和域管理员,以及控制高特权企业管理员和架构管理员组以及其他关键管理组中的成员身份,来控制域中所有主机上的本地管理员组的成员身份。

限制服务器角色

请务必不要在敏感主机上安装其他角色,例如在域控制器上安装 (IIS) 角色。这将增加域控制器的攻击面,并且这种类型的角色应安装在单独的独立 Web 服务器上。其他一些示例是不在 Exchange 邮件服务器上承载 Web 应用程序,而是将 Web 服务器和数据库服务器分离到不同的主机。这种类型的角色分离有助于减少成功攻击的影响。Internet Information Server

限制本地管理员和 RDP 权限

组织应严格控制哪些用户在哪些计算机上具有本地管理员权限。如上所述,这可以使用受限组来实现。我见过太多的组织,整个域用户组在一个或多个主机上具有本地管理员权限。这将允许破坏帐户(甚至是非常低特权的帐户)的攻击者以本地管理员身份访问该主机,并可能获取敏感数据,或者如果另一个用户登录,则可能从内存中窃取高特权域帐户凭据。远程桌面 (RDP) 权限也是如此。如果许多用户可以对一台或多台计算机进行 RDP,这将增加敏感数据泄露或潜在权限提升攻击的风险,从而导致进一步的危害。ANY

链接提供了有关 Microsoft 保护 Active Directory 的最佳实践的进一步阅读。