SurfJS
Real-Time and Context-Agnostic Surrogate Functionalities for Privacy Invasive JavaScript
SurfJS is a privacy enhancing browser extension that offers real-time, script-agnostic and obfuscation-resilient surrogate functionalities for privacy invasive JavaScript. Currently, existing content blocking tools rely on replacing entire scripts with surrogate counterparts, so as to prevent webpage breakage and preserve privacy. However, this approach entails certain limitations, such as script replacements being bound to specific script versions and necessitating constant updates, may become obsolete and cause breakage, and typically require significant and possibly error-prone manual effort to author. SurfJS will tackle these issues by adopting a fine-grained, dynamic approach of selectively instrumenting and replacing privacy-sensitive JavaScript APIs with surrogate APIs. In more detail, harmful scripts will access mock APIs (e.g., set or access a cookie in a dummy cookie jar), while benign scripts will still be able to call the original APIs, essentially maintaining script and page functionality while preserving user privacy. Crucially, this approach allows SurfJS to operate in a fully automated, scalable and script-agnostic manner, i.e., without requiring any prior script analysis, refactoring or manual effort.
Run by Technical University of Crete
This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429. Additional funding is made available by the Swiss State Secretariat for Education, Research and Innovation (SERI).