Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Extended summary of “Understanding the Performance Costs and Benefits of Privacy-focused Browser Extensions”
1. 1
Università degli studi di Trieste
DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA
Corso di Laurea in Ingegneria Elettronica e Informatica
Extended summary of “Understanding the Performance Costs
and Benefits of Privacy-focused Browser Extensions”
Candidato: Relatore:
Riccardo De Monte Prof. Alberto Bartoli
Matricola: IN0500642
ANNO ACCADEMICO 2020-2021
2. 2
Indice
1 Introduzione .................................................................................................................................3
2 Come funzionano le estensioni per la privacy..............................................................................3
3 La metodologia .............................................................................................................................4
3.1 I browsers .......................................................................................................................................... 4
3.2 Le estensioni considerate.................................................................................................................. 4
3.3 Le metriche........................................................................................................................................ 5
3.4 Il setup: i domini considerati, l’hardware utilizzato e le zone geografiche....................................... 5
4 I risultati........................................................................................................................................6
5 Conclusioni....................................................................................................................................8
6 Fonti bibliografiche.......................................................................................................................8
3. 3
1 Introduzione
Al giorno d’oggi l’industria della pubblicità è una delle realtà economiche più importanti, se non la
più importante. I profitti sono ottenibili però grazie ad un vero e proprio profiling degli utenti del
web, per mezzo di tecniche per il tracciamento e per la raccolta di grandi quantità di dati. Tali
tecniche tuttavia, si rivelano pesantemente invasive, violando così la nostra privacy.
Ad eccezione del GDPR, non ci sono molti regolamenti attivi a tutela dei dati personali ed in molti
paesi, come gli Stati Uniti d’America e la Cina, non è previsto alcun tipo di limitazione.
Una possibile soluzione è rappresentata dalle estensioni per l’anti-tracking e per il bloccaggio delle
pubblicità. Google afferma però che, oltre a problemi di privacy dovuti al possibile comportamento
malevolo di certe estensioni, queste possano portare ad un calo delle prestazioni dei browsers.
Questo articolo presenta uno studio che analizza le differenze in termini di performance tra l’utilizzo
dei browser con e senza l’adozione delle estensioni. Come si vedrà successivamente, gli autori hanno
dimostrato che, secondo certe metriche, l’uso di determinate estensioni porti in realtà ad un
miglioramento dell’esperienza d’uso degli utenti.
2 Come funzionano le estensioni per la privacy
Le estensioni per la privacy hanno bisogno di analizzare le richieste http per poi attuare delle azioni
in risposta al loro contenuto. Per fare ciò, le estensioni usufruiscono della API webRequest. Essa
consente ad un’estensione di ispezionare, modificare e bloccare una richiesta in un qualunque
momento del suo processo di creazione.
Figura 1: Flusso comune degli eventi generati per la creazione di una richiesta
Considerando lo schema in Figura 1, un’estensione è in grado di intervenire quando si verifica uno
degli eventi evidenziati in grigio. Per esempio, è possibile modificare i request headers di una
richiesta http con la funzione di callback assegnata all’evento onBeforeSendHeaders, cioè
quell’evento generato quando sono stati definiti i request headers ma non è ancora stato mandato
alcun dato.
4. 4
In generale, queste estensioni possono:
• cancellare la richiesta quando vengono generati gli eventi onBeforeRequest,
onBeforeSendHeaders e onAuthRequired
• reindirizzare la richiesta quando si gestiscono gli eventi onBeforeRequest e
onHeadersReceived
• modificare i request headers quando si gestisce l’evento onBeforeSendHeaders
• modificare i response headers quando si gestisce l’evento onHeadersReceived
Inoltre, Firefox permette alle estensioni di monitorare e modificare il contenuto di una risposta http.
Il modo in cui le estensioni vanno ad intervenire differisce da estensione ad estensione. In
particolare le estensioni si possono suddividere in due categorie:
1. quelle che usufruiscono di blacklist o whitelist di domini
2. quelle che fanno uso di algoritmi euristici in grado di determinare un’attività di tracking
3 La metodologia
3.1 I browsers
Lo studio è stato condotto facendo uso di Google Chrome 77 e Mozilla Firefox 68, utilizzando come
sistema operativo Debian Linux 10.
Per testare in modo automatizzato i due browser, si è fatto affidamento su Selenium, un framework
che permette di automatizzare l’iterazione tra browser e siti web per mezzo di istruzioni (test). Per
ottimizzare l’uso di Selenium è stato necessario procedere in modo differente in base al browser:
• Firefox è stato eseguito in modalità headless, cioè senza fare uso dell’interfaccia grafica (si
interagisce con il browser tramite riga di comando)
• Chrome è stato eseguito in modalità headful, ma usando un display virtuale grazie a Xvfb
3.2 Le estensioni considerate
Le estensioni considerate sono:
1. AdBlock Plus
2. uBlock Origin
3. Decentraleyes
4. HTTPS Everywhere
5. NoScript Security Suite
6. Ghostery
7. Disconnect
8. Privacy Badger
In questo studio sono state analizzate 10 configurazioni (le medesime per entrambi i browsers): la
configurazione baseline, cioè senza l’uso delle estensioni, una per ogni estensione ed infine una che
combina l’uso di Decentraleyes, Privacy Badger, e uBlock Origin.
5. 5
3.3 Le metriche
Per quantificare le differenze di prestazione tra le varie configurazioni, sono state definite delle
metriche. Queste metriche si possono suddividere in due categorie: browser metrics e system
metrics.
Le browser metrics sono le seguenti:
1. onLoad: il tempo impiegato per caricare l’intera pagina
2. onContentLoad: il tempo impiegato per caricare il file HTML inziale
3. Resources: il numero totale di risorse richieste
4. Cookies: il numero di cookies inviati
5. Total Size: dimensione totale della pagina (in KB)
Per ottenere tali informazioni, si è esportato un file di tipo HAR per ogni sito visitato.
Le system metrics considerate sono le seguenti:
1. CPU Clock: il tempo speso dalla CPU (da tutti i core) per eseguire le istruzioni necessarie
2. Context Switches: il numero di commutazioni di contesto
3. CPU Migrations: il numero di migrazioni di CPU
Misurare queste quantità ha permesso di valutare l’impatto di una configurazione sull’intero
sistema. In particolare, queste metriche sono anche degli indicatori di quanta energia viene
consumata.
3.4 Il setup: i domini considerati, l’hardware utilizzato e le zone geografiche
Nella scelta di quali siti web visitare, si è considerata la classifica dei siti più popolari Tranco, una
lista contenente 1 milione di domini. Di questa top list, si è selezionato un sottoinsieme di 2,000
domini, considerando sia alcuni siti nella top 1,000 (i più ottimizzati), che quelli dei restanti della top
100,000.
Come setup hardware si è fatto affidamento sul servizio Amazon EC2, e si è optato per delle istanze
dotate di un processore Intel® Xeon® Platinum 8175M, di una memoria RAM da 32 GB e di una
connessione internet fino a 10Gbps. Inoltre, lo stesso esperimento è stato condotto usando un mini
computer Intel Core i7 NUC con 75Mbps di connessione internet, per cui sono stati ottenuti gli stessi
risultati.
Per evidenziare eventuali differenze di performance dovute al GDPR, l’esperimento è stato
effettuato sia in Virginia, Stati Uniti d’America, che a Francoforte, in Germania.
6. 6
4 I risultati
I dati ottenuti sono il risultato di 18 giorni di test, nei quali si è visitato con successo ogni dominio
per 7 volte (mediamente) con Firefox e da 1 a 3 volte con Chrome.
L’analisi condotta consiste nel confrontare ogni configurazione con estensioni con la configurazione
baseline. In particolare, per ogni metrica, si sono processati i dati ottenuti come segue:
• è stata calcolata la mediana dei dati ottenuti
• alla mediana viene sottratta la mediana dei dati ottenuti con la configurazione senza
estensioni
• il risultato ottenuto viene poi calcolato in termini della deviazione mediana assoluta per la
configurazione baseline (M)
• in base al valore ottenuto si è colorato in modo differente il grafico delle frequenze
cumulate relative. Se il valore è positivo, allora significa che c’è un peggioramento rispetto
alla versione baseline ed in tal caso si è colorato lo sfondo del grafico con una gradazione di
rosso. In caso contrario, si ha invece un miglioramento e si è colorato lo sfondo del grafico
con una gradazione di blu.
Figura 2: I risultati per le configurazioni di Firefox in Germania
7. 7
Figura 3: I risultati per le configurazioni di Chrome negli USA
Come osservabile in Figura 2, nel caso di Firefox in Germania si è ottenuto che tutte le
configurazioni, tranne quelle con AdBlock Plus, con HTTPS Everywhere e con Disconnect, risultano,
in termini di mediana, più performanti secondo tutte le metriche, tranne nel caso del tempo
onContentLoad.
Come osservabile in Figura 3, si è invece osservato che le differenze tra la configurazione baseline e
quelle con le estensioni sono meno marcate nel caso di Chrome negli USA. Si può quindi constatare
che il comportamento di un’estensione varia in base al browser utilizzato.
A conferma della tesi sostenuta dagli autori, si è osservato che per esempio la configurazione di
Chrome con uBlock Origin risulta peggiore rispetto la configurazione baseline solo secondo la
metrica onContentLoad, con un ritardo di 3ms (in termini di mediana).
Infine, si sono constatate delle notevoli differenze dovute alla posizione geografica. Analizzando le
metriche come il numero di risorse richieste e il numero di cookies inviati, si è rilevato che negli USA
le estensioni hanno bloccato più richieste e cookies, evidenziando così quanto le estensioni debbano
intervenire maggiormente là dove non esiste alcun regolamento per la privacy. A conferma di ciò, si
può trarre una conclusione simile osservando i dati relativi al CPU time.
8. 8
5 Conclusioni
Dando maggior importanza alle metriche onLoad, Resources e CPU Clock, considerate quelle più
rilevanti dal punto di vista dell’esperienza d’uso dell’utente, è risultato dall’esperimento che molte
delle configurazioni con estensioni risultano migliori o comparabili alla configurazione baseline.
Questo conferma che l’uso di webRequest, e quindi delle estensioni, non comporta per forza
conseguenze negative in termini di performance sull’uso dei browser, contraddicendo ciò che
afferma Google.
L’analisi condotta però non dimostra né l’efficacia delle estensioni nel bloccare le attività di tracking
né se queste estensioni, a loro volta, violino o meno la privacy degli utenti. A tal proposito, gli autori
suggeriscono ai produttori dei browsers di adottare dei metodi automatizzati per verificare che le
estensioni non abusino delle API.
6 Fonti bibliografiche
• Kevin Borgolte, Nick Feamster, Understanding the Performance Costs and Benefits of
Privacy-focused Browser Extensions in WWW ’20 Proceedings of The Web Conference 2020,
pp. 2275-2286