Blocking Tracking JavaScript at the Function Granularity
Abdul Haddi Amjad, Shaoor Munir, Zubair Shafiq, Muhammad Ali Gulzar

TL;DR
Not.js is a novel fine-grained JavaScript blocking tool that analyzes function execution contexts to detect and remove tracking functions, improving privacy without breaking website functionality.
Contribution
It introduces a machine learning-based approach to detect tracking functions at the function level and generate surrogate scripts, outperforming existing tools.
Findings
Achieves 94% precision and 98% recall in detecting tracking functions.
Detects tracking in 62.3% of top websites, with 70.6% being third-party scripts.
Identifies tracking functions not currently blocked by filter lists.
Abstract
Modern websites extensively rely on JavaScript to implement both functionality and tracking. Existing privacy enhancing content blocking tools struggle against mixed scripts, which simultaneously implement both functionality and tracking, because blocking the script would break functionality and not blocking it would allow tracking. We propose Not.js, a fine grained JavaScript blocking tool that operates at the function level granularity. Not.js's strengths lie in analyzing the dynamic execution context, including the call stack and calling context of each JavaScript function, and then encoding this context to build a rich graph representation. Not.js trains a supervised machine learning classifier on a webpage's graph representation to first detect tracking at the JavaScript function level and then automatically generate surrogate scripts that preserve functionality while removing…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Advanced Malware Detection Techniques · Security and Verification in Computing
