当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 定义的 Active Directory 安全组

作者:精品下载站 日期:2024-12-14 08:21:36 浏览:13 分类:玩电脑

定义的 Active Directory 安全组


[玩转系统] 定义的 Active Directory 安全组

Active Directory 安全组在当今的大多数组织中发挥着至关重要的作用,但人们对它们存在很多困惑。今天,我将准确解释什么是 Active Directory 安全组、它们如何工作以及如何使用它们来提高 Active Directory 安全性。

什么是 Active Directory 安全组?

安全组的概念几乎与多用户计算机一样存在。从根本上讲,安全组的目的是将用户帐户收集到单个对象中,以简化权限管理:IT 管理员无需为每个单独的用户维护一组单独的权限,而是向单个用户授予一组特定的权限。对象 - 安全组 - 并且这些权限会传递给属于安全组成员的所有用户。因此,新用户的配置变得更加容易;只需将用户添加到适当的安全组,他们就可以顺利提高工作效率。同样,更改角色的用户只需调整其组成员身份即可快速准确地重新配置。

Active Directory 安全组只是 Microsoft 在 Active Directory 中实施的安全组。

这一切都非常简单,那么安全组可能值得写一整篇博客文章吗?

随着时间的推移,IT 基础设施变得越来越复杂,安全组也不例外。为了保护您的 Active Directory 环境并提供可靠的用户体验,深入了解 Active Directory 安全组非常重要。让我们深入了解一下。

警告:Azure Active Directory 安全组虽然通常通过 Azure AD Connect“集成”,但其工作和行为与 Active Directory 截然不同安全组,因此本文中的信息不一定适用于它们。

Active Directory 组的类型

让我们先从高层次开始,然后再放大。Active Directory 中有两种基本类型的组:安全组通讯组。我们已经看到安全组用于分配权限。相反,创建通讯组通常是为了加快向用户组发送电子邮件的速度(尽管通讯组不需要邮件路由属性)。

然而,从结构上来说,安全组和通讯组实际上是同一类对象。事实上,只需在 Active Directory 用户和计算机 (ADUC) 中进行修改,就可以将组从安全组更改为通讯组(反之亦然)。

Active Directory 安全组的基础知识

现在让我们深入了解 Active Directory 安全组。 Active Directory 安全组是位于 Active Directory 容器中的对象。这些对象有一个名为成员的属性,它列出了其他对象的可分辨名称,例如用户帐户、计算机帐户、服务帐户和其他组。 (记住最后一项,因为稍后它会很重要)。

注意:在本文的其余部分中,我将主要为了简洁起见而引用用户,但该信息对于属于 Active Directory 安全组成员的计算机或服务帐户同样有效。

当用户使用 Active Directory 域控制器进行身份验证时,将计算其在所有组(以及属于这些组的成员的所有组)中的成员身份,并将其写入其安全令牌。当它稍后尝试访问资源时,将引用该安全令牌来查看是否应允许访问。

[玩转系统] 定义的 Active Directory 安全组

安全组子类型

每个安全和分发组都可以细分为“全局”、“通用”或“域本地”。对于安全组,这些子类型之间的差异与这些组在多域林中的运作方式有关。显示差异的最简单方法是在表格中:

[玩转系统] 定义的 Active Directory 安全组

您可能想知道,既然通用组类型几乎具有其他两种类型的所有功能,为什么会存在这些不同的子类型?

答案与这样一个事实有关,即 Active Directory 已经足够老了,可以喝酒了,它是随 Windows 2000 一起发布的。当时有两个限制是一个问题,尽管现在它们不再是问题了:

  • 复制带宽 - 通用组被复制到所有全局编录,这会增加复制流量(尽管对于现代网络来说还不足以产生影响)。
  • 令牌大小 - 用户的 Kerberos 令牌中的空间有限,超过该限制时就会发生不好的事情。通用组和域本地组最多占用 40 字节的令牌空间,而全局组仅占用 8 字节。然而,随着Windows Server 2012和Windows 8的出现,微软将默认令牌大小增加到48,000字节,并添加了SID压缩,这在很大程度上解决了所谓的“令牌膨胀”问题。

如何使用安全组来提高安全性

我们已经简单地谈到了这一点,但现在是时候正面解决这个问题了:Active Directory 安全组如何工作来真正保护事物?这是一个很好的问题,它的答案也回答了有关安全组在实践中如何工作的一些最常见的问题:

  • 我能否确定是否使用了安全组?如果使用了,通过什么方式使用?
  • 如果我被从某个组中删除,为什么我仍然可以访问该组所保护的资源?如果我被添加到某个组中,为什么我不立即访问该组所保护的资源?

所有这些问题的稍微简化的答案是:用户的安全令牌用于所有安全评估。当用户发出身份验证请求时,系统会计算该用户在安全组和嵌套安全组(但不包括通讯组)中的成员身份,并将当时的这些值写入用户的 Kerberos 安全令牌。

然后,当用户尝试访问受保护的资源(例如文件系统中的文件夹)时,操作系统会根据写入该文件夹的访问控制列表 (ACL) 检查安全令牌。如果用户的令牌中有与 ACL 相对应的条目,他们将获得 ACL 中定义的任何访问级别。如果他们不这样做,他们将被拒绝访问。

请注意,在此过程中文件服务器不会查询组本身。它不需要 - 用户的身份验证过程会查询该组。这就是为什么从 Active Directory 的角度根本无法查看某个组是否被“用来”提供对任何内容的访问。如果该组有成员,则每次该成员登录网络时都会“使用”该组。 Active Directory 无法了解任何资源是否确实在用户令牌中查找该组的安全标识符。

其次,请注意,安全组的枚举发生在用户身份验证期间。这就是为什么用户在从组中删除后(至少在一段时间内)能够访问资源的情况并不少见 - 用户仍然拥有有效的票证,表明他们是该组的成员,除非重新访问他们的身份验证后,他们可以继续使用该组的安全令牌。 Active Directory 中 Kerberos 票证的默认生命周期为 10 小时。

这也是授予新访问权限时“请注销并重新登录”(或“锁定和解锁”)指令的原因;这两个活动都会导致 Kerberos 令牌被刷新。

Active Directory 安全组中的新功能

Active Directory 安全组多年来没有发生太大变化。然而,借助 Windows Server 2016 中的特权访问管理 (PAM) 功能,Microsoft 通过一项有趣且有价值的新功能增强了其安全组:基于时间的组成员资格。

在 Active Directory 林中启用此功能后,可以将成员添加到具有附加属性的安全组:生存时间 (TTL)。在这种情况下,用户帐户仅在 TTL 属性中指定的时间到期之前才成为该组的成员;然后它将被删除。这种方法非常适合通过安全组授予的特权访问 - 由于特权访问是短暂的,因此强大的帐户对于攻击者来说是一个不太有吸引力的目标。

TTL 功能还提供了另一个好处。正如我们所看到的,即使用户已从组中删除,他们仍可以保留访问权限,因为他们的 Kerberos 票证可能仍然有效。但是,当为用户分配具有 TTL 的组中的成员身份时,其 Kerberos 令牌的过期时间将与该组的过期时间同步。这意味着一旦 Active Directory 不再将它们视为组成员,它们的令牌将被强制刷新,从而使用新的组列表对其进行更新。

临别赠言

如您所见,Active Directory 安全组在控制对重要系统和数据的访问方面发挥着关键作用。因此,了解它们的工作原理对于加强 Active Directory 安全至关重要。特别是,使用 TTL 属性可以帮助您降低与长期特权访问相关的风险,这是当今的主要攻击媒介。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯