VisibleV8

Overview

strace for the web

VisibleV8 (VV8) is a custom variant of the V8 JavaScript engine at the heart of the Chromium browser, the Node.js application runtime, and probably other titans of the modern software world. Maintained and distributed as a minimally-invasive and maintainable patchset, VV8 captures and logs the following activities in plaintext logs:

Log records directly or indirectly include the following context:

Papers

  1. FV8: A Forced Execution JavaScript Engine for Detecting Evasive Techniques
    Nikolaos Pantelaios, Alexandros Kapravelos
    Proceedings of the USENIX Security Symposium, 2024
    [PDF] [Bibtex] [code]
  2. Automatic Discovery of Emerging Browser Fingerprinting Techniques
    Junhua Su, Alexandros Kapravelos
    Proceedings of The Web Conference (WWW), 2023
    [PDF] [Bibtex] [code]
  3. Browserprint: An Analysis of the Impact of Browser Features on Fingerprintability and Web Privacy
    Seyed Ali Akhavani, Jordan Jueckstock, Junhua Su, Alexandros Kapravelos, Engin Kirda, Long Lu
    Proceedings of the Information Security Conference (ISC), 2021
    [PDF] [Bibtex]
  4. Towards Realistic and Reproducible Web Crawl Measurements
    Jordan Jueckstock, Shaown Sarker, Peter Snyder, Aidan Beggs, Panagiotis Papadopoulos, Matteo Varvello, Ben Livshits, Alexandros Kapravelos
    Proceedings of The Web Conference (WWW), 2021
    [PDF] [Bibtex] [code]
  5. Hiding in Plain Site: Detecting JavaScript Obfuscation through Concealed Browser API Usage
    Shaown Sarker, Jordan Jueckstock, Alexandros Kapravelos
    Proceedings of the ACM Internet Measurement Conference (IMC), 2020
    [PDF] [Bibtex]
  6. VisibleV8: In-browser Monitoring of JavaScript in the Wild
    Jordan Jueckstock, Alexandros Kapravelos
    Proceedings of the ACM Internet Measurement Conference (IMC), 2019
    [PDF] [Bibtex] [website] [slides] [talk] [code]

Availability

The VV8 patches, tests, build scripts, and documentation are all available on GitHub.