54
Wojtek Dworakowski, @wojdwo SecuRing Internet banking safeguards vulnerabilities

Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Wojtek Dworakowski, @wojdwo

SecuRing

Internet banking safeguards

vulnerabilities

Page 2: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

#login

Wojtek Dworakowski

SecuRing (since 2003)

OWASP Poland Chapter Leader

2

Page 3: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

#login

Wojtek Dworakowski

SecuRing (since 2003)

OWASP Poland Chapter Leader

3

Page 4: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Agenda

• Intro

– Banks vs attackers – current state, common security features

• Vulnerabilities and best practices

– transaction authorization vulnerabilities, trusted recipients

feature abuses, transaction limit bypass, user auth mistakes…

• PSD2 – future changes to internet banking security

• Should OWASP publish guidelines for specific

application domains (e.g. internet banking)?

4

Page 5: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

BANKS VS ORGANIZED (?) CRIME

5

Page 6: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Common attack patterns

• Malware

– Web inject

– Keylogger + remote desktop

– Clipboard manipulation

• Vulnerability exploitation

– Infrastructure

– Application

– Libraries / frameworks !

Page 7: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Clipboard (or memory) manipulation

8

Source: CERT Poland

http://www.cert.pl/news/8999/langswitch_lang/en

Page 8: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Clipboard (or memory) manipulation

9

Source: CERT Poland

http://www.cert.pl/news/8999/langswitch_lang/en

Page 9: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Server vulnerability exploitation

• In late 2015 one

of Polish banks

was pwned

(outdated

components)

• Intruder was

able to modify

transactions

source: www.zaufanatrzeciastrona.pl

~ 40 000 eur

Page 10: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Server vulnerability exploitation

Source: www.zaufanatrzeciastrona.pl

• In late 2015 one

of Polish banks

was pwned

(outdated

components)

• Intruder was

able to modify

transactions

~ 92 000 eur

Page 11: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Server vulnerability exploitation

Source: www.zaufanatrzeciastrona.pl

English writeup:https://www.linkedin.com/pulse/online-banking-owned-single-

attacker-wojciech-dworakowski

Page 12: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

How banks mitigate these risks?

• Multi-factor authentication

• Transaction authorization

– Trusted recipients

• Authorization schemes

• Transaction limits

• Notifications (SMS, e-mail, …)

• Channel activation

– Mobile device authorization

img src: http://nuvali.ph/see-and-do/sports/mountain-bike-trails/

Page 13: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

14Img src: www.mtb-downhill.net

Page 14: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

SECURITY FEATURES

VULNERABILITIES

BEST PRACTICES

Details matter

15

Page 15: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Transaction authorization

16

Page 16: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

17

Sourc

e: a

liorb

ank

.pl

dem

o

Page 17: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

18

Image: Alior Bank

Domestic transfer: Recipient

account 22XXXX222 amount

77.34 EUR authorization

code: 36032651

Page 18: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln examples (functional)

19

Domestic transfer from account

99XXXX890 amount 1.00 EUR

authorization code: 78537845

Page 19: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln examples (non functional)

POST /domesticTransfer HTTP/1.1

task=APPROVE_TRN

trnData.acc_id=910458

trnData.bnf_name=TELECOM+OPERATOR+Ltd

trnData.bnf_acc_no=PL99111100000000001234567890

trnData.amount=1.00

trnData.currency=EUR

trnData.title=invoice+123456

20

Step 1: User enters transaction data

Page 20: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln examples (non functional)

Step 2: User enters authorization code

21

POST /domesticTransfer HTTP/1.1

task=SEND_RESPONSE

trnData.response=87567340

Page 21: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln examples (non functional)

22

POST /domesticTransfer HTTP/1.1

task=SEND_RESPONSE

trnData.response=8756734

trnData.bnf_acc_no=PL66222200000000006666666666trnData.amount=1000.00trnData.currency=EUR

Overwrite transaction data in step 2

Page 22: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Transaction authorization

– best practicesThx !• Steven Wierckx

• Adam Zachara

• Adam Lange

• Sławomir Jasek

• Andrzej Kleśnicki

• Sven Thomassin

• James Holland

• Francois-Eric Guyomarch

• Milan Khan

23

Page 23: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Trusted recipients

24

Page 24: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Trusted recipients

• The process is very error prone

• Developers are using same forms and are slightly

modifying logic to do normal and “trusted” transfers

Page 25: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln example #1: make it trusted

1. Send unauthorized transfer

2. Add some magic

26

transferData.trusted=Y

Page 26: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln example #2: overwrite data

1. Create the transfer from trusted recipient template

2. Add (or overwrite) transfer parameters during sending

27

transferData.beneficiary_acc_no=66222200000000006666666666transferData.beneficiary_adr=Changed+Address+8%2F5

Page 27: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln example #3: business logic error

trusted recipient

Allice Eva

Any account

trusted recipient

no additional authorization needed

Yes – it’s totally twisted… but it’s realRead more: https://www.linkedin.com/pulse/online-banking-

owned-single-attacker-wojciech-dworakowski

Intruder Money mule

Page 28: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Trusted recipients

Recommendations• Decision should be taken server-side

• Carefully control transfer state

• Do not allow additional params

• Control gate (go | not go) at the end of the process

29

Page 29: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

TRANSACTION LIMITS

Page 30: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Limit examples

• transfers / card operations

• cash / online

• one-time amount

• daily / weekly sum

• daily transactions number

• business parameters

(e.g. max/min deposit amount)

• …

• If the limit is exceeded:

– forbid operation

– ask for additional credentials

– call customer to verify the

transaction

– …

Page 31: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln example #1

• Simply – change limits

• Sometimes it doesn’t require additonal authorization ;)

32

Page 32: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln example #2: overwrite at confirmation

Enter transaction data below limits

Send form Limits are validated Confirmation form

33

POST /retail/transfertask=APPROVE_TRANSFERtrn_amount=1000000

Page 33: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Transaction limits - requirements

• Transaction limits change should require additional

authorization (SMS code, one time token, challenge-

response, …)

• Do not allow additional params

• Control gate (check limits) also at the end of the process

34

Page 34: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

NOTIFICATIONS

Page 35: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Vuln examples

• Simply change phone number (or email)

• …or disable / reconfigure notifications

• Sometimes it doesn’t require additonal authorization

36

Page 36: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Notifications - requirements

• Notification change should require additional authorization

(SMS code, one time token, challenge-response, …)

• User should be notified about:

– wrong authentication attempt

– (even better) about positive authentication

– transaction (SUM) above defined limit

– activation of new access channel (mobile, IVR) or new device

pairing

– password or phone number change

37

Page 37: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

USER AUTHENTICATION

Page 38: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

We are teaching

users to have

strong passwords

Source: http://xkcd.com/936/

28characters

Page 39: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Passphrases and password managers obstacles

• Limited length

• Limited chars

– Extreme case:

8 digits

• Masked

passwords

Source: Data collected by SecuRing during research on security

features used by online banking in Poland (17 banks)

<=10

10-20

20-30

>30

Max password length

28characters

Page 40: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

FUTURE – CRASH COURSE IN PSD2

49

Page 41: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

PSD2

Payment Services Directive (revised)

Major topics:

• SCA – Strong Customer Authentication

• PIS – Payment Initiation Service

• AIS – Account Information Service

Scope:

• Mandatory for all „Payment Service Providers”

Page 42: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Strong Customer Authentication (SCA)

‘strong customer authentication’ means an authentication based on the use of

• two or more elements categorised as– knowledge (something only the user knows),

– possession (something only the user possesses)

– inherence (something the user is)

• that are independent, in that the breach of one does not compromise the reliability of the others,

• and is designed in such a way as to protect the confidentiality of the authentication data;

51

Page 43: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Payment Initiation Service

Icons made by Madebyoliver and Freepik from www.flaticon.com 53

Merchant

Payment

Initiation

Service

Provider

User’s

Bank

Merchant’s

Bank

Bank’s API

Scraping

Page 44: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

PIS – scraping example

54

Page 45: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Account Information Service

Icons made by Madebyoliver and Freepik from www.flaticon.com 56

Account

Information

Service

Provider

Bank’s API

Scraping

Page 46: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

SCA / PIS / AIS

• Possible implementation errors

cosequences

– Payment data change

– Unauthorized access to user’s data

(mass scale?)

– Authentication bypass

– …

58

Page 47: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

PSD2 - current state

• EBA will issue Regulatory Technical Standard (Jan 2017)

– Until then, current status quo should be maintained

• EBA released Discussion Paper, call for comments was

closed 8 Feb 2016

– My AppSec related comments:

https://www.linkedin.com/pulse/strong-customer-authentication-

secure-communication-psd2-dworakowski

59

Page 48: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

SUMMARY & WHAT NEXT?

60

Page 49: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Implementation errors = vulnerabilities

61

• If security controls are implemented with vulnerabilities

then they are useless

• Vulnerable safeguards cause false sense of security

Page 50: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Precise requirements

62

Page 51: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

OWASP to the rescue !

• Common problems:

– SQLi

– XSS

• ..or features

– Authentication, 2FA

– Transaction authorization

• Cheat Sheet Series

• ASVS

• Dev Guide

• SKF

• …

63

Page 52: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

OWASP to the rescue ?

Common application business

domains (and features)

• online banking / mobile banking

• PIS / AIS (PSD2)

• e-commerce

• SCADA

• social networking

• company webpage

• …

?Shouldn’t we have

common requirements

for common app

domains?

64

Page 53: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Internet banking - proposal

• Online Banking Cheat Sheet

• ASVS „module”

• Dev Guide chapter

65

Page 54: Internet banking safeguards vulnerabilities - 2016.appsec.eu · • Vulnerabilities and best practices – transaction authorization vulnerabilities, trusted recipients feature abuses,

Q & A

66

@wojdwo

[email protected]

http://www.securing.pl/en