how tracking companies circumvented ad blockers using
play

How Tracking Companies Circumvented Ad Blockers Using WebSockets - PowerPoint PPT Presentation

How Tracking Companies Circumvented Ad Blockers Using WebSockets Muhammad Ahmad Bashir, Sajjad Arshad, Engin Kirda, William Robertson, Christo Wilson Northeastern University Online Tracking 2 Online Tracking Surge in online


  1. 
 How Tracking Companies Circumvented Ad Blockers Using WebSockets Muhammad Ahmad Bashir, Sajjad Arshad, Engin Kirda, William Robertson, Christo Wilson 
 Northeastern University

  2. Online Tracking 2

  3. Online Tracking Surge in online advertising (internet economy) • Ad networks pour in billions of dollars. • Value for their investment? • Extensive tracking to serve targeted ads. 2

  4. Online Tracking Surge in online advertising (internet economy) • Ad networks pour in billions of dollars. • Value for their investment? • Extensive tracking to serve targeted ads. User concern over tracking • Led to the proliferation of ad blocking extensions 2

  5. Online Tracking Surge in online advertising (internet economy) • Ad networks pour in billions of dollars. • Value for their investment? • Extensive tracking to serve targeted ads. User concern over tracking • Led to the proliferation of ad blocking extensions Ad networks fight back • E.g Using anti ad blocking scripts 2

  6. Google & Safari • Google evaded Safari’s third-party cookie blocking policy (Jonathan Mayer) • … by submitting a form in an invisible iFrame • Google was fined $22.5M by FTC 3

  7. This Talk How Ad Networks leveraged a bug in Chrome API to bypass Ad Blockers using WebSockets 4

  8. This Talk How Ad Networks leveraged a bug in Chrome API to bypass Ad Blockers using WebSockets 1. What caused this? 2. How this bug was leveraged by ad networks? 4

  9. Web Sockets 5

  10. Web Sockets HTTP/S 5

  11. Web Sockets request HTTP/S response 5

  12. Web Sockets request HTTP/S response Chatting App 5

  13. Web Sockets request HTTP/S response anything new? Chatting App 5

  14. Web Sockets request HTTP/S response anything new? Chatting App Web Socket 5

  15. Web Sockets request HTTP/S response anything new? Chatting App bidirectional Web Socket • Both client and server can send/receive data • This is a persistent connection 5

  16. Web Sockets request HTTP/S response anything new? Chatting App bidirectional Web Socket ws:// or wss:// • Both client and server can send/receive data • This is a persistent connection 5

  17. Ad Blockers 6

  18. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests 6

  19. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests webRequest API 6

  20. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API 6

  21. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API Usually borrowed 
 Rule List from EasyList 6

  22. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API url Usually borrowed 
 Rule List from EasyList 6

  23. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API url Usually borrowed 
 Rule List from EasyList 6

  24. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API url Usually borrowed 
 Rule List from EasyList 6

  25. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API url Usually borrowed 
 Rule List from EasyList webRequest API 6

  26. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API url Usually borrowed 
 Rule List from EasyList http://doubleclick.com/s1.js webRequest API 6

  27. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API url Usually borrowed 
 Rule List from EasyList url http://doubleclick.com/s1.js webRequest API 6

  28. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API url Usually borrowed 
 Rule List from EasyList url http://doubleclick.com/s1.js webRequest API 6

  29. Ad Blockers • Chrome extension chrome.webRequest API • Extension can inspect / modify / drop outgoing requests http://cnn.com/logo.jpeg webRequest API url Usually borrowed 
 Rule List from EasyList url http://doubleclick.com/s1.js webRequest API 6

  30. AdBlock Evasion 7

  31. AdBlock Evasion • Bug in webRequest API • ws/wss requests did not trigger the API 7

  32. AdBlock Evasion • Bug in webRequest API • ws/wss requests did not trigger the API 2012 2013 2014 2016 2017 2018 2015 7

  33. AdBlock Evasion • Bug in webRequest API • ws/wss requests did not trigger the API Original bug 
 reported 2012 2013 2014 2016 2017 2018 2015 7

  34. AdBlock Evasion • Bug in webRequest API • ws/wss requests did not trigger the API Users report 
 unblocked ads Original bug 
 reported 2012 2013 2014 2016 2017 2018 2015 7

  35. AdBlock Evasion • Bug in webRequest API • ws/wss requests did not trigger the API Users report 
 Patch unblocked ads Finalized 
 Original bug 
 ( Landed) reported 2012 2013 2014 2016 2017 2018 2015 7

  36. AdBlock Evasion • Bug in webRequest API • ws/wss requests did not trigger the API Users report 
 Patch unblocked ads Finalized 
 Original bug 
 ( Landed) reported 2012 2013 2014 2016 2017 2018 2015 Chrome 58 
 released 7

  37. AdBlock Evasion • Bug in webRequest API • ws/wss requests did not trigger the API Users report 
 Patch unblocked ads Finalized 
 Original bug 
 ( Landed) reported * * * * 2012 2013 2014 2016 2017 2018 2015 Chrome 58 
 released * Represents when our crawls were done 7

  38. Data Crawling 8

  39. Data Crawling 100K websites 
 sampled from Alexa 8

  40. Data Crawling Collected chains for 100K websites 
 all included sampled from Alexa Visit 15 
 resources links / website 8

  41. This means we know Data Crawling which resource included which other resource Collected chains for 100K websites 
 all included sampled from Alexa Visit 15 
 resources links / website 8

  42. This means we know Data Crawling which resource included which other resource Collected chains for 100K websites 
 all included sampled from Alexa Visit 15 
 resources links / website Filter 
 WebSockets Filter all resources which end in 
 web sockets 8

  43. This means we know Data Crawling which resource included which other resource Collected chains for 100K websites 
 all included sampled from Alexa Visit 15 
 resources links / website Filter 
 WebSockets Filter all resources which end in 
 web sockets Mark web sockets 
 Detect A&A 
 which are used by WebSockets A&A domains A&A = Advertising and Analytics e.g. DoubleClick, Criteo, Adnxs 8

  44. This means we know Data Crawling which resource included which other resource Collected chains for 100K websites 
 all included sampled from Alexa Visit 15 
 resources links / website Filter 
 WebSockets Example Inclusion Tree pub/ Filter all resources index.html which end in 
 web sockets Mark web sockets 
 srv.ws ads/ Detect A&A 
 which are used by WebSockets script.js A&A domains ads/ frame.html A&A = Advertising and Analytics e.g. DoubleClick, Criteo, Adnxs ads/ adnet/ img_a.jpg data.ws 8

  45. This means we know Data Crawling which resource included which other resource Collected chains for 100K websites 
 all included sampled from Alexa Visit 15 
 resources links / website Filter 
 WebSockets Example Inclusion Tree pub/ Filter all resources index.html which end in 
 web sockets Mark web sockets 
 srv.ws ads/ Detect A&A 
 which are used by WebSockets script.js A&A domains WebSocket ads/ frame.html A&A = Advertising and Analytics e.g. DoubleClick, Criteo, Adnxs ads/ adnet/ img_a.jpg data.ws WebSocket 8

  46. This means we know Data Crawling which resource included which other resource Collected chains for 100K websites 
 all included sampled from Alexa Visit 15 
 resources links / website Filter 
 WebSockets Example Inclusion Tree pub/ Filter all resources index.html which end in 
 web sockets Mark web sockets 
 srv.ws ads/ Detect A&A 
 which are used by WebSockets script.js A&A domains WebSocket ads/ frame.html A&A = Advertising and Analytics e.g. DoubleClick, Criteo, Adnxs adnet/ data.ws WebSocket 8

Recommend


More recommend