SlideShare a Scribd company logo
Chrome	
  Extensions:	
  Threat	
  Analysis	
  
and	
  Countermeasures	
  
Lei	
  Liu,	
  Xinwen	
  Zhang*,	
  Guanhua	
  Yan*,	
  and	
  Songqing	
  Chen	
  
George	
  Mason	
  University	
  
Huawei	
  R&D	
  Center	
  
Los	
  Alamos	
  NaIonal	
  Laboratory	
  	
  
NDSS’12	
  	
  
*	
  Does	
  not	
  represent	
  employer’s	
  opinion	
  
AOacks	
  via	
  Extensions	
  
•  Extension	
  is	
  the	
  vehicle	
  for	
  increasing	
  aOacks	
  	
  
•  BHO/add-­‐on	
  is	
  the	
  one	
  of	
  the	
  techniques	
  used	
  by	
  
many	
  spyware	
  writers	
  in	
  IE.	
  
•  Kida	
  et	
  al’05,	
  CERT’05,	
  Egele’07,	
  Li’07,	
  Guha’11	
  
•  Abusing	
  of	
  Firefox	
  extensions	
  has	
  been	
  widely	
  
recognized	
  and	
  studied	
  in	
  literature	
  
•  Defcon’09,	
  Ter-­‐Louw’08,	
  Dhawan’09,	
  Bandhakav’10,	
  
Djeric’10,	
  Guha’11	
  
AOacks	
  via	
  Chrome	
  Extensions	
  
•  Buggy	
  Chrome	
  extensions	
  have	
  been	
  
idenIfied	
  recently	
  	
  
•  27	
  out	
  of	
  100	
  leak	
  data	
  
–  hOp://www.adrienneporterfelt.com/blog/?p=226_	
  
•  Malicious	
  extensions	
  have	
  appeared	
  
Problem	
  Statement	
  
•  Why	
  Chrome	
  extension?	
  
–  Chrome	
  has	
  built-­‐in	
  security	
  model	
  for	
  browser	
  architecture	
  and	
  extension	
  
•  Is	
  current	
  Chrome	
  extension	
  architecture	
  good	
  enough?	
  	
  
–  ParIcularly	
  with	
  the	
  consideraIon	
  of	
  malicious	
  extensions	
  
•  Easy	
  to	
  launch	
  malicious	
  extensions:	
  	
  
–  It	
  is	
  a	
  difficult	
  task	
  to	
  saniIze	
  rapidly	
  increasing	
  extensions	
  in	
  Google	
  Chrome	
  Web	
  Store	
  with	
  slow	
  reviewing	
  
process	
  
–  Users	
  are	
  free	
  to	
  download/install	
  extensions	
  from	
  many	
  (known/unknown)	
  host	
  servers	
  	
  
–  Strong	
  incenIve	
  for	
  aOackers,	
  e.g.,	
  	
  
•  harvest	
  sensiIve	
  content	
  in	
  web	
  pages	
  
•  Modify	
  web	
  search	
  content	
  	
  
•  Google	
  takes	
  acIons	
  against	
  malicious	
  extension	
  developers	
  
–  singup	
  fee	
  for	
  developers	
  
–  Domain	
  verificaIon	
  for	
  developers	
  	
  
•  Problem:	
  Can	
  we	
  have	
  a	
  technical	
  soluIon?	
  
–  Or	
  improvement	
  	
  of	
  current	
  permission	
  model	
  for	
  beOer	
  security	
  with	
  malware	
  extension?	
  	
  
ContribuIons	
  
•  We	
  demonstrate	
  several	
  aOacks	
  with	
  malicious	
  Chrome	
  
extensions	
  through	
  experimental	
  implementaIon	
  
•  We	
  do	
  security	
  analysis	
  of	
  the	
  permission	
  model	
  of	
  
Chrome	
  extension	
  
–  With	
  the	
  assumpIon	
  of	
  malicious	
  extensions	
  
•  We	
  propose	
  security	
  enhanced	
  extension	
  permission	
  
model	
  and	
  enforcement	
  mechanism	
  
–  Following	
  the	
  principles	
  of	
  least	
  privilege	
  and	
  separaIon	
  of	
  
privilege	
  in	
  more	
  strict	
  way	
  
Chrome	
  Extension	
  Architecture	
  
Extension	
  
(HTML/Javascript)	
  
NaIve	
  
code	
  
Process	
  boundary	
  
Process	
  boundary	
  
installaIon	
  
Extension	
  gallery	
  
Render	
  
Content	
  
Script	
  (java	
  script)	
  
Isolated	
  World	
  DOM	
  
JS	
  
Cookies	
  
Localstorage	
  
Web	
  server	
  
Chrome	
  Extension	
  Security	
  Model	
  
•  Least	
  Privilege	
  
–  Pre-­‐defined	
  permission	
  set	
  (e.g.,.	
  To	
  access	
  web	
  sites,	
  browser	
  tab,	
  bookmarks,	
  history,	
  …)	
  
–  Each	
  extension	
  declares	
  permissions	
  required	
  
–  User	
  authorizes	
  permissions	
  at	
  installaIon	
  Ime	
  
•  Privilege	
  SeparaIon	
  
–  Different	
  permissions	
  for	
  different	
  components	
  of	
  extension	
  
–  Content	
  script	
  can	
  interact	
  with	
  web	
  content,	
  not	
  browser	
  modules	
  
–  Extension	
  core	
  has	
  more	
  privileges,	
  but	
  insulated	
  from	
  web	
  pages	
  
•  Strong	
  isolaIon	
  
–  Same	
  origin	
  policy	
  
•  Each	
  extension	
  has	
  unique	
  origin	
  
•  Accessing	
  other	
  origins	
  requires	
  cross-­‐site	
  permissions	
  
•  Inject	
  content	
  script	
  requires	
  cross-­‐site	
  permissions	
  
–  Process-­‐level	
  isolaIon:	
  extension	
  core	
  runs	
  in	
  separated	
  process	
  from	
  renderer	
  and	
  browser	
  
–  Within	
  a	
  renderer	
  process,	
  content	
  script	
  runs	
  in	
  isolated	
  world	
  from	
  Javascript	
  of	
  web	
  page	
  
Chrome	
  Extension	
  Trust	
  Model	
  
•  The	
  main	
  trust	
  model	
  of	
  Chrome	
  extension	
  
assumes	
  trusted	
  but	
  buggy	
  extensions	
  
•  But	
  malicious	
  web	
  pages	
  
•  Therefore	
  the	
  security	
  objecIves	
  are	
  mainly	
  for	
  
restricIng	
  web	
  pages	
  to	
  access	
  browser	
  
resources	
  via	
  extensions	
  
•  And	
  confine	
  the	
  damage	
  propagaIon	
  if	
  possible	
  
Experimental	
  AOacks	
  
•  We	
  develop	
  a	
  malicious	
  extension	
  as	
  a	
  bot	
  
– 	
  from	
  Chrome	
  7	
  to	
  the	
  latest	
  
– does	
  email	
  spamming,	
  DDoS,	
  and	
  phishing	
  aOacks	
  
easily	
  	
  
•  Through	
  aOacking	
  web	
  pages	
  
– Receive	
  commands	
  from	
  bot	
  master	
  with	
  built-­‐in	
  
update	
  mechanism	
  of	
  Chrome	
  extension	
  
•  No	
  security	
  check	
  for	
  update	
  	
  
Email	
  Spamming	
  
update	
  
site	
   Browser	
  
Extension	
  
Webmail	
  
	
  server	
  
Upload	
  
	
  update	
  
manipulate	
  
POST	
  
download	
  update	
  
POST	
  
Password	
  Sniffing	
  
DDoS	
  AOack	
  
Security	
  Analysis	
  	
  
•  Trust	
  Model:	
  	
  
–  We	
  assume	
  browser	
  kernel	
  and	
  pulgins	
  are	
  
trustworthy	
  
–  Sandbox	
  mechanism	
  provided	
  by	
  OS	
  works	
  well	
  
–  NaIve	
  code	
  for	
  extensions	
  is	
  sandboxed	
  
–  Web	
  apps	
  are	
  trusted	
  
•  Threat	
  model:	
  malicious	
  extensions	
  
–  Extension	
  core	
  
–  Content	
  scripts	
  
Cross-­‐site	
  Forgery	
  with	
  Content	
  Script	
  
Extension	
  
(HTML/Javascript)	
  
Render	
  
Content	
  
Script	
  (java	
  script)	
  
Isolated	
  World	
  DOM	
  
Process	
  boundary	
  
JS	
  
Cookies	
  
Localstorage	
  
Web	
  server	
  
•  A	
  content	
  script	
  injected	
  into	
  web	
  page	
  can	
  
arbitrary	
  access	
  the	
  origin	
  of	
  the	
  page	
  
•  All	
  user	
  credenIals	
  associated	
  with	
  the	
  origin	
  
can	
  be	
  included	
  in	
  an	
  HTTP	
  req	
  
•  Since	
  the	
  origin	
  of	
  the	
  content	
  script	
  is	
  usually	
  
not	
  that	
  of	
  the	
  web	
  page	
  
–  This	
  is	
  a	
  Cross-­‐site	
  Forgery	
  Req	
  
–  The	
  email	
  spamming	
  aOack	
  leverages	
  this	
  
•  Default	
  privileges	
  of	
  content	
  script	
  are	
  not	
  least	
  
Cross-­‐site	
  Requests	
  with	
  Extension	
  Core	
  
Extension	
  
(HTML/Javascript)	
  
Render	
  
Content	
  
Script	
  (java	
  script)	
  
Isolated	
  World	
  
Process	
  boundary	
  
Web	
  server	
  
Content	
  
Script	
  (java	
  script)	
  
Isolated	
  World	
  Process	
  boundary	
  
•  Cross-­‐site	
  reqs	
  via	
  content	
  scripts	
  through	
  extension	
  core	
  
•  The	
  extension	
  core	
  can	
  file	
  cross-­‐site	
  HTTP	
  reqs	
  to	
  mulIple	
  origins	
  	
  
–  Cross-­‐site	
  permissions	
  are	
  authorized	
  in	
  order	
  to	
  inject	
  content	
  scripts.	
  	
  
•  Default	
  privileges	
  of	
  extension	
  core	
  are	
  not	
  least	
  
•  No	
  differenIated	
  permission	
  of	
  extension	
  core	
  and	
  content	
  script	
  
–  Inject	
  scripts	
  vs.	
  cross-­‐site	
  reqs	
  
Cross-­‐site	
  Requests	
  with	
  Content	
  Scripts	
  
Extension	
  
(HTML/Javascript)	
  
Render	
  
Content	
  
Script	
  (java	
  script)	
  
Isolated	
  World	
  
Process	
  boundary	
  
JS	
  
Cookies	
  
Localstorage	
  
Web	
  server	
  
DOM	
  
•  Without	
  cross-­‐site	
  permission,	
  a	
  running	
  content	
  script	
  can	
  
only	
  make	
  HTTP	
  reqs	
  to	
  the	
  origin	
  of	
  the	
  tab	
  page	
  
•  However,	
  since	
  content	
  script	
  has	
  full	
  privileges	
  of	
  DOM,	
  it	
  
can	
  file	
  unlimited	
  cross-­‐site	
  HTTP	
  reqs	
  to	
  arbitrary	
  origin,	
  e.g.,	
  	
  
–  Insert	
  iframe	
  	
  
–  Load	
  img	
  
–  Modify	
  src	
  of	
  DOM	
  objects	
  
–  With	
  user	
  credenIals	
  included	
  in	
  the	
  req	
  
•  Loading	
  of	
  new	
  DOM	
  objects	
  results	
  in	
  cross-­‐site	
  reqs	
  
•  Privilege	
  to	
  access	
  DOM	
  is	
  not	
  least	
  for	
  content	
  script	
  
UndifferenIated	
  Permissions	
  
Extension	
  
(HTML/Javascript)	
  
Render	
  
Content	
  
Script	
  (java	
  script)	
  
Isolated	
  World	
  
Process	
  boundary	
  
JS	
  
Cookies	
  
Localstorage	
  
Web	
  server	
  
DOM	
  
permissions”:	
  [“hOp://*/
*”	
  ]	
  
•  An	
  extension	
  may	
  inject	
  content	
  script	
  to	
  many	
  
origins	
  
–  It	
  does	
  not	
  need	
  to	
  file	
  HTTP	
  reqs	
  to	
  all	
  origins	
  
–  But	
  only	
  to	
  a	
  dedicated	
  one,	
  e.g.,	
  a	
  	
  translaIon	
  web	
  
service	
  
•  When	
  an	
  origin	
  is	
  assigned	
  to	
  extension,	
  all	
  
components	
  get	
  the	
  full	
  privileges	
  
–  Extension	
  core	
  can	
  file	
  cross-­‐site	
  reqs	
  freely	
  
–  Content	
  script	
  can	
  arbitrarily	
  modify	
  the	
  DOM,	
  and	
  file	
  
cross-­‐sit	
  reqs	
  
•  Privilege	
  separaIon	
  is	
  not	
  fine-­‐grained	
  enough	
  	
  
19	
  out	
  of	
  30	
  
most	
  popular	
  
extensions	
  have	
  
this	
  type	
  of	
  over	
  
privileges	
  
Security	
  Enhanced	
  Chrome	
  Extensions	
  
•  Micro-­‐privilege	
  management	
  
•  DifferenIate	
  DOM	
  elements	
  with	
  sensiIvity	
  
Micro-­‐privilege	
  Management	
  
•  More	
  fine-­‐grained	
  permission	
  definiIon	
  and	
  enforcement	
  	
  
•  Fine-­‐grained	
  permission	
  differenIaIon	
  for	
  extension	
  core	
  and	
  
content	
  script	
  
–  Permission	
  specs	
  are	
  separated	
  from	
  different	
  components	
  
•  Least	
  default	
  privileges	
  	
  
–  Content	
  script	
  cannot	
  introduce	
  new	
  origin	
  to	
  DOM	
  
–  no	
  HTTP	
  req	
  to	
  tab	
  origin	
  
Example	
  Permission	
  Spec	
  
•  Permissions	
  for	
  a	
  translaIon	
  extension:	
  	
  
DifferenIaIng	
  DOM	
  Elements	
  
•  To	
  further	
  reduce	
  possible	
  sensiIve	
  data	
  leakage	
  by	
  content	
  
script,	
  DOM	
  elements	
  can	
  be	
  differenIated	
  with	
  sensiIvity	
  
levels	
  
•  A	
  web	
  app	
  developer	
  can	
  idenIfy	
  sensiIve	
  informaIon	
  in	
  a	
  
web	
  page,	
  e.g.,	
  	
  
–  High	
  level	
  data:	
  only	
  can	
  flow	
  to	
  web	
  origin	
  
–  Medium	
  level:	
  may	
  flow	
  to	
  authorized	
  origins	
  
–  Low	
  level	
  (default):	
  can	
  flow	
  to	
  any	
  origin	
  
•  An	
  extension	
  developer	
  	
  can	
  specify	
  permissions	
  
accordingly:	
  
–  E.g.,	
  HIGH	
  for	
  username/pw,	
  MEDIUM	
  for	
  other	
  user	
  info	
  
ImplementaIon	
  
•  We	
  have	
  implemented	
  the	
  micro-­‐privilege	
  management	
  
and	
  spec.	
  
•  For	
  DOM	
  sensiIvity,	
  we	
  develop	
  a	
  helper	
  extension	
  
(trusted):	
  	
  
–  To	
  idenIfy	
  and	
  label	
  sensiIve	
  DOM	
  elements	
  
–  Re-­‐write	
  DOM	
  element	
  properIes	
  
•  According	
  to	
  configurable	
  dicIonary	
  	
  
–  Chrome	
  enforces	
  permission	
  check	
  based	
  on	
  extension	
  manifest	
  	
  
–  Explicitly	
  mark	
  sensiIve	
  info	
  by	
  web	
  app	
  developer	
  is	
  not	
  pracIcal	
  
right	
  now	
  	
  
EvaluaIons	
  
EvaluaIon	
  
•  We	
  selected	
  30	
  most	
  popular	
  extensions	
  from	
  Google	
  extension	
  gallery	
  
–  24	
  of	
  them	
  have	
  granted	
  network	
  access	
  
–  19	
  of	
  them	
  request	
  higher	
  privileges	
  than	
  necessary	
  (hOp://*/*)	
  
•  Our	
  implementaIon	
  easily	
  changes	
  their	
  spec	
  to	
  reduce	
  privileges	
  	
  
EvaluaIon	
  
•  Our	
  implementaIon	
  blocks	
  all	
  experimental	
  
aOacks	
  on	
  the	
  bot	
  extension.	
  	
  
Conclusions	
  
•  Demonstrated	
  spamming,	
  phishing,	
  and	
  DDoS	
  aOacks	
  
with	
  implemented	
  Chrome	
  extensions	
  
•  Analyzed	
  the	
  permissions	
  model	
  that	
  causes	
  these	
  
problems	
  
•  Proposed	
  security	
  enhanced	
  permission	
  model	
  and	
  
enforcement	
  for	
  Chrome	
  extension	
  architecture	
  	
  
–  Micro-­‐privileged	
  permission	
  management	
  and	
  spec	
  
–  DifferenIate	
  content	
  script’s	
  permission	
  with	
  DOM	
  
sensiIvity	
  levels	
  
Thank	
  You!	
  
Q&A	
  

More Related Content

PDF
Html5 Application Security
PPT
HTML5 hacking
PDF
ZeroNights2012_BeEF_Workshop_antisnatchor
PPT
Html5 on mobile
PDF
Server-Side Programming Primer
PDF
Html5 hacking
PDF
Getting Started with WebSockets and Server-Sent Events
PDF
CSRF, ClickJacking & Open Redirect
Html5 Application Security
HTML5 hacking
ZeroNights2012_BeEF_Workshop_antisnatchor
Html5 on mobile
Server-Side Programming Primer
Html5 hacking
Getting Started with WebSockets and Server-Sent Events
CSRF, ClickJacking & Open Redirect

What's hot (20)

PDF
E gov security_tut_session_4_lab
PPT
Presentation (PowerPoint File)
PDF
S903 palla
PPTX
Sizing your alfresco platform
PDF
File upload-vulnerability-in-fck editor
PPTX
Analysis of Google Page Speed Insight
PDF
CNIT 129S: Ch 5: Bypassing Client-Side Controls
PDF
Php File Upload
PDF
Apache ActiveMQ and Apache ServiceMix
PPTX
Case Study of Django: Web Frameworks that are Secure by Default
PDF
Blackhat11 shreeraj reverse_engineering_browser
PDF
HTML5 Top 10 Threats - Silent Attacks and Stealth Exploits
PPT
02 intro
PPT
EWD 3 Training Course Part 45: Using QEWD's Advanced MicroService Functionality
PPTX
Introduction to Messaging 3.7
PPT
QEWD.js: Have your Node.js Cake and Eat It Too
PDF
Drupal and Security: What You Need to Know
PDF
Top 10 HTML5 Threats - Whitepaper
PDF
HTTP - The Other Face Of Domino
PDF
Web Servers - How They Work
E gov security_tut_session_4_lab
Presentation (PowerPoint File)
S903 palla
Sizing your alfresco platform
File upload-vulnerability-in-fck editor
Analysis of Google Page Speed Insight
CNIT 129S: Ch 5: Bypassing Client-Side Controls
Php File Upload
Apache ActiveMQ and Apache ServiceMix
Case Study of Django: Web Frameworks that are Secure by Default
Blackhat11 shreeraj reverse_engineering_browser
HTML5 Top 10 Threats - Silent Attacks and Stealth Exploits
02 intro
EWD 3 Training Course Part 45: Using QEWD's Advanced MicroService Functionality
Introduction to Messaging 3.7
QEWD.js: Have your Node.js Cake and Eat It Too
Drupal and Security: What You Need to Know
Top 10 HTML5 Threats - Whitepaper
HTTP - The Other Face Of Domino
Web Servers - How They Work
Ad

Viewers also liked (6)

PPTX
Google chrome extension
ODP
El arte clásico
PPTX
Build your own Chrome Extension with AngularJS
ODP
Chrome extension development
PDF
Chrome extension development
ODP
Making Chrome Extension with AngularJS
Google chrome extension
El arte clásico
Build your own Chrome Extension with AngularJS
Chrome extension development
Chrome extension development
Making Chrome Extension with AngularJS
Ad

Similar to Chrome extensions threat analysis and countermeasures (20)

PDF
Going Beyond Cross Domain Boundaries (jQuery Bulgaria)
PPTX
Browser Hacking For Fun and Profit | Null Bangalore Meetup 2019 | Divyanshu S...
PDF
Building Client-Side Attacks with HTML5 Features
PDF
Cloud Computing in Systems Programming Curriculum
PPTX
Postcards from the post xss world- content exfiltration null
PPTX
Lesson 6 web based attacks
PPTX
Sahi Principles and Architecture
PDF
Advanced Chrome extension exploitation
PDF
Mobile Hybrid Development with WordPress
PDF
GeneralMobile Hybrid Development with WordPress
PPTX
Burpsuite yara
PDF
How do JavaScript frameworks impact the security of applications?
PDF
Do you lose sleep at night?
PDF
Krzysztof Kotowicz - Hacking HTML5
PDF
BeEF_EUSecWest-2012_Michele-Orru
PDF
Enterprise WordPress - Performance, Scalability and Redundancy
PPTX
Evolution Of The Web Platform & Browser Security
PPTX
Basics of the Web Platform
PDF
Tests for Scalable, Fast, Secure Apps
Going Beyond Cross Domain Boundaries (jQuery Bulgaria)
Browser Hacking For Fun and Profit | Null Bangalore Meetup 2019 | Divyanshu S...
Building Client-Side Attacks with HTML5 Features
Cloud Computing in Systems Programming Curriculum
Postcards from the post xss world- content exfiltration null
Lesson 6 web based attacks
Sahi Principles and Architecture
Advanced Chrome extension exploitation
Mobile Hybrid Development with WordPress
GeneralMobile Hybrid Development with WordPress
Burpsuite yara
How do JavaScript frameworks impact the security of applications?
Do you lose sleep at night?
Krzysztof Kotowicz - Hacking HTML5
BeEF_EUSecWest-2012_Michele-Orru
Enterprise WordPress - Performance, Scalability and Redundancy
Evolution Of The Web Platform & Browser Security
Basics of the Web Platform
Tests for Scalable, Fast, Secure Apps

More from Roel Palmaers (20)

PDF
Ddos extortion campaigns
PDF
Hoe ontwerp ik een agile organisatie
PDF
Evaluating law enforcement_bradford_9_24
PDF
The effectiveness of policing cybercrime
PDF
Scams and-fraud-presentation
PDF
Ipv6 evolution
PDF
Irish travelers presentatie
PDF
Food for thought_29 feb 2016
PDF
Straathoekwerk en politie
PDF
Cahiers politiestudies presentatie rva 03 12 2009
PDF
Financiële risico’s participatiewet
PDF
Afval=grondstof
PDF
Electronics reference sheet
PDF
Digging into google
PDF
Google cheat-sheet-nederlands
PDF
Google cheat-sheet-english
PDF
Working with facebook graph presentation
PDF
Ips pearls in policing factsheet en
PDF
Financiële problematiek en de impact daarvan
PDF
Een goede nacht nachtarbeid
Ddos extortion campaigns
Hoe ontwerp ik een agile organisatie
Evaluating law enforcement_bradford_9_24
The effectiveness of policing cybercrime
Scams and-fraud-presentation
Ipv6 evolution
Irish travelers presentatie
Food for thought_29 feb 2016
Straathoekwerk en politie
Cahiers politiestudies presentatie rva 03 12 2009
Financiële risico’s participatiewet
Afval=grondstof
Electronics reference sheet
Digging into google
Google cheat-sheet-nederlands
Google cheat-sheet-english
Working with facebook graph presentation
Ips pearls in policing factsheet en
Financiële problematiek en de impact daarvan
Een goede nacht nachtarbeid

Recently uploaded (20)

PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
System and Network Administraation Chapter 3
PDF
medical staffing services at VALiNTRY
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
top salesforce developer skills in 2025.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Introduction to Artificial Intelligence
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Online Work Permit System for Fast Permit Processing
ManageIQ - Sprint 268 Review - Slide Deck
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PTS Company Brochure 2025 (1).pdf.......
System and Network Administraation Chapter 3
medical staffing services at VALiNTRY
Upgrade and Innovation Strategies for SAP ERP Customers
top salesforce developer skills in 2025.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
L1 - Introduction to python Backend.pptx
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Odoo POS Development Services by CandidRoot Solutions
Adobe Illustrator 28.6 Crack My Vision of Vector Design
How Creative Agencies Leverage Project Management Software.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Introduction to Artificial Intelligence
ISO 45001 Occupational Health and Safety Management System
Wondershare Filmora 15 Crack With Activation Key [2025
How to Migrate SBCGlobal Email to Yahoo Easily
Online Work Permit System for Fast Permit Processing

Chrome extensions threat analysis and countermeasures

  • 1. Chrome  Extensions:  Threat  Analysis   and  Countermeasures   Lei  Liu,  Xinwen  Zhang*,  Guanhua  Yan*,  and  Songqing  Chen   George  Mason  University   Huawei  R&D  Center   Los  Alamos  NaIonal  Laboratory     NDSS’12     *  Does  not  represent  employer’s  opinion  
  • 2. AOacks  via  Extensions   •  Extension  is  the  vehicle  for  increasing  aOacks     •  BHO/add-­‐on  is  the  one  of  the  techniques  used  by   many  spyware  writers  in  IE.   •  Kida  et  al’05,  CERT’05,  Egele’07,  Li’07,  Guha’11   •  Abusing  of  Firefox  extensions  has  been  widely   recognized  and  studied  in  literature   •  Defcon’09,  Ter-­‐Louw’08,  Dhawan’09,  Bandhakav’10,   Djeric’10,  Guha’11  
  • 3. AOacks  via  Chrome  Extensions   •  Buggy  Chrome  extensions  have  been   idenIfied  recently     •  27  out  of  100  leak  data   –  hOp://www.adrienneporterfelt.com/blog/?p=226_   •  Malicious  extensions  have  appeared  
  • 4. Problem  Statement   •  Why  Chrome  extension?   –  Chrome  has  built-­‐in  security  model  for  browser  architecture  and  extension   •  Is  current  Chrome  extension  architecture  good  enough?     –  ParIcularly  with  the  consideraIon  of  malicious  extensions   •  Easy  to  launch  malicious  extensions:     –  It  is  a  difficult  task  to  saniIze  rapidly  increasing  extensions  in  Google  Chrome  Web  Store  with  slow  reviewing   process   –  Users  are  free  to  download/install  extensions  from  many  (known/unknown)  host  servers     –  Strong  incenIve  for  aOackers,  e.g.,     •  harvest  sensiIve  content  in  web  pages   •  Modify  web  search  content     •  Google  takes  acIons  against  malicious  extension  developers   –  singup  fee  for  developers   –  Domain  verificaIon  for  developers     •  Problem:  Can  we  have  a  technical  soluIon?   –  Or  improvement    of  current  permission  model  for  beOer  security  with  malware  extension?    
  • 5. ContribuIons   •  We  demonstrate  several  aOacks  with  malicious  Chrome   extensions  through  experimental  implementaIon   •  We  do  security  analysis  of  the  permission  model  of   Chrome  extension   –  With  the  assumpIon  of  malicious  extensions   •  We  propose  security  enhanced  extension  permission   model  and  enforcement  mechanism   –  Following  the  principles  of  least  privilege  and  separaIon  of   privilege  in  more  strict  way  
  • 6. Chrome  Extension  Architecture   Extension   (HTML/Javascript)   NaIve   code   Process  boundary   Process  boundary   installaIon   Extension  gallery   Render   Content   Script  (java  script)   Isolated  World  DOM   JS   Cookies   Localstorage   Web  server  
  • 7. Chrome  Extension  Security  Model   •  Least  Privilege   –  Pre-­‐defined  permission  set  (e.g.,.  To  access  web  sites,  browser  tab,  bookmarks,  history,  …)   –  Each  extension  declares  permissions  required   –  User  authorizes  permissions  at  installaIon  Ime   •  Privilege  SeparaIon   –  Different  permissions  for  different  components  of  extension   –  Content  script  can  interact  with  web  content,  not  browser  modules   –  Extension  core  has  more  privileges,  but  insulated  from  web  pages   •  Strong  isolaIon   –  Same  origin  policy   •  Each  extension  has  unique  origin   •  Accessing  other  origins  requires  cross-­‐site  permissions   •  Inject  content  script  requires  cross-­‐site  permissions   –  Process-­‐level  isolaIon:  extension  core  runs  in  separated  process  from  renderer  and  browser   –  Within  a  renderer  process,  content  script  runs  in  isolated  world  from  Javascript  of  web  page  
  • 8. Chrome  Extension  Trust  Model   •  The  main  trust  model  of  Chrome  extension   assumes  trusted  but  buggy  extensions   •  But  malicious  web  pages   •  Therefore  the  security  objecIves  are  mainly  for   restricIng  web  pages  to  access  browser   resources  via  extensions   •  And  confine  the  damage  propagaIon  if  possible  
  • 9. Experimental  AOacks   •  We  develop  a  malicious  extension  as  a  bot   –   from  Chrome  7  to  the  latest   – does  email  spamming,  DDoS,  and  phishing  aOacks   easily     •  Through  aOacking  web  pages   – Receive  commands  from  bot  master  with  built-­‐in   update  mechanism  of  Chrome  extension   •  No  security  check  for  update    
  • 10. Email  Spamming   update   site   Browser   Extension   Webmail    server   Upload    update   manipulate   POST   download  update   POST  
  • 13. Security  Analysis     •  Trust  Model:     –  We  assume  browser  kernel  and  pulgins  are   trustworthy   –  Sandbox  mechanism  provided  by  OS  works  well   –  NaIve  code  for  extensions  is  sandboxed   –  Web  apps  are  trusted   •  Threat  model:  malicious  extensions   –  Extension  core   –  Content  scripts  
  • 14. Cross-­‐site  Forgery  with  Content  Script   Extension   (HTML/Javascript)   Render   Content   Script  (java  script)   Isolated  World  DOM   Process  boundary   JS   Cookies   Localstorage   Web  server   •  A  content  script  injected  into  web  page  can   arbitrary  access  the  origin  of  the  page   •  All  user  credenIals  associated  with  the  origin   can  be  included  in  an  HTTP  req   •  Since  the  origin  of  the  content  script  is  usually   not  that  of  the  web  page   –  This  is  a  Cross-­‐site  Forgery  Req   –  The  email  spamming  aOack  leverages  this   •  Default  privileges  of  content  script  are  not  least  
  • 15. Cross-­‐site  Requests  with  Extension  Core   Extension   (HTML/Javascript)   Render   Content   Script  (java  script)   Isolated  World   Process  boundary   Web  server   Content   Script  (java  script)   Isolated  World  Process  boundary   •  Cross-­‐site  reqs  via  content  scripts  through  extension  core   •  The  extension  core  can  file  cross-­‐site  HTTP  reqs  to  mulIple  origins     –  Cross-­‐site  permissions  are  authorized  in  order  to  inject  content  scripts.     •  Default  privileges  of  extension  core  are  not  least   •  No  differenIated  permission  of  extension  core  and  content  script   –  Inject  scripts  vs.  cross-­‐site  reqs  
  • 16. Cross-­‐site  Requests  with  Content  Scripts   Extension   (HTML/Javascript)   Render   Content   Script  (java  script)   Isolated  World   Process  boundary   JS   Cookies   Localstorage   Web  server   DOM   •  Without  cross-­‐site  permission,  a  running  content  script  can   only  make  HTTP  reqs  to  the  origin  of  the  tab  page   •  However,  since  content  script  has  full  privileges  of  DOM,  it   can  file  unlimited  cross-­‐site  HTTP  reqs  to  arbitrary  origin,  e.g.,     –  Insert  iframe     –  Load  img   –  Modify  src  of  DOM  objects   –  With  user  credenIals  included  in  the  req   •  Loading  of  new  DOM  objects  results  in  cross-­‐site  reqs   •  Privilege  to  access  DOM  is  not  least  for  content  script  
  • 17. UndifferenIated  Permissions   Extension   (HTML/Javascript)   Render   Content   Script  (java  script)   Isolated  World   Process  boundary   JS   Cookies   Localstorage   Web  server   DOM   permissions”:  [“hOp://*/ *”  ]   •  An  extension  may  inject  content  script  to  many   origins   –  It  does  not  need  to  file  HTTP  reqs  to  all  origins   –  But  only  to  a  dedicated  one,  e.g.,  a    translaIon  web   service   •  When  an  origin  is  assigned  to  extension,  all   components  get  the  full  privileges   –  Extension  core  can  file  cross-­‐site  reqs  freely   –  Content  script  can  arbitrarily  modify  the  DOM,  and  file   cross-­‐sit  reqs   •  Privilege  separaIon  is  not  fine-­‐grained  enough     19  out  of  30   most  popular   extensions  have   this  type  of  over   privileges  
  • 18. Security  Enhanced  Chrome  Extensions   •  Micro-­‐privilege  management   •  DifferenIate  DOM  elements  with  sensiIvity  
  • 19. Micro-­‐privilege  Management   •  More  fine-­‐grained  permission  definiIon  and  enforcement     •  Fine-­‐grained  permission  differenIaIon  for  extension  core  and   content  script   –  Permission  specs  are  separated  from  different  components   •  Least  default  privileges     –  Content  script  cannot  introduce  new  origin  to  DOM   –  no  HTTP  req  to  tab  origin  
  • 20. Example  Permission  Spec   •  Permissions  for  a  translaIon  extension:    
  • 21. DifferenIaIng  DOM  Elements   •  To  further  reduce  possible  sensiIve  data  leakage  by  content   script,  DOM  elements  can  be  differenIated  with  sensiIvity   levels   •  A  web  app  developer  can  idenIfy  sensiIve  informaIon  in  a   web  page,  e.g.,     –  High  level  data:  only  can  flow  to  web  origin   –  Medium  level:  may  flow  to  authorized  origins   –  Low  level  (default):  can  flow  to  any  origin   •  An  extension  developer    can  specify  permissions   accordingly:   –  E.g.,  HIGH  for  username/pw,  MEDIUM  for  other  user  info  
  • 22. ImplementaIon   •  We  have  implemented  the  micro-­‐privilege  management   and  spec.   •  For  DOM  sensiIvity,  we  develop  a  helper  extension   (trusted):     –  To  idenIfy  and  label  sensiIve  DOM  elements   –  Re-­‐write  DOM  element  properIes   •  According  to  configurable  dicIonary     –  Chrome  enforces  permission  check  based  on  extension  manifest     –  Explicitly  mark  sensiIve  info  by  web  app  developer  is  not  pracIcal   right  now    
  • 24. EvaluaIon   •  We  selected  30  most  popular  extensions  from  Google  extension  gallery   –  24  of  them  have  granted  network  access   –  19  of  them  request  higher  privileges  than  necessary  (hOp://*/*)   •  Our  implementaIon  easily  changes  their  spec  to  reduce  privileges    
  • 25. EvaluaIon   •  Our  implementaIon  blocks  all  experimental   aOacks  on  the  bot  extension.    
  • 26. Conclusions   •  Demonstrated  spamming,  phishing,  and  DDoS  aOacks   with  implemented  Chrome  extensions   •  Analyzed  the  permissions  model  that  causes  these   problems   •  Proposed  security  enhanced  permission  model  and   enforcement  for  Chrome  extension  architecture     –  Micro-­‐privileged  permission  management  and  spec   –  DifferenIate  content  script’s  permission  with  DOM   sensiIvity  levels