如何在保护模式下运行Firefox?(即低完整性级别)


9

我注意到Firefox与Chrome和Internet Explorer不同,它不是在低强制级别(也称为保护模式,低完整性)下运行

谷歌浏览器:

替代文字

Microsoft Internet Explorer:

在此处输入图片说明

火狐浏览器:

替代文字

按照Microsoft的说明,我可以使用以下方法手动将Firefox强制进入低完整性模式:

icacls firefox.exe /setintegritylevel Low 

但是,Firefox对于没有足够权限运行的情况并不满意:

替代文字

我很高兴知道自己的浏览器运行的权限少于我所拥有的权限。有没有办法将Firefox运行到低权限模式?Mozilla是否计划在某个时候添加“保护模式”?有人找到不解决低权限模式的Firefox的解决方法吗?


更新资料

根据2007年7月对Mozilla基金会工程副总裁Mike Schroepfer的采访

...我们也相信纵深防御,并正在研究保护模式以及许多其他技术,以提高未来版本的安全性。

三年后,这似乎不是优先事项。

更新资料

  • 9/28/2013
  • 5年后
  • Firefox 24.0
  • 仍然不支持保护模式

Jeez,为什么IE会收到“不良安全”说唱?
Mark Sowul

Answers:


4

不幸的是,目前无法在保护模式下运行Firefox。

如果您没有运行64位Windows,则可以使用Sandboxie获得一些类似的东西。


4
我只是通过Mozilla的bugtracker进行了快速搜索,未发现任何有关完整性级别的信息。这表明,到目前为止,确实还没有计划支持他们。但是,考虑到我以前在其错误跟踪系统和开发人员中的经验,我认为有两个选择是可行的:(1)如果我打开一个请求完整性级别支持的票证,它将在半小时内关闭,因为另一个票证的副本一个没有名字的人可能会猜到这个名字,而且(2)支持Windows特定功能的想法会吓到那里的许多开发人员。
乔伊,

我从未意识到Firefox除了Windows之外还存在于其他平台上。有Mac和Linux版本是有道理的,我只见过Windows下载。
伊恩·博伊德

我认为免费和可用的VM设备已经从沙盒中窃取了风头。
kmarsh

哦,顺便说一句,答案“做不到”被标记为答案,因为“做不到” 有效的答案。
伊恩·博伊德

1

您可以使用以下命令以低完整性模式运行Firefox:

icacls "C:\Program Files\Mozilla Firefox\Firefox.exe" /setintegritylevel low
icacls "C:\Program Files\Mozilla Firefox" /setintegritylevel(oi)(ci) low /t

icacls "C:\Users\*username*\AppData\Local\Temp" /setintegritylevel(oi)(ci) low /t
icacls "C:\Users\*username*\AppData\Local\Mozilla" /setintegritylevel(oi)(ci) low /t
icacls "C:\Users\*username*\AppData\Roaming\Mozilla" /setintegritylevel(oi)(ci) low /t
icacls "C:\Users\*username*\Downloads" /setintegritylevel(oi)(ci) low /t

请注意,您需要为系统上的每个用户运行第二批操作,并自定义username,否则他们将收到“ Firefox已在运行”消息框。

但是,此设置确实导致以下怪癖:

  1. Profile Manager可能无法正常运行。
  2. 每次启动Firefox时都会收到安全警告。
  3. 下载只能放置在低完整性目录中(因此,下载在上面被标记为低完整性)。
  4. 直接从Firefox打开下载通常会失败。

应该指出的是,对任何人来说,执行这些步骤实际上将破坏“保护模式Firefox”的目的。通过允许FireFox写入其他位置(临时,Mozilla,下载),您消除了使FF以强制完整性级别运行的目的。更糟糕的是,现在所有低权限应用程序(即Chrome,我的媒体播放器)都可以写入这些位置。换句话说:不仅您在这里一无所获,而且实际上失去了安全性。您最好以标准用户身份运行FF,而不要理会其他文件夹。
伊恩·博伊德

但话虽如此,我还是给文章加上+1,因为它有助于说明Low privelage应用程序如何只能写入特定位置。但是再一次:不要回答这个问题。这是一个不好的解决方案的例子-例如更改Windows和Program Files文件夹的权限以允许所有人完全访问,因为一个程序希望能够在其中写入。你让事情变得更糟。
伊恩·博伊德

0

伊恩,您不了解保护模式的工作原理。Simon Capewell的解决方案是提高Firefox安全性的有效方法。您举个例子,断言他的解决方案以某种方式禁用了完整性级别低的保护,这完全是错误的。Chrome和IE使用相同的方法,因为即使在受保护的IE模式下,下载内容也会写入下载文件夹中。否则,您将无法下载任何内容。尽管IE可能使用各种包装,从而像Chrome一样将主要进程与处理不受信任的数据的进程隔离开来,以提高安全性,但这与上述方法一样无济于事,Firefox的所有组件都可以不受篡改系统的影响。而在Chrome中,主要流程以“中等”完整性运行,而渲染流程以“低”完整性运行。

以这种方式配置Firefox可以保护Windows和程序文件免遭修改,从而使Firefox与计算机的其余部分隔离。例如,阻止Firefox将恶意软件拖放到您的Startup文件夹中,或者阻止添加一个注册表项,该注册表项在启动时自动将恶意软件放到您的downloads文件夹中(允许Firefox写入)。此外,以低完整性级别运行Firefox可以防止Firefox尝试通过诸如在远程进程中创建线程以在该进程的安全性上下文中运行代码之类的方法绕过对其强制执行的ACL。仍然允许Firefox将文件和可能的可执行文件(Chrome和IE)拖放到临时文件夹中。因此,完整性级别必须与SRP或AppLocker结合使用,为了防止执行任何可执行文件,这些可执行文件将被丢弃到允许Firefox写入的目录中。IE和Chrome也存在此要求。

完成后,Firefox将得到加强,以防止偷渡式下载,并且比IE受到更多的保护,因为保护模式IE在未与SRP或Applocker结合使用时不会提供足够的保护。绝不允许Firefox向其自己的目录和临时文件夹写入与保护模式Chrome和保护模式IE所允许的内容不同的任何内容。

此解决方案的唯一陷阱:我有一个习惯,将可执行文件留在我的“下载”文件夹中,稍后再运行。如果下载后使用了Firefox,则这些可执行文件可能会受到篡改。因此,下载文件后,将其移出“下载”文件夹。为了修改允许的临时文件夹中的临时文件而利用Firefox中的漏洞的风险也很小,当使用该临时文件时,该漏洞会在更高完整性级别的过程中利用该漏洞。但是,这永远不会发生,而只是理论上的漏洞。

进一步的阅读/来源:

Windows 7 SRP(可在Home Premium上运行,尽管您没有AppLocker):

http://www.wilderssecurity.com/showthread.php?t=262686

完整性等级:

http://www.symantec.com/connect/articles/introduction-windows-integrity-control

保护模式IE:

http://msdn.microsoft.com/zh-cn/library/bb250462(VS.85).aspx

有关“偷渡式下载”的基本信息:

http://www.wilderssecurity.com/showthread.php?t=241732

Windows Sandboxing上的Chrome的详细信息(不仅限于完整性级别):

http://www.chromium.org/developers/design-documents/sandbox


1
从中删除“低完整性”保护的常见位置数量无关紧要。添加某些位置要不再受保护击败保护模式的目的。您以自己的判断来判断,写入TempMozilla AppData文件夹是可以接受的折衷方案。因为我们都知道我们确实想防止程序访问Windows和ProgramFiles。问题是:我不知道FF存储在什么中AppData\Mozilla,但是我当然不希望恶意软件中毒更新URL或修改扩展名。这就是安全性的重点。
伊恩·博伊德

因此,您认为在保护模式下使用Firefox不值得,因为Firefox本身可能会受到威胁吗?即使在保护模式下运行,IE本身也会在理论上受到损害。保护模式的目标是将系统与与不受信任的数据进行交互的进程隔离开,从而可以利用它来破坏系统的其余部分,而不是保护程序免受自身的破坏。在中等完整性下,Firefox已经可以写入Temp和AppData,因此,防止对所有其他位置的权限显然是安全性的重大收获。

就是说,如果您担心扩展的完整性(如果您想保护密码就可以理解),则只需要完善完整性级别规则即可。完整性级别不会阻止读取或执行超出应用程序完整性级别的操作。仅将“临时”文件夹以及您要Firefox写入的任何配置文件位置标记为允许,并确保排除在AppData中找到的扩展文件夹。更新URL未存储在用户可访问的配置中:kb.mozillazine.org/…

ProcessMonitor有助于确定应用程序正尝试执行的操作(由于其完整性级别而被拒绝)。只需为Application name = theappinquestion.exe和Result = ACCESS DENIED设置过滤器,即可轻松优化所需的任何文件或注册表项的完整性级别。带有icacls的文件,带有regil的reg键(minasi.com/apps)。使用这种方法,我能够将SC2 beta配置为在5分钟内以低完整性模式运行。

我认为每个人都忽略了我以低强制完整性级别运行其他软件的事实;IE和Chrome(或FireFox)之外的其他程序。示例是媒体播放器;我希望除了两个允许的位置之外,不允许从编解码器中的缓冲区溢出执行代码。而且我绝对不希望代码能够写到我的Downloads文件夹,我的Temp文件夹或能够修改与Firefox相关的设置。我不应该为了使一个程序正常工作而抬起计算机上的安全屏障,程序应该屈服于安全屏障。
伊恩·博伊德

-1

SRP不是必需的,因为低完整性级别的进程执行的进程本身会继承低完整性级别。但是,这是另一层保护,因此还是个好主意!

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.