用许多更细粒度的用户替换超级用户(安全)

用许多更细粒度的用户替换超级用户(安全)

我发现我有一个超级用户帐户,该帐户基本上可以执行域中的所有操作,并设置为运行计划任务、Windows 服务和网站。

我继承了这种情况(我知道这是非常糟糕的做法)并且必须消除这个超级用户帐户并用每个应用程序的帐户替换它。

所以我的任务是首先绘制

  1. 该帐户的用途(例如在服务器 Y 上运行服务 X)
  2. 它尝试访问哪些文件夹/文件

一旦我完成了这个规划,我将创建许多只能访问所需文件夹/文件的帐户

例如,

Super account runs windows service X on server Y and writes to folder Z
                   windows service A on server B and write to folder C

被替换为

New Account 1 runs windows server X and has write access to folder Z                                     
New Account 2 runs windows server A and has write access to folder C

域中有许多服务器(20 多个)需要检查,所以我的具体问题是如何实现这一自动化。

我是一名开发人员,所以在系统管理任务方面有点生疏。我想对这个问题给出丰厚的赏金,但无法转让我的 stackoverflow 声誉。无论如何,希望你能帮助我。

答案1

嗯,不幸的是,您无法真正实现自动化。没有 ~all the places this account is used函数或属性,因此需要大量手动工作才能找出这些信息。

事件日志可能会有所帮助,通常在审计级别日志记录的帮助下,可以设置为单个文件和文件夹账户登录事件,并且两者都可以通过组策略进行设置(因此您不必在每个要监视的系统上进行更改)。就此而言,几乎任何东西都可以设置为审计级别日志记录,但我发现登录活动和文件/文件夹访问通常是最有用的,因为它们可以追踪所有给定帐户的使用位置。

如果你真的想让你的生活更轻松,在设置日志记录策略后,设置事件转发这样,您感兴趣的所有事件都会转发到一个位置(因此您不再需要在每个服务器上单独搜索它们)。

SysInternals 套件如果您尝试跟踪当前正在运行的进程,而不是仅仅收集日志并等待进程启动,它也非常有用(特别是 ProcMon 和 ProcExplorer),并且许多其他工具将有助于确定所有相关帐户可以访问的内容...这通常是尝试确定它实际执行的所有操作的一个良好开端。

哦,还要检查所有服务器上的计划任务。也许你会很幸运地发现这个“所有服务/管理员帐户”所做的所有事情都是通过服务器上的计划任务进行的。(不太可能,但无论如何你都需要在那里检查。)

除此之外,您实际上只能做一些“尖叫测试”。找到您可以找到的服务、进程和脚本,将它们移至适当的服务帐户运行,然后禁用“所有服务/管理员帐户”。查看哪些地方出了问题。同样,您的日志应该会有所帮助,因为任何仍在尝试使用该帐户的内容都会在某个安全日志中弹出失败审核。在修复任何出问题的地方时再次启用该帐户。根据需要重复。请记住,某些用途可能会在很长的时间间隔内发生(例如,每月运行一次的某些维护任务),因此您需要一段时间才能宣布成功并将这一切抛诸脑后。

如果这听起来像是一件费时费力的苦差事,那是因为它确实如此。站在你的立场上,我会用它来说服老板雇用/签约一名初级管理员来为我做这项工作,并以此作为为什么需要适当的标准和实际管理员的论据。让高级资源或开发资源(以他们高额的有效时薪)做那种基本上任何人都可以以每小时 10 美元的价格完成的日志阅读和基本管理工作,这真的没有什么意义。

相关内容