1
Efficient Browser Identification with JavaScript Engine Fingerprinting Philipp Reschl, Martin Mulazzani, Markus Huber, Edgar Weippl SBA Research, Vienna Browser Fingerprinting Motivation I Webbrowsers become more and more powerful & prevalent I Revenue generated from and with webbrowsers increases steadily (e.g., cloud computing, online advertisements) I User Agent String can be easily modified I Similar to nmap for OS fingerprinting I Goal: fast and reliable fingerprinting method Legit and illegit use cases 1. User tracking: Detect different browsers behind NAT 2. Privacy: Decrease anonymity set in Tor 3. Attack surface: Malware and drive-by downloads 4. Appearance: To render websites correctly 5. Hijacking detection: Change of webbrowser during session JavaScript Basics (Browsers, Engines, Features) Fingerprinting Information I JavaScript engines vary in features and performance . JavaScript compilation . GPU utilization I Steadily decreasing time for new major versions I We use ECMAScript (JavaScript) conformance tests: . Google Sputnik (http://sputnik.googlelabs.com) . ecmascript test262 (http://test262.ecmascript.org) I Related work uses time execution patterns (see Mowery et.al., W2SP 2011) Current Browsers and ECMAScript Compliance I ecmascript test262 includes Sputnik tests I 11108 test cases, retrieved 2011-12-01: Webbrowser Engine # of failed tests Mozilla Firefox SpiderMonkey 164 Microsoft IE 9 Chakra 394 Google Chrome V8 418 Apple Safari Nitro 851 Opera Carakan 3821 JavaScript Engine Identifikation Error Distribution with Sputnik in Detail Our Implementation for Browser Identification I We used the open source Sputnik testsuite (5246 tests) I At best, every test uniquely identifies a particular webbrowser I Tradeoff needed: . Number of tests increases with number of supported browsers . Too few tests could result in false-positives I Manual selection of 10 erroneous tests for each webbrowser I Linear ranking function for final results with conservative thresholds I Ground truth used for verification: . UA-String . User manually identifies his/her browser Results Experiment Representative Survey with 189 participants I Optimized for most prevalent webbrowsers: . Chrome, IE 8 & 9, Firefox I test.js 24KB in size I Results: . 90 ms on average for PC . 200 ms on Smartphones . Multiple runs prevented by technical means Results Result Percentage Number Detection of supported webbrowsers 92.59 % 175 Unsupported webbrowsers (e.g., smartphones) 7.04 % 14 Correctly identified supported webbrowsers 100 % 174 Correctly identified UA-String manipulation 100 % 1 User survey error 7.94 % 15 I No false-positives in the survey, 100% correct detection! Conclusion Future Research I Increase number of webbrowsers in the testset I Enrich fingerprinting with HTML5 and other features I Build a privacy-preserving normalizing proxy I Further research if this is already used by advertisement companies or malware authors Conclusion I JavaScript engine fingerprinting can be done fast and efficiently I Testsurvey among 189 users showed feasability I Runtime < 100ms I Testsuite very small, only 24KB in size I No false-positives http://www.sba-research.org [email protected]

Efficient Browser Identification with 0.5cm JavaScript ...JavaScript Engine Fingerprinting Philipp Reschl, Martin Mulazzani, Markus Huber, Edgar Weippl SBA Research, Vienna Browser

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Efficient Browser Identification with 0.5cm JavaScript ...JavaScript Engine Fingerprinting Philipp Reschl, Martin Mulazzani, Markus Huber, Edgar Weippl SBA Research, Vienna Browser

Efficient Browser Identification withJavaScript Engine Fingerprinting

Philipp Reschl, Martin Mulazzani, Markus Huber, Edgar Weippl

SBA Research, Vienna

Browser Fingerprinting

Motivation

I Webbrowsers become more and more powerful & prevalentI Revenue generated from and with webbrowsers increases steadily

(e.g., cloud computing, online advertisements)I User Agent String can be easily modifiedI Similar to nmap for OS fingerprintingI Goal: fast and reliable fingerprinting method

Legit and illegit use cases

1. User tracking: Detect different browsers behind NAT

2. Privacy: Decrease anonymity set in Tor

3. Attack surface: Malware and drive-by downloads

4. Appearance: To render websites correctly

5. Hijacking detection: Change of webbrowser during session

JavaScript Basics (Browsers, Engines, Features)

Fingerprinting Information

I JavaScript engines vary in features and performance. JavaScript compilation. GPU utilization

I Steadily decreasing time for new major versions

I We use ECMAScript (JavaScript) conformance tests:. Google Sputnik (http://sputnik.googlelabs.com). ecmascript test262 (http://test262.ecmascript.org)

I Related work uses time execution patterns(see Mowery et.al., W2SP 2011)

Current Browsers and ECMAScript Compliance

I ecmascript test262 includes Sputnik testsI 11108 test cases, retrieved 2011-12-01:

Webbrowser Engine # of failed tests

Mozilla Firefox SpiderMonkey 164Microsoft IE 9 Chakra 394Google Chrome V8 418Apple Safari Nitro 851Opera Carakan 3821

JavaScript Engine Identifikation

Error Distribution with Sputnik in Detail Our Implementation for Browser Identification

I We used the open source Sputnik testsuite (5246 tests)I At best, every test uniquely identifies a particular webbrowserI Tradeoff needed:. Number of tests increases with number of supported browsers. Too few tests could result in false-positives

I Manual selection of 10 erroneous tests for each webbrowserI Linear ranking function for final results with conservative thresholdsI Ground truth used for verification:. UA-String. User manually identifies his/her browser

Results Experiment

Representative Survey with 189 participants

I Optimized for most prevalent webbrowsers:. Chrome, IE 8 & 9, Firefox

I test.js 24KB in size

I Results:. 90 ms on average for PC. 200 ms on Smartphones. Multiple runs prevented by technical means

Results

Result Percentage Number

Detection of supported webbrowsers 92.59 % 175Unsupported webbrowsers (e.g., smartphones) 7.04 % 14

Correctly identified supported webbrowsers 100 % 174Correctly identified UA-String manipulation 100 % 1User survey error 7.94 % 15

I No false-positives in the survey, 100% correct detection!

Conclusion

Future Research

I Increase number of webbrowsers in the testsetI Enrich fingerprinting with HTML5 and other featuresI Build a privacy-preserving normalizing proxyI Further research if this is already used by advertisement companies or

malware authors

Conclusion

I JavaScript engine fingerprinting can be done fast and efficientlyI Testsurvey among 189 users showed feasability

I Runtime < 100msI Testsuite very small, only 24KB in sizeI No false-positives

http://www.sba-research.org [email protected]