Top Banner
AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo
40

AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

Dec 19, 2015

Download

Documents

Edmund Walsh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

AppSec USA 2014

Denver, ColoradoWarning Ahead: Security Storms are Brewing in

Your JavaScriptHelen Bravo

Page 2: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

2

About Me

Helen BravoProduct Manager of Checkmarx

Static Application Security Testing (AKA – Source Code Analysis)

Page 3: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

3

Agenda

• Broken sandbox

• Same old XSS becomes a monster

• Watch out for your client side

• “I know where you were last summer”

Page 4: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

4

HTML5 is booming

Report released in August 2013 has shown that 153 of the Fortune 500 U.S. companies already

implemented HTML5 on their corporate websites.

Page 5: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

5

Some of the additions in HTML5

• WEB storage• WEB SQL database• Indexed DB• Application cache• Web workers• Web socket• CORS• Web messaging• Sandbox attribute• New HTTP headers• Server sent events

• New and better semantic tags

• New form types• Audio and video tags• Canvas• Inline SVG• New onevent attributes• Geolocation• New CSS selectors • New javascipt selectors• Custom data-* attributes

Page 6: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

6

The Sandbox Attribute

Page 7: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

7

Same Origin Policy

http://www.cnn.com/main

main page

“Change background to green”

http://www.cnn.com/story1Iframe

same origin

Page 8: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

8

Same Origin Policy

http://www.cnn.com/main

main page

“Change background to green”

Error!

http://www.fox.comIframe

different origin

Page 9: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

9

SOP

Same Origin Policy permits scripts running on pages originating from the same site based on combination of

scheme, hostname, and port number[

Page 10: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

10

Markets

• Recent trend - markets of extensions Salesforce.com, Microsoft 365, etc…

• Extension is Javascript code written by a 3rd party but hosted and delivered from the very same server

• So SOP doesn’t play well

Page 11: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

11

Sandbox concept

Sandbox concept? Sandbox is a hardening of the basic SOP – so that any content running in the sandboxed iframe is treated as if it comes from a different origin, and it gives fine-grained control over what restrictions apply.

Page 12: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

12

Sandbox syntax

• Syntax<iframe sandbox="value">

• Attribute ValuesValue Description

"" Applies all restrictions below

allow-same-origin Allows the iframe content to be treated as being from the same origin as the containing document

allow-top-navigation Allows the iframe content to navigate (load) content from the containing document

allow-forms Allows form submission

allow-scripts Allows script execution

Page 13: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

13

http://www.server.com

http://www.server.com/iframe

main page

<script> alert(1) </script>

1

Iframe / same origin

Page 14: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

14

http://www.server.com

http://www.server.com/iframe

main page

<script> alert(1) </script>

Sandboxed IframeDefault permissionsSame Origin

Page 15: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

15

http://www.server.com

http://www.server.com/iframe

main page

<script> alert(1) </script>

1

Sandboxed IframeAllowing Scripts and SOP(Same Origin)

Page 16: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

16

http://www.server.com

http://www.server.com/iframe

main page

<script> top.navigate(…) </script>

Sandboxed IframeAllowing Scripts and SOP(Same Origin)

Page 17: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

17

http://www.server.com

http://www.server.com/iframe

main page

<script> top.find(myself)addPermission(myself, top_nav)Refresh()navigate(…) </script>

Sandboxed IframeAllowing Scripts and SOP(Same Origin)

Page 18: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

18

http://www.server.com

Sandboxed IframeAllowing Scripts, SOP(Same Origin)AndTop Navigation

http://www.server.com/iframe

main page

<script> top.find(myself)addPermission(myself, top_nav)Refresh()Navigate(http://www.hacker.com) </script>

http://www.hacker.com

Page 19: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

19

Don’t just count on Sanbox!

Don’t assume that just because an iFrame is sandboxed, your code is secure.

Avoid granting a sandboxed iFrame with scripting and SOP capabilities.

Page 20: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

20

XSS - New Tricks, Old Dog

How a single XSSed page can be used to take screenshots of other non-XSSed page ?

Page 21: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

21

Monster XSS – Attack Steps

• Step A – Use Bookstore project Login page vulnerable to Reflected XSS to embed itself in an iframe

http://server/page.aspx?xss=<iframe src=“http://server/page.aspx”>

Iframe border(left visible for demo purposes)

Page 22: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

22

Monster XSS – Attack steps

• Step B – The user logs in and browses the inside frame. The outer page remains the same while it’s scripts can access the inner’s data

Iframe border(left visible for demo purposes)

The user went to the admin page, but the URL is still the XSS’ed login page

Page 23: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

23

• The attacker gets set of pictures representing all user activity( yes, including user name and password!)

Monster XSS – The result

Page 24: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

24

Monster XSS – The technique

• HTML5 introduced the concept of Canvas, which can be used to take screenshots

What is Canvas? (w3schools)The HTML5 <canvas> element is used to draw graphics, on the fly, via scripting (usually JavaScript).

Page 25: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

25

Monster XSS – The technique

• Html2canvas - open-source script which builds screenshots based on DOM information.

• We modify it a bit – to reveal passwords

Page 26: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

26

Monster XSS – The technique

Modified HTML2Canvas runs at the outer page and every 2 seconds takes screenshots of the iframe

XSS that takes base64 screenshots

Page 27: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

27

Monster XSS – The technique

Page 28: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

29

Monster XSS – bottom line

So, what can I do ?

Get rid of XSS!!!

Page 29: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

30

Web Socket

WebSocket – allows persistent connection between the client and the server , when both

parties can start sending data at any time.

Page 30: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

31

New Tricks, Old Dog

• Now we will see how an XSS can be used as an agent to map the structure of a network behind a firewall

• Super-charged XSS– Advanced port scanning (WebSockets)

• http://www.andlabs.org/tools/jsrecon.html

Page 32: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

33

• Websoket

– Fast and efficient network mapping process

– Firewall bypass into organization.

Page 33: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

34

Packman - winning the odds

• Client site business logic helps to gain efficiency.

• Efficiency brings along security costs.

Page 34: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

35

Packman Demo

Pacman.mp4

Page 35: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

36

Packman – recommendations

• Don’t trust the client: validate user input!

• Do not ever store business logic on the client!

Page 36: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

37

A Variant of Clickjaking

How to turn on user’s camera while the victim actively agrees without even noticing?

Page 37: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

38

A Variant of Clickjaking

Demohttp://localhost/bookstore/k2.html

Page 38: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

39

A Variant of Clickjaking

For attacks focused on social engineeringThere is only one solution

Awareness

Page 39: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

40

Summary

• HTML5 brings enhancements to Web development

• …which comes with some great enhancements to security vulnerabilities

Page 40: AppSec USA 2014 Denver, Colorado Warning Ahead: Security Storms are Brewing in Your JavaScript Helen Bravo.

41

Thank you!

Helen Bravo

[email protected]