STALE AD阻止规则的安装成本(2018)

2021-06-14 04:14:12

这篇博文帖子描述了在Antoine Vassel,Peter Snyder和Ben Livhits勇敢地进行的正在进行的工作。它是一系列研究为导向的帖子,这些职位分享了这两个调查和未来的愿景。我们不断寻求提高和自动化勇敢的广告封锁的准确性和速度,我们之前的帖子概述了AD阻塞的机器学习方法。

摘要:勇敢的研究团队学习Easylist,一个流行的过滤器列表,用于通过阻止与在线广告,跟踪和恶意软件相关的URL来保护用户的隐私和安全性。勇敢发现,由于其大尺寸和陈旧(很少使用或甚至过期)规则,大百分比(> 90%)的EasyList似乎对普通浏览案件提供了很少的好处。勇敢还计算出从Easylist中删除陈旧规则将URL的中值降低了63.4%,并将整个数据集中的过滤成本降低了84.4%,这代表了大量节省时间。

将来,勇敢的计划应用这些调查结果来提高用户的经验,并降低性能成本。

注意:本研究与勇敢的浏览器完成,绩效影响可能仅适用于勇敢。

勇敢使用各种技术来保护用户的隐私和安全性。一种这样的技术是使用资源过滤列表,或指示勇敢的规则列表阻止与在线广告,跟踪和恶意软件相关联的URL。除了我们自己的规则规则外,还勇敢地吸引了像EasyList和Easyprivacy的流行列表。

过滤列表已证明可用于保护Web用户,但它们会带缺点。最重要的是,这些列表很大,并且增长更大。如果每个规则都有帮助阻止不需要的资源,这将是很棒的。但是,应用规则不是免费的:每个规则需要时间和精力来申请,减慢浏览体验和消耗电池寿命。这表明效用和广度之间的权衡,我们可以通过仅在预期的福利(被阻止资源的数量)足以证明成本(在网上应用每个规则的时间和能量来提高规则来改进浏览体验)。

我们希望过滤列表拿起大量有用的规则,但随着时间的推移,其有用性随着时间的推移而减少,因为广告商和跟踪器更改URL,逃避跟踪器或退出业务。现有研究发现在其他众包安全规则列表中发现了禁用的累计有用规则,我们希望在浏览器过滤器列表中找到类似的结果。

我们进一步期望陈旧规则与有用规则的比率随着时间的推移而增加,因为它更容易衡量添加新规则的好处,而不是衡量删除旧规则。

我们的帖子描述了我们如何通过测量EasyList(最流行的过滤器列表)以及使用这些调查结果来提高用户的体验的勇敢计划。

EasyList是最受欢迎的过滤器列表,并且由许多流行的隐私和广告拦截工具使用,包括adblockplus,Ublock和勇敢。该列表包括混合

网络规则,指示客户端不是从匹配模式的URL中获取映像,javascript和其他资源,

异常规则,它指示客户端匹配模式的资源,即使资源将被一些先前规则阻止。

Easylist非常大,在这种写作时由大约70k的规则组成。约35k是网络规则,30k是元素规则,5k是异常规则。

Easylist很大,自开始以来一直在增长。从2013年以来,我们测量了添加到的规则数量,并由EasyList删除的规则数量,因为上图显示,EasyList在一年同期增加了比删除的规则更多,表明应用EasyList的成本增加过滤。

在大多数情况下,该图显示了添加的新规则数量的常量和平滑趋势,并删除了规则的数量。新规则的数量一直在删除的规则数量。

这一趋势有两个例外,虽然是2013年初,另一个在2015年底。在2015年底,2013年初,Fanboy的名单(另​​一个流行的过滤器列表)与EasyList合并,导致EasyList的化妆剧烈变化。 2015年中期的急剧发生变化似乎是列表维护者的短期错误或重新组织的结果,因为有大量的变化,但列表中没有规则无重大变化。

这篇文章中的测量均使用勇敢的广告封锁库进行。勇敢使用自己的高度优化的C ++的广告拦截库,以确保尽快过滤资源。勇敢的过滤库支持大多数提到的规则格式,这些格式出现在EasyList中,但并非所有这些规则格式。

出于各种性能原因,勇敢不支持100%的AdblockPlus格式(格式EasyList编写)。因此,该帖子中的结果与其他过滤工具执行的相同测量值不同。我们预计这些差异会很小,而不是影响一般调查结果(在Easylist中有大量罕见从未使用的规则,具有非琐碎的性能影响),但在此提及详细信息以完成完整性。

最重要的差异是,勇敢的adblock库目前不支持任何化妆品/元素过滤,因此我们从进一步考虑中排除这些规则。勇敢的adblock库也没有实现多个adblockplus过滤器选项,并忽略这些指令。在大多数情况下,这并不重要,因为这些不受支持的选项出现在少于.01%的EasyList规则中,例如“elemhide”,“websocket”等。这里的一个例外是出现的“弹出窗口”规则1,666规则,是657年规则中唯一的选择。

只要新补充的规则对用户有利于有利于用户而言,EasyList的增长并非自然。然而,如果EasyList的尺寸反映了过期或很少使用的规则的累积,那么有很多浪费的计算,并且在用户机上发生了很多浪费的时间。

要回答这个问题,我们将EasyList应用于Alexa 5K,这是一个策划的网络上的5,000个最受欢迎的网站,以及来自Alexa 1,000,000的5,000个站点的随机抽样(确保没有重复的网站)。我们的测量有几个步骤:

使用Selenium和DevTools协议记录渲染和执行网站时请求的每个URL。

添加额外的自动化以随机选择页面上的锚标记中的三个不同的相同域URL。

使用上述自动化访问每个站点的主页,以及最多三个子页面,并录制了对图像,脚本文件和其他Web资源所要求的所有URL。

根据当天提取的EasyList版本,确定哪些URL将被阻止,使用勇敢的优化的广告块实现。

在本篇文章中提出的结果描述了上述步骤,适用于截至2018年7月13日星期六的EasyList和Alexa列表。通过AWS Lambda进行所有测量。我们为GitHub提供了Lambda函数的代码。

我们要求的大约20%的域名没有回复,或者用错误代码回复。我们将此归因于反爬行技术应用于我们爬出的知名IP。

因此,我们成功爬行了8​​,085个域名,以及30,280个个人页面。我们发现在浏览流行的网站时不使用绝大多数EasyList规则;在我们的爬网期间使用39,198(〜8%)的3,268个(〜8%)(这些测量排除元素规则)。

我们还发现,即使仅考虑至少使用至少一次的规则,EasyList中的规则也没有同样有用。例如,我们发现只有201规则占拦截活动的90%。事实上,在我们访问过的〜30k页面上使用了99.5%的规则。

最后,我们还测量了EasyList阻止了哪些资源。作为上图所示,图像最常被EasyList阻止,然后是脚本和Iframe请求。阻止分配事项的这种差异,因为不同的请求可以对浏览体验产生重大的后续影响。阻止图像请求可以保存用户某些网络使用,同时阻止样式表或IFRAME可以保存用户额外的子资源提取。

在我们发现大百分比(> 90%)的easylist似乎为普通浏览案件提供很少的好处,我们测量了长期使用的规则的长尾施加的成本。

将过滤规则应用于URL请求时,浏览器(和浏览器扩展)需要悲观;客户无法允许提出请求,然后追溯撤销它,因为“成本”已经承担。浏览器必须在每次提出请求时“暂停”,将所有网络过滤器应用于URL,只能继续请求。结果,甚至由URL滤波引起的小时间开销可以对浏览体验具有大量累积效果。

为了衡量,我们比较了在我们上面描述的爬网(4,032,693个URL,49,249个域中的4,032,693个URL,2,105,674个域中所获取的Easylist中所有39,198个网络规则的成本。我们重复此测试5次,平均每次URL花费0.26ms,总时间为51.2秒。请注意,我们使用勇敢的优化的C ++广告块实现进行了这些测量,并且期望在其他工具中应用EasyList需要更长时间,但我们没有测试。

然后,我们只使用匹配在我们的爬网期间遇到的URL的EasyList的小节重复这些测量,以近似于EasyList中未使用的规则的成本。差异是节省时间的全部级数。从EasyList中删除很少和未使用的规则将URL的中值降低了63.4%,从0.063ms滤波到0.023ms,并将整个数据集中的过滤成本降低了84.4%,从51.2秒到8.0秒。

众群URL过滤列表是保护浏览器用户的隐私和安全性的有用工具。然而,随着时间的推移,这些列表可以建立陈旧的规则,规则,为用户提供没有利益,同时施加小的性能成本。虽然每个规则成本很小,但列表中的大量这些规则aseylist的大小可能变得很大。

我们的研究结果表明,用户将从这些规则列表的定期修剪中受益。 自动爬网,例如本帖子中描述的爬网只是一个这样的规则列表可以保持整洁。 勇敢有几个计划的这些调查结果:首先,我们可以从我们为客户所服务的EasyList版本中删除很少使用的规则。 其次,我们正在考虑静态阻塞模型的几个优化,例如以阻止方式应用流行规则,在提取URL之后应用不受欢迎的规则,并将任何规则从第二个集中移动到前者集中。 第三,我们正在扩展我们的测量策略,包括其他流行的过滤器列表,包括EasyPrivacy。 继续阅读关于广告阻止,功能,性能,隐私和基本关注令牌相关公告的新闻。