33
Browser Extension Compromise Caroline Sheng

Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Browser Extension Compromise

Caroline Sheng

Page 2: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Outline �  Introduction

�  Privileges and Permissions

�  Malware extensions

�  Security Threats

�  Human Factors

�  Problems

�  Where do we go from here?

�  What can you do?

Page 3: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Introduction �  What are browser extensions?

�  A piece of software

�  What do they do? �  Extend functionality of web browsers

�  Who can create them? �  Basically anyone �  Many popular extensions are written by third party

developers

Page 4: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Extension Statistics �  Popular examples:

�  AdBlock – 40 million users on Chrome

�  TamperMonkey – 10,000,000+ users �  Google Mail Checker – 5,000,000+ users on Chrome

�  In 2011, 85% of Firefox users had at least one extension installed

Source: Chrome Web Store

Page 5: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Privileges and Permissions �  Privileges: how much access does the extension

have to your browser

�  Extensions often require high privileges, which can put users at risk

Page 6: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Privileges and Permissions (cont.)

�  Until 2017, all Firefox extensions were allowed complete browser privileges �  Allowed file system and network access

�  Did not follow practice of least privilege: Restricting access to only the resources required to perform activities

Page 7: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Permission Systems �  Now, Firefox, Chrome, and Internet Explorer all have

similar permission systems: �  Developers: must define what privileges their

extension requires �  Users: are notified of what permissions an extension

requires before installing it

Page 8: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Permission Warning

�  Tampermonkey: provides environment for users to write small scripts to modify browser behavior

Page 9: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

More privileges required

�  Web Developer: Adds a toolbar to browser with web development tools

Page 10: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

“Read and change all your data on the websites you visit” �  Sounds like dangerously high privilege �  Actually is a required permission for many legitimate

extensions

Page 11: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

�  Some extensions have even broader permissions

Page 12: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

What’s wrong with this? �  The nature of many browser extensions (both

legitimate and not) requires them to have almost completely unrestrained access

�  Once installed, extension code is fully trusted by browser, even though they are essentially third-party code

�  Offers an easy attack vector for those with malicious intent

Page 13: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

So what? �  Some browser extensions have been downloaded by

millions of users

�  If a browser extension is compromised, all users may be affected

Page 14: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

A brief look at malware extensions

What malicious extensions are capable of

Page 15: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Malware Extensions �  More common than we think:

�  An analysis by security researchers of 48,000 Chrome extensions in 2014 found �  130 outright malicious extensions

�  4,712 suspicious extensions

�  The malicious extensions engaged in a variety of: �  Affiliate fraud

�  Credential theft

�  Advertising fraud

�  Social network abuse

Page 16: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Malware Extensions (cont.) �  Examples of malware extensions:

�  FormSpy – 2006 �  Trojan which installed itself as a legitimate Firefox

extension.

�  Intercepts password and credit card numbers entered into browser

�  Interface Online – 2017 �  Bank fraud scam

�  Logged username and passwords entered into forms

�  Was available for two weeks before being taken down by Google

Page 17: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Security Threats How are browser extensions compromised?

Page 18: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Security Threats �  Benign extensions hacked

�  Code Vulnerabilities

�  Social Engineering

�  Extensions bought, sold, and changed �  Popular extension developers offered significant sums

to sell their extension to suspicious parties

Page 19: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Code Vulnerabilities �  At DEFCON 2009, Liverani and Freeman

demonstrated attacks against a number of popular Firefox extensions

�  Many of the vulnerabilities found were among the OWASP Top 10

�  Ex: “if a user dragged an image from a malicious web page into the extension, the web site operator could install a remote desktop server on the user’s machine and take control of the user’s mouse and keyboard” [2]

Page 20: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Social Engineering �  Example: August 2017, Web Developer extension

updated to supply adware to users because the creator (Chris Pederick) fell for a phishing attack

Page 21: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

�  One of the ads displayed by a fraudulently updated version of Web Developer extension for Chrome

Source: [6] Ars Technica

Page 22: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Extension Ownership: Particle

�  In July 2017, Chrome extension Particle sold by original developer to another party, who promptly turned it into adware

Page 23: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

An extension update �  Chrome’s permission system meant users were

informed that a new update to Particle required new permissions it had never required before: �  “Read and change data on (all) websites visited” �  “Manage apps, extensions, and themes”

�  However, many users still accepted the new update and were then bombarded by ads

Page 24: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

�  New owner added code to inject ads such as Google, Bing, Amazon, eBay

Source: [4] BleepingComputer

Page 25: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Lack of Transparency �  A trusted extension introduced adware in a

subsequent update

�  Users were not notified of the change in ownership

�  Users believed extension was safe, and accepted the update. Allowing Particle the privileges it required to insert ads

Page 26: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Human Factors: Developers �  Extensions can be very simple to create, many treat

it as a hobby

�  Most extension developers are not security experts

�  Unaware of danger of vulnerable extensions

Page 27: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Human Factors: Reviewers �  Guidelines for accepting or rejecting extensions

focus more on malicious extensions

�  Vulnerable extensions very easily slip through the net

Page 28: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Human Factors: Users �  Users believe extensions are inherently safe

�  Often install extensions without checking

�  Unaware that extensions are often created by third party developers

Page 29: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Problems (Summary) �  There is no standard secure framework for creating

extensions

�  Extensions are not evaluated for vulnerabilities before being released to the public

�  Users have no way of defending themselves if a trusted extension they have installed is hacked

Page 30: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

Where do we go from here? �  In security research:

�  HULK: a dynamic analysis system presented at the USINEX 2014 Security Symposium �  Detects malicious behavior in browser extensions by

monitoring their execution and corresponding network activity

�  VEX: “a framework for highlighting potential security vulnerabilities in browser extensions by applying static information-flow analysis to extension Javascript code”

Page 31: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

What can you do? �  Developers:

�  Follow OWASP Top 10 guide

�  Be wary of allowing others access/control to your extension

�  Users: �  Carefully evaluate extensions before deciding to

install or update them �  Don’t install unnecessary extensions

Page 32: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

References �  [1] Sruthi Bandhakavi, Samuel T. King, P. Madhusudan, Marianne Winslett. VEX: Vetting

Browser Extensions For Security Vulnerabilities. Communications of the ACM, v.54 n.9, 2011.

�  [2] Adam Barth, Adrienne Porter Felt, Prateek Saxena Aaron Boodman. Protecting Browsers from Extension Vulnerabilities. In Proceedings of the 17th Network and Distributed System Security Symposium (NDSS Symposium 2010).

�  [3] Martin Brinkmann. gHacks Technology News. Firefox’s new WebExtensions permission system. URL: https://www.ghacks.net/2017/03/06/firefoxs-new-webextensions-permission-system/

�  [4] Catalin Cimpanu. BleepingComputer. URL: https://www.bleepingcomputer.com/news/security/-particle-chrome-extension-sold-to-new-dev-who-immediately-turns-it-into-adware/ 

�  [5] Chromium Blog: December 2013. URL: https://blog.chromium.org/2013/12/keeping-chrome-extensions-simple.html

�  [6] Dan Goodin. Ars Technica. After phishing attacks, Chrome extensions push adware to millions. URL: https://arstechnica.com/information-technology/2017/08/after-phishing-attacks-chrome-extensions-push-adware-to-millions/

Page 33: Browser Extension Compromise · Extension Statistics Popular examples: AdBlock – 40 million users on Chrome TamperMonkey – 10,000,000+ users Google Mail Checker – 5,000,000+

�  [7] Dan Goodin. Ars Technica. Bank-fraud malware not detected by any AV hosted in Chrome web store. Twice. URL: https://arstechnica.com/information-technology/2017/08/bank-fraud-malware-not-detected-by-any-av-hosted-in-chrome-web-store-twice/

�  [8] C. Grier, S. T. King, and D. S. Wallach. How I Learned to Stop Worrying and Love Plugins. In Web 2.0 Security and Privacy, 2009.

�  [9[Alexandros Kapravelos, Chris Grier, Neha Chachra, Chris Kruegel, Giovanni Vigna, and Vern Paxson. Hulk: Eliciting malicious behavior in browser extensions. In Proceedings of the USENIX Security Symposium, 2014.

�  [10] R. S. Liverani and N. Freeman. Abusing Firefox Extensions. DEFCON17, July 2009

�  [11] Lee Matthews. Forbes. Over A Million Coders Targeted By Chrome Extension Hack. URL: https://www.forbes.com/sites/leemathews/2017/08/03/over-a-million-coders-targeted-by-chrome-extension-hack/#5d5d3c289c9d

�   [12] Mozilla Add-ons Blog. June 2011. URL: https://blog.mozilla.org/addons/2011/06/21/firefox-4-add-on-users/

�   [13] Particle Core. Particle. Github Repository. URL: https://github.com/ParticleCore/Particle/issues/528

�   [14] Adrienne Porter Felt. Least Privilege for Browser Extensions. Master’s thesis. University of California, Berkeley