1 / 33

Firefox (in)Security

Firefox (in)Security. Prasanna K Dead Pixel. What & Who . This presentation demonstrates strength of the Mozilla platform and how some of the features could be misu sed by malicious users. This presentation is intended to dispel a common myth Just using FIREFOX keeps you SECURE .

africa
Télécharger la présentation

Firefox (in)Security

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Firefox (in)Security Prasanna K Dead Pixel

  2. What & Who This presentation demonstrates strength of the Mozilla platform and how some of the features could be misused by malicious users. This presentation is intended to dispel a common myth Just using FIREFOX keeps you SECURE

  3. Agenda • Basic premise • Understanding the Mozilla Platform • Attacking Firefox • Malicious Extensions • XCS • Some basic points to watch…. • That’s All Folks …

  4. Introduction Browser of the choice for millions Multi Platform Modular and Scalable ! Pluggable Extension Code ! Browser of my Choice 

  5. Mozilla Platform

  6. Mozilla Platform Chrome: It could be used to indicate a “Special Trusted Zone” within the Mozilla Platform

  7. Mozilla Platform XUL (pronounced "zool") : Mozilla's XML-based language that lets you build feature-rich cross platform applications that can run connected or disconnected from the Internet. <?xml version="1.0"?> <?xml-stylesheethref="chrome://global/skin/" type="text/css"?> <window id="vbox example" title="Example 3...." xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <vbox> <button id="yes" label="Yes"/> <button id="no" label="No"/> <button id="maybe" label="Maybe"/> </vbox> </window>

  8. Mozilla Platform XBL: XML-based markup language used to declare the behavior and look of XUL-widgets and XML elements. scrollbar { -moz-binding: url('somefile.xml#binding1'); } -- “binding1” is the id of the binding

  9. Mozilla Platform XPCOM: Cross platform component model from Mozilla. Nerve center of the Mozilla platform. XPCOM has some Similarity to CORBA and Microsoft COM.

  10. Important Components of Mozilla Platform

  11. Mozilla Platform

  12. Extension Installation – Mozilla Site Reviewed before being added to the Mozilla site. Review process is manual lapses have been found Over 2 billion add-ons as of today and growing Add-ons can be distributed through Mozilla without review as well https://addons.mozilla.org/en-US/firefox/addon/2230/

  13. Extension Installation – How else? There is no restriction on any site hosting Mozilla extensions (XPI files) When installing from any site Mozilla pops a warning but the same message appears on the official site (confusing!). Extensions can be installed without warning by other software, USB autorun, login scripts etc.

  14. Extension Installation – Alternate Method Place a file in the extensions folder in the Mozilla profile directory. The filename should be the id of the extension to be loaded The content of the file should be the location of the extension code Beware: When this file exists in the folder the extensions is installed automatically it does not require any human interaction.

  15. Extension Security! • Mozilla extension security model is completely flat • Extension code is treated as fully privilegedby Firefox • Vulnerabilities in extension code can result in full system compromise • No security boundaries between extensions An extension can silently modify/alter other extensions

  16. The Potential • Statistics – Firefox Browser Market Share • Beyond 20% globally since November 2008, more than 50% in certain regions/countries • Source: Marketshare - marketshare.hitslink.com Over 2 billion add-ons and growing

  17. Extensions are Everywhere

  18. Concerns on AMO • Everyone can write extension and submit to AMO (even us  ) • AMO review process lacks complete security assessment • Few extensions signed in AMO. Extensions are generally not “signed”. Users trust unsigned extensions. • Experimental extension (not approved yet) are publicly available

  19. This sums it up

  20. Extension and Malware • Some people have already exploited this concept • FormSpy - 2006 • Downloader-AXM Trojan, poses as the legitimate NumberedLinks 0.9 extension • Steal passwords, credit card numbers, and e-banking login details • Firestarterfox - 2008 • Hijacks all search requests through multiple search engines and redirects them through Russian site thebestwebsearch.net • Vietnamese Language Pack - 2008 • Shipped with adware • Vietnamese Language Pack - 2008 • Shipped with adware • Might happen in the near future… • Malware authors bribe/hack famous/recommended extension developer/vendor • Initial benign extension, malware is introduced in a 3rd/4th update

  21. Attacking Firefox ! Now that we have seen the basic architecture & problem, let’s have some fun 

  22. Anatomy of an Extension These are the components of every extension. They are archived together into the XPI file format. Sample Files inside a XPI file exampleExt.xpi: /install.rdf /chrome.manifest /chrome/ /chrome/content/ /browser.xul /browser.js

  23. Malicious Extensions We will build a malicious extension which will Log all Key Strokes and send them remotely Execute native code Extract stored passwords Add a malicious site to the NoScriptwhitelist DEMO

  24. Interesting Finds In the course of making this presentation I found some interesting things

  25. XCS (Cross Context Switching) Cross Context Switching is the art of injecting malicious content into the trusted Chrome Zone. XCS injections occur from untrusted to the trusted zone. PDP was the first person to exploit XCS.

  26. Attacking Event & DOM Handlers Event Handlers implement element properties attributes and behavior. DOM nodes when dragged and dropped move the properties attributes and behavior An extension that trusts DOM content can be subverted by providing malicious content CreateEvent() DOM function can be used to send malicious content to the extension DEMO

  27. Bypassing Wrappers Multiple wrappers exist in Firefox and are used to protect privileged interfaces, functions and objects. wrappedJSObject can be used to strip the wrapper protection. DEMO

  28. What Can We Look For? • Suspicious single file(s) in the extension folder. • XPI are archives - can be un-Zipped and checked for any packaged executables • Check the install.rdf for common pitfalls mainly <em:hidden> • Verify chrome.manifest does not point to other extension folders as it can overwrite functionality.

  29. What Should a Developer Do? • That’s a whole presentation by itself • Don’t bypass wrappers • Don’t trust content From the un-trusted context. • Don’t use eval() • Follow this link : https://developer.mozilla.org/en/Security_best_practices_in_extensions

  30. Tools • Firebug • XULWebDeveloper • XPComViewer • Venkman • Console2 • Burp

  31. Last Words • We discussed some ways to subvert the Mozilla Platform • This list is not by any means exhaustive • There are some strategies like sandboxes which can be bypassed • New features like themes open new avenues ! • Last, Mozilla is a secure platform but can be made to do lots of tricks… So some care should be taken.

  32. Questions

  33. Thank You prasanna@deadpixel.org

More Related