against Web Tracking Nataliia Bielova (Inria INDES) with - - PowerPoint PPT Presentation

against web tracking
SMART_READER_LITE
LIVE PREVIEW

against Web Tracking Nataliia Bielova (Inria INDES) with - - PowerPoint PPT Presentation

Hybrid informa-on flow monitoring against Web Tracking Nataliia Bielova (Inria INDES) with Frederic Besson and Thomas Jensen (Inria CELTIQUE) Security and


slide-1
SLIDE 1

Hybrid ¡informa-on ¡flow ¡monitoring ¡ against ¡Web ¡Tracking ¡

Nataliia ¡Bielova ¡(Inria ¡INDES) ¡ with ¡Frederic ¡Besson ¡and ¡Thomas ¡Jensen ¡(Inria ¡CELTIQUE) ¡

¡ Security ¡and ¡Privacy ¡Workshop ¡– ¡LabEx ¡ 18 ¡December ¡2013 ¡

¡

slide-2
SLIDE 2

Web ¡Tracking ¡

2 ¡ Courtesy ¡of ¡Franziska ¡Roesner ¡

Bigger ¡browsing ¡profiles ¡ ¡ ¡ ¡ ¡ = ¡increased ¡value ¡for ¡trackers ¡ = ¡reduced ¡privacy ¡for ¡users ¡ ¡

(HypotheTcal ¡tracking ¡relaTonships ¡only.) ¡

Tracker.com ¡ AdverTse.com ¡ Doubleclick.com ¡

slide-3
SLIDE 3

Doesn’t ¡cookie ¡blocking ¡already ¡solve ¡it? ¡

  • Blocking ¡cookies ¡prevents ¡tracking ¡ ¡

§ only ¡by ¡browser-­‑ini-ated ¡HTTP ¡requests ¡

  • It ¡doesn’t ¡protect ¡from ¡tracking ¡ ¡

§ by ¡using ¡scripts ¡ § by ¡other ¡storage ¡mechanisms ¡ ¡ § by ¡browser ¡fingerprinTng ¡

Nataliia ¡Bielova ¡ 3 ¡

slide-4
SLIDE 4

Nataliia ¡Bielova ¡ 4 ¡

slide-5
SLIDE 5

5 ¡

b.voicefive.com ¡ b.scorecardresearch.com ¡ pagead2.googlesyndica-on.com ¡ js.revsci.net ¡ effec-vemeasure.net ¡ googleads.g.doubleclick.net ¡ googletagservices.com ¡ emp.bcci.co.uk ¡ bcc.co.uk ¡ Thanks ¡to ¡EU ¡ePrivacy ¡DirecTve ¡

Nataliia ¡Bielova ¡

slide-6
SLIDE 6

Don’t ¡browser ¡extensions ¡solve ¡it? ¡

AdBlockPlus: ¡blocks ¡scripts/requests ¡only ¡from ¡ ¡ known ¡adver-sement ¡companies ¡ ¡ Ghostery: ¡blocks ¡scripts/requests ¡only ¡from ¡ ¡ known ¡tracking ¡companies ¡ ¡ ¡

Nataliia ¡Bielova ¡ 6 ¡

  • They ¡don’t ¡protect ¡from ¡tracking ¡by ¡other ¡companies ¡
  • They ¡don’t ¡protect ¡form ¡tracking ¡by ¡the ¡main ¡(first-­‑party) ¡website ¡
slide-7
SLIDE 7

Tracking ¡is ¡complicated ¡

  • Much ¡discussion ¡on ¡tracking, ¡but ¡limited ¡

knowledge ¡about ¡concrete ¡technologies ¡

  • In ¡this ¡talk: ¡

§ How ¡tracking ¡works ¡

  • Cookies ¡and ¡browser ¡fingerprinTng ¡

§ Address ¡gaps ¡with ¡new ¡analysis ¡

  • QuanTtaTve ¡informaTon ¡flow ¡

Nataliia ¡Bielova ¡ 7 ¡

slide-8
SLIDE 8

Mechanisms ¡Required ¡By ¡Trackers ¡

  • Ability ¡to ¡store/create ¡user ¡idenTty ¡in ¡the ¡

browser ¡

§ Store: ¡cookies ¡+ ¡other ¡browser ¡storages ¡ § Create: ¡fingerprinTng ¡browser ¡and ¡OS ¡properTes ¡

  • Ability ¡to ¡communicate ¡user ¡idenTty ¡back ¡to ¡

tracker ¡

§ Browser: ¡cookies ¡+ ¡other ¡HTTP ¡headers ¡ § JavaScript: ¡embed ¡informaTon ¡in ¡URLs ¡

Nataliia ¡Bielova ¡ 8 ¡

slide-9
SLIDE 9

Tracking ¡by ¡storing ¡idenTty ¡

logs ¡ Cookie ¡Database ¡ site1.com: ga_id=123 hgp://site1.com ¡ processing ¡engine ¡

2:52pm: user 123 visited site1.com

<script src=google- analytics.com/ script.js>

  • </src>

script ¡ google-­‑analyTcs.com ¡

Cookies ¡are ¡used ¡to ¡track ¡repeat ¡visits ¡to ¡a ¡site. ¡

go google- analyt ytics cs.co com/tr track? k? ga_i _id=123& & site=site1.co com m // google-analytics.com/script.js var url = “http://google-analytics.com/track?ga_id= “

  • + encodeURI(document.cookie)

+ “&site= “ + encodeURI(document.location); new Image().src = url;

9 ¡ Nataliia ¡Bielova ¡

slide-10
SLIDE 10

Tracking ¡by ¡creaTng ¡idenTty ¡

logs ¡ hgp://site1.com ¡ processing ¡engine ¡

2:52pm: user_fp 9jhldpe7fv visited site1.com

<script src=fingerprinter.com/ script.js>

  • </src>

script ¡ fingerprinter.com ¡

fingerprinter.co com/ tr track? k? fp_i _id=9jhldpe7fv& v& site=site1.co com m

10 ¡

Browser ¡and ¡opera-ng ¡system ¡proper-es ¡are ¡used ¡ to ¡track ¡repeated ¡visits ¡to ¡a ¡site. ¡

Nataliia ¡Bielova ¡

slide-11
SLIDE 11

Tracking ¡by ¡creaTng ¡idenTty ¡

Nataliia ¡Bielova ¡ 11 ¡

83.6% ¡of ¡browser ¡fingerprints ¡are ¡unique ¡among ¡all ¡observed ¡ (500 ¡000 ¡browsers) ¡[Eckersley, ¡PETS’2010] ¡

slide-12
SLIDE 12

Nataliia ¡Bielova ¡ 12 ¡

Browser ¡property ¡ Source ¡ Browser ¡name ¡and ¡version, ¡ ¡ OperaTng ¡system ¡name ¡and ¡version ¡ HTTP ¡ JavaScript ¡ File ¡types ¡accepted, ¡language ¡used ¡ HTTP ¡ Plugins ¡installed ¡in ¡the ¡browser ¡ JavaScript ¡ Time ¡zone ¡ JavaScript ¡ Screen ¡size ¡and ¡color ¡depth ¡ JavaScript ¡ Fonts ¡installed ¡ Flash ¡ Some ¡of ¡browser ¡preferences ¡ HTTP ¡ JavaScript ¡ Support ¡for ¡new ¡technologies ¡ JavaScript ¡

Which ¡browser ¡properTes ¡create ¡a ¡ fingerprint? ¡

Give ¡the ¡most ¡ iden-fying ¡ ¡ Informa-on ¡ [Eckersley’2010] ¡ ¡

slide-13
SLIDE 13

var x = 0; if (name == “Firefox”) { x = 1; } else { if (fonts == fontsSet1) {

  • x = 2;
  • }

}

  • utput x;

What ¡does ¡tracker ¡learn? ¡

Nataliia ¡Bielova ¡

name = “Firefox”

Depending ¡on ¡user’s ¡browser, ¡different ¡execu-ons ¡of ¡ the ¡same ¡script ¡leak ¡different ¡quan-ty ¡of ¡informaTon! ¡

x = 1

=> ¡

name ≠ “Firefox” && fonts = fontsSet1

x = 2

=> ¡

name ≠ “Firefox” && fonts ≠ fontsSet1

x = 0

=> ¡

13 ¡

slide-14
SLIDE 14

Nataliia ¡Bielova ¡ 14 ¡

Challenge: ¡ ¡ How ¡to ¡automa-cally ¡evaluate ¡how ¡much ¡informa-on ¡a ¡ tracker ¡learns ¡through ¡one ¡execu-on ¡of ¡the ¡script? ¡

slide-15
SLIDE 15

StaTc ¡analysis ¡for ¡ ¡QuanTtaTve ¡InformaTon ¡Flow ¡

  • Tradi-onally, ¡staTc ¡analysis ¡compute ¡expected ¡leakage ¡

§ using ¡Informa-on ¡Entropy ¡

  • In ¡reality, ¡we ¡only ¡have ¡one ¡execu-on ¡of ¡a ¡script! ¡

§ in ¡one ¡execu-on ¡→ ¡tracker ¡uniquely ¡iden-fies ¡the ¡user ¡ § in ¡another ¡execuTon ¡→ tracker ¡just ¡learns ¡FireFox ¡is ¡used ¡

Nataliia ¡Bielova ¡ 15 ¡

Min-­‑/max-­‑ ¡over ¡ ¡ all ¡execu-ons ¡ Average ¡over ¡ ¡ all ¡execu-ons ¡ ¡

slide-16
SLIDE 16

Hybrid ¡monitoring ¡

Nataliia ¡Bielova ¡ 16 ¡

var x = 1; var y = fonts;

  • if (name == “Firefox”) {

x = 1; } else { if (y != fontsSet) {

  • x = 2;
  • }

}

  • utput x;

x: ¡no ¡knowledge ¡ y: ¡ ¡fonts ¡= ¡fontsSet x: ¡no ¡knowledge ¡

Because ¡the ¡value ¡of ¡x ¡didn’t ¡change ¡

x: ¡fonts=fontsSet

Dynamic ¡analysis ¡

[Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡

Sta-c ¡analysis ¡

slide-17
SLIDE 17

Hybrid ¡monitoring ¡

Nataliia ¡Bielova ¡ 17 ¡

var x = 1; var y = fonts;

  • if (name == “Firefox”) {

x = 1; } else { if (y != fontsSet) {

  • x = 2;
  • }

}

  • utput x;

x: ¡no ¡knowledge ¡ y: ¡ ¡fonts ¡= ¡fontsSet x: ¡no ¡knowledge ¡ x: ¡fonts=fontsSet x: ¡ (name ¡= ¡“FireFox” ¡=> ¡ ¡ ¡ ¡ ¡ ¡ ¡) ¡∧ (name ¡ ¡≠ ¡“FireFox” ¡=> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡) ¡ ¡) true ¡ fonts=fontsSet x: ¡name ¡=“FireFox” ¡⋁ ¡fonts=fontsSet

name = “Firefox” ⋁ fonts = fontsSet

Hybrid ¡monitor ¡precisely ¡models ¡the ¡knowledge ¡of ¡the ¡tracker! ¡

[Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡

x = 1

=> ¡

slide-18
SLIDE 18

Hybrid ¡monitor ¡for ¡ ¡ quanTtaTve ¡informaTon ¡flow ¡

  • Monitoring ¡one ¡execu-on ¡

§ Dynamic ¡+ ¡staTc ¡

  • AutomaTc ¡quan-fica-on ¡of ¡

informa-on ¡leakage: ¡

§ Symbolic ¡representaTon ¡of ¡ tracker’s ¡knowledge ¡at ¡runTme ¡

  • Strong ¡formal ¡guarantees ¡

§ Provably ¡correct ¡approximaTon ¡

  • f ¡actual ¡tracker’s ¡knowledge ¡ ¡

Nataliia ¡Bielova ¡ 18 ¡

All ¡the ¡theorems ¡are ¡proven ¡in ¡Coq: ¡hgp://www.irisa.fr/celTque/ext/QIF/ ¡ ¡

[Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡

slide-19
SLIDE 19

Towards ¡guaranteed ¡protecTon ¡from ¡ Web ¡Tracking ¡(ongoing) ¡

  • Our ¡hybrid ¡monitor ¡[Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡evaluates ¡

how ¡much ¡tracker ¡learns ¡ ¡

Nataliia ¡Bielova ¡ 19 ¡

Challenge: ¡ ¡ Which ¡mechanism ¡can ¡provably ¡guarantee ¡that ¡ ¡ every ¡user ¡is ¡protected ¡from ¡being ¡tracked? ¡

slide-20
SLIDE 20

Towards ¡guaranteed ¡protecTon ¡from ¡ Web ¡Tracking ¡(ongoing) ¡

Nataliia ¡Bielova ¡ 20 ¡

var x = 0; if (name == “Opera”) { x = 1; if (fonts == fontsSet1) {

  • x = 2;
  • }

}

  • utput x;

name = “Opera” && fonts = fontsSet1

x = 2

=> ¡

Opera ¡browser ¡(very ¡rare) ¡+ ¡fontsSet1 ¡ ¡ => ¡the ¡user ¡is ¡easily ¡idenTfiable ¡

var x = 0; if (name == “Opera”) { x = 1; if (fonts == fontsSet1) {

  • x = undefined;
  • }

}

  • utput x;

Program ¡ ¡ instrumentaTon ¡

name = “Opera” && fonts = fontsSet1 x = undefined=> ¡

Modifying/hal-ng ¡one ¡program ¡execu-on ¡ does ¡not ¡improve ¡user’s ¡protec-on! ¡ ¡

slide-21
SLIDE 21

Towards ¡guaranteed ¡protecTon ¡from ¡ Web ¡Tracking ¡(ongoing) ¡

Nataliia ¡Bielova ¡ 21 ¡

var x = 0; if (name == “Opera”) { x = 1; if (fonts == fontsSet1) {

  • x = 2;
  • }

}

  • utput x;

name = “Opera” && fonts = fontsSet1

x = 2

=> ¡

Opera ¡browser ¡(very ¡rear) ¡+ ¡fontsSet1 ¡ ¡ => ¡the ¡user ¡is ¡easily ¡idenTfiable ¡

var x = 0; if (name == “Opera”) { x = 1; if (fonts == fontsSet1) {

  • x = undefined;
  • }

}

  • utput x;

Program ¡ ¡ instrumentaTon ¡

name = “Opera” && fonts = fontsSet1 x = undefined=> ¡

Modifying/hal-ng ¡one ¡program ¡execu-on ¡ does ¡not ¡improve ¡user’s ¡protec-on! ¡ ¡

Our ¡idea: ¡ ¡ Several ¡users ¡(i.e. ¡several ¡execuTons) ¡have ¡to ¡be ¡made ¡ undis-nguishable ¡for ¡the ¡tracker! ¡

slide-22
SLIDE 22

Summary ¡

  • Web ¡tracking ¡is ¡done ¡by ¡different ¡technologies(see ¡Inria ¡ConfLunch*) ¡

§ cookies, ¡other ¡browser ¡storages, ¡fingerprinTng ¡

  • Hybrid ¡informa-on ¡flow ¡monitoring ¡[Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡

§ monitors ¡one ¡execuTon ¡ § provably ¡correctly ¡approximates ¡tracker’s ¡knowledge ¡

  • Towards ¡guaranteed ¡protec-on ¡against ¡Web ¡tracking ¡(ongoing) ¡

§ Program ¡instrumentaTon ¡ § SystemaTc ¡lying ¡about ¡browser ¡properTes ¡provably ¡improves ¡privacy ¡

  • Analyzing ¡stability ¡of ¡browser ¡fingerprints ¡(ongoing) ¡

§ hgps://stopfingerprinTng.inria.fr ¡

Nataliia ¡Bielova ¡ 22 ¡

*hgp://videos.rennes.inria.fr/confLunch/NataliiaBielova/indexConfLunchBielova.html ¡