Rok 2019 może dużo zmienić w świecie bankowości, fintechów, e-commerce i płatności elektronicznych, również w zakresie bezpieczeństwa. W tym roku wejdą w życie regulacje dyrektywy PSD2 dotyczące interfejsów API które banki muszą udostępnić dla podmiotów trzecich oraz silnego, wieloskładnikowego uwierzytelniania i autoryzowania operacji finansowych. Jak to wpłynie na bezpieczeństwo usług bankowych i płatności elektronicznych? Tak jak przy każdej zmianie, wiele zależy od szczegółów. Przede wszystkim od sposobu implementacji interfejsów API i funkcji uwierzytelniania wieloskładnikowego. Testując bezpieczeństwo nowych aplikacji finansowych ekspert miał okazje zaobserwować niektóre trendy i zebrać informacje o typowych błędach popełnianych podczas implementacji. Podczas prezentacji prelegent przyjrzy się technicznym wyzwaniom związanym z bezpieczeństwem w kontekście PSD2. Omówione zostaną niektóre podatności spotykane w funkcjonalności uwierzytelniania dwuskładnikowego (2FA) i autoryzacji transakcji (w tym w zastosowaniach biometrii) oraz w interfejsach API do usług bankowych. Przedstawione zostaną również dobre praktyki odnośnie implementacji 2FA i interfejsów PIS/AIS.
6. PSD2 - Payment Services Directive
Co zostanie wprowadzone:
SCA – Strong Customer Authentication
PIS – Payment Initiation Service
AIS – Account Information Service
TPP – Third Party Providers
Kogo dotyczy:
Obowiązkowe dla wszystkich „Payment Service Providers”
7. PSD2 – oś czasu
25.11.2015 20.06.2018 14.03.2019 14.09.2019
Przyjęcie
dyrektywy nr
2015/2366 przez
parlament UE
Przyjęcie RTS
przez
parlament UE
Przyjęcie ustawy o
usługach
płatniczych w
parlamencie PL
20.03.2018
Interfejsy API
muszą być
gotowe do
testów przez TPP
Termin wdrożenia
produkcyjnego
interfejsów API
10. Strong Customer Authentication (SCA)
Weryfikacja tożsamości – min. 2/3 z poniższych:
– wiedza (coś co wiesz),
– posiadanie (coś co posiadasz)
– cecha (coś czym jesteś)
zarówno dla uwierzytelnienia jak i autoryzacji
transakcji
11. Payment Initiation Service (PIS)
Icons made by Madebyoliver and Freepik from www.flaticon.com
11
Sprzedawca
PISP –
Bank / Fintech
Bank
Użytkownika
Bank
Sprzedawcy
PIS API
Użytkownik
scraping
17. Implementacja SCA / PIS / AIS
Poważne konsekwencje!
• Podatności w
płatnościach
• Nieautoryzowany dostęp
do danych bankowych
• Ominięcie
uwierzytelnienia
19. Błąd w implementacji #2 – PIS
1. Sprzedawca dodaje bibliotekę
dostarczoną przez TPP do swojego
sklepu online.
2. Biblioteka po wyborze sposobu
płatności generuje hash identyfikujący
transakcje :
tpp.pl/?hash = 32528hjdhr8923u4…
3. Hash jest generowany ze sklejonych
ze sobą parametrów transakcji oraz
klucza prywatnego sklepu
quantity=1 unit_price=4300
HMAC(“PLN31337iPhoneXS143009459941c
22”)
HMAC(currency + merchantID +
product_name + product[0].quantity +
product[0].unit_price + private_key)
quantity=14 unit_price=300
HMAC(“PLN31337iPhoneXS143009459941c
22”)
Source: http://codel10n.com/how-to-hack-payu-buy-10x-more-same-price/
Zamówienie: 14 x 300 = 4200 PLN
const
20. Błąd w implementacji #3 – AIS
Parowanie konta uzytkownika bankowości
z aplikacją TPP
POST /rest/v1/context/844763/open/api/init/prepSign HTTP/1.1
{"$objectType":"OpenApiParameters","accountID":95186089,"appType":"web","sy
stemType":"ALL"}
API akceptuje dowolną wartość parametru accountID
Użytkownik może sparować swoją aplikację TPP z
dowolnym rachunkiem bankowym!
22. Podsumowanie
• 2FA dla wszystkich (z kilkoma wyjątkami)
• Brak “scrapingu” (z kilkoma wyjątkami)
• Nowe interfejsy API
(nowe możliwości == nowe zagrożenia)
• Wykrywanie nadużyć będzie trudniejsze (…do czasu)
• Więcej podmiotów będzie mogło zarządzać danymi
płatniczymi (ale czy powinniśmy im ufać?)
• Więcej podmiotów będzie mogło inicjalizować płatności
(nowe scenariusze ataków)
23. Podsumowanie
• Błędy w implementacji -> poważne konsekwencje
• Duże zmiany -> dużo niewiadomych
• btw. S w PSD2 nie znaczy Secure ☺
24. Dziękuje za uwagę!
• Aplikacje mobilne i jak je złamać?
• Krótka historia o phishingu
• Ciekawe przypadki podatności XXE
• Krk Analytica – stadium wycieku danych z chmury AWS