Robert “RSnake” Hansen - OWASP · Robert “RSnake” Hansen - CEO SecTheory LLC Bespoke...

Preview:

Citation preview

Robert “RSnake” Hansen - CEO

SecTheory LLC

Bespoke Boutique Internet Security

Web Application/Browser Security

Network/OS Security

Advisory capacity to VCs/start-ups

“We solve tough problems.”

http://www.sectheory.com/

Founded the web application security lab

http://ha.ckers.org/ - the lab

http://sla.ckers.org/ - the forum

2

“Frames have horrible usability since they break most of the navigation features in a web browser (bookmarks, backtrack, and going to a URL all stop working).” Jakob Nielsen (1996)

Remind you of XMLHTTPRequest?

3

Text based, www and gopher

Graphical Browsers:

Mosaic (1993 Nov)

Netscape(Oct 1994)

Internet Explorer (Aug 1995 – Spyglass license)

1995 comes with JavaScript support originally created by Brendan Eich at Netscape, which is soon adopted by all browsers.

Microsoft answered with VBScript in 1996.

4

No session/state management

Not encrypted

Only supports basic auth which wasn’t good for state management:

Two users could use the same userid

UI was terrible5

Netscape implemented SSL (1994)

Web developers were told to create their own credentials/state management and use secure cookies (rfc2109 in 1997)

HTTP/1.1 brought digest auth which also sort of helped with state management, kind of (rfc2616 in 1999)

6

Allowed to contact anything

No easy upgrades

Cross domain policy issues (MS XSS in 2000)

Lots of exploits

HTML TIMTOWTDI (Browser rendering)

7

..d..ots?

&#XFEFF;&#160;&#x48;<FONT HUH=">'>`>SUP"></FONT>&#XFEFF;&#105;</table

><A STYLE="&#x63&#x6F&#x6C&#x6F&#x72&#x3A

&#x72&#x67&#x62&#x28&#x32&#x35&#x35&#x2C&#x32&#x35&#x35&#x2C&#x32&#x35&#x35

&#x29">I&#X00FeFF;</A><BDO DIR="rtl">S&#XFEFF;AW<HRM>O</BDO>P!

How can we find fraud when we don’t know what it looks like?

8

Mime type issues

HTML, JS, and CSS differences

Proprietary URL structure

Proprietary protocols (jar:, data:, etc…)

Etc…9

In the early 2000’s bad guys could: Compromise the desktop

Use DoubleClick “cookie” malware

Spoof the location bar

Phish/identity theft

Toolbars move faster than browsers:

10

XHTML comes out of WAP2.0 in 2001

Firefox implements port blocking and allows users to quickly clean history/cookie data

Anti-phishing filters built in – finally!

Browsers begin to auto-update and generally begin to fix the major 0days quickly…

…with the exception of Netscape who always lags.11

Samy Worm (Oct 2005)

It started with a router Intranet port scanning Combining XSS with

CSRF

Bypassing port restrictions

Browser history theft

Exponential XSS Nduja worm

Desktop compromises…

12

JavaScript-less:

Port Scanning

CSS history theft

CSRF

Non HTTPS updates own browsers

Intranet hacking through split VPN tunnels

HTTPOnlybecomes a standard in 2007 – sorta.

“10 *ing days”

13

We cannot encrypt everything (because we don’t own everything)

We must allow rich HTML (consumers demand it)

We cannot fix all XSS and CSRF holes (too many)

Our employees must use the same (all) browsers as our consumers and they must be able to access the website (for QA)

We cannot block on IP addresses (doesn’t work and alerts the bad guys to what we know)

14

Cross domain leakage

Same site/CSRF

De-anonmization

Identity Theft/Fraud

Third party plugins/toolbars – off limits for this talk

15

Cross domain leakage XSS (70-90% of sites)

Unicode (IE vs FF – RFC war)

Referrers (Except file:, meta, etc…)

Status Bar

Remote CSS, JS, Flash, Java

CSS History

Onload & Onerror & Image size

XML errors

Timing attacks

DNS Rebinding (NTLM)

crossdomainpolicy.xml & Flash

…16

Cross/same site request forgeries IMG

LINK

IFRAME/FRAME

OBJECT/EMBED/APPLET

BGSOUND

SCRIPT

Hovering iframes

Client side apps

X-domain XHR

Redirection of URLs

Subversive JS file sharing!

17

De-anonmization Cookies/Flash cookies

Browser caching (eTag)

IE & JS Persistence

Machine fingerprinting

TCP/OS fingerprinting

TCP/clock skew timing

CSS history/referrers

Offline enabled apps

Java Sockets & file:///

Statistical observation/MITM

18

Identity Theft Phishing on remote domains XSS phish on white listed sites IDN/Punycode Credential theft Embedded basic auth CSS overlay of forms DNS Pharming Keystroke logging/malware MITM Obfuscated HTML Password manager hijacking…

FIXED? Uh… no! …

19

Don’t use JS Use JS for auth pages

Don’t install anything Install Patches Use plugins (Eg: noscript)

Don’t use social networks Use separate browsers

Pick secure passwords Don’t re-use passwords

Type the URL Look for the green bar .bank TLD Look for the lock

20

…if we could just use a browser and be safe?

21

“This sentence is a lie.” -Spock. “If you trust me, trust me when I tell you to distrust me.” –RSnake. On-page sandboxing/Content restrictions

Secured “Zones”

Stop the “Forrest Gump referrer” problem

Requestor context (click vs img)

APIs (Callback’s, intercept network data, network call to dom mapping)

Protected/untainted JavaScript

Standardized Authentication (eg: auto log-out)

Browser-war truce - Browsersec (standards!)22

Robert Hansen

robert _at_ sectheory d0t c0m

http://www.sectheory.com/

http://ha.ckers.org/

XSS Book: XSS Exploits and Defense

ISBN: 1597491543

Detecting Malice – O’Reilly (TBD)

23

Recommended