DOI: 10.7910/dvn/kamcym
title: Replication Data for: ML-CB

description: In this paper, we develop a new privacy enhancing tool: ML-CB—a means of using distinguishable pictorial information combined with underlying website source code to produce accurate and robust machine learning classifiers able to discern fingerprinting (i.e., surreptitious tracking) from non-fingerprinting canvas-based actions.
description: PostgreSQL dataset accompanying paper <em>ML-CB</em>.

<em>ML-CB: Machine Learning Canvas Block</em>, Proceedings on Privacy Enhancing Technologies (2021)

<strong>Abstract: </strong>
With the aim of increasing online privacy, we present a novel, machine-learning based approach to blocking one of the three main ways website visitors are tracked online—canvas fingerprinting. Because the act of canvas fingerprinting uses, at its core, a JavaScript program, and because many of these programs are reused across the web, we are able to fit several machine learning models around a semantic representation of a potentially offending program, achieving accurate and robust classifiers. Our supervised learning approach is trained on a dataset we created by scraping roughly half-a-million websites using a custom Google Chrome extension storing information related to the canvas. Classification leverages our key insight that the images drawn by canvas fingerprinting programs have a facially distinct appearance, allowing us to manually classify files based on the images drawn; we take this approach one step further and train our classifiers not on the malleable images themselves, but on the more-difficult-to-change, underlying source code generating the images. ML-CB allows for more accurate tracking-blocking and, overall, a more private web.


<strong>High Level Description: </strong>
Tables (<em>fingerprinters</em> and <em>test_suite</em>) take the form of:

<strong>initiator</strong>: website associated with canvas-related information
<strong>origin_url</strong>: web request URL
<strong>uri</strong>: canvas images (as array) drawn by origin_url
<strong>successful</strong>: flag indicating static use of the canvas (false) or dynamic use (true)
<strong>uri_screen</strong>: base64 encoded screenshot of website's landing page
<strong>manual_label</strong>: ground truth associated with is-fingerprinting or is-not-fingerprinting


Basic* Install Instructions: 

 download all .sql files (large .zip) 
 unzip files 
 use "Terminal" (e.g., Zsh, Bash) to `cd` into folder (e.g., `cd dataverse_files`) 
 combine all .sql files (in terminal, type `cat split_* &gt; reconstructed.sql`) 
 create new Postgres database (e.g., pgAdmin right click databases and "create &gt; Database...") 
 right click new database, click "Restore..." enter filename "reconstructed.sql" (make sure full path to reconstructed.sql is provided) 

* for additional instructions, see https://github.com/SP2-MC2/ML-CB 
<br>
Content Disclaimer: Dataset pertains to a large (~500K) website scrape of domains listed on Alexa Top Sites. Data captured from the scrape includes website URLs, file hyperlinks (i.e., origin_urls) from web requests, and screenshots (in base64 encoded form) from certain domains. If decoded, the screenshots may contain obscene or offensive material, depending on the particular website associated with the screenshot. In base64 encoded form, this data appears as a long string of text.
description: Postgres, PostgreSQL 10.16 on x86_64-apple-darwin14.5.0, compiled by Apple LLVM version 7.0.2 (clang-700.1.81), 64-bit