当前位置: 代码迷 >> 综合 >> 翻译:Firefox for Pentester: Privacy and Protection Configurations
  详细解决方案

翻译:Firefox for Pentester: Privacy and Protection Configurations

热度:56   发布时间:2024-03-08 15:43:13.0

前言

本文章为hacking articles上的翻译,主要目的也是锻炼翻译顺带锻炼渗透技巧。如果有什么翻译不对的请联系我修改。

原文链接

火狐渗透:隐私和保护配置

介绍

这是“Firefox for Pentester”系列的第二篇文章。之前我们讲过我们如何使用各种附加组件加强火狐上的隐私和保护功能,在本文章中,我们将能够通过火狐中的配置选项在线保护我们自己。和其他浏览器相比,火狐最大限度的保护了我们的数据和信息。火狐可能是现在世上最好的浏览器了。它提供了隐私功能、有活力的扩展、惊人的安全性,以及最重要的,它经常更新。但我们仍然能通过修改一些选项让它变得更加安全。

目录

  • 介绍
  • 配置设定
  • 隔离第一区域(Isolating First Party Domains)
  • 阻止浏览器指纹
  • 启用跟踪保护(浏览器指纹)
  • 启用跟踪保护(加密挖矿)
  • 启用跟踪保护
  • 阻止ping跟踪
  • 阻止URL预加载
  • 维持剪切板私密
  • 禁止EME媒体
  • 限制DRM内容
  • 禁用媒体导航
  • 限制cookie行为
  • 控制referrer头
  • 限制referrer头
  • 限制WebGL
  • 禁用会话存储
  • 禁用beacon
  • 保护远程下载
  • Firefox预取
  • 禁用IDN Punycode
  • 结语

配置设定

当使用火狐中的配置时,有大量的选项要去查看。每个选项应该要充分地理解,以便进行更改,因为它们会修改你的浏览器和你的网络方式。要修改火狐的配置,在url栏输入“about:config”,如下图所示。

在这里插入图片描述
一旦about:cocnfig页面加载完成,他会提示警告(被我跳过了)。警告会声明,从此处开始,如果你进行了任何更改,则将使你的保证失效,并且任何你进行的修改都将由你承担风险(整句话的意思的意思就是修改配置风险自负)。要从此处继续前进,则点击“I accept the risk!”。在点击后,你会看到上图所示的页面。都是些关于在线隐私和保护的选项。

隔离第一区域(Isolating first-party Domains)

通过第一步后,我们将要修改的是“privacy.firstparty.isolate”,它的特新是让你只能访问第一区域。这意味着所有沿第一区域标记的第三方域都将被阻止,无法在线跟踪你的活动以及收集你的信息。(这段没吃透)所有这一切都是可行的,因为它将第一区域和其他域隔离开了并分开存储你的数据,从而使跨域跟踪无效。

插入个人理解,这里所谓的第一区域(first-party Domains)与第三方区域(third-party domains)可以看成是网址访问网站的域名,以及网站加载后所加载的第三方内容的域名,比如所访问网站可能会留有广告位给第三方,从而加载不同域名的内容进来。

这个选项能够通过搜索栏找到。默认情况下,这个选项的值被设为false。即它默认是禁用的,因为它搞乱了很多网站的身份认证系统。但如果你和我们一样坚持隐私和反跟踪,你应该双击它,从而使它的值变为true。将值从false设置为true意味着你现在启用了这个选项。一旦选项被启用,这个选项的状态将从default改为modified。(我这里并无状态这栏,只是字体变成了粗体,如下图所示)
在这里插入图片描述

阻止浏览器指纹

下一个选项是“privacy.resistFingerprinting”。要理解此选项的作用,让我们先理解什么是浏览器指纹。能够从网站加载到浏览器的客户端脚本允许浏览器指纹。通过这种方式,它们收集有关浏览器、操作系统、高速缓存控制头、各种请求头、字体列表、使用的插件、麦克风、相机等的信息。因此它被陈伟无cookie的怪物。这个过程的足迹从与网站建立连接的那一刻开始。所有这些功能可以通过凭证劫持和数据泄露等来利用。所有这些能够通过启用“privacy.resistFingerprinting”选项而停止。
此选项能够通过搜索栏进行搜索。默认情况下,这个选项的被设为false,即它是默认被禁止的,因为捣乱了很多网站的认证系统。但如果你像我们一样注重隐私且反追走,那么你应该双击它,将它的值改为true。将值从false设为true意味着你现在启用了此选项。启用此选项后,该选项的状态将从default变为modified。(我这只是变成了粗体)如下图所示
在这里插入图片描述

启用跟踪保护(浏览器指纹)

下一个我们要讨论的选项是“privacy.trackingprotection.fingerprinting.enabled”。它的作用和之前的那个一样。因为这个也从浏览器指纹中保护你。除了防止网站的跟踪,它也防止钓鱼攻击。
(重复的段落我就不翻译了)(我这里这项是默认为true的,原文中默认为false)
在这里插入图片描述

启用跟踪保护(加密挖矿)

加密矿工们(crypto miners)的问题在于他们所做的计算需要大量的资源,例如CPU、电力和RAM。这些资源非常昂贵,并非每个人都能负担得起。因此,黑客们所做的是控制各种人的系统并在这些系统上进行加密挖矿。因此,为了禁止你的浏览器变成加密挖矿的牺牲品,你所要做的就是开启“privacy.trackingprotection.cryptomining.enabled”选项。(我这默认为true)
在这里插入图片描述

这里的加密挖矿大概就是通过计算机挖比特币等加密货币

启用跟踪保护

下一个选项,即privacy.trackingprotection.enabled,使我们能够完全不存在通过浏览器进行的跟踪。跟踪会记录你的互联网搜索、你访问的网站、你分享的数据等。这个选项通过阻止各种形式的跟踪来使它无效。
在这里插入图片描述

感觉这个选项就是前面两个选项的母项,将此项开启则会同时开启包括前面两项在内的许多选项。这只是个人理解

阻止ping跟踪

为了理解下一个选项,“browser.send_pings”,让我们先理解超链接审核。它是一种跟踪“使浏览器ping指定URL的html代码”的方法。当你访问某网站后,此网站便会ping通某URL。这种跟踪和其他跟踪的方式不一样,因为他没有给用户任何选择。它只是在用户不知道的情况下在后台运行。因此为了关闭这种跟踪,你必须进入Firefox的配置并禁用browser.send_pings选项。(我这已经是默认禁止的了)
在这里插入图片描述

禁止URL预加载

这个**“browser.urlbar.speculativeConnect.enabled”**选项有助于我们控制URL预加载。每当在URL中进行输入,在输入一半的时候你一定会注意到URL的自动填充。它的工作原理是,当你输入URL时,它会发送域名查询以便它可以完成自动填充。因此,通过禁用它,URL栏中的URL预加载将会停止。这有助于防止出现你不想要的或者被认为不安全的建议。
在这里插入图片描述

维持剪切板为私密

每当你在网站上复制、剪切或粘贴任何东西,网站会得到详细的通知,详细到以至于知道你复制了网页的哪部分。这是通过跟踪你的剪切板做到的。通过**“dom.event.clipboardevents.enabled "**选项,我们能够保证网站不会从剪切板上跟踪我们的数据。
在这里插入图片描述

禁用EME媒体

加密媒体扩展(Encrypted Media Extensions,EME)是W3C提出的一种规范,用于在Web浏览器和DRM代理软件之间提供通信通道。EME作为一个应用编程接口(API),可以直接播放网页浏览器中受保护的内容[1]。

ps:能力有限,这段话实在不知道怎么理解,就贴原文了。

There have been many instances recorded where medias files have been downloaded. These files were proved to be encrypted when they downloaded their self, it was hard to detect them and their data. Firefox provides us with an option through which we can make sure nothing of such sorts happen.

media.eme.enabled
在这里插入图片描述

限制DRM内容(Restricting DRM Content)

DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理。 由于数字化信息的特点决定了必须有另一种独特的技术,来加强保护这些数字化的音视频节目内容,文档、电子书籍的版权,该技术就是数字权限管理技术—DRM(Digital rights management)。

你网络上浏览的内容都不可信任。通常,当基于DRM的软件在网站上运行时,它们拥有文件级控制权限,甚至用户级。用户级的控制允许它们访问、分享、下载和打印任何它们想要的内容。因此,你必须始终处于控制中。即使你的浏览器叫你去启用DRM内容,你也不应该开启。Firefox为我们提供了一个选项,即media.gmp-widevinecdm.enabled,它允许你限制DRM内容。
在这里插入图片描述

禁用媒体导航(Disabling Media Navigation)

如果启用此选项,将允许你的浏览器从你的系统中提取信息并展现在你浏览的网站上。从系统中收集的信息同样也能转发到第三方的域名中。如果你启用了这个选项,他将会收集有关操作系统、屏幕分辨率、系统类型、帧率、移动设备的facingMode等信息,以及可能会访问用户的媒体等。并且更糟糕的是,它能够控制浏览器中音频/视频选项卡的权限,以及访问相机和或麦克风。因此我们达成共识,保持此选项开启是一个重大的威胁。为了使我们避免这个潜在的威胁,我们只要禁用media.navigator.enabled选项即可。
在这里插入图片描述

限制cookie行为(Restricting Cookie Behaviour)

访问网站的时候会有各种cookie生成。这些cookie可能是必要的,用于网站的功能。其他的则是不重要的cookie,例如第三方的cookie。这些cookie经常是广告、小部件和web分析的结果。它们跟踪你的登录信息、购物车和你使用的语言等等。默认情况下,network.cookie.cookiebehaviour的值被设为0。(我这默认为4)这个值能够被设置为0到4之间的数字。如下:

0=接受所有cookie的值
1=只接收来自主域(first-party domains)
2=默认阻止所有cookie
3=使用p3p设置
4=存储访问策略:阻止所有来自跟踪器的cookie

我们将在这里选择值1,因为我们只像接受来自主域的cookie。
在这里插入图片描述

控制referrer头

当浏览互联网时,referrer头会发送到所请求的网站。这个请求头包含你先前所在页面以及你在哪里请求网页的信息。通常,firefox不会从https发送referrer头到http。通过referrer头发送此类信息会产生安全问题,因为它们会暴露你的个人信息和私人数据。简而言之,使用这个选项,你将能够控制是否要通过不同源来发送referrer头(应该是说上面那种https到http这样的吧)。现在,此数据可以发送到不同源域,即不同源。但firefox的内置跟踪包含提供了一个解决方案,通过**network.http.referer.XOriginPolicy **选项。这个值能给被设置为0到2之间的数。

0=在所有情况下都发送此referrer头
1=只有在同一主域名下时发送referrer头
2=只有在同源时才发送referrer头(理解为同一域名,而非1中的所有子域名间可以发送)

在这里插入图片描述

限制referrer头

在之前的配置设定中,我们学习到我们能够控制是否发送referrer头在不同源之间。现在,在许多情况下,你将必须在不同源间发送referrer头,甚至在同一源中。这里,你能够通过控制请求头的元素来限制它。选项network.http.referer.XOriginTrimmingPolicy允许我们这么做。这个值能被设置为0到2间的数字。

0=发送完整url
1=发送没有查询字符串的url(应该就是没有问号?后面的参数)
2=只发送域名(在1的基础上把网页的路径也省略了)
在这里插入图片描述

限制WebGL

WebGL是一个由火狐提供的选项,它把每个网页转换为3D图形。但是它带有各种安全漏洞。它使攻击者可能瞄准你的图像驱动和GPU,以达到使你的整个系统没用。当firefox引入webgl.disable配置设定时,由用户决定是否使用这个选项(WebGL)。通过这个选项(webgl.disable),你可以禁用WebGL。
在这里插入图片描述

禁用会话存储

有时,用户会遇到一些崩溃或断电,从而导致系统关闭。如果用户有一些URL在浏览器中打开或登录了某些应用,它们会在用户重启系统的时候恢复。自从firefox2.0发行后,这个选项就默认被启用。一些用户觉得这是一个不错的功能,它帮助了他们恢复数据或会话,但这构成了一个安全隐患,因为如果原来的目标用户没有重启系统或如果这发生在一个公共系统上,重启使用这个系统的用户就可能访问已登录的会话和之前用户浏览的网页。这个选项包含3哥可能的值

0=保存所有网站的会话数据(Extras Session data )
1=保存非https站点的会话数据
2=不保存会话数据

browser.sessionstore.privacy_level
在这里插入图片描述

禁用Beacon

IEEE 802.12.4中提到, beacon-enabled模式会在网络中应用。它发送关于个人网络的信息到服务器,以通知服务器,主机的存在。这允许新设备时不时的进行连接。这对维持网络同步很有用。但它不是强制性的,因为它会发送关于你网络的详细信息。
beacon.enabled
在这里插入图片描述

保护远程下载

默认情况下,远程安全下载在Firefox中被启用。我们经常谈到一个例子,下载下来的文件看起来是真的,但它可能是恶意文件。而且你永远不太能确定是否是真的。使用browser.safebrowsing.downloads.remote.enabled,我们能够更进一步地了解我们下载的安全文件并且文件没有被任何远程标记(nothing is remotely tagging along with the file)。
在这里插入图片描述

Firefox预取(Firefox Prefetching)

顾名思义,预取在Firefox中所做的是为用户快速加载网页。浏览器总是能预先调用网站所将要用到的参数,这些参数包含要用到的资源的数据。因此,在任何时候,他们能被请求并且浏览器将为用户预取这些需要的信息。浏览器将预测你经常访问的主域名以加快域名解析的过程。这个功能是为了节省用户的时间而开发的,但它事实证明是个安全隐患。Firefox能够预取想DNS、网络、IP地址等信息。
这个预取能够通过DNS(与DNS相关的所有东西)或者HTTPS(HTTPS内容)完成。而且他被证明是一种安全隐患,因此DNS和HTTPS的预取能够通过以下选项禁用:
network.dns.disablePrefetch
network.dns.disablePrefetchFromHTTPS
在这里插入图片描述
另一个你能禁用的预取是网络预测器。这个选项预取所有关于你所在网络的详细信息。它能够用过设置值为false禁用。
network.predictor.enabled
在这里插入图片描述
另一个禁止浏览器预取网络详细信息的选项是network.predictor.enable-prefetch。这个选项允许所有网络详细信息被预取,正如它名字一样。它能够通过设置值为false禁用。
在这里插入图片描述
network.prefetch-next选项允许特定链接被预取。当网站让浏览器知道某个页面有可能要去访问的时候,这就有可能发生。因此,为了方面用户,浏览器提前下载它们。它能够通过将值设为false禁用。
在这里插入图片描述

禁用IDN Punycode Conversion

在了解这个特定选项前,首先,你需要知道IDN support是什么。IDN使网站可以使用源自它们本地或国家的语言来注册域名。为了扩展对这些字符的支持,开发了一种交Punycode的新编码。默认情况下,network.IDN_show_punycode的值是false。这表明IDN是启用的。但不论功能多么好,它都可能被滥用。在2005年时,使用IDN的欺骗和钓鱼攻击急剧增加。者能够使用以下的例子进行解释:
源域名:https://hackingarticles.in
钓鱼域名:ttps://hackingarticlés.in
注意到钓鱼域名中的é。当选项启用的时候,它会转换é为e,使不使用é在语言中的用户也能简单的将其视为e。但这个转换也使用户无法看出真实网站和钓鱼网站的不同。
在这里插入图片描述

结语

通过启用或禁用这些火狐提供的配置的选项,你无需使用插件即可在线获得隐私和保护。如果你有关于任何web应用或认证或媒体的选项禁用/开启的问题,你应该做的是使用firefox提供的临时容器插件或配置文件,在firefox里创建一个容器。这样你会安全且跨域跟踪不会在你浏览器上发生。因此你的数据和私人信息是安全的。

  相关解决方案