(Nie)bezpieczenstwo aplikacji mobilnych

download (Nie)bezpieczenstwo aplikacji mobilnych

If you can't read please download the document

description

Najciekawsze podatności znalezione przez nasz zespół w trakcie testowania bezpieczeństwa aplikacji Android – przede wszystkim bankowości czy płatności mobilnych.

Transcript of (Nie)bezpieczenstwo aplikacji mobilnych

  • 1. (NIE)BEZPIECZESTWO APLIKACJI MOBILNYCH Najciekawsze przypadkiSawomir Jasek SecuRingKrakDroid, 7.12.2013

2. Abstrakt WhoamiKto i po co zaatakuje nasz aplikacjAnaliza ryzyka podejcie racjonalneNajciekawsze podatnoci w aplikacjach mobilnych - przykady Najwaniejsze zasady bezpieczestwa 3. # whoami Konsultant bezpieczestwa (~ 10 lat), setki projektw, gwnie rnego typu aplikacjeSecuRing (od 2003) Testowanie i doradztwo dotyczce bezpieczestwa aplikacji i systemw IT Jeli to moliwe w ramachwhite-box (przegld konfiguracji, kodu, konsultacje), a take ju na etapie definiowania architektury Wynikiem testu jest dokadny raport opisujcy szczegowo znalezione podatnoci (oraz wykonane testy), wraz z rekomendacjami/sposobami naprawy 4. Kto i po co zaatakuje nasz aplikacj? Krzysztof Jarzyna ze Szczecinagrubszy cwaniak script-kiddieCo mu si przypadkiem udao (lub nie), i afera gotowa.Dorwa si do narzdzi, wali na olep, zwykle nie bardzo rozumiejc co si dzieje.Ma motywacj, zasoby oraz moliwoci przeprowadzenia ataku nakierowanego 5. Analiza ryzyka podejcie racjonalneProfil ryzyka zaley od aplikacji jej funkcji biznesowych, potencjalnych strat, zyskw dla intruza. 6. Przykad 1 Aplikacja mobilna dla kibicw M.in. typowanie wynikw meczu, wrd prawidowych losowanie biletw Po wysaniu typowania w aplikacji znika ta opcja, mona jedynie podgldn swj typ Jak zaatakuje ten proces intruz? 7. Lokalne proxy pozwala m.in. na edycj oraz powtarzanie zlece HTTP 8. Jak to zrobi poprawnie? Pamitaj, e ruch pomidzy aplikacj a serwerem moe by przechwycony i zmodyfikowany SSL nie chroni przed lokalnym tamperingiem Walidacja musi by rwnie po stronie serwera! Nie ufaj mechanizmom bezpieczestwa po stronie klienta 9. Ryzyko? 10. Przykad 2 Aplikacja bankowoci mobilnej, do uwierzytelnienia i autoryzacji wymagany jest kod PIN. Po 3-krotnym wprowadzeniu bdnego PIN-u konto blokuje si na serwerze. Pewne funkcje aplikacji (np. historia transakcji) dziaaj rwnie offline. Aplikacja musi wic przechowywa lokalnie cz danych pobranych z serwera. Dane te s trzymane w formie zaszyfrowanej, w prywatnym katalogu dostpnym jedynie dla tej aplikacji. Do odszyfrowania konieczne jest podanie PIN-u uytkownika. Nie uyto staego klucza zaszytego w aplikacji. 11. Spojrzenie intruza Aby ukra pienidze potrzebuje kod PIN Zamy, e udao mu si przej pen kontrol nad urzdzeniem mobilnym (np. kradzie, malware...) Jednak nie moe podsucha kodu PIN nie ma moliwoci kontroli nad urzdzeniem w trakcie gdy uytkownik korzysta z bankowoci Jak moe uzyska PIN? 12. Przykad 2 proces offline. Kod PIN jest uywany rwnie do odszyfrowania danych trzymanych lokalnie. Jest to funkcja, ktra dziaa bez poczenia do Internetu, wic kod PIN nie moe by zweryfikowany po stronie serwera. Nawet jeli aplikacja si zablokuje po 3 nieudanych prbach, jest to proces offline. Konto nie zablokuje si na serwerze, a intruz moe odtworzy stan aplikacji sprzed zablokowania i prbowa ponownie. Czyli - intruz moe bez ogranicze ama kod PIN offline. Prawidowy kod pozna po tym, i po rozszyfrowaniu uzyska sensowne dane. Nawet jeli kod jest zoony (a w praktyce najczciej to kilka cyfr), zamanie zajmie mu maksymalnie kilka godzin. 13. Jak to zrobi poprawnie? Wszystkie prby uycia hasa (np. w celu uwierzytelnienia lub autoryzacji) powinny by weryfikowane na serwerze, nie lokalnie na urzdzeniu. Poprawne uycie kryptografii uwaga na bdy pozwalajce na amanie siowe offline. Najlepiej nie przechowywa adnych danych wraliwych na urzdzeniu, nawet w formie zaszyfrowanej Uwaga na logi systemowe itp. Warto poczyta: http://wampir.mroczna-zaloga.org/archives/1147-jak-zepsuc-uwierzytelnienie-w-aplikacji-mobilnej.html 14. Ryzyko? 15. Przykad 3 Aplikacja mobilna do wywietlania w czasie rzeczywistym oraz natychmiastowego zlecania rnych operacji. W tym celu opracowano specjalny protok, komunikujcy si przez SSL z serwerem. 16. Protok - architektura 17. Protok - pakiety 18. Protok 19. Protok wywoanie WS 20. Protok inne metody WS 21. Metoda RegisterUser Odpowied serwera: Incorrect login 22. RegisterUser drymy dalej Po dodaniu kolejnych brakujcych parametrw: Incorrect first nameGroup with name null doesn't existGroup with name admin doesn't existGroup with name Administrator doesn't existA grupa Root ? 23. Protok Game Over User was registered sucessfully with id=5392745 Tak zarejestrowany uytkownik po zalogowaniu mg zarzdza zasobami WSZYSTKICH INNYCH UYTKOWNIKW SYSTEMU 24. Walidacja, separacja przywilejw, wiele poziomw zabezpiecze... 25. Inicjalizacja mobilnego kanau bankowoci Bankowo internetowa, logowanie za pomoc hasa, autoryzacja operacji za pomoc kodw SMS. Aplikacja bankowoci mobilnej, zabezpieczona za pomoc PIN-u (uwierzytelnienie, autoryzacja transakcji). Solidna kryptografia w procesie dodawania nowego urzdzenia do konta, oraz w trakcie korzystania z bankowoci. Proces przemylany, aby uytkownik nie zrobi sobie krzywdy. 26. Inicjalizacja mobilnego kanau proces Po zalogowaniu w serwisie www, uytkownik wybiera opcj dodania nowego urzdzenia mobilnego. Wprowadza w formularzu nowy kod PIN. Wywietla si kod QR (seed kryptograficzny) do zeskanowania w urzdzeniu. Uytkownik skanuje kod QR w telefonie. Podaje na urzdzeniu ten sam kod PIN.Aplikacja mobilna przesya do serwera zaszyfrowany PIN-em seedSerwer porwnuje, czy dane si zgadzajW aplikacji www naley nastpnie potwierdzi dodanie nowego urzdzenia, klikajc przycisk Akceptuj. 27. Jak patrzy na to intruz? Wyobramy sobie, e intruz przej kontrol nad komputerem uytkownika (np. malware) Pozna login i haso do bankowoci internetowej. Nie moe jednak ukra pienidzy, poniewa nie ma dostpu do kodw sms Ale przecie autoryzacja transakcji moliwa jest rwnie za pomoc aplikacji mobilnej Jak przej aplikacj mobiln? 28. Inicjalizacja mobilnego kanau - problem Brak autoryzacji procesu dodawania nowego urzdzenia mobilnego! Malware dziaajcy na stacji uytkownika moe dopisa sobie - bez jego wiedzy - nowe urzdzenie mobilne, uzyskujc w ten sposb moliwo autoryzacji transakcji.ragecomic.fr 29. BankDroid Aplikacja suy do informowania online o saldach oraz zmianach na kontach rnych skandynawskich bankw Dziaa w tle, odpytujc o status co chwil czy si automatycznie z bankami rwnie gdy telefon jest podczony do niezaufanych sieci 100 000 500 000 instalacji https://play.google.com/store/apps/details?id=com.liato.bankdroid 30. BankDroid kod rdowy (GPL) CELOWO wyczono weryfikacj certyfikatw SSL bankw: public Urllib(boolean acceptInvalidCertificates) { this(acceptInvalidCertificates, false); }public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException { // TODO Auto-generated method stub }https://github.com/liato/android-bankdroid 31. BankDroid i tak 21 razy ;) src/com/liato/bankdroid/banking/banks $ grep "Urllib(true)" * AbsIkanoPartner.javaJojo.javaBioklubben.javaOKQ8.javaDanskeBank.javaPayPal.javaDinersClub.javaPayson.javaEasyCard.javaPlusGirot.javaEurocard.javaSEB.javaEverydaycard.javaSEBKortBase.javaFirstCard.javaSteam.javaICA.javaVasttrafik.javaIkanoBank.javaVolvofinans.javaIkanoPartnerBase.java 32. MITM na SSL? Ale kto by to potrafi?!! To przecie takie trudne!Czyby? 33. dSploit dzieciak ssiadw ju ma Bardzo prosty interfejs, do obsugi przez laika. WiFi Scanning & Common Router Key Cracking Deep Inspection Vulnerability Search Multi Protocol Login Cracker Packet Forging with Wake On Lan Support HTTPS/SSL Support (SSL Stripping + HTTPS -> Redirection) MITM Realtime Network Stats MITM Multi Protocol Password Sniffing MITM HTTP/HTTPS Session Hijacking MITM HTTP/HTTPS Hijacked Session File Persistance MITM HTTP/HTTPS Realtime Manipulation GPL, do pobrania z http://dsploit.net 34. Przejcie konta PayPal 35. May eksperyment Krakw, 7.12.2013, ~13.30. MITM podmiana obrazkw (dSploit). 36. MITM na SSL prawidowa (?) reakcja 37. Nie wymagaj od uytkownikw zbyt wiele! Test na uytkownikach aplikacji Android okienko udajce instalacj nowego CA w telefonie.Po zainstalowaniu kontrolowanego przez intruza CA, moe on przeprowadzi atak MITM na dowolne poczenie SSL w sposb niezauwaalny dla ofiary! 38. Mam nowy certyfikat hurra! 73% osb zaakceptowao nowe CA przez co stali si podatni na atak MITM - 77% z nich byo przekonanych, i w ten sposb zwikszyli swoje bezpieczestwo - tylko 2% podejrzewao, i instalacja nowego CA moga mie negatywny wpyw na ich prywatno rdo: https://www.owasp.org/images/7/77/Hunting_Down_Broken_SSL_in_Android_Apps_-_Sascha_Fahl%2BMarian_Harbach%2BMathew_Smith.pdfWnioski Nie zadawaj trudnych pyta!Rozwizanie: certificate pinning.picardfacepalm.com 39. Podejcie racjonalne Kto i po co chciaby zaatakowa nasz aplikacj? Jakich zasobw do tego potrzebuje? Koszt zabezpieczenia nie moe by wikszy ni warto chronionych zasobw Negatywny wpyw na uywalno czy dostpno Przyzwyczajenia uytkownikw Uwaga na faszywe poczucie bezpieczestwa i odpowiedzialno Andrzej Tobis - Kierownicawww.otwartazacheta.pl 40. Mniejsze ryzyko Przechowywanie danych wraliwych w pamici operacyjnej urzdzenia w trakcie pracy aplikacji. Uycie klawiatury systemowej - niektre implementacje zostawiay w systemie informacje o wciskanych klawiszach.Brak moliwoci przeniesienia na kart SD... Nawet jeli ryzyko nie jest wysokie (trudno w wykorzystaniu), zabezpieczenie moe by wdroone z powodw wizerunkowych. 41. Mniejsze ryzykoPomimo istotnych skutkw, warunki wykorzystania podatnoci s bardzo trudne do spenienia 42. Pamitaj!Myl o bezpieczestwie ju na etapie projektowania! Bezpieczestwo transmisji. Lokalnie przechowywane dane. rodowisko po stronie serwera. Wiele warstw zabezpiecze, zasada najmniejszych przywilejw. Nie wymagaj od uytkownika zbyt wiele.Andrzej Tobis - Dodawanie www.otwartazacheta.pl 43. Merry Hacking X-Mas! www.securing.pl/konkurs/ I miejsce - Patny, miesiczny sta w naszej firmie. II miejsce - Bilet wstpu na konferencj Confidence 2014. III miejsce - Ksika "The Web Application Hacker's Handbook". 44. [email protected]