SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Mateusz Kocielski
m.kocielski@logicaltrust.net
OWASP Mobile TOP 10
na przykładzie aplikacji bankowych
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.
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.
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.
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
OWASP Mobile TOP 10
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:
biuro@logicaltrust.net
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
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
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
PRZYKŁADY BŁĘDÓW
M2 – Insecure Data Storage – karta SD
/mnt/sdcard/Android/data/xxx/files # ls -al
total 577
d---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
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.
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.
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ł.
M4 – Unintended Data Leakage – zapis
wrażliwych danych do logów
sytemowych
D/X( 2781): <--- HTTP 200 https://XXX (278ms)
D/X( 2781): Date: xxx
D/X( 2781): Server: Apache
D/X( 2781): X-Powered-By: Servlet/2.5 JSP/2.1
D/X( 2781): Keep-Alive: timeout=5, max=500
D/X( 2781): Connection: Keep-Alive
D/X( 2781): Content-Type: text/plain; charset=ISO-8859-2
[...]
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[...]
WYNIKI
WYNIKI
Kategoria 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%
POLSKA vs. ŚWIAT
Kategoria 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]
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
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
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
Q&A
kontakt:
e-mail: m.kocielski@logicaltrust.net
Tel.: +48 71 738 24 35
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski

Weitere ähnliche Inhalte

Was ist angesagt?

Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
흥배 최
 
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
Insight Technology, Inc.
 
субјекат и предикат Power point
субјекат и предикат  Power pointсубјекат и предикат  Power point
субјекат и предикат Power point
Ljiljana Denic
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
Insight Technology, Inc.
 

Was ist angesagt? (20)

Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
Divlje zivotinje-II
Divlje zivotinje-IIDivlje zivotinje-II
Divlje zivotinje-II
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편
 
Os ideo
Os ideoOs ideo
Os ideo
 
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
 
Цврчак и мрави
Цврчак и мравиЦврчак и мрави
Цврчак и мрави
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
субјекат и предикат Power point
субјекат и предикат  Power pointсубјекат и предикат  Power point
субјекат и предикат Power point
 
Reljef republike srpske
Reljef republike srpskeReljef republike srpske
Reljef republike srpske
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
Building your First gRPC Service
Building your First gRPC ServiceBuilding your First gRPC Service
Building your First gRPC Service
 
Prolece iz naseg ugla zavrsna prezentacija
Prolece iz naseg ugla   zavrsna prezentacijaProlece iz naseg ugla   zavrsna prezentacija
Prolece iz naseg ugla zavrsna prezentacija
 
4. pisanje dvocifrenih brojeva u obliku proizvoda i zbira
4. pisanje dvocifrenih brojeva u obliku proizvoda i zbira4. pisanje dvocifrenih brojeva u obliku proizvoda i zbira
4. pisanje dvocifrenih brojeva u obliku proizvoda i zbira
 
pisanje pisma
pisanje pismapisanje pisma
pisanje pisma
 
Ogledni cas-iz-srpskog-jezika3
Ogledni cas-iz-srpskog-jezika3Ogledni cas-iz-srpskog-jezika3
Ogledni cas-iz-srpskog-jezika3
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
 
Vmware training presentation
Vmware training presentationVmware training presentation
Vmware training presentation
 
Peti razred-Razlomci
Peti razred-RazlomciPeti razred-Razlomci
Peti razred-Razlomci
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
 
適切な Azure AD 認証方式の選択の決め手
適切な Azure AD 認証方式の選択の決め手適切な Azure AD 認証方式の選択の決め手
適切な Azure AD 認証方式の選択の決め手
 

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

Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzykaZagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
SecuRing
 
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
SecuRing
 
Szpiegowanie w internecie
Szpiegowanie w internecieSzpiegowanie w internecie
Szpiegowanie w internecie
Dorota Ręba
 
Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?
SecuRing
 
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
PROIDEA
 

Ähnlich wie OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateusz Kocielski (20)

Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzykaZagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
 
Enterprise Mobility Suite
Enterprise Mobility SuiteEnterprise Mobility Suite
Enterprise Mobility Suite
 
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
 
Szpiegowanie w internecie
Szpiegowanie w internecieSzpiegowanie w internecie
Szpiegowanie w internecie
 
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
 
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...
 
OWASP CISO Survey 2014 - Wstępne wyniki badania w Polsce
OWASP CISO Survey 2014 - Wstępne wyniki badania w PolsceOWASP CISO Survey 2014 - Wstępne wyniki badania w Polsce
OWASP CISO Survey 2014 - Wstępne wyniki badania w Polsce
 
OWASP Appsensor in action
OWASP Appsensor in actionOWASP Appsensor in action
OWASP Appsensor in action
 
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
 
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
 
Możliwości złośliwego oprogramowania na platformy mobilne
Możliwości złośliwego oprogramowania na platformy mobilneMożliwości złośliwego oprogramowania na platformy mobilne
Możliwości złośliwego oprogramowania na platformy mobilne
 
Bankowość i płatności mobilne - Jak zrobić to bezpiecznie?
Bankowość i płatności mobilne - Jak zrobić to bezpiecznie?Bankowość i płatności mobilne - Jak zrobić to bezpiecznie?
Bankowość i płatności mobilne - Jak zrobić to bezpiecznie?
 
Testy w środowisku mobilnym
Testy w środowisku mobilnymTesty w środowisku mobilnym
Testy w środowisku mobilnym
 
Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?
 
Bezpieczne biuro w kieszeni
Bezpieczne biuro w kieszeniBezpieczne biuro w kieszeni
Bezpieczne biuro w kieszeni
 
Analiza i ocena jakości współczesnych systemów operacyjnych
Analiza i ocena jakości współczesnych systemów operacyjnych Analiza i ocena jakości współczesnych systemów operacyjnych
Analiza i ocena jakości współczesnych systemów operacyjnych
 
Analiza i ocena jakości współczesnych systemów operacyjnych
Analiza i  ocena jakości współczesnych systemów operacyjnychAnaliza i  ocena jakości współczesnych systemów operacyjnych
Analiza i ocena jakości współczesnych systemów operacyjnych
 
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
 
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...
 
(Nie)bezpieczenstwo aplikacji mobilnych
(Nie)bezpieczenstwo aplikacji mobilnych(Nie)bezpieczenstwo aplikacji mobilnych
(Nie)bezpieczenstwo aplikacji mobilnych
 

Mehr von Logicaltrust pl

Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersWyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Logicaltrust pl
 

Mehr von Logicaltrust pl (20)

Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
 
Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29
 
8 zasad skutecznego security awareness
8 zasad skutecznego security awareness8 zasad skutecznego security awareness
8 zasad skutecznego security awareness
 
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
 
Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019
 
Minerva_lib - fuzzing tool
Minerva_lib - fuzzing toolMinerva_lib - fuzzing tool
Minerva_lib - fuzzing tool
 
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
 
Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018
 
Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)
 
Redteaming w Polsce - przykłady
Redteaming w Polsce - przykładyRedteaming w Polsce - przykłady
Redteaming w Polsce - przykłady
 
Testy bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiTesty bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadki
 
Krytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiKrytyczne błędy konfiguracji
Krytyczne błędy konfiguracji
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
 
Devops/Sysops security
Devops/Sysops securityDevops/Sysops security
Devops/Sysops security
 
Devops security
Devops securityDevops security
Devops security
 
Torturing the PHP interpreter
Torturing the PHP interpreterTorturing the PHP interpreter
Torturing the PHP interpreter
 
Socjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obronySocjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obrony
 
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersWyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
 
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
 
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...
 

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

  • 1. Mateusz Kocielski m.kocielski@logicaltrust.net OWASP Mobile TOP 10 na przykładzie aplikacji bankowych
  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. 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
  • 7. 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: biuro@logicaltrust.net
  • 8. 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
  • 9. 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
  • 10. 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
  • 12. M2 – Insecure Data Storage – karta SD /mnt/sdcard/Android/data/xxx/files # ls -al total 577 d---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
  • 13. 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.
  • 14. 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.
  • 15. 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ł.
  • 16. M4 – Unintended Data Leakage – zapis wrażliwych danych do logów sytemowych D/X( 2781): <--- HTTP 200 https://XXX (278ms) D/X( 2781): Date: xxx D/X( 2781): Server: Apache D/X( 2781): X-Powered-By: Servlet/2.5 JSP/2.1 D/X( 2781): Keep-Alive: timeout=5, max=500 D/X( 2781): Connection: Keep-Alive D/X( 2781): Content-Type: text/plain; charset=ISO-8859-2 [...]
  • 17. 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[...]
  • 19. WYNIKI Kategoria 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%
  • 20. POLSKA vs. ŚWIAT Kategoria 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]
  • 21. 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
  • 22. 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
  • 23. 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