Top Banner
Mateusz Kocielski [email protected] OWASP Mobile TOP 10 na przykładzie aplikacji bankowych
25

OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Jan 19, 2017

Download

Technology

Logicaltrust pl
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Mateusz [email protected]

OWASP Mobile TOP 10 na przykładzie aplikacji bankowych

Page 2: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Ponad 10 lat aktywności w branży.

Ponad dwieście testów penetracyjnych aplikacji webowych

oraz ponad sto testów aplikacji mobilnych.

Oferujemy także testy typu Red Team vs. Blue Team, audyty bezpieczeństwa z elementem ataków

socjotechnicznych oraz szkolenia z dziedziny bezpieczeństwa IT.

Weryfikowaliśmy zabezpieczenia fizycznych urządzeń z branży przemysłowej, medycznej, IT i rozrywkowej.

Page 3: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Zespół LogicalTrust – kim jesteśmy?

Znaleźliśmy błędy w produktach firm: Facebook, Google, Apple, Microsoft, Nokia, Adobe.

Na swoim koncie mamy ponad 100 wykładów na najważniejszych branżowych konferencjach, między

innymi: Confidence, Security Bsides, SECURE, PLNOG, MeetIT, SecureCON, TestFest, Internet Banking Security, OWASP,

SecDay czy Security Test Study.

Od ponad siedmiu lat prowadzimy bloga, na którym ostrzegamy Internautów przed czyhającymi na nich w Sieci

zagrożeniami.

Page 4: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Mateusz Kocielski – o prelegencie

Prawdopodobnie pierwsza osoba, która pokazywała kod assemblera na spotkaniach

OWASP.

Niezależny twórca oprogramowania oraz współtwórca oprogramowania open source (m.in. PHP, NetBSD),

miłośnik matematyki oraz teorii informatyki.

Autor alertów bezpieczeństwa dotyczących m.in. Apache, FreeBSD, NetBSD, OpenSSH, Microsoft IIS,

PHP.

Page 5: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Motywacja

● Według portalu bankier.pl pod koniec I kwartału 2015, liczba aktywnych użytkowników bankowości mobilnej wynosiła ok. 4 mln

● Naszą motywacją jest przegląd bezpieczeństwa aplikacji, które ze względu na swój wrażliwy charakter są szczególnie narażone na potencjalne ataki

● Chcemy porównać bezpieczeństwo aplikacji dostępnych na naszym rynku z aplikacjami dostępnymi na świecie

● Chcemy zachęcić do korzystania z materiałów OWASP

Page 6: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

OWASP Mobile TOP 10

Page 7: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

OWASP Mobile TOP 10 vs aplikacje bankowe

● ok. 20 aplikacji mobilnych dla platform Android oraz iOS instytucji finansowych działających na polskim rynku

● część serwerowa WYŁĄCZONA z testów● na badanie poświęcono kilka roboczodni (maksymalnie

kilka godzin per aplikacja)● skupiono się na zagrożeniach z OWASP Mobile TOP 10● szczegóły nt. błędów dla osób autoryzowanych:

[email protected]

Page 8: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Badanie – narzędzia, środowisko

● Analiza statyczna● idb, qark, ...

● Analiza dynamiczna● Cycript, Frida, Snoopy, Drozer, ...

● Inspekcja manualna● Burp, Hopper, jd-gui, inspekcja zawartości paczek, …

● Wszystkie aplikacje zostały zainstalowane ze sklepów odpowiednich dla platformy (Google Play, App Store)

● Środowisko iOS – jailbreak iOS 7, jailbreak iOS 8● Środowisko Android – rooted Android 4.x, rooted Android 5.x

Page 9: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Badanie – co sprawdzaliśmy?

● M1: Weak Server Side Controls● M2: Insecure Data Storage

● Zapis nieszyfrowanych danych w bazach SQL● Zapis nieszyfrowanych danych na karcie SD● ...

● M3: Insufficient Transport Layer Protection● Wykorzystanie nieszyfrowanych protokołów● Błędna weryfikacja certyfikatów● ...

● M4: Unintended Data Leakage● Wykorzystanie pamięci cache (WebView, klawiatura etc.)● Zapis screenshotów przy przejściu do tła● ...

● M5: Poor Authorization and Authentication● Bezpieczeństwo uwierzytelniania

Page 10: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Badanie – co sprawdzaliśmy?

● M6: Broken Cryptography● Wykorzystanie algorytmów uznawanych za

niebezpieczne● Niebezpieczne zarządzanie kluczami

● M7: Client Side Injection● SQL Injection, XSS, ...

● M8: Security Decisions Via Untrusted Inputs● Bezpieczeństwo mechanizmów IPC

● M9: Improper Session Handling● Losowość identyfikatorów sesji, ...

● M10: Lack of Binary Protections● Weryfikacja JailBreakowania/rootowania● Ochrona przed debugowaniem● Zaciemnianie kodu/usunięcie symboli dla debuggerów

Page 11: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

PRZYKŁADY BŁĘDÓW

Page 12: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

M2 – Insecure Data Storage – karta SD

/mnt/sdcard/Android/data/xxx/files # ls -altotal 577d---rwxr-x 2 system sdcard_r 32768 Feb 8 10:11 .d---rwxr-x 4 system sdcard_r 32768 Feb 8 10:11 ..----rwxr-x 1 system sdcard_r 7576 Feb 8 10:11 xxx----rwxr-x 1 system sdcard_r 182272 Feb 8 10:11 yyy

Page 13: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

M3 – Insufficient Transport Layer Protection - MitM

● Podczas próby ataku MitM żadna z aplikacji nie informowała użytkownika o potencjalnym zagrożeniu(Jedna aplikacja zapisywała komunikat do logów systemowych)

POWINNO BYĆJEST

Błąd połączenia, spróbuj później.

Page 14: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

M3 – Insufficient Transport Layer Protection – pobieranie danych bez SSL

Aplikacja pobiera z serwera dane, które zawierają adresy URL, na które wysyłane są poufne informacje dotyczące Klienta.

Page 15: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

M3 – Insufficient Transport Layer Protection – MitM – brak weryfikacji

certyfikatu

Aplikacja nie weryfikuje certyfikatu przy wysyłaniu informacji nt. błędów w aplikacji. Dane zawierają szczegółowe informacje nt. urządzenia użytkownika oraz błędu, który wystąpił.

Page 16: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

M4 – Unintended Data Leakage – zapis wrażliwych danych do logów

sytemowych

D/X( 2781): <--- HTTP 200 https://XXX (278ms)D/X( 2781): Date: xxxD/X( 2781): Server: ApacheD/X( 2781): X-Powered-By: Servlet/2.5 JSP/2.1D/X( 2781): Keep-Alive: timeout=5, max=500D/X( 2781): Connection: Keep-AliveD/X( 2781): Content-Type: text/plain; charset=ISO-8859-2

[...]

Page 17: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

M8 – Security Decisions Via Untrusted Inputs

Komunikacja międzyprocesowa (zbędnie wyeksportowane funkcje):

dz> run app.broadcast.send --component xxx yyy --data-uri foo

E/AndroidRuntime( 419): FATAL EXCEPTION: main[...]

Page 18: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

WYNIKI

Page 19: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

WYNIKIKategoria Procent aplikacji zawierających błędy

M1: Weak Server Side Controls Protection

-

M2: Insecure Data Storage 20%

M3: Insufficient Transport Layer Protection 60%

M4: Unintended Data Leakage 65%

M5: Poor Authorization and Authentication 0%

M6: Broken Cryptography 5%

M7: Client Side Injection 12%

M8: Security Decisions Via Untrusted Inputs 40%

M9: Improper Session Handling 0%

M10: Lack of Binary Protections 90%

Page 20: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

POLSKA vs. ŚWIATKategoria PL 2016 Świat 2015 Świat 2013

M1: Weak Server Side Controls Protection

- - -

M2: Insecure Data Storage 20% 15% 40%

M3: Insufficient Transport Layer Protection 60% 40% 90%

M4: Unintended Data Leakage 65% 40% 70%

M5: Poor Authorization and Authentication 0% ? ?

M6: Broken Cryptography 5% ? ?

M7: Client Side Injection 12% 30% 50%

M8: Security Decisions Via Untrusted Inputs 40% ? ?

M9: Improper Session Handling 0% ? ?

M10: Lack of Binary Protections 90% 85% 90%

Wyniki Świat 2015 oraz Świat 2013 na podstawie badań firmy IOActive [1] [2]

Page 21: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

WNIOSKI

● na podstawie podstawowych testów znaleziono wiele (za wiele?) błędów

● brak świadomości wszystkich zagrożeń, które niesie za sobą mobilny świat

● ...czasem jeden błąd wystarczy, żeby doprowadzić do katastrofy! (lub kilka mniejszych może przerodzić się w błąd krytyczny)

● ...łakomym kąskiem są dla atakujących aplikacje zewnętrznych dostawców, które występują w wielu instytucjach finansowych (jeden błąd = kilka ofiar)

● na podstawie kilkuset testów, które zostały wykonane przez nasz zespół, możemy powiedzieć, że aplikacje finansowe pozytywnie odbiegały od średniej

Page 22: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Co można zrobić lepiej?

● bezwzględnie szyfrować całą komunikację● zwrócić uwagę na sprawdzanie ważności certyfikatów● nie przechowywać niezaszyfrowanych danych na urządzeniu● usuwać dane wrażliwe/developerskie z aplikacji● wykorzystać zaciemnianie/usuwanie symboli z aplikacji● sprawdzać dostawców● szkolić developerów z zakresu zagrożeń (zwłaszcza OWASP

MOBILE TOP 10!)● wykorzystywać materiały OWASP, które są dostępne za

darmo!● testować aplikacje (zewnętrzne testy)● wykorzystywać mechanizmy bezpieczeństwa, które dają

nam poszczególne platformy● dbać o aktualność poszczególnych komponentów

Page 23: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

OWASP – Mobile Security Project

● OWASP Mobile TOP 10● OWASP Mobile Security Testing● OWASP Mobile Guide Developement Project● OWASP Threat Model Project● OWASP Mobile Apps Checklist 2016● …

https://www.owasp.org/index.php/OWASP_Mobile_Security_Project

Page 24: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Q&A

kontakt:

e-mail: [email protected].: +48 71 738 24 35

Page 25: OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski