Active Directory 是 Windows Server 的最佳功能之一,但它也是一个闪亮的目标。如果受到攻击,它会给攻击者您的 Windows 网络。
在具有面向外部的 Windows 服务器(在我的情况下为 Web 服务器)的环境中,需要哪些步骤来保护 Active Directory 免受攻击?如果域成员受到威胁,您如何减少潜在的损害?最后,如果域控制器受到损害,是否有任何方法可以减少潜在的损害?
我正在寻找专门与 Active Directory(2003 和 2008)相关的信息。应该给出通用的最佳实践(阅读您的日志、安全的管理员密码等)。
请勿使用域管理员或类似特权帐户登录网络上的任何计算机,但 DC 除外。这样一来,受感染的系统就无法窃取您的凭据。
拥有一个单独的特权帐户来管理面向 Web 的机器。
如果可能,在面向 Web 的机器上安装严密的网络级防火墙。
如果可能的话,将面向 Web 的机器放在 DMZ 中——这基本上只是一个子网,与内部网络的其余部分的连接有限。
如果域控制器受到损害......严格来说,您的域已经消失并且需要重建。更实际地,它取决于妥协的类型,并且您必须根据具体情况进行评估。我继承了两个严格来说“受损”的域,我重建了一个并修复了第二个。有很多因素需要考虑。
以下是我使用的一般方法。希望我可以为这些添加很多内容:
域控制器位于它们自己的网段上。所有进出域控制器的流量都必须通过网络防火墙。
域控制器不运行外部可访问的服务。
RPC 端口范围在所有域控制器/成员上被限制为一组已知的端口:
仅允许域成员对域控制器进行以下访问(在网络防火墙、域控制器的主机防火墙和域成员的主机防火墙中 - 使用组策略来强制执行此操作):
设置 IPSec 策略,以便所有域控制器到域控制器的流量都通过网络加密
使用组策略加强主机防火墙的网络防火墙规则。具体来说:
将所有网络服务配置为以 Active Directory 用户身份运行(IIS 应用程序在名为“svc-servicename”的用户下运行)。这些用户被分配到具有削弱特权的单个组,并从域用户组中删除。
将管理员帐户重命名为其他名称,将“管理员”添加为禁用的访客帐户(克服起来很简单,但它可以阻止一些愚蠢的脚本)。
面向外部的服务器位于与总部/办公室机器不同的域中。我有一个单向信任(DMZ 信任 HQ)来简化一些登录,但我正在考虑逐步淘汰它。
我曾经读过的一份 Microsoft 最佳实践文档建议您面向 Internet 的服务器(Web、电子邮件等)应该是独立的机器,或者位于与您的公司林分开的 Active Directory 林中。这个单独的林应该完全存在于 DMZ 中,而您的公司 AD 林应该完全存在于公司防火墙最严格的边界内。与常规公司计算资源相比,需要访问面向 Internet 的服务器的用户要少得多,因此以这种方式设置系统不会在用户支持方面带来显着的额外管理开销。您只需要记住每个域的单独用户名和密码。
这是一个有点相反的观点。我在高等教育部门工作,有一个无线 LAN 部分,学生(以及他们包里的一到三个设备之间的某个地方)可以连接到该部分。这是在我们的互联网边界防火墙内,但在某种程度上仍然受到更大网络的多汁好处的防火墙保护。但是,有一些限制。
为了允许学生从他们的笔记本电脑打印,我们必须允许域登录,这反过来又需要对 DC 的可见性。网络共享也是如此。更重要的是,学生笔记本电脑没有域名,我们对它们上面的内容没有任何控制。
当我第一次来到这里时,我很惊讶这样一个开放的 Windows 网络竟然能存活下来。但确实如此。是的,Slammer 是一种根深蒂固的痛苦。是的,我们确实有偶尔被黑客入侵的服务器(来自 Internet 端,而不是 WLAN 端)。总而言之,我们在 WLAN 上看到的大量恶意软件更感兴趣的是发送大量电子邮件,而不是扫描机器本地的所有内容以进行蠕虫。
我们确实在 WLAN 和任何有趣的事物之间设置了身份验证障碍,这很有帮助。
此外,当 RIAA 向我们发送一个 torrent 违规通知时,我们将永远查看 WLAN 登录日志以查看谁在哪个 IP 上。
我建议阅读Best Practice Guide for Securing Active Directory Installations。
我认为在不受信任的网络上很重要的事情:
前两个建议要求您设置 PKI 服务。实施 PKI 可能会让人头疼,但它可以为您提供许多非常有趣的功能,并允许您在不受信任的环境中有效且安全地操作。
一般规则是,DC 上唯一发生的事情是 Active Directory 本身。当然,这并不总是可以实现的,但这一切都是为了减少可能暴露的服务数量。
您需要了解散列传递 (PtH)和票证传递 (PtT) 攻击,因为它们是攻击者在整个 Windows 网络中传播的主要手段。Microsoft 有 PtH 指南,但如果您还不熟悉安全问题,可能会有点复杂:https ://www.microsoft.com/en-us/download/details.aspx?id=36036
最好的方法是使用微软的红森林设计。红色森林是一个单独的森林,具有单向信任,包含您的域管理员帐户。它需要额外的努力和服务器,但如果你小心的话,你可以获得 95% 的好处。
任何具有 AD 特权的帐户(域管理员、服务台等)都不应登录任何常规成员服务器或工作站。即,您应该将拒绝登录权限设置为在常规成员计算机上包括域管理员和其他特权组。
通常,所有管理员活动都应该发生在无法访问 Internet 并且与可以访问的机器的 IP 连接受限的系统上。
显然,如果您有单独的服务器和工作站管理帐户,则只能以这种方式限制域管理员。您还应该有单独的网络/电子邮件非特权帐户。这种角色分离是确保网络安全的关键方面之一。
域管理员绝不应该登录到 DMZ 系统或连接互联网的机器。你甚至不应该从一个 RDP。您应该为这些帐户配备专用工作站,并且您的常规工作站帐户应该无法登录 AD 管理员工作站。应该有零个帐户可以登录常规工作站和 AD 管理员工作站。当攻击者在一个工作站上获得管理员/系统权限并随后传播到其他工作站时(通常通过在工作站管理员登录时窃取凭据),这可以防止这些高权限凭据被盗。
以类似的方式,DMZ 机器应该有专用帐户,并且任何帐户都不应同时访问 DMZ 和内部资产。也可以设置一个单独的 DMZ 域(有或没有对内部域的信任)。
在妥协后恢复 AD 是可能的,但必须绝对正确地完成--- 显然,在恢复和清理域时会有一些停机时间。我们估计在实施红色森林前几天从受损 DC 中恢复;不到 12 小时,有一片红色的森林。
请注意,每项安全措施都是整个解决方案的一部分,其余的都是您需要的。这些建议专门针对保护 AD。您仍然需要对网络进行分段并具有适当的防火墙/ACL 限制。您仍然需要使用智能卡(强烈推荐)或良好的密码策略来正确保护您的用户帐户。您仍然需要入侵检测、防病毒、良好的外部防火墙和 Web 代理。