用Windows 2008 R2中的事件查看器功能来审计AD管理员

日期: 2010-10-08 作者:Gary Olsen翻译:Dan 来源:TechTarget中国 英文

微软系统中任何关于如何限制或控制管理员权限的讨论通常都会得到这样的结果:你怎样才能不把管理权限送给那些你不信任的人?这有一定道理,但是在没有证据表明管理员做错了事情的情况下,如何才能正确判断一个管理员是否值得信任呢?再者,你如何证明你的判断呢?   你不能剥夺一个域管理员太多权限,尤其是在每个域都要管理的多网域环境下,所以说有时候限制管理员的权利和授权活动这项工作很难实现。辅助人员和供给人员通常也需要具有管理权利,而且有时政治需求还会需要更多的管理人员。所以,真正的问题是,你如何去审计一个管理员?   虽然答案是只要启用审计就行了,但是只是简单地启用审计功能并不能解决所有的问题。举例来说,我最……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

微软系统中任何关于如何限制或控制管理员权限的讨论通常都会得到这样的结果:你怎样才能不把管理权限送给那些你不信任的人?这有一定道理,但是在没有证据表明管理员做错了事情的情况下,如何才能正确判断一个管理员是否值得信任呢?再者,你如何证明你的判断呢?

  你不能剥夺一个域管理员太多权限,尤其是在每个域都要管理的多网域环境下,所以说有时候限制管理员的权利和授权活动这项工作很难实现。辅助人员和供给人员通常也需要具有管理权利,而且有时政治需求还会需要更多的管理人员。所以,真正的问题是,你如何去审计一个管理员?

  虽然答案是只要启用审计就行了,但是只是简单地启用审计功能并不能解决所有的问题。举例来说,我最近与许多管理员一起进行了一项大型的活动目录部署活动。他们有一个应用程序,使用特定的用户对象属性提供对该应用程序的连接。站在安全相关立场,他们发现管理员可以禁用审计功能,修改一些关键的属性,并且可以对该应用程序做坏事。然后该管理员可以重新启用审计功能而不会被觉察---甚至Windows Server 2008 R2的属性审计功能也是如此。启用审计功能的时候,系统可以记录足够的事件,从中可以看出谁改变了对象,以及谁改变了属性。但是由于审计功能被禁用,所有这方面的证据都消失了。

  事实证明,当非目录对象审计功能开启的时候,事件 ID 4907 (图1)被记录了下来,然而目录对象的审计却没有记录这个事件。

Windows 2008 R2,事件查看器,AD管理员
图1.  事件ID 4907

  虽然这个事件清楚地显示出了审计政策发生了变化以及谁进行的这项改变,但是我们不能在微软系统中用其它方法在事情被记录之前得到所需信息,我需要这方面的功能。这很重要,因为它允许我向大家示范事件查看器的强大功能,比如为Windows Server 2008 R2准备的自定义查看以及排序分类/存储过滤器功能等。如果启用对象审计的话,详细的审计会在安全日志中添加数量巨大的事件。在旧版本的事件查看器中,从这些事件中选出你想要的分类非常困难。

  为了审计目录对象,必须启用待审计的对象上面的组策略对象设置选项“审计目录服务访问” (图2)。

Windows 2008 R2,事件查看器,AD管理员
图2.  审计目录服务访问GPO

  另外,审计必须在对象本身执行。比如,要配置用户对象的审计设置,步骤如下:

  • ? (ADUC活动目录用户和电脑)的管理单元中找到想要设置的对象。
  • ? 打开对象属性对话框并选择安全选项卡。一定要在查看菜单中启用高级功能。
  • ? 在安全页选项卡中,点击高级按钮。
  • ? 在高级属性对话框中,选择审计选项卡。选择添加按钮来添加用户或者组审计,如图3所示。你可以在接下来的窗口中指定安全选项。点击确定按钮退出所有打开的窗口。

  用审计属性中指定的管理员身份登录,测试审计功能是否ok(在我的例子中指定的管理员是JrAdmin)。修改审计功能已经开启的对象并检查安全事件日志。举个例子,你可以删除用户对象或者修改其中的一个属性。

Windows 2008 R2,事件查看器,AD管理员
图3.  ADUC中的高级安全设置

  审计功能开启之后,会有大量的事件出现在安全日志中,常见的有以下几种:
? 事件ID 4738---当对象被修改的时候系统就会记录该事件。
? 事件ID 4662---许多这种事件带有各种各样的少量信息(图4)。在我的工程中,一个单一的对象改动就产生了25个这种事件。

Windows 2008 R2,事件查看器,AD管理员
图4.  Event ID 4662的属性

  事件ID 5136--- 这个事件提供了更多改动的详细信息,请看下面的例子。请注意我们可以看到用户改变目录对象的DN,也能够看到对象的DN。我们还可以看到描述属性发生了改动,因为我们看到了原来的值以及被删除的值(请注意这里为了简短起见有些内容被删除了):

Log Name:   Security
Event ID:   5136
Task Category:   Directory Service Changes
Computer:   w2k8r2-dc1.w2k8r2.Wtec.adapps.hp.com
Description:   A directory service object was modified.
Subject:
         Security ID: W2K8R2JrAdmin
         Account Name: JrAdmin
         Account Domain: W2K8R2
Directory Service:
         Name: w2k8r2.Wtec.adapps.hp.com
Object:
         DN:
         CN=AdmUser401,OU=Atlanta,DC=w2k8r2,DC=Wtec,DC=adapps,DC          =hp,DC=com
         GUID:
         CN=AdmUser401,OU=Atlanta,DC=w2k8r2,DC=Wtec,DC=adapps,DC          =hp,DC=com
         Class: user
Attribute:
         LDAP Dsplay Name: description
         Syntax (OID): 2.5.5.12
         Value: This is a test
Operation:
         Type: Value Deleted
         Correlation ID: {1e193e1d-537f-49c7-bb69-bb50aa4542c2}
         Application Correlation ID: -

  现在让我们来考虑几个选项以及结果。
? 启用GPO审计(目录访问),但是对象审计被禁用
-–结果:当用户从对象审计列表中移出的时候,系统记录了事件ID 4662。
? -–结果:当改变对象的时候,系统记录了事件ID 4738。
? 禁用GPO审计(目录访问),启用对象审计。
 -*#160结果:事件ID 4662, 4738 和5136都被记录了下来。

  我们可以很容易地看到开启完整审计功能与禁用GPO审计而启用对象审计时事件数量上的区别。请注意,即便是禁用了GPO审计,重要事件ID 5136也会被记录,它会显示出属性改变的详细信息以及谁进行了这个改变。如果GPO审计和对象审计都被禁用,系统只会记录一种事件Event ID 4738,这个事件中没有任何有用信息:

Log Name: Security
Event ID: 4738
Computer: w2k8r2-dc1.w2k8r2.Wtec.adapps.hp.com
Description: A user account was changed.
Subject:
         Security ID: W2K8R2JrAdmin
     Account Name: JrAdmin
     Account Domain: W2K8R2
Target Account:
         Security ID: W2K8R2AdmUser400
     Account Name: AdmUser400
     Account Domain: W2K8R2

  请注意,虽然各种审计功能的组合能够产生某些事件,但是对于目录对象来说,还是没有事件能够记录其审计策略的改变。非目录对象(文件、文件夹等等)会记录在事件ID 4907中。

  知道了上述的这些事件,那么解决方案是什么呢?下篇文章中,我们将详细为您提供相应的解决方案

相关推荐