锁定开发人员机器比付出更多的努力值得吗?[关闭]


19

作为开发人员并为开发团队提供IT管理/支持后,我遇到了许多不同类型的环境,从完全锁定到完全非锁定。根据我有限的支持经验,我认为使用较少锁定的机器支持的工作较少,我当然觉得这很容易,但是当然这可能会产生偏差。我想从IT支持的角度了解这种观点,难道要真正支持那些没有锁定机器的开发人员吗?


10
考虑到来自堆栈溢出的服务器故障人口中有大量程序员,我敢打赌这会受到选择偏见的困扰。开发人员真正要说的是:“请锁定我!”?
罗马

Answers:


11

不锁定开发人员计算机的最大问题是,他们开发的任何软件都将需要完整的管理员特权才能运行。开发人员的访问权限应与他们将在其中运行的环境相同。如果他们需要“可自我支持”或“可自行安装”,请给他们另一个管理员帐户(例如Bruce.admin),以便在执行管理时使用东西,但不是日常使用。

就像没有一个值得称职的UNIX管理员一样,他们会在日常非管理员工作中使用根帐户。


14
我冒犯了“将要求”。您正在听起来似乎已成定局,开发人员自然会做错事。虽然我同意开发仅以不必要的高特权运行的软件不是理想的选择,但我认为IT部门不应尝试通过诸如机器锁定之类的严厉措施来实施特定的开发实践。如果IT在定义应用程序需求的过程中是利益相关者-应该是内部应用程序-那么将其作为要求开发并测试以较低特权运行的应用程序。
克里斯·瑞

但是我确实认为单独帐户的想法是值得的。但是不要强迫我,仅此而已。
克里斯·瑞

4
在Windows上,最好以其他方式执行此操作。制作具有标准用户权限的测试帐户。可以通过以测试用户帐户登录到计算机(或VM)来测试应用程序。
ConcernedOfTunbridgeWells,2009年

3
根据我15年的技术测试经验,我形成了“需要”意见。当然也有例外,但是Windows上的大多数应用程序并不是为最小特权而设计的,这并不是因为开发人员自然会做错事,而是因为确实很难做到这一点。
布鲁斯·麦克劳德

1
曾经使用过数千种不同的应用程序,但其中只有5%出于真正的原因需要管理员权限。
Mircea Chirea

55

大多数开发人员在技术上都很精通,并且知道自己在做什么。他们通常需要安装许多专业应用程序,必须获得许可才能执行此操作,并降低IT并添加它,这对双方都非常令人沮丧,尤其是在大型公司中。

我发现最有效的方法就是允许他们在计算机上安装软件方面做自己想做的事情,但是如果他们遇到我们不支持的问题,那他们就该靠自己了。大多数开发人员对此感到满意,并且宁愿能够照看自己的机器。

将某人锁定为仅使用IE和开放单词是可以的,但是如果您的开发人员需要安装4种不同类型的浏览器并且需要快速安装应用程序来解决问题,那么这可能会很烦人。

我的经验是,拥有大量技术知识的公司,因此信任他们的员工并让他们决定要安装的产品的开发车间,IT供应商等,会快乐得多,而对IT的困扰则更少


10
如果我可以多次投票给这个答案,我会的。我是开发商,并同意110%。+1
克里斯·雷

1
// @ cwrea:超出的10%是多少?
setzamora

3
我同意,但是在信息安全方面非常严格的公司永远不会允许安装不是“公司标准”的应用程序
setzamora

刚取消我的管理员权限后,我发现自己每半小时向支持小组发送一次电子邮件,以获取此或更改该设置或该设置。检查部署日期的一个常见主题是双击“通知区域”中的时间。我现在出于某种原因“没有适当的特权级别”……这让我发疯了!

1
虽然说“如果您卸载它不受支持”是一件好事,但实际上,它变成了一个开发人员,向他的老板抱怨xyz软件不起作用,而Systems / helpdesk不能帮助我。老板被同僚击倒了,接下来您知道经理/主任/副总裁正在呼呼某人的脖子,不在乎它是否不受支持,请立即修复。现在,Systems / Helpdesk必须为开发人员a支持随机程序xyz,为开发人员b支持随机程序abc。如果您真的需要它,请通过渠道。
Zypher

14

有关锁定开发人员机器的优点的一些生动讨论,请参见此Stackoverflow发布。(免责声明:我写了接受的答案)。

从系统管理员的角度来看,对生产系统的访问是敏感的,您应该将此类访问限制为需要其才能完成工作的人员(其中可能包括对应用程序具有三级支持职责的开发人员)。对开发PC或开发服务器的本地管理员权限不会显着损害生产系统的安全性。

如有必要,制作一张可用于重建机器的映像。手动安装SQL Server开发版,Visual Studio,Cygwin和MikTex以及许多其他应用程序非常耗时。如果您需要对计算机进行大量重新映像,则安装了这些大型应用程序的映像将具有相当的价值。

从开发角度来看,我发现我可以解决机器上的大多数问题,并且通常只在极少数情况下需要网络支持人员的帮助。过于严格的环境往往会产生虚假的开发支持流量,以完成开发人员完全有能力自己做的工作。

开发人员往往需要完成大量管理工作的另一个地方是托管开发环境的数据库服务器。大多数开发人员都能够轻松地学习日常的DBA任务,并且无论如何都应该获得有关此方面的工作知识(原则上为恕我直言)。开发服务器上过于严格的管理员访问策略可能会以多种方式出现。

如果可以安排临时开发网络,则是个好主意-如有必要,您可以从生产服务器对它进行防火墙。

  • 当开发人员可以轻松地复制生产环境的结构时,它会促进部署测试的文化,在这种环境中可以集成集成测试而不会遇到麻烦。这将倾向于提高产品发布和部署的质量。

  • 能够模拟生产环境还可以提高对生产部署和支持问题的认识。它鼓励开发人员考虑如何在生产中支持应用程序,这可能会鼓励在此基础上构建体系结构。

  • 如果此网络具有域控制器,则可以建立信任关系,以便它信任您的主域控制器及其帐户。此信任关系不必是互惠的,因此不会损害生产网络基础结构的安全性。这可以使您拥有不受信任的开发网络,但仍允许开发人员访问经过域身份验证的资源,例如Exchange帐户或文件服务器。

  • 您希望开发人员具有合理数量的试验范围,而不必跳过难题。在这项工作的道路上放置政治障碍有一种趋势,就是鼓励在政治上权宜之计,但会产生长期的(通常是无法识别的)技术债务,采用石膏解决方案。作为系统管理员或支持分析师,请猜猜谁有能力...

我将补充说,这在Unix或Linux环境中几乎没有问题;用户可以从他们的电脑大量定制自己的环境.profile。您可以将文件编译并安装在自己的/home/bloggsj/bin目录下,以使您满意。“本地管理员权限”主要是Windows的问题,尽管在Unix下仍有一些需要root访问的权限。


我想评论您的最后一点。您提到“政治障碍”-请记住,安全实践的初衷不是政治。后来它可能会演变成其他情况,因为所有组织最终都会招募那些遵循这封信但不遵守规则意图的人,或者更糟的是,将曾经崇高的政策转变为女性。但是良好的安全性和良好的政治可以齐头并进。不过,这需要所有相关人员的真诚努力。
quux

通常,合理管理的政策不会产生这种政治障碍,或者至少不会使其无法克服。但是,IT策略往往是逐个事件制定的,并不总是“合理的”
ConcernedOfTunbridgeWells 2009年

8

我见过的最明智的选择(一直都是-仍然是-)只是解锁的东西,也不受支持。给他们自由,如果他们搞砸了,他们所能得到的只是带有标准形象的休息。在这种情况下,我发现将它们放置在某种形式的“不可信”网络中是一个不错的计划。

至于锁定开发人员桌面的(无意义):我很确定所有锁定都只会阻碍生产力,而且,任何精通技术的开发人员都将很容易发现漏洞。


2
我得到约20分钟的支持,然后提供了新图像。对我们来说很好。
Preet Sangha,2009年

6

答案确实是:没有简单的是或否答案。但是安全至少对您的开发用户和其他用户同样重要。

一方面,是的,开发人员在技术上往往更精通。另一方面,他们的工作通常很繁重,他们的开发里程碑很可能会优先考虑将自己的系统维护为安全环境所需的额外照顾。这是他们日常工作的直接考虑。

如果要为开发人员提供不受限制的完整访问权限,那么您应该真正考虑以下其他措施:

  • 提供另一个与普通用户系统一样被锁定的系统,以供正常的非开发人员使用。
    • 将他们的完全访问权限的开发机器放入一个特殊的VLAN中,仅能访问开发资源。
  • 询问是否有什么措施可以防止受感染的系统危害代码库。后门机器能否在敌对的黑客手中检入恶性代码或清除代码库?采取适当的步骤来减轻这种风险。
  • 同样,询问是否有什么东西可以保护开发人员可以访问的系统中保存的业务数据。
  • 定期进行开发系统的软件清单和安全审核。
    • 了解他们的运行状况,并使用此信息来构建您的dev系统重新部署映像。
    • 迟早您会遇到一个开发人员,他会变得粗心大意并安装明显危险或完全与工作无关的内容。通过在发生这种情况时快速发送警告,您将使开发人员知道是的,有人在监视,并且他们确实有责任保持在合理的标准范围内。
  • 您是否正在定期进行恶意软件扫描?在某些情况下,开发人员会正确地抱怨按需访问的AV系统(始终打开的AV系统,每次访问文件时始终进行扫描)征收的性能税。最好采用夜间扫描策略,和/或为按访问扫描创建文件/文件夹排除项。但是,请确保以其他方式扫描排除的文件。
    • 可以启用管理员功能的开发人员可以关闭所有AV扫描吗?您将如何检测和修复此问题?

如果要锁定开发系统,则应考虑以下事项:

  • 您是否有能力迅速回答他们的支持要求?考虑您开发人员的平均工资率,并询问他们是否应获得更快的响应时间SLA。当您要处理年薪6万美元的员工的支持要求时,让您的12万美元的开发人员(这是一个耗资数百万美元的项目的关键)在附近等待可能没有任何意义。
  • 您是否对将为开发人员提供服务的要求有明确和明确的政策?如果他们开始越来越觉得支持是任意的,你最终感到痛苦。

无论哪种方式,您都需要承认开发人员是特例,并且他们确实需要某种形式的额外支持。如果您没有为此做预算,那么问题可能会立即恶化……或者将来会恶化。

附带说明一下,我已经看到sysadmins发生了非常类似的争论。当有人建议系统管理员应该自己锁定系统或至少使用两个登录名(一个具有root / admin privs;一个不具有root身份)时,我至少在两次不同的工作中遇到过系统管理员激烈的争论。许多系统管理员认为他们不应以任何方式受到限制,并强烈反对这种措施。某些厌恶锁定的管理员迟早会发生安全事件,并且该示例会对我们所有人产生影响。

我曾经是一直与admin privs一起运行的那些系统管理员之一。当我更改为双重帐户并且仅在需要时才进行更改时,我承认在最初的几个月中这非常令人沮丧。但是,当我的普通帐户处于对用户施加的相同限制下时,我在云管理中的一线希望是,我了解了很多有关所管理系统的安全性的知识。它使我成为更好的管理员!我怀疑开发人员也是如此。幸运的是,在Windows世界中,我们现在有了UAC,这使得以受限用户的身份运行并仅在需要时提升权限变得更加容易。

我个人认为任何人都不应超越某种形式的安全实践。每个人(包括系统管理员,开发人员,高层管理人员)都应受到足够的安全性程序和监督,以使他们始终保持警惕。换句话说,就是公司的系统和数据不值得保护。

让我们换一种说法。如果Mark Russinovich可以被rootkit接受,那么任何人都可以!


3

如果您有几个开发人员,则可以为他们提供开发服务器的方法,但是如果您有整个开发人员,那么我非常反对给他们任何管理员权限。

问题在于,您最终将需要一整层开发人员,每个开发人员都在做他们所做的事情,通常大多数人甚至都不了解安全性,只希望他们的应用能够正常工作。然后,您会遇到以下要求-“我们已经完成了开发阶段,请将我们的开发环境复制到测试,预生产和生产中”。

他们还习惯于安装随机的垃圾邮件(包装不良的软件),然后委派您将其安装在其他层的十几台服务器上。

我使政策非常简单:

  • 开发人员永远不会获得针对开发环境的root访问权限。
  • 开发人员确实具有对VMware开发前服务器的root访问权限,但没有支持。
  • 开发人员必须提供属于其应用将在其上运行的OS发行版的RPM软件包,或者提供符合FHS和LSB的RPM软件包。
  • 他们的应用程序在任何情况下都不能以root用户身份运行
  • 不会访问su或访问sudo应用程序用户-这将被锁定为没有外壳程序访问权限。(这是用于会计/审计)。
  • 他们需要使用特权访问运行的所有命令都必须明确地请求和批准-那时它将被添加到sudoers文件中。
    • 这些命令/脚本均不可写。
    • 这些命令不能编写(直接或间接)引用的脚本。

上面的内容将使他们思考何时将项目移至测试及以上服务器上时将允许和不允许的事情。


2

锁定开发人员的计算机所付出的努力超过了其价值。它严重损害了生产力,因为没有管理权限您几乎无法做任何事情。当然,最终系统将变得混乱不堪,但是您的IT部门肯定不会为开发中使用的所有那些第三方工具提供支持吗?

因此,正如Vincent De Baere所建议的那样,最好的措施就是从映像还原系统,当然,此后必须恢复环境,但这不应该是IT的问题。如果发生了N次,您可以将某人列入“黑名单”,是的,可以暂时放弃其管理权限。

无论哪种方式,都应该以某种方式设置环境,以确保受感染(或以其他方式弄乱)的计算机完全不会影响任何其他计算机,或者例如不会发送垃圾邮件或其他东西(好的,现在我只是说明显的话,对不起)。


1

嗯,这可能部分取决于您所运行的环境(例如,Linux与Windows)。但是,在Windows环境下,通常麻烦多于其价值,这仅仅是因为那里的某些开发软件要求您具有提升的工作权限。例如,众所周知Visual Studio需要管理员权限,因此,我看不出让某人跳入箍圈以完成其工作的必要部分的好处。

但是,如果公司要求锁定一切,那么您最好的选择可能是让他们的系统上的所有开发人员都能沉迷于虚拟机。尽管有些人可能对此不太喜欢,但是这可能会给您带来最好的收益。世界(例如限制性的普通桌面和完全可自定义的环境)。

更新 -在Windows方面,还有一点需要注意,显然要求管理员权限的Visual Studio有点陈旧,现在有明确的方法来设置所需的权限(PDF文件)。但是,我认为这不会改变我的选择,因为我认识的大多数开发人员(包括我自己)倾向于使用除Visual Studio之外的其他工具,并且很难理解他们在权限方面的全部需求。


MS的确建议VS2005以管理员身份运行。但是,迈克尔·霍华德(Michael Howard)是MS的首席软件安全专家之一,他说99%的时间它都可以以非管理员身份正常运行:blogs.msdn.com/michael_howard/archive/2007/01/04/……… 所以,如果安全对您很重要,则可以尝试以非管理员身份运行它。一个惊喜可能正在等待您!
quux

1

我同意在受限台式机上使用虚拟机的想法,

除非另有需要,否则我认为最好的设置是受限制的linux桌面,顶部是免费的虚拟机。Linux减少了我的开销,虚拟机不仅可以是他们想要的任意操作系统,还可以还原到快照或备份,并且在没有大量不同设置需要的情况下,整个世界看起来会更光明支持。


+1 ..我不明白为什么VM利用率低下。不仅出于您提到的目的,而且使用VM可以更轻松地进行软件分发。

1

我(作为开发人员本人)更希望完全控制我的机器,这意味着:在需要时以管理员身份运行。

您可以在允许开发人员完全访问他们的计算机之前为他们提供特殊的培训。为他们设置一些规则,也许您可​​以每一次进行一次审核,以了解它们遵循最佳实践。

通常,他们需要从IT管理员/ IT支持的角度,与安全性相关的内容以及为什么不以提升的权限进行开发的方面更多地了解IT基础架构。(以及如何确保您不会...)

“不要盲目地信任我们,当我们告诉你,我们都知道,我们需要了解电脑” ;-)

您仍然必须通过网络,域和帐户资料,非开发工具的软件安装等来支持它们。


还有一件事:确保安装了正确的AV ...如果需要,则强制... ;-)
Arjan Einbu,2009年

1

我的经验是,仅需要锁定机器的用户和需要管理员访问权限的其他人(开发人员,科学家)几乎平均分配给用户。他们的高端人员使用了很多不同的软件,有些是内部使用的,有些不是内部使用的,但是许多软件需要管理员来运行,而他们的工作要求他们使用很多软件包,因此让人们去做最有意义它自己。

我们完成了以下过程:

  • 我们的标准映像具有以下基本工具:Windows,Office,防病毒,Acrobat,一些实用程序。
  • 我们提供了大量的网络磁盘空间:足够使所有内容都可以存储在网络上。唯一的例外是正在处理的视频文件必须保留在本地。
  • 员工(与主管协商)有两种选择:IT维护他们的PC,进行所有安装和配置,或者他们可以拥有管理员访问权限以自行进行操作。无论哪种情况,所有数据都备份在网络上。
  • 如果IT部门维护了该系统并使其失效,我们会将其恢复为原来的状态,包括添加他们需要安装的其他软件。
  • 如果他们具有管理员访问权限并且系统崩溃了,我们将进行查看并尝试对其进行修复,但是我们的承诺是使他们回到标准映像,并且他们必须从那里获取它。如果他们有任何本地数据,我们将尝试首先解决这些问题,但是我们的SLA只是为了让他们尽快运行正常的标准PC。
  • 需要具有管理员访问权限的任何人都必须知道如何确保Windows更新正常运行,以保持防病毒和防恶意软件的更新。

我们本来希望将所有具有管理员访问权限的人放在“不受信任的” vlan上,但我们从来没有做到过。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.