oauth security - zisc.ethz.ch · oauth challenges @ google several hundred scopes, apis different...

29
Proprietary + Confidential OAuth Security: Challenges with “Undefined” Naveen Agarwal & Breno de Medeiros Identity @ Google OAuth Security Workshop 2017: ETH Zurich

Upload: others

Post on 27-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Proprietary + Confidential

OAuth Security:Challenges with “Undefined”

Naveen Agarwal & Breno de MedeirosIdentity @ Google

OAuth Security Workshop 2017: ETH Zurich

Page 2: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

OAuth Spec

● Defined protocol

● Undefined:

○ (e.g. Developer registration, Approval Page etc)

Page 3: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Protocol Challenges

● Already discussed a lot. Not the focus of this talk. e.g.

○ Dynamic registration

○ Safe code/token delivery on devices

○ App Auth

○ Session management

○ Token binding

○ Token revocation

Page 4: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Challenges with “Undefined”

● Developer registration,

● Approval Page

● Notification

● Usage

● User controls, Revocation

● Admin Controls

Page 5: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Grant RevokeRegister Usage

Developer creates app

User grants access

Use the token to get data

User revokes token

OAuth Life cycle

Page 6: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

OAuth Challenges @ Google

● Several hundred scopes, APIs

● Different types of data

● Users with varied understanding of security

● Enterprises on Google

○ Users could grant access to malicious apps

○ Enterprise should be able to limit OAuth grants

Page 7: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

The OAuth Phishing attack (What happened?)

Page 8: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Proprietary + Confidential

Developer Registration

Page 9: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

What is required for developer registration?

● Different info for different platforms (Web, Android, iOS, Windows)● Developer Information

○ Domain ownership & verification (introduces friction)● App Information (Logo, Name etc.)

○ What can be verified?● Scopes

○ Part of the request or at registration● Justification for the data?● Privacy policy/ToS

Page 10: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Future

● More verification

● Justification required for sensitive data

● Manual review required

○ If exceeding certain threshold of users

● Learnings from Manual reviews

Page 11: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Proprietary + Confidential

Consent Page/Grant

Page 12: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Approval page

● What metrics should you optimize?

○ Approval rate?

● Amount of info/data/txt on the page

○ Most users don’t read

● Controls on the page?

● Do users understand?

● Design -> Study -> Launch -> Data -> Repeat

Page 13: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users
Page 14: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users
Page 15: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users
Page 16: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

No approval page for “Sign-in”

[email protected]

[email protected]

Page 17: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users
Page 18: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Grant confusion

Files on my device?

Manage? Oh, I see, delete. Why does it want all these things?

Will it still work if I say no?

App, like app on my phone?

It says Google, so it’s safe.

Verified? Great, it won’t spam me.

Page 19: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Future

● Give user more guidance

○ Based on various signals

● Differentiated consent page

○ Account chip for just “sign-in”

○ Risk based e.g. Danger, warning, normal

● Quota/Limits

Page 20: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Proprietary + Confidential

User Notification

Page 21: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Notify user

● Mitigation for hijacked user

● Sensitive data approval reminder

Page 22: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Proprietary + Confidential

Usage of token

Page 23: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Token Usage

● What does the app actually do?

● Is the developer compromised?

● Monitor for abnormal behavior

Page 24: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Proprietary + Confidential

Revocation

Page 25: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Token revocation

● Remove inactive apps

● Discovery of token revocation page

● Give more info

○ App activity

● Highlight risky apps

● Guide the user with decision

Page 26: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Proprietary + Confidential

Admin Controls

Page 28: OAuth Security - zisc.ethz.ch · OAuth Challenges @ Google Several hundred scopes, APIs Different types of data Users with varied understanding of security Enterprises on Google Users

Summary

● OAuth Abuse has arrived

● Verify info about the app and developer

● Guide user through the consent process

● Notify user

● Monitor activity

● Enforce Limits/Quotas

● Give users information and controls on revocation

● Build admin controls