Attacking & Defending postMessage in HTML5 Websites

Attacking & Defending postMessage in HTML5 Websites
Slide Note
Embed
Share

In this study, the University of Central Florida delves into techniques for attacking and defending postMessage in HTML5 websites. The research emphasizes the importance of secure communication protocols in mitigating risks associated with cross-site communication. Various scenarios, including inter-frame communication and enhancing user experience, are explored. The study also highlights the evolving web landscape and the need for caution in utilizing postMessage for improved functionality. Security perspectives, concerns about origin checks, and practical demonstrations underscore the significance of ensuring confidentiality and authenticity in web communications.

  • HTML5
  • postMessage
  • security
  • communication
  • web development

Uploaded on Feb 24, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. The Postman Always Rings Twice: Attacking & Defending postMessage in HTML5 Websites Ankur Verma University of Central Florida, Orlando University of Central Florida

  2. University of Central Florida Prior/After HTML5 Same Origin Policy communication Protocol + Host + Port Cross Site Communication postMessage

  3. University of Central Florida New Web Approach postMessage enhance user experience

  4. University of Central Florida postMessage: Inter-frame Communication Different Frames

  5. University of Central Florida What Worries? Changing Web Landscape: Inclination on Client Side Greater Functionality Application Logic JavaScript Fast Query Response Extended Functionality

  6. University of Central Florida Usage Target Origin Message Usage: targetWindow.postMessage(<Traffic Data Request>, <Google Analytics>) Third Party

  7. University of Central Florida Security Perspective postMessage guarantees confidentialityandauthenticity Sender specifies recipient s origin, specifying URL(Target Origin) Recipient origin can also be * Developer s responsibility. To be used Cautiously! 68% websites vulnerable to XSS

  8. University of Central Florida Cause of Concern 25% of top 10,000 websites use postMessage: Alexa Over 70% of websites do not perform origin check. Nearly 12% perform semantically incorrect checks

  9. University of Central Florida Sample Demonstration (I) Origin Check: Failing which enables XSS attacks. http://www.xyz.com http://www.abc.com Window.addEventListner( message , GetMsg, false); Var newWin=window.open (http://www.xyz.com); newWin.postMessage( Hi , http://www.xyz.com); function GetMsg(event) { if (event.origin == http://www.abc.com") return; event.source.postMessage( Hi ABC , event.origin); } Origin Check targetOrigin

  10. University of Central Florida Sample Demonstration (II) Semantically Incorrect Checks http://www.xyz.com http://www.abc.com Window.addEventListner( message , GetMsg, false); Var newWin=window.open (http://www.xyz.com); newWin.postMessage( Hi , http://www.xyz.com); function GetMsg(event) { Var w=/abc\.com(:[0-9])?$/; if (!event.origin.match(w)) return; event.source.postMessage( Hi ABC , event.origin); } Origin Check targetOrigin Evilabc.com

  11. University of Central Florida Defense from Attacker Website For third party content providers like Facebook Based on Pseudo Random Token Frame with 3rd party content accepts messages only from the origin of the page that loads this frame. Or (More Restrictive) Frame with third party content accepts messages only from the parent frame. X.com Y.com X.com attacker.com X.com XSS can t be prevented, if attacker includes 3rd party frame

  12. University of Central Florida Defenses Attacker including 3rd party frame. Frame with 3rd party content accepts messages only from content provider s scripts running in any origin. Example: www.facebook.com https://developers.facebook.com/docs/plugins/like-button/ www.attacker.com www.facebook.com Receivers

  13. University of Central Florida Defense from Third Party Content For website that use untrusted third party content Based on Content Security Policy (CSP) extension Restricts origin of messages sent to X.com from attacker.com. Requires browser support, no cooperation From third party content provider. X.com attacker.com

  14. University of Central Florida Using postMessage: Simple Example Origin Check Data Sender Origin Check Target Origin

  15. University of Central Florida Light Threat Model Child C sends message to B via A Third Party Frames Attacker Honest

  16. University of Central Florida Heavy Threat Model Attacker directly included third party frame attacker.com Attacker can put any script or data in local storage novice.com novice.com Provided Script Can cause session hijacking if website stores user s identity Can cause also steal stored cookies

  17. University of Central Florida X-Frame-Options Header Allows/ disallows rendering of the document when inside an iframe. It may have three possible values: SAMEORIGIN: The document will be rendered in an frame only if the frame and it s parent have the same origin. DENY: Document may not be rendered inside a frame. ALLOW-FROM: Document can be frame in specific uri Needs to be added to web server s config file. 3% of websites posing serious threat, do not use this feature

  18. University of Central Florida Defense Techniques Pseudo Random Token Protect against Light threat model Guarantees only the origin that loaded a third-party frame can send messages to this frame. Shared secret pseudo random token between site owner and inner frame Web-Kit browsers, provide crypto.getRandomNumber API http://random.org via an XMLHttpRequest Outer script attaches token to src attribute of frame it create Content Security Policy Enforce security policy on 3rd party scripts. Require structural changes, by removing inline JavaScript CSP is HTTP header starting with X-Content-Security-Policy Only 3 out of Alexa top 10,000 websites use this

  19. University of Central Florida Questions ?

More Related Content