123456 · 123456 . single sign-on service 2 . single sign-on workflow 3 identity provider (e.g.,...

23
SSOScan: Automated Testing of Web Applications for Single Sign-On vulnerabilities Yuchen Zhou David Evans http://www.ssoscan.org/ 1 123456

Upload: others

Post on 25-Apr-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

SSOScan: Automated Testing of Web Applications for Single Sign-On vulnerabilities

Yuchen Zhou David Evans

http://www.ssoscan.org/ 1

123456

Page 2: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Single Sign-On Service

2

Page 3: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Single Sign-On Workflow

3

Identity Provider (e.g., Facebook)

Integrator (e.g., espn.com)

Redirect

Visit

OAuth Credentials

Confirm Credentials

Authenticated

Login

Verify login and issue credentials

User (Web Client)

Page 4: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Integrating SSO services

4

SSO SDKs are designed for developers with little or no security expertise. The secure integration depends on understanding important security requirements.

Page 5: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Credential Misuse

5

1. Visit

3. Issue credentials

4. Forward credentials

5. Reuse credentials

6. Authenticated

Facebook User

Mallory Foo app server

2. Login

Happens when the application fails to verify: •  The application ID to which the access_token was issued

•  The signature of signed_request credential

Page 6: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Credential Leakage

6

Third Party

Resource

GET https://cdn.optimizely.com/js/242559767.js HTTP/1.1 Host: cdn.optimizely.com … Referer: https://www.dealchicken.com/Login?access_token=CAABhCKz13vUBAGaNPlN9fu0dnPvoceu46ScHXELkpEOOmLCTk3iFnJHGjWEZAxOJFcYf4wxVWv1MejzvT3K4arpWmAjAZCoOeuECQcnDRt82nUeBdA5ACVpoJyM6J3KzKvZA1ZBWKsFVEIBIZAntEkmDbXaN7IlaC8lQK9G9PE1XLg0kLoqG8ObRhy7BIHfUs9cNWGZBLV6fMhN0WIgdde&expires_in=6493&fb_uid=100003929906137&ReturnUrl=https%3A%2F%2Fwww.dealchicken.com%2Flogin%3FReturnUrl%3D%252f

Page 7: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

7

SSOScan

http://www.answers.com/

http://www.espn.go.com/

http://www.pinterest.com/ http://www.huffingtonpost.com/

http://www.imgur.com/ http://www.wsj.com/

http://www.ask.com/ http://www.ohours.org/

Vulnerability status:

Credential misuse Credential leakage

Page 8: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

SSOScan Components

8

Vulnerability Tester

Oracle

Enroller •  Button Finder •  IdP login automation •  Registration automation

•  Simulate attacks •  Monitor traffic & response

Enroller

Oracle

Vulnerability Tester

•  Verify enrollment success •  Confirm session identity

Page 9: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Enroller: Button Finder

9

Page 10: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Button finder: Location

10

1

Page 11: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Button finder: Location

11

2

Page 12: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Button finder: Location

12

Second Click, False Positive Second Click, True Positive

First Click, True Positive Second Click, True Positive

Page 13: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Registration Automation

13

Page 14: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Oracle

14

Page 15: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Evaluation

15

Not Vulnerable 57.4%

Buggy 2.3%

No Facebook SSO, 90.7%

Facebook SSO, 9.3%

Misuse cred 12.1%

1,660 Sites using Facebook SSO

Leak cred 8.6%

Test failed 20.0%

20.3% sites have at least one vulnerability

Valid top US ranked sites (17, 913)

Dataset: Top-ranked 20,000 US sites1 excluding hidden sites, DNS errors and timeouts.

1: According to Quantcast

Page 16: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Example vulnerable cases

16

Credential Misuse – signed_request:

Credential Misuse – both: Credential Leakage:

: Both vulnerabilities fixed as of now

Page 17: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

0%  

5%  

10%  

15%  

20%  

25%  

30%  

35%  

40%  

45%  

Facebook SSO support % vs. site ranking

More popular sites tend to include Facebook SSO more.

17

Site rank (each bin contains 179 sites, 1% of the total tested)

1 10 20 30 40 50 60 70 80 90 100

More popular Less popular

% S

uppo

rtin

g Fa

cebo

ok S

SO

Page 18: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

0%

10%

20%

30%

40%

50%

60%

70%

% V

ulne

rabl

e Vulnerable sites % vs. sites ranking

1 10 20 30 40 50 60 70 80 90 100

18

*

*: no Facebook SSO supported sites

Site rank (each bin contains 179 sites, 1% of the total tested)

More popular Less popular

Higher-profile sites do not seem to have better security practices (SSO integration).

Page 19: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Integration methods

19

SDK:

Widget:

Custom code: Anything else

<iframe name="1394305783460" frameborder="0" …></iframe>

<script src="//connect.facebook.net/en_US/all.js" type="text/javascript"></script>

Method Number Misuse vul Leakage vul

SDK 578 29.1% 3.6%

Widget 132 15.5% 2.2%

Custom 950 1.3% 12.4%

All 1660 12.1% 8.6%

Page 20: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Responses from vendors 20 vendors contacted.

}  Only got 8 responses }  3 of 8 responded after initial (automated) response }  After 3 months, one site removed Facebook SSO from their

site: ehow.com

Through a personal connection, we reached another vendor .

}  After first fix, vulnerability still exists }  Second fix solved all issues

20

Page 21: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Response from Facebook

21

We contacted Facebook on May 2014 regarding the vulnerable websites. Facebook is more concerned with those that

}  Leak access_token through referer header; }  misuse any type of OAuth credential.

We reported 95 of such cases to Facebook and Facebook responded: “We have notified and taken appropriate actions against those sites”. Only 4 out of 95 fixed their issues as of our latest test result.

Page 22: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

Conclusion

22

SSOScan shows roughly 20% of the top ranked websites suffer from SSO vulnerabilities. Notifying vendors, or even the identity provider, are not as effective as one might expect.

SSOScan deployment opportunities:

}  Integrated at identity provider app center / app store }  Ensure application security by shutting down vulnerable app’s access.

}  Checking-as-a-service

Page 23: 123456 · 123456 . Single Sign-On Service 2 . Single Sign-On Workflow 3 Identity Provider (e.g., Facebook) Integrator (e.g., espn.com) Redirect Visit OAuth Credentials Confirm Credentials

23

SSOScan as a web service: http://www.ssoscan.org/

Thank you!