允许组织中的开发人员访问本地桌面和/或活动目录管理员访问和权限是否常见?

信息安全 视窗 审计 遵守 编程 窗口服务器
2021-08-27 00:50:58

我在一家拥有大约 1000 多名员工的公司工作。我们目前有从事基于 Web 项目的编程开发人员(大约 50 人)。

最近,出于安全考虑,我们的 IT 和安全部门实施了一项限制,不再允许本地管理员访问机器。整个公司为工作站和服务器运行 Windows 操作系统。我完全同意删除管理员的决定,老实说,我认为这是姗姗来迟(因为公司处理患者数据并要求遵守 HIPAA)。不幸的是,我认为他们的决定太过分了。我假设将为合法需要管理员访问权限来完成其工作的用户(EX 我的编程团队)创建一个子组或 AD 组,例如保留管理员访问权限的技术组。然而情况并非如此,唯一的组为网络和帮助台人员创建了一个特定的管理员组。

主要问题是,作为 Web 开发人员,我们运行的程序需要本地管理员访问权限,不幸的是,如果没有它们以管理员身份运行,我们就无法完成我们的工作。示例程序包括用于 ASP.NET Web 开发的 Visual Studio、用于本地开发的 MAMP、composer 等。我相信这些程序需要管理员访问权限的主要原因是因为它们需要运行和修改本地 IIS、命令行等。

基本上,本地管理员访问权限何时被删除的时间很短。大约 2 天后,开发团队在工作能力方面陷入困境,我和其他团队负责人基本上对 IT 员工大喊大叫以提出解决方案,他们最终承认并找到了一个第三方程序允许管理员创建以管理员身份运行某些程序的能力,即使我们没有本地管理员访问权限。

不幸的是,我们用于本地管理员访问的这个程序存在令人难以置信的错误和不可靠,并且不是来自有信誉的来源,而且似乎没有太多可供选择的替代品。(我不想透露我们使用的程序。)

我的问题是,不允许程序员/开发人员在公司或公司进行本地管理员访问是典型的情况吗?如果这样做是常见的做法,那么开发人员如何以本地管理员的身份运行他们需要的程序?

关于我们的网络环境的更多信息(并不是说它真的与我想添加的问题有关):

  1. 我们使用 AppBlocker 来阻止不在批准列表中的程序
  2. 我们使用电子邮件安全拦截器来执行扫描附件并将其转换为 PDF 等操作。
  3. 我们在所有工作站上至少有 2 个主要的防病毒程序。
  4. 网络及其服务器非常隔离,用户只能访问他们合法需要访问的某些服务器、文件夹和数据库。
4个回答

这是一家对安全感兴趣的软件公司提供的一个数据点。我知道这在类似的组织中很常见。

有许多网络。它们在物理上是分开的和气隙的,运行不同颜色编码的网络电缆。

每个员工都有一台“管理”机器,可以连接到互联网(通过代理)进行电子邮件等。所有用户都被严格锁定,并且有严格的设备和访问控制。

除此之外,每个开发人员都有一台“工程”机器。这具有完全的管理员访问权限,用户可以做任何他们喜欢的事情。然而,它只连接到工程网络(没有到 Internet 的路由)。

在大多数软件开发环境中,这可能被视为极端情况,但在对高安全性和开发人员自由有冲突要求的组织中,这是一种常见的解决方案。

要回答您的问题,是的,允许开发人员管理员访问是很常见的,但这并不总是意味着管理员访问可能导致信息安全问题的机器。

根据我的经验,开发人员在他们自己的机器上拥有管理员访问权限是很常见的。他们在自己的机器上没有管理员访问权限常见。然而,在后一种情况下,通常会做出一些调整,这样他们就可以在没有太多摩擦的情况下完成工作。

一种非常常见的适应方法是访问工作站上的Hypervisor(无论是 VMWare 的某个版本还是 Windows 附带的 Hyper-V),以及根据需要在该管理程序中创建和销毁 VM 所需的特定权限Hyper-V / VMWare ),包括创建对来宾操作系统具有管理员权限的 VM。通常,这些虚拟机中的一些将长期存在,即使它们不是一直运行,也很少需要从头开始准备整个虚拟机,只是为了对需要管理员的东西进行快速测试特权。

Hypervisor 可能会或可能不会被配置为允许其 VM 访问 Internet;我已经看到了这两种方式,虽然我个人强烈赞成互联网访问应该被允许......至少对于我最有经验的开发类型。但是,如果授予互联网访问权限,则可以并且至少应该将其配置为强制虚拟机进入专用的 VLAN,与公司网络的其余部分分开。我不确定这是否可以通过 Hyper-V 或 VMWare 直接强制执行,但您可以在许多网络交换机的端口上使用 802.1x,以防止未经授权的机器(包括开发者虚拟机)访问某些 vlan。然后,您可以向开发人员提供一些关于如何在 VM 中设置 vlan 标签的小教程,并让他们知道在他们的交换机端口上将允许哪些 vlan 标签。我还看到这只是通过培训作为一项政策法令而不是通过技术措施来实施的,也许偶尔会进行友好的审计以鼓励合规性并确保开发人员知道它的重要性。

当然,这与为开发人员提供足够强大的机器同时运行多个虚拟机相吻合。

我在一家相当大的投资管理公司(约 6000 名员工)工作,开发人员是我们批准本地管理员访问的群体之一。我们告诉他们不要安装任何软件,因为这是由本地桌面/软件合规性处理的。

我们还有一个开发人员 AD 组,允许成员更改其机器上的执行策略,而无需本地管理员。

根据我的经验,允许和禁止本地管理员访问是很常见的,就像后者的肮脏变通办法一样常见。- 所以你应该问自己:

本地管理员权限加剧了对您网络的哪种威胁?

答案应该是:NONE - 对网络中资源的访问应基于每个用户进行限制,与此用户是否在其计算机上具有本地 root、admin 或 masterOfTheUniverse 访问权限这一事实完全无关。如果用户有权限炸毁你的网络,本地病毒甚至不需要管理员权限,它可以使用用户帐户炸毁你的网络。- 如果用户帐户无法访问您网络上的某些内容,则本地管理员权限不会对此进行任何更改。

您应该相信您的开发人员会负责任地处理他们自己的机器 - 并且在您的公司本地管理员权限中进行合理的安全配置应该只对一件事造成危险:本地机器。因此,通过提供本地管理员,您接受的唯一风险是开发人员破坏了他自己的机器(他已经可以用一杯咖啡做到这一点)。

附录:您应该授予您的开发人员在需要时使用本地管理员权限的可能性。这并不意味着他们应该一直使用不安全的管理员帐户登录,但您应该相信他们会在需要时明智地使用它 - 无需每次都请求许可。

为什么开发人员应该拥有本地管理员权限

您的开发人员是您委托设计业务核心运营的人。今天的大多数公司都非常依赖他们的软件,因此开发人员是塑造公司非常重要部分的重要资源。

首先是生产力更高的好处,因为开发人员可以在他的本地机器上配置、安装和测试他需要的一切。他可能需要某些软件、辅助工具或不寻常的配置来试验他的软件的某些方面(例如在旧版本的操作系统或旧驱动程序/SDK 上运行他的软件)。

其次,向您的开发人员展示您如何评价他们的好处(在我看来甚至更大)。你向他们表明你信任他们拥有自己的机器——你对待你的开发人员就像是负责任的 IT 精通人,他们可以在没有保姆的情况下管理自己的机器。(在许多开发人员没有本地管理员的公司中,他们将不得不为他们需要的每个安装/配置询问技术支持或安全性。在许多情况下,这些技术支持人员对软件的了解少于您的高级首席开发人员,但他们仍然不得不乞求他们只需要完成工作的事情,这可能非常令人沮丧。)