我在Windows上使用Atlassian SourceTree,我喜欢的一件事是它不需要管理员权限即可安装或更新。我碰巧向我们的ISSO(信息系统安全官)提到了这一点,他不是一个狂热者。他说,不要求管理员是危险的,因为(换句话说)“如果不要求您批准,您将永远不知道事情的背景和变化!”

现在,此人有发展趋势过于谨慎,所以我对他的评估表示怀疑。我一直认为,如果程序不要求管理员权限,那是因为它没有进行足够深的更改来需要它们。除此之外,我们的工作计算机已被严格锁定,因此我很难相信安装程序通过我们的安全功能所要做的就是不要寻求许可。

那是什么?真实情况?可以在没有管理员权限的情况下运行的安装程序真的有那么危险吗?

评论

评论不作进一步讨论;此对话已移至聊天。

Chrome浏览器还具有非管理员安装。您的ISSO对此有何评论?

我会回答,但不允许-抱歉。但是我认为要求管理员特权的问题完全取决于代码的功能,因此在这里不能真正进行辩论。更为重要的是,是否已制定了策略,即已安装的任何代码都带有签名证书。 UAC将弹出,指示证书详细信息,并且可以创建策略以禁止未签名,自签名或不受信任的签名者。

TeamViewer的安装没有管理员权限,从功能上讲,它是一个键盘记录程序。非管理员软件在Windows上可能非常危险。

相关的XKCD,“授权”(尽管ISSO可能会建议您不要从工作PC访问Dropbox,Facebook,gmail,PayPal和您的银行...)

#1 楼

不需要管理员特权即可安装某些东西,而不比使用标准用户权限运行无安装程序更危险。这也比安装具有管理员权限的东西(或实际上具有管理员权限的任何东西)来危险要小。

运行从Internet下载的随机程序当然有潜在的危险-即使它没有不需要管理员。

如果您的ISSO担心的是“您正在运行随机的Internet代码,并且该代码的作者使您很容易就懒于要求我审核它”,那么这是非常有效和事实的。 (您可能会争论成本/收益,但这是有效的)

如果担心的是“此安装程序比其他安装程序或无安装程序更危险,因为它不会升级其访问级别” ,那么不,这实际上是不正确的。

评论


+1(包括潜在的ISSO观点)。有时候,在幕后有一个很好的理由,与他们为理由辩解相比,沟通难度更大。

–Cort Ammon
18年1月31日在18:41

@CortAmmon任何无法传达这种简单问题的人都是无能的,在我的书中也不值得信任。即使他们知道自己在做什么,但他们告诉人们要做什么其他错误的事情,因为他们甚至无法远程了解?

– jpmc26
18年1月31日在21:21



@ jpmc26如果不是那么容易怎么办?如果该问题的原因与上下文高度相关,并且需要对其工作有深刻的了解,该怎么办?例如,如果他们之所以需要审查代码的原因实际上是在高层管理人员的微妙讨论下,他们还不应该谈论呢?

–Cort Ammon
18年1月31日在21:45

人们,甚至是聪明的人,总是在错误地传达简单的想法。看一下OP中的引言:“如果不要求您批准,您将永远不知道它的背景和变化!”现在,假设此报价不是ISSO使用的字词的100%。如果他说:“即使它没有要求您批准,您仍然永远不知道它的背景和变化。”这是更加重要的一点。

– Segfault
18年1月31日在23:51

值得注意的是(正如@Segfault所暗示的那样),OP在引用ISSO的反对之前就字面上说“释义”。 ISSO的反对是合理的还是愚蠢的,完全取决于反对的含义,因此,为什么我对最有可能出现的两种解释做出回应(考虑到我们的非普通言词)。

–索伦
18年2月1日在12:11



#2 楼

好吧,如果它不需要管理员权限,则意味着它只能执行普通用户可以执行的操作。当然,您不会真正知道安装程序在做什么(但是您真的知道吗?),但是可以放心,它无法执行非特权用户无法执行的任何操作,所以我不知道。如果您信任来源,就看不到问题。

评论


甚至更好的是,不需要管理员权限的程序(或安装程序)实际上应该比需要管理员权限的程序更安全。由于特权程序可以更改的内容,与非特权程序相比,更改的危险性要大得多。

–约翰·汉密尔顿
18年2月1日在7:02

@JohnHamilton:但是,如果它可以为您一直使用的帐户修改内容,那么除非是真正的多用户系统,否则几乎“没有”很多安全性。接管主要帐户仅比接管整个计算机的不良情况稍微好一点。例如它仍然可能是勒索软件。

– Peter Cordes
'18 Feb 1在11:57



或者,用通常的xkcd说:xkcd.com/1200

–意大利Matteo
18年2月1日在16:01

除非操作系统/体系结构中存在未修补的漏洞。然后,它可以做的比普通用户还多,并且无需首先让别人仔细查看它,因为它不需要管理员权限。

–纳赫特
18年2月2日,下午5:39

好吧,就像没有特权的用户可以利用漏洞并获得管理员访问权限一样。

–乔尔迪
18年2月2日在15:51

#3 楼

在Windows平台上,应用程序安装程序是否触发UAC(用户帐户控制)是否取决于应用程序,并且该应用程序无法规避UAC。如果应用程序安装需要执行需要管理员执行的任何操作,则将触发UAC。这将包括写入系统范围的系统目录或注册表设置。

如果应用程序安装未触发UAC,则表明该应用程序正在非管理员用户的配置文件目录下安装,并且仅在用户自己的配置文件下设置注册表。用户肯定有可能安装恶意软件,而该恶意软件旨在仅破坏该用户的文件/设置,因此破坏不会扩展整个系统。

在勒索软件威胁的情况下,这意味着仅针对用户自己文件的勒索软件会在UAC雷达下飞行。

为防止这种情况并满足ISSO的担忧,您的组织将需要政策和保护性工具来阻止运行公司未提供且未通过认证的任何应用程序。有效地做到这一点非常困难,而且要做到这一点将需要大量员工投入,以根据业务需求对应用进行认证。

显然,只有在未启用UAC的情况下,上述情况才成立禁用或篡改。人们通常禁用UAC,因为它很烦人,因为实际上不需要管理员的应用程序会触发它。例如,在过去经常(且仍然会发生)在运行游戏时需要提升高度,因为游戏确实需要每次运行并自动更新。如今,应用程序表现得更好,并且UAC实际上不应该被禁用。

已更新,以下为良好评论,以供澄清:

应该提到的是,以本地管理员身份登录时,有一些方法可以规避UAC。为了获得最佳保护,一个用户不应拥有其日常帐户的管理员权限,而要创建另一个具有管理员权限的帐户。当更改系统范围的设置或安装软件时,UAC会提示您输入管理员凭据,但是如果启用了UAC,则无法完全规避UAC。

评论


触发UAC提示当然在应用程序的控制之下。实际上,只有两种方法可以执行此操作:在应用程序清单中有一行指示该应用程序应始终以admin身份运行,或者显式(从代码角度)以admin身份运行一个应用程序。尝试特权操作时,UAC提示不会自动弹出。安装程序绝不是一种特殊的程序,无法以不同的方式处理它。为了产生一种幻觉,即UAC提示在应用执行过程中完成,它只是产生了另一个触发UAC提示的进程。

–n0rd
18年1月31日在19:51

有UAC绕过很多

– McMatty
18年1月31日在20:42

这是不正确的。如果某项操作需要管理员权限,而该过程没有随管理员权限一起启动,则该操作只会失败(错误)。某些应用程序将使用特权使启动新进程更加顺畅(而不是使用户手动启动),但是当进程执行需要它们的操作时,操作系统中没有什么会自动要求特权。 @ n0rd另一方面,MSI不是应用程序。它们是由内置OS组件执行的文件。因此,这些组件可能内置了一些魔术

– jpmc26
18年1月31日在21:13



@ n0rd:应用清单实际上有3个选项:require-Administrator(您始终是admin),asInvoker(即使没有admin,也不会启动)和mostAvailable(如果用户可能,则是admin)。请参阅msdn.microsoft.com/en-us/library/bb384608.aspx。有4种方法来运行提升的可执行文件,但是第一种(禁用UAC)当然不会显示UAC对话框。

– MSalters
18年1月31日在22:37

我的意思是,应用程序无法选择不触发UAC,而仍然执行系统范围的更改。

–托马斯·卡莱尔
18年1月31日在22:37

#4 楼

不需要管理员权限的程序安装的另一威胁是,可以通过用户级代码来修改安装。这允许进行静默更新(无需管理员访问权限),这意味着程序行为可以更改而不会发出警告。这还允许对手插入代码并以静默方式篡改程序(无需管理员访问权限)。

评论


这是我在想的相同问题。您将在SourceTree中输入git密码;如果另一个应用程序想要访问您的帐户,它可能会捕获您的击键(但是,防病毒软件可能会将恶意应用程序隔离为键盘记录程序),尝试从git的内存中获取身份验证Cookie(再次,防病毒软件可能会检测到此)或覆盖具有篡改版本的SourceTree应用。

–卡尔·沃尔什(Carl Walsh)
18年1月31日在23:40

是的,但是如果您正在通过用户级代码修改安装,则您的计算机上已经在运行某些病毒。我要说的是,如果安装确实需要管理员权限,则问题将更加严重,因为病毒可能会在运行安装程序二进制文件之前对其进行修改,并且您将授予管理员权限,从而导致病毒的特权升级。

–user28763
18年2月1日,0:58

@CarlWalsh:即使安装程序确实不需要管理员,程序本身也不是管理员,但如果程序中存在错误,那也将带来安全隐患。

–user28763
18年2月1日,0:59

@Runemoro问题是,“运行任意代码”和“将文件保存到磁盘”之间有很大的区别。如果可以将任意文件保存在应用程序的exe目录中,则执行任意代码(在给定目标应用程序的特权内)只需“保存文件到磁盘”。您确定机器上的任何地方都没有可以被远程利用以将文件保存到正确位置的进程吗?如果在不安全的地方有高架的应用程序,则尤其糟糕,但是即使对于非高架的应用程序,它仍然可以访问该应用程序可以访问的任何内容-可能是您的密码,日志,聊天...

–罗安
18年2月3日在22:51

#5 楼


如果不要求您批准,就永远不会知道它会发生什么事并在后台进行更改!


安装程序是否需要管理员权限,您除非您要跟踪/监视系统更改,否则不知道它在做什么。

但是,您所知道的是,如果它不要求管理员权限,就无法进行任何更改。需要管理员权限(更改系统文件,系统注册表,驱动程序等)。


安装程序不需要管理员权限是否危险?


它可能是,但仅是需要管理员权限的安装程序,实际上从理论上讲危险性较小。

但是,无论哪种方式,您都不应运行任何您不信任的安装程序在明智的环境中,是否需要管理员权限。

#6 楼

与安装程序无关,该应用程序仍需要询问提升权限,是否需要更多特权。另一方面,如果应用程序是恶意软件,则它可以在安装程序中运行有害代码。

因此,实际上,如果安装程序和应用程序都未要求提升权限,与其中之一要求特权相比,它的危害较小。

编写安装程序时,人们尝试使用必要的特权。通常,这确定该程序是仅基于每个用户安装,还是可以针对所有用户安装。

因此是否足以写入注册表分支[HKEY_CURRENT_USER]当安装程序需要特权来写入[HKEY_LOCAL_MACHINE]或执行其他操作时,通常无需请求提升权限,而只需要询问管理员即可。

评论


我认为这是一个很好的答案。 Atlassian可以通过添加代码以请求管理员特权(然后不使用它们)来减轻OP主管的压力,但这会使代码变得不那么安全。也许在程序的一个晦涩角落里有rm -rf /。没有管理员特权,该程序将失败。使用admin privs,该程序将成功破坏用户的生活。

–emory
18年1月31日在16:55

@emory:实际上不是Windows的工作方式。具有管理员权限的用户仍然需要使用UAC逐个进程调用这些特权。

– MSalters
18年1月31日在22:41

@emory:更正-如果您使用的是能够运行Windows的系统,则您已经放弃了安全性。即使您用另一个OS替换了Windows,困扰Windows功能的平台的漏洞也仍然存在于ring 0下,因此无论使用哪个OS都是问题。

– Ben Voigt
18年2月1日在16:57

#7 楼

这意味着什么

如果安装程序不需要管理员权限,那么它仅是为当前用户安装软件,而不是系统范围内的软件。

安全性是什么?有影响吗?

您要安装的软件只能在您自己的用户帐户下运行,因此它无法在超级用户/管理员级别上修改或损坏系统并影响其他用户或系统服务。在这方面,它比运行需要管理员权限的软件安装程序更加安全。

但是,这并不意味着软件本身不能做坏事,就像任何软件一样,例如监视您,滥发垃圾邮件,破坏帐户中的文件等。然而,这些都不是特定于安装软件的方法。

为什么系统管理员可能不喜欢

它绕开了用户安装软件可能对用户采取的任何政策,例如批准流程。

他们的担忧是否合理?

是和否。尽管它对系统本身的安全性的威胁不超过您在用户帐户中已经可以做的任何事情(例如,编写脚本,运行自己的二进制文件或编译自己的软件),但仍有一些原因可能导致IT部门无论如何都希望得到通知或咨询。

一些IT部门喜欢记录用户计算机上存在的软件以进行审核。如果用户在不了解IT的情况下安装软件,则该软件仍然可以做恶毒的事情,例如通过网络攻击计算机,发送垃圾邮件,用尽计算机上的大量资源,泄露机密文档等。因此,即使它可能无法冒该系统上其他用户的系统完整性的风险,它仍然可能执行不必要的操作。

即使是信誉良好的软件,如果没有及时更新,也可能会引起漏洞。如果IT部门了解用户系统上安装的软件,则可以确保它们保持最新状态。

摘要

所有这些归结为,是没有为单个用户安装且不使用管理员权限的安装程序中固有的安全风险。 IT部门可能关心的只是在没有通知的情况下安装软件的行为。

#8 楼

不要求管理员权限的安装程序比不要求管理员权限的安装程序更安全,...

除非您拥有管理员权限并将其授予安装程序。

例如,我的MacBook上有一个安装程序,可以在/ use / local / bin中安装应用程序,而无需询问管理员密码(好奇的人称为“ brew”)。唯一可能的方法是在brew安装后为其授予管理员权限。现在,MacOS具有一种称为SIP的功能,可以防止管理员进行某些类型的更改。据我所知,Windows没有等效功能。 (但是我已经有近四年没有使用Windows了。)

这就是说,即使没有管理员权限,您安装的程序也可能会对您造成不良影响。另一个答案提到了其中一些问题。但是任何程序都可以执行某些操作,而不仅仅是安装程序。

#9 楼

使用通用提取程序之类的第三方工具,无需管理员权限即可简单地提取大量安装程序,而实际上并不需要真正的管理员权限。通过授予安装者访问管理员模式的权限,您就可以授予他们访问计算机各部分的权限,没有权限运行的安装程序只能访问不需要管理员权限的文件。

但是,除非您自己检查,否则您永远都不知道任何第三方程序的作用是对的。您所能做的就是确保该程序来自受信任的来源,没有任何已知的病毒(使用防病毒/病毒总计),最后您可以使用通用提取程序之类的东西来查看脚本的作用,甚至可以使用它来提取该脚本直接从安装程序中下载文件。
并且显然,请确保老板对正在运行/安装的程序没有问题。

请记住,并非每个安装程序都可以这种方式提取,并且某些安装程序可以实际上,需要管理员权限才能安装驱动程序或在注册表中输入内容。

#10 楼

要添加到现有答案中,如果安装的软件确实需要管理员权限才能运行,则不需要管理员权限的安装程序会有不利的一面。

如果安装程序不使用管理员权限,则该软件可能无法安装在(受保护的)Program Files文件夹中。通过本地安装而不是全局安装,恶意行为者有可能从本地而不是管理员帐户修改程序或安装自定义加载项。如果有人随后以管理员身份运行该程序,则可能会导致特权升级。

实际上实现此目标所需的条件非常遥远。这更多是理论上的漏洞,而不是现实世界中的漏洞。

#11 楼

您的ISSO完全是错误的。

首先,如果我设法创建了一个不需要管理员特权但实际上是恶意软件的安装程序(例如,将所有文档发送给我),那么让我要求它就很简单了。管理员权限。我真的很想知道如何要求管理员特权才能使该安装程序更安全。

不要求批准并不意味着安装程序可以做任何喜欢的事情。它只能做不需要批准的事情。未经批准,它无法做这些事情。具有管理员权限的安装程序可以在您的计算机上执行任何操作,并将其完全弄乱。没有管理员权限的安装程序可以在您的用户目录中执行任何操作,并将其完全弄乱-这比具有管理员特权的安装程序要少。

现在损坏不一定是恶意的,而是通常是愚蠢的(安装程序中的错误)。具有管理员权限,安装程序可以无意中破坏您的整个计算机。没有管理员权限,该风险将大大降低。

(如前所述,在最新的MacOS系统上,“管理员特权”和“ root特权”根本不相同,即使是具有管理员权限的代码也可用于保护操作系统)。

#12 楼

它仅表示它无法执行管理员可以执行的操作。如果某些操作需要管理员权限,则流程执行将需要提升权限。由于SourceTree不会要求提升,因此它不会做任何会损害系统的事情。

例如,它不能:


安装Windows服务
启动或停止任何服务
停止任何提升的进程
安装设备驱动程序(是否已签名,不是重点)。
读取/写入受保护的注册表
格式化驱动器
更改磁盘分区
更改系统时间
关闭计算机
启动系统范围的进程探查器
读取受保护的目录。
更改启动配置。
更改安全策略
。 。 。

因此,最好不要安装程序(或任何程序)要求以管理员方式运行。

评论


请注意,您可以以普通用户身份启动/停止某些服务。通常是为了进行更新检查,例如Mozilla安装了可以以普通用户身份运行的服务,该服务会进行实际更新。

–约翰内斯·库恩(Johannes Kuhn)
18年2月11日,0:05

#13 楼

为了完整起见:如果安装程序获得了它不应该默默拥有的特权(通过各种注释中描述的一种方法),则不仅会带来不良后果,而且还会带来额外的安全风险-在某些情况下,其他恶意软件可能会对其进行恶意安装,否则不能将类似的利用工具下载到本地计算机。

示例:安装程序被反恶意软件解决方案列入白名单,并且该用户知道该软件本身并非恶意软件。可以想象,阻止直接使用同一漏洞的实际恶意软件(或专门的攻击者)可能会通过修改或在精心设计的环境中运行,从而将安装程序(如果仍位于本地下载文件夹中)转变为混乱的代理。环境。

评论


这似乎更像是对其他答案的一般评论,而不是对问题本身的答案

– schroeder♦
18年2月6日在9:58

#14 楼

从某种意义上说,Atlassian SourceTree可以看作是一个能够创建隐蔽通道的程序,根据ISO 27001标准,该通道需要缓解。这是因为它是一个Git客户端,能够通过https提取大量源代码。