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 ¡ ¡
Web ¡Tracking ¡ AdverTse.com ¡ Tracker.com ¡ Bigger ¡browsing ¡profiles ¡ ¡ ¡ ¡ ¡ = ¡increased ¡value ¡for ¡trackers ¡ Doubleclick.com ¡ = ¡reduced ¡privacy ¡for ¡users ¡ ¡ (HypotheTcal ¡tracking ¡relaTonships ¡only.) ¡ Courtesy ¡of ¡Franziska ¡Roesner ¡ 2 ¡
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 ¡
Nataliia ¡Bielova ¡ 4 ¡
Thanks ¡to ¡EU ¡ePrivacy ¡DirecTve ¡ bcc.co.uk ¡ emp.bcci.co.uk ¡ googleads.g.doubleclick.net ¡ effec-vemeasure.net ¡ pagead2.googlesyndica-on.com ¡ b.voicefive.com ¡ js.revsci.net ¡ googletagservices.com ¡ b.scorecardresearch.com ¡ Nataliia ¡Bielova ¡ 5 ¡
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 ¡ ¡ ¡ • They ¡don’t ¡protect ¡from ¡tracking ¡by ¡other ¡companies ¡ • They ¡don’t ¡protect ¡form ¡tracking ¡by ¡the ¡main ¡(first-‑party) ¡website ¡ Nataliia ¡Bielova ¡ 6 ¡
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 ¡
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 ¡
Tracking ¡by ¡storing ¡idenTty ¡ // google-analytics.com/script.js �� Cookies ¡ are ¡used ¡to ¡track ¡repeat ¡visits ¡to ¡a ¡site. ¡ var url = “http://google-analytics.com/track?ga_id= “ �� � + encodeURI(document.cookie) � � + “&site= “ + encodeURI(document.location); � new Image().src = url; � google-‑analyTcs.com ¡ hgp://site1.com ¡ <script processing ¡engine ¡ src=google- analytics.com/ 2:52pm: user 123 visited Cookie ¡Database ¡ script.js> � � site1.com � site1.com: script ¡ � go google- ga_id=123 � logs ¡ analyt ytics cs.co com/tr track? k? </src> � ga_i _id=123& & site=site1.co com m Nataliia ¡Bielova ¡ 9 ¡
Tracking ¡by ¡creaTng ¡idenTty ¡ Browser ¡and ¡opera-ng ¡system ¡proper-es ¡ are ¡used ¡ to ¡track ¡repeated ¡visits ¡to ¡a ¡site. ¡ fingerprinter.com ¡ hgp://site1.com ¡ <script src=fingerprinter.com/ processing ¡engine ¡ script.js> � � � script ¡ 2:52pm: user_fp 9jhldpe7fv � � visited site1.com </src> � fingerprinter.co com/ logs ¡ track? tr k? fp_i _id=9jhldpe7fv& v& site=site1.co com m Nataliia ¡Bielova ¡ 10 ¡
Tracking ¡by ¡creaTng ¡idenTty ¡ 83.6% ¡of ¡browser ¡fingerprints ¡are ¡unique ¡ among ¡all ¡observed ¡ (500 ¡000 ¡browsers) ¡[Eckersley, ¡PETS’2010] ¡ Nataliia ¡Bielova ¡ 11 ¡
Which ¡browser ¡properTes ¡create ¡a ¡ fingerprint? ¡ Browser ¡property ¡ Source ¡ HTTP ¡ Browser ¡name ¡and ¡version, ¡ ¡ OperaTng ¡system ¡name ¡and ¡version ¡ JavaScript ¡ File ¡types ¡accepted, ¡language ¡used ¡ HTTP ¡ Plugins ¡installed ¡in ¡the ¡browser ¡ JavaScript ¡ Give ¡the ¡most ¡ Time ¡zone ¡ JavaScript ¡ iden-fying ¡ ¡ Informa-on ¡ Screen ¡size ¡and ¡color ¡depth ¡ JavaScript ¡ [Eckersley’2010] ¡ Fonts ¡installed ¡ Flash ¡ ¡ HTTP ¡ Some ¡of ¡browser ¡preferences ¡ JavaScript ¡ Support ¡for ¡new ¡technologies ¡ JavaScript ¡ Nataliia ¡Bielova ¡ 12 ¡
What ¡does ¡tracker ¡learn? ¡ => ¡ x = 1 � name = “Firefox” � var x = 0; � if (name == “Firefox”) { � => ¡ x = 2 � � x = 1; � name ≠ “Firefox” && � } � fonts = fontsSet1 � else { � � if (fonts == fontsSet1) { � � � x = 2; � �� => ¡ x = 0 � name ≠ “Firefox” && � � } � fonts ≠ fontsSet1 � } � output x; � Depending ¡on ¡user’s ¡browser, ¡ different ¡execu-ons ¡ of ¡ the ¡same ¡script ¡ leak ¡different ¡quan-ty ¡ of ¡informaTon! ¡ Nataliia ¡Bielova ¡ 13 ¡
Challenge : ¡ ¡ How ¡to ¡ automa-cally ¡ evaluate ¡ how ¡much ¡informa-on ¡ a ¡ tracker ¡learns ¡through ¡one ¡execu-on ¡ of ¡the ¡script? ¡ Nataliia ¡Bielova ¡ 14 ¡
StaTc ¡analysis ¡for ¡ ¡QuanTtaTve ¡InformaTon ¡Flow ¡ Tradi-onally , ¡staTc ¡analysis ¡compute ¡expected ¡leakage ¡ • § using ¡ Informa-on ¡Entropy ¡ Average ¡over ¡ ¡ Min-‑/max-‑ ¡over ¡ ¡ all ¡execu-ons ¡ ¡ all ¡execu-ons ¡ • 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 ¡
[Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡ Hybrid ¡monitoring ¡ Dynamic ¡analysis ¡ x: ¡no ¡knowledge ¡ var x = 1; � y: ¡ ¡fonts ¡= ¡fontsSet var y = fonts; � � if (name == “Firefox”) { � Because ¡the ¡value ¡of ¡x ¡didn’t ¡change ¡ � x = 1; � x: ¡no ¡knowledge ¡ } � else { � � if (y != fontsSet) { � � � x = 2; � �� Sta-c ¡analysis ¡ x: ¡fonts=fontsSet � } � } � output x; � Nataliia ¡Bielova ¡ 16 ¡
[Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡ Hybrid ¡monitoring ¡ x: ¡no ¡knowledge ¡ var x = 1; � name = “Firefox” ⋁ � => ¡ x = 1 � y: ¡ ¡fonts ¡= ¡fontsSet var y = fonts; � fonts = fontsSet � � if (name == “Firefox”) { � � x = 1; � x: ¡no ¡knowledge ¡ } � else { � � if (y != fontsSet) { � � � x = 2; � �� x: ¡fonts=fontsSet � } � } � true ¡ x: ¡ (name ¡= ¡“FireFox” ¡=> ¡ ¡ ¡ ¡ ¡ ¡ ¡) ¡∧ output x; � (name ¡ ¡≠ ¡“FireFox” ¡=> fonts=fontsSet ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡) ¡ ¡) x: ¡name ¡=“FireFox” ¡ ⋁ ¡ fonts=fontsSet Hybrid ¡monitor ¡ precisely ¡models ¡the ¡knowledge ¡ of ¡the ¡tracker! ¡ Nataliia ¡Bielova ¡ 17 ¡
[Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡ 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 ¡ of ¡actual ¡tracker’s ¡knowledge ¡ ¡ All ¡the ¡theorems ¡are ¡proven ¡in ¡Coq: ¡hgp://www.irisa.fr/celTque/ext/QIF/ ¡ ¡ Nataliia ¡Bielova ¡ 18 ¡
Towards ¡guaranteed ¡protecTon ¡from ¡ Web ¡Tracking ¡(ongoing) ¡ • Our ¡hybrid ¡monitor ¡ [Besson, ¡Bielova, ¡Jensen ¡CSF’2013] ¡ evaluates ¡ how ¡much ¡tracker ¡learns ¡ ¡ Challenge : ¡ ¡ Which ¡mechanism ¡can ¡ provably ¡guarantee ¡ that ¡ ¡ every ¡user ¡is ¡protected ¡ from ¡being ¡tracked? ¡ Nataliia ¡Bielova ¡ 19 ¡
Recommend
More recommend