The Most Common Active Directory Security Issues and What You Can Do to Fix Them

过去几年与客户会面的启发是有启发性的,因为每个环境虽然独一无二,但往往具有相同的问题。这些问题往往归结为企业Microsoft平台的十年以上旧版管理。

我在今年的几个安全会议上谈到Active Directory攻击和防御,包括BSides,Shakacon,Black Hat,DEF CON和DerbyCon。 这些谈话包括有关如何最好地保护Active Directory企业免受最新和最成功的攻击媒介的信息

虽然过去十年的威胁发生了变化,但系统和网络的管理方式往往没有。尽管内部系统经常受到损害,我们仍然继续采取相同的行动和支持范式。我们必须拥抱“ 假设违约 ”的新现实。

假设违规意味着我们必须假设攻击者可以控制内部网络上的计算机,并且可以访问最近登录到该计算机的用户访问的相同资源。
请注意,当我描述Active Directory的风险和缓解措施时,这包括整体企业配置。

这里有一些最大的AD安全问题(正如我看到的)。这个列表不完整,但反映了常见的企业问题。
当我为组织执行Active Directory安全评估时,我继续发现许多这些问题。

思考Active Directory域是安全边界。

这会影响安全控制的设计,并可能引入漏洞。 Active Directory林可能设计有多个域以减轻某些安全性问题,但是由于域中信任森林的作用,实际上不会减轻它们。如果由于安全原因,一个组对自己的域具有安全性要求,那么很可能他们真的需要自己的林。在进行设计更改之前,请确保考虑了部署和管理的额外复杂性。

Microsoft描述了一个AD林:

林是Active Directory的完整实例。每个森林充当顶级容器,因为它容纳该特定Active Directory实例的所有域容器。林可以包含一个或多个域容器对象,所有这些对象共享一个通用的逻辑结构,全局目录,目录模式和目录配置,以及自动双向传递信任关系。森林中的第一个域称为林根域。该域的名称是指森林,例如Nwtraders.msft。默认情况下,Active Directory中的信息仅在林内共享。这样,林是Active Directory实例中包含的信息的安全边界。

使用默认设置部署系统。

通常被称为“违约的暴政”。不要以为最安全的默认安全设置。 Microsoft专注于包括旧版本在内的产品之间的兼容性。这意味着您需要调整安全设置以提高安全性。较新版本的Windows通常具有更多的安全默认设置和服务,具有有限的权限(和自动运行状态)。
传统的安全配置仍然是现代网络中最大的安全问题之一。

域管理员太多

Active Directory管理通常由少数人执行。 域管理员 (DA)的数量通常超过实际的AD管理员的数量。默认情况下,Domain Admins成员对所有工作站,服务器,域控制器,Active Directory,组策略等都具有完整的管理权限。对于现代企业中的任何一个账户来说,这是太大的权力。 DA通常包含服务帐户和与AD管理不直接相关的其他组。理想情况下,DA组应为空,以确保每个角色仅具有执行与该角色相关联的任务所需的权限。 Active Directory管理员只需要提供完整的AD管理员权限以及域控制器管理员权限的域“ 管理员 ”组的成员资格。除非您正在积极管理Active Directory作为服务,否则您不应该在域管理员中。对于管理员,拥有活跃的域名管理员帐户是一个安全隐患,而存储在保险箱中的“破坏玻璃”域管理员帐户凭据是有效的预防措施(通常是默认域管理员帐户)。
域管理员的成员资格很少是有效的要求。

不跟踪/监视/记录授权对Active Directory的访问。

管理Active Directory和相关资源的最佳方法是创建自定义组并委派这些组的特定访问。如果这样做没有得到正确的计划和执行,那么这个代表团可能会失去控制,从而为帐户提供比计划更大的资源访问。需要定期审核组及其访问权限才能正确确保Active Directory的安全性。不要使用现有的默认组来委派自定义组的权限(例如“帐户操作员”组中的“帮助桌面”成员),因为默认组提供比通常需要的权限更多的权限。
可以适当地利用授权来确保每个管理组的适当权限。这需要以简单的英语收集真正的要求,并将其转换为系统访问权限。

超额许可的服务帐户。

即使在实际需要全套权限DA的情况下,供应商也需要服务帐户的域管理权限,尽管它使产品更容易测试和部署。提供给服务帐户的附加权限可以恶意地使用,以升级网络上的权限。至关重要的是确保每个服务帐户只能授予所需的权利,而无需再授权。请记住,在服务帐户的上下文中运行的服务在LSASS(受保护的内存)中具有可被攻击者提取的凭据。如果被盗凭证具有管理员权限,则由于单个服务帐户,该域名可能会被迅速地损害。

密码少于20个字符的服务帐户。

问题是,如果支持Kerberos身份验证,请求使用服务帐户密码加密的数据(TGS服务票证)是微不足道的,并且此数据可以强制脱机以确定用于加密密码的密码。这意味着服务帐户密码可以离线猜测,并用于提升凭据。

对这个问题的最简单的解决方案是确保所有服务帐户都需要具有20个字符(或更多)的密码。配置细粒度密码策略实施服务帐户密码长度最有效方法 。细粒度密码策略仅在将域功能级别配置为Windows Server 2008或更高版本后可用。

使用组策略首选项来管理凭据(请不要这样做)。

组策略首选项提供在计算机上更改本地管理员帐户密码,创建本地帐户,使用凭据部署计划任务,使用凭据创建服务等功能。问题是,当凭据存储在位于域中每个域控制器上的SYSVOL共享中的XML文件中时, 凭据密码数据可以很容易地反转
如果您使用组策略首选项并在策略中输入密码,请删除该策略并删除该文件。
Microsoft包含一个PowerShell脚本来扫描组策略首选项XML文件中的SYSVOL密码数据。
组策略首选项可以是管理Active Directory资源的有用工具;但是,不要在组策略中存储凭据。这是最常见的凭据窃取情况之一,我经常在SYSVOL中的组策略首选项文件( 以及VBS脚本 )中发现密码。

在域控制器上运行非必要角色和服务。

域控制器应该安装有限的软件和代理,包括角色和服务。在域控制器上运行的非必需代码是企业Active Directory环境的风险。域控制器只能运行必要的软件,服务和对基本操作至关重要的角色,如DNS。

域控制器不能及时修补。

如果关键修补程序未及时应用于所有域控制器,整个域和林将面临风险。 MS14-068是一个很好的例子,说明如何不正确的修补可能危及AD森林。

未执行系统(服务器和工作站)。

根据2015年初发布的“2011年Verizon数据泄露调查报告” ,99%的漏洞利用漏洞已经有一年以上的补丁。实际上,每个组织都需要在几天内快速识别如何快速部署所有系统的关键/高补丁,并在此后尽快向所有系统部署较低级别的补丁。未修补的本地升级漏洞为攻击者提供了在计算机上快速获得管理员权限的能力,这通常会导致凭据被盗。在供应商发布补丁后几个月内没有修补的系统在当前的威胁环境中是不现实的,特别是对于高/关键级别的补丁。

域控制器未运行“最近”操作系统版本。

随着Windows Server的每个连续版本,Microsoft已经加强了其他安全性增强功能,大大提高了Active Directory的安全性。一旦安装了操作系统,这些安全功能中的一些可用,并且当域/林功能级别设置为更高版本时,其他安全功能可用。

Active Directory域功能级别的一些安全功能部分列出Windows版本:

Windows Server 2008 R2域功能级别:

Windows Server 2012域功能级别:

Windows Server 2012 R2域功能级别:

  • 身份验证政策和仓库
    • 保护特权帐户,限制他们可以登录的位置。
  • 受保护的用户安全组
    • PDC设置为Windows 2012 R2创建组
    • 受保护用户主机保护(Win 8.1 / 2012R2)防范:
      • 使用NTLM,Digest认证或CredSSP进行身份验证。
      • 缓存凭证
      • Kerberos预认证中的DES或RC4加密类型。
      • 帐号委托。
    • 受保护用户域强制防范:
      • NTLM认证。
      • Kerberos预认证中的DES或RC4加密类型。
      • 被委任为无约束或限制委托。
      • 更新Kerberos TGT超过最初的四小时生命周期。


多台计算机上的本地管理员帐户密码相同。

计算机上的本地帐户是否能够登录到该本地计算机,无论它是否已加入Active Directory。有趣的是,如果在多台计算机上存在相同的管理员帐户名称和密码,则登录到该计算机上的管理员可以使用相同的凭据连接到另一台计算机。这意味着如果攻击者在一台计算机上获得本地管理员访问权限,并且可以使用该证书连接到其他计算机,则可能会损害其他计算机。当攻击者在多台计算机上拥有管理员权限时,只有在找到具有提升权限的域凭据之前的时间问题。

现在至关重要的是确保本地管理员密码在网络上的每台计算机上都是唯一的。 Microsoft LAPS是利用现有Active Directory功能的无成本选项。

Active Directory管理员登录到不受信任的系统 (非DC,常规工作站,服务器等)。

恶意代码将进入网络中的计算机。利用此恶意软件的攻击者将搜索凭据以窃​​取和重新使用。如果升高的帐户登录到网络上的各种计算机,系统上可能被盗的凭据。限制系统提升的凭据显式登录到(交互式登录),确保这些凭据不可用于攻击者可能访问的系统。换句话说,将管理员隔离到仅管理系统以及特殊的管理工作站可以保护管理员凭据免受凭据盗用。

不监视管理员组成员资格

大多数组织意识到,管理员权限的帐户数量每年增加(如果不是每月增加),而不会下降。
需要仔细检查Active Directory中的管理组,特别是添加新帐户时。更好的是,在将新帐户添加到组之前,请使用需要批准的系统。该系统还可以在批准的访问权限到期时从用户组中移除用户。一个自动化的系统,使管理组空白,直到需要相关访问是限制和保护管理员组成员身份的最佳方法。

不清理管理员组成员身份 - 确保不再需要管理员权限的帐户被删除。该项目与前一个项目密切相关。
需要定期检查管理员组成员资格,可以删除不再需要关联权限的帐户/组。可以利用上一个项目中提到的系统来确保只有当前批准的成员在组中。

不利用平台中的最新安全功能 (较新的操作系统/通过补丁进行的增强功能)。

随着微软发布新的操作系统,出现了更新的安全功能,增强了环境的安全性。此外,还发布了修补程序,其中包括改进默认情况下未设置的安全设置,这些设置应进行研究以确定新设置应该是什么。一个很好的例子是“后端口”补丁KB2871997 。使用较旧版本的Windows来限制环境的整体安全状态。

不自动删除不活跃(过时)用户和计算机帐户。

在Active Directory中启用的非活动用户帐户是攻击者的有吸引力的目标。这是因为无效的用户帐户可以被利用来访问资源而不被注意到,因为它是一个有效的帐户。假设在发生这种情况之前需要对帐户进行控制,但是有几种办法可以接管这个帐号。由于它是一个不活动的帐户,所以不再是该帐户的所有者,因此没有注意到使用。

保持传统身份验证在网络上处于活动状态(LM / NTLMv1)。

Windows Server 2008 R2包括功能,以帮助识别网络上的NTLM身份验证使用 。完全删除这些传统身份验证协议非常重要,因为它们不安全。可以通过使用组策略安全设置激活删除和预防LM和NTLMv1的使用。
计划至少迁移到NTLMv2和Kerberos,长期目标是Kerberos(尽管这不会解决所有安全问题)。

太信任 - 没有适当安全控制的信任或信任太多。

森林和域名信托需要定期重新评估(也许每年都可以),以确保它们仍然是必需的,它们是正确的类型(是双向信任真正需要的),而且安全控制就足够了。如果未将信任配置为过滤SID过滤(隔离区) ,则可能无法很好地了解安全风险。此外,重要的是评估“ 选择性身份验证 ”是否适合在任何或所有现有的信任上启用。要问的第一个问题是,“如果我删除这个信任,有什么影响?”如果答案是“我不知道”或“我不确定”,最好禁用或删除信任。

不隔离关键服务器等网络资源。

大多数内部网络是平坦的:任何计算机通常可以连接到任何其他计算机,这意味着任何工作站都可以经常连接到任何服务器,包括关键资产,如金融或人力资源数据库。鉴于目前的威胁情况,这种范式需要改变。关键服务器不适合直接从网络上随机的计算机访问。
考虑到“关键任务”服务器通常运行Windows 2003或更早版本,并允许内部网络上任何地方的连接。这是一个“非常糟糕的事情”。至少可以做到的是将这些系统的连接限制到只需要访问的系统(包括根据需要进行代理访问)。

(访问次数为34,154次,今天访问量为68次)

为您推荐了相关的技术文章:

  1. fcn - 一键接入私有网络的工具
  2. 内网安全之域服务账号破解实践
  3. Mimikatz and Active Directory Kerberos Attacks
  4. Microsoft Local Administrator Password Solution (LAPS)
  5. The WPSetup Attack: New Campaign Targets Fresh WordPress Installs

原文链接: adsecurity.org