网络安全
通过机器学习对抗广告拦截
美国和巴基斯坦的一项新研究计划开发了一种基于机器学习的方法,用于识别能够抵抗广告拦截和其他隐私保护技术的网站,并解构此类网站用于“混合”广告来源和隐私的技术。真实内容,因此如果广告被屏蔽,内容将无法查看。
根据研究结果开发的新广告拦截技术可以杜绝广告被拦截时无法查看文章中心内容的事件,提供一种自动方法来分离广告和脚本资源,而不是目前流行的广告拦截框架使用的手动方法。
作者对 100,000 个网站的“混合资源”进行了大规模研究,发现 17% 的域名、48% 的主机名、6% 的脚本和 9% 的内容交付方法故意混合了跟踪(即广告)功能通过提供真实内容的流程。 在这种情况下,对于使用广告拦截或反跟踪软件的用户来说,文章内容将会消失,迫使用户关闭这些措施才能查看内容。
在大多数情况下,这不仅意味着广告将再次可见,而且还意味着用户将被迫重新进入跨域跟踪系统。 愤怒的隐私活动人士 最近几年。
这项新研究提供了一个系统,能够以 98% 的准确率分离出这些“混合”网络资源的组件,从而使广告拦截和反跟踪解决方案有机会在其软件的后续迭代中理清这些流,并再次启用广告拦截页面上的内容访问。
新文 标题为 TrackerSift:理清混合跟踪和功能 Web 资源,来自美国弗吉尼亚理工大学和 UoC Davis 以及巴基斯坦 FAST NUCES 和拉合尔管理科学大学 (LUMS) 的研究人员。
Adblock 战争
广告拦截系统通常依赖于网页中广告内容源自特定专用域的需求——通常具有域名和/或 IP 地址的广告技术平台可被归类为“第三方广告”,从而允许开发不会在网页内呈现来自这些来源的内容的阻止列表。
此外,广告特定资源(例如脚本)的名称可以添加到阻止列表中,这样即使在故意掩盖其来源的情况下,这些资源也不会运行。 这种系统生成的脚本的命名模式通常是一致的,从而能够识别和阻止列表。
由于网页中的广告经常是在页面加载的最后几毫秒内通过 动态拍卖流程 (基于页面中找到的关键字、活动目标指标和许多其他因素),在主机域上存储广告是不切实际的,这在理论上会阻止广告拦截器隐藏商业内容。
越来越多的网站通过以下方式反击广告拦截: CNAME 伪装 – 使用“真实”域的子域作为广告服务器的代理(即,content.example.com 将向 example.com 提供广告,即使该子域除了提供广告之外没有其他目的,并且不由主机网站,而不是其广告商)。
然而,这种方法可以通过将子域的内容区分为广告,或者使用网络分析技术来识别子域与核心域的异常和不规则关系来量化和阻止。
跟踪筛
作者的论文提出了 TrackerSift,这是一个分析网站获取的网络资源的平台,然后将混合资源重新分类为“内容”和“广告”。 在最一般的分析层面,TrackerSift 记录基本的网络资源请求,例如从内容分发网络 (CDN) 或广告平台获取的广告内容; 然后深入到获取的资源内容,进行代码级分析,区分各类代码调用和过程的功能。
时间
为了获取为 TrackerSift 提供支持的数据集,作者从 100,000 年随机选择了 2018 个网站 Tranco 百万富翁排行榜. 硒 浏览器自动化与 Google Chrome 一起使用来执行该任务。
该网络爬行网络基于北美的大学站点,由 13 个节点的集群组成,整个系统拥有 112 个核心、52 TB 的存储空间和 823 GB 的运行 RAM。
每个节点都基于 Docker 容器,专门爬取所选 100,000 个网页的子集,并通过编程暂停以实现可持续性,并在加载新域时完全擦除所有 cookie 和标识符,以确保先前的会话和状态不会影响当前的会话和状态。下一个域的可读性。
混合脚本
结果表明广泛使用 脚本捆绑,其中广告平台和内容托管故意将基于内容的脚本和基于广告的脚本连接成“uberscripts”,如果被阻止,这将阻碍内容显示。 例如,作者指出,pressl.co 提供一个通过以下方式捆绑的 Web 脚本: 网络包 JavaScript 连接器平台,其中包含 Facebook 跟踪像素,以及支持渲染实际内容的代码。
此外,该论文指出,许多领域愿意将脚本直接嵌入到网页代码中,这使得广告拦截框架有必要解决脚本中的功能,而不是简单地根据其第三方来阻止脚本加载。聚会来源 URL。
通过本地化这些方法,可以清晰地将此类代码系统地分为内容和广告类别,以及在广告拦截环境中恢复内容显示的可能性。
尽管现有的广告拦截解决方案(例如 NoScript、AdGuard、uBlock Origin 和 Firefox Smartblock)使用代理脚本将此类合并脚本分解为可拦截的组件脚本,但这些解决方案依赖于 手动重写 的脚本,导致阻止者和破坏它们的不断变化的技术之间持续的冷战。 相比之下,TrackerSift 为混合内容分解提供了一种潜在的编程方法。