中文

在函数粒度上阻止跟踪型JavaScript

密码学与安全 2024-05-29 v1

摘要

现代网站广泛依赖JavaScript来实现功能和跟踪。现有的隐私增强型内容拦截工具难以应对混合脚本,这些脚本同时实现功能和跟踪,因为拦截脚本会破坏功能,而不拦截则会允许跟踪。我们提出Not.js,一种在函数级别粒度上运行的细粒度JavaScript拦截工具。Not.js的优势在于分析动态执行上下文,包括每个JavaScript函数的调用栈和调用上下文,然后编码此上下文以构建丰富的图表示。Not.js在网页的图表示上训练一个监督式机器学习分类器,首先在JavaScript函数级别检测跟踪,然后自动生成保留功能同时移除跟踪的替代脚本。我们在前10K网站上的评估表明,Not.js在检测跟踪型JavaScript函数方面实现了高精度(94%)和召回率(98%),优于现有技术,同时对现成的JavaScript混淆具有鲁棒性。对跟踪函数的细粒度检测使Not.js能够自动生成替代脚本,移除跟踪型JavaScript函数而不会导致重大破坏。我们对Not.js的部署表明,在前10K网站中,62.3%的网站存在混合脚本,其中70.6%的混合脚本是第三方脚本,从事诸如cookie ghostwriting等跟踪活动。我们与过滤列表作者分享了Not.js在混合脚本中检测到的、当前不在过滤列表中的跟踪函数样本,这些作者确认,尽管已知这些脚本实现了跟踪,但由于潜在的功能破坏而未将其拦截。

关键词

引用

@article{arxiv.2405.18385,
  title  = {Blocking Tracking JavaScript at the Function Granularity},
  author = {Abdul Haddi Amjad and Shaoor Munir and Zubair Shafiq and Muhammad Ali Gulzar},
  journal= {arXiv preprint arXiv:2405.18385},
  year   = {2024}
}