Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

41

Transcript of Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

Page 1: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)
Page 2: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

Co z bezpieczeństwem aplikacji mobilnych?

Mateusz [email protected]

LogicalTrust

KrakWhiteHatKraków, 31 marca 2016 r.

Page 3: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

$ whoami

I pentester w LogicalTrustI blog: http://akat1.pl/, twitter: @akat1 plI open source:

I PHP - bug fixingI NetBSD - libsaslc(3), bozohttpd(8), losowe rzeczy & członek

security-team@I bezpieczeństwo:

I PHP - CVE-2010-1868, CVE-2010-1917, CVE-2010-4150,CVE-2010-4156, CVE-2011-1938, ...

I stunnel - CVE-2013-1762I OpenSSH - CVE-2011-0539I Apache - CVE-2014-0117, CVE-2014-0226I FreeBSD - CVE-2015-1414

Page 4: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

źródło: http://blog.jedzok.com/2010/09/13/monday-wtf-gallery-36-retro-wtf/

Co z bezpieczeństwem aplikacjimobilnych?- studium przypadków

Page 5: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

aplikacje mobilne są wszędzie

źródło: http://memegenerator.net/instance/55352888

I 1,6 mln aplikacji w Google Play, 1,5 mln aplikacji w AppStore,300+ tysięcy w Marketplace...

I ...urządzenia mobilne są wszędzie...I ...jak bezpieczne są aplikacje, których używamy?I zmiana modelu zagrożeń względem innych aplikacji, które

testujemy

Page 6: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

ciężkie życie pentestera - sprzęt

I aktualnie mamy w biurze:I kilkanaście telefonów i 5 tabletówI Android, iOS, Widows Phone, FirefoxOS, Symbian, ...

I potrzeba posiadania różnych konfiguracji sprzętowychI potrzeba posiadania różnych wersji systemów

Page 7: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

ciężkie życie pentestera - rootowanie/jailbreak

źródło: http://resources0.news.com.au/images/2011/03/29/1226029/777612-the-simpsons.jpg

I po co mi jailbreak/unlock/root?I iOS/Windows Phone - problem z jailbreakami/unlockI Android, Firefox OS - rootowanie jest proste

Page 8: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

ciężkie życie pentestera - iOS

źródło:http://i-cdn.phonearena.com/images/article/58671-image/Homer-lets-you-find-out-which-apps-your-friends-are-using.jpg

I problemy z dostępnością JailBreakówI problem z upgrade/downgradeI problem z kompatybilnością narzędzi pomiędzy wersjami iOSI Objective-C (teraz Swift)

Page 9: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

ciężkie życie pentestera - Android

źródło: http://www.shake-them-all.net/files/skins/69/preview.png

I mnogość platform sprzętowychI JavaI łatwiej się rootuje...I ...ale część rzeczy łatwiej zrobić na iOS

Page 10: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

Mobile OWASP TOP 10

Page 11: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

server side

źródło: http://lockjaw.brentcopeland.com/wp-content/uploads/2015/08/server-rack-disaster-400x280.jpg

I skrypty a’la PHP z zeszłej dekady!I problemy z OWASP TOP 10

Page 12: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

server side - przykład - upload zdjęć

źródło: http://vignette3.wikia.nocookie.net/scribblenauts/images/2/25/Trojan Horse.png/revision/latest

I aplikacja akceptowała zdjęcia od użytkownika celemudostępnienia ich innym

I ...bezpośrednio zrobione przez ”aparat telefonu”, co może pójśćźle?

I można zrobić zdjęcie .phpI remote code executionI game over

Page 13: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

server side - przykład - skrypty z lat 90.

źródło: https://deadhomersociety.files.wordpress.com/2012/08/theottoshow11.png

I aplikacja zbierała informacje o błędach do pewnego kataloguI directory listing umożliwia przejrzenie zawartości kataloguI skrypty php (o rozszerzeniach .inc dołączane do głównego

skryptu)I w jednym ze skryptów eval() pobiera dane od użytkownikaI remote code executionI game over

Page 14: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

server side - przykład - CSRF

źródło: http://talks.php.net/presentations/slides/php-under-attack/csrf.png

I API mobilne działa na jednym serwerze aplikacyjnym co APIwebowe

I współdzielą sesjęI współdzielą adres URLI API webowe weryfikuje tokeny CSRFI API mobilne nie ma tokenów CSRFI CSRF - game over

Page 15: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

server side - co zrobić lepiej

źródło: https://deadhomersociety.files.wordpress.com/2012/08/theottoshow11.png

I korzystać z frameworków (statystyka pokazuje, że prawie napewno się gdzieś pomylisz)

I zwracać szczególną uwagę na stronę serwerowąI testować, testować, testować!

Page 16: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

szyfrowanie transmisji

źródło: http://rysunki.me/wp-content/uploads/2015/10/kmwtw-og.gif

I wiele aplikacji (wśród polskich aplikacji bankowych 60%) doczęści transmisji nie wykorzystuje szyfrowania

I jakie niesie to zagrożenia?I MitMI zachwianie integralnościI naruszenie poufności

I problemy z WebView mogą doprowadzić do RCE na systemieAndroid - https://labs.mwrinfosecurity.com/blog/webview-addjavascriptinterface-remote-code-execution/ - APIstarsze od wersji 17

Page 17: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

szyfrowanie transmisji - przykład - aplikacja bankowa

źródło: http://tmpolska.info/wp-content/uploads/2016/01/bank-transf.jpg

I aplikacja pobiera z serwera dane protokołem httpI dane to m.in. konfiguracja zawierająca URLe, na które wysyłane

są dane KlientaI jeżeli atakujący jest w stanie podmienić adresy, to może odebrać

dane od KlientaI game over

Page 18: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

szyfrowanie transmisji - przykład - mały bazar aplikacji

źródło: http://m.natemat.pl/8af6a98a5f13620571e05ff04a40ae48,640,0,0,0.jpg

I mały bazar z zew. aplikacjami (Google Play w Google Play)I aplikacje pobierane były protokołem HTTPI z tego samego serwera była pobierana suma kontrola (też

protokołem HTTP)I game over

Page 19: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

szyfrowanie transmisji - przykład - reputacja adresów URL

źródło: http://img.photobucket.com/albums/v642/shakespeares sister/reusables/caesarbush.png

I aplikacja wpinała się w przeglądarkę systemowąI przy wejściu na dowolną stronę sprawdzano czy URL nie jest na

czarnych listachI ...robiono to po HTTP...I ...również jak użytkownik odwiedzał stronę używając HTTPS...I game over

Page 20: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

szyfrowanie transmisji - jak żyć?

SZYFRUJ, BO INACZEJ CIĘZNAJDZIEMY I NIE BĘDZIE

WESOŁO!I weryfikuj certyfikatyI szyfruj wszystkoI certificate pinningI goto fail

Page 21: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

koszmar pentestera - szyfrowanie transmisji

źródło: http://r-scale-c3.dcs.redcdn.pl/scale/o2/tvn/web-content/m/i/7c9d0b1f96aebd7b5eca8c3edaa19ebb/3e54b934-ce56-11e0-a64b-0025b511229e.jpg

I iOS - dodanie CA, ssl kill switch, cydia, ...I Android - dodanie CA, rekompilacja, ...

Page 22: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

przechowywanie danych

źródło: https://d21ii91i3y6o6h.cloudfront.net/gallery images/from proof/3442/large/1418280711/die-cut-stickers.png

I logi systemoweI zewnętrzne nośniki danychI pamięć cacheI dane poufne - hasła

Page 23: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

przechowywanie danych - przykład - update

źródło: http://problogger.com/podcast/wp-content/uploads/2015/07/update-banner.png

I aplikacja pobiera plik instalacyjny na kartę SDI game over

Page 24: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

przechowywanie danych - przykład - możliwość atakuoffline

źródło: https://www.weblogzwolle.nl/images/stories/Nov 2013 B/offline.jpeg

I aplikacja zapisuje hasło/login i szyfruje to pinemI kilkukrotne złe wpisanie pinu powoduje panikę (i usunięcie

zaszyfrowanych danych)I ...ale przecież można te dane skopiować i wykonać atak offlineI game over

Page 25: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

zbędne zasoby

źródło: http://shredworks.com/wp-content/uploads/2012/03/Website-Junk.jpg

I jeżeli czegoś nie musi być w aplikacji...I ...to nie musi tego być w aplikacjiI symbole do debugówI pliki tymczasoweI w ekstremalnym przypadku kod źródłowyI inne zasoby developerskie (SVN, GIT)

Page 26: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

zbędne zasoby - przykład

źródło: http://images.thetruthaboutcars.com/2012/08/Junk-Yard-Treasure-Picture-Courtesy-of-Walker-Canada.jpg

I w aplikacji znajdujemy URL do API developerskiegoI API developerskie ujawnia informacje o innych webserwisachI SQL injection w zbędnym API znalezionym przez zbędny wpis w

aplikacji...

Page 27: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

mechanizmy IPC

I AndroidI Wyeksportowane Activities, BroadcastReceivers, Services, Content

Providers, ...I uprawnienia do mechanizmów IPC - https://github.com/

commonsguy/cwac-security/blob/master/PERMS.mdI iOS

I handleOpenURL → openURL:sourceApplication:I PasteBoard API

Page 28: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

mechanizmy IPC - przykład - iOS

źródło: http://ecx.images-amazon.com/images/I/31TsaGKbdKL.jpg

I aplikacja wymienia się z drugą aplikacją tego samego producenta”tokenami”

I dowolna aplikacja może zawołać hej-masz-token://I jeżeli w odpowiednim (nieoczekiwanym) miejscu zawołamy, to

sprowokujemy use-after-free

Page 29: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

mechanizmy IPC - przykłady - Android

źródło: http://www.salvagentemilano.it/media/19435/open.jpg

I aplikacja udostepnia content provider, który pozwala odczytaćwszystko, wszystkim

I udostępniony service, który umożliwia dowolnej aplikacjiuwierzytelnienie sesji...

I często SMS jest uwierzytelniany na podstawie numeru nadawcy...

Page 30: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

wykorzystanie wrażliwych danych

źródło: http://leadwithgiantscoaching.com/wp-content/uploads/2014/08/Can-you-keep-a-secret.jpeg

I Android ID, UDID, MAC etc.I przesył danych wrażliwych bez wiedzy użytkownikaI wykorzystanie UDID do uwierzytelniania

Page 31: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

wykorzystanie wrażliwych danych - przykład

źródło: http://memegenerator.net/instance/65230946

I aplikacja wysyłała informacje nt. plików multimedialnych dochmury

I twórca twierdzi, że to ”OK, bo trzymamy w zabezpieczonejchmurze w technologii cewquoceqwo321 w kraju XYZ”

I kraj XYZ, to kraj, któremu bym nie ufał :)

Page 32: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

zbędne uprawnienia

źródło: http://crooksandliars.com/files/imagecache/node primary/primary image/14/12/respectcartman.jpg

I w systemie Android plagą są zbędne uprawnienia nadawaneaplikacjom

I ...czasem jak dajemy dostęp aplikacji do np. aparatu, to innaaplikacja może spróbować to wykorzystać!

I w ekstremalnych przypadkach ponad połowa uprawnień jestzbędna

Page 33: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

zaciemnianie/hardening

źródło: http://authorityflame.com/Assets/2111-SpinGearHardening.jpg

I praktycznie żadna aplikacja nie weryfikuje czy działa na telefoniez rootem/jailbreakiem

I aplikacje na Androida świetnie się dekompilują!I iOS oferuje: PIE, SSP, ARC, ...; warto z tego skorzystać

Page 34: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

zaciemnianie - przykład

źródło: http://i1.memy.pl/obrazki/d983905514 no nie.jpg

I kiedyś dostaliśmy do testów aplikację, w której zmienne nazywałysię:

I papierosI papieros2I pupaI ...

Page 35: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

inne

źródło: http://www.jesus-is-savior.com/Basics/iceberg.jpg

I aplikacje hybrydoweI memory corruptionsI nieaktualne komponenty

Page 36: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

jak żyć?

źródło: https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/What should I do%3F.png/435px-What should I do%3F.png

I użytkowniku - nie ufaj, aktualizujI programisto - weź sobie do serca bezpieczeństwoI pentesterze - zostaw te web aplikacje

Page 37: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

The Mobile Application Hacker’s Handbook

I wydana w kwietniu 2015I iOS, Android, Blackberry, Windows Phone, ...I autorzy opisują jak coś zepsuć oraz jak naprawić!

http://eu.wiley.com/WileyCDA/WileyTitle/productCd-1118958500.html

Page 38: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

OWASP

I OWASP Mobile TOP 10I OWASP Mobile Security TestingI OWASP Mobile Guide Developement ProjectI OWASP Threat Model ProjectI OWASP Mobile Apps Checklist 2016

https://www.owasp.org/index.php/OWASP˙Mobile˙Security˙Project

Page 39: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

Garść linków

I https://source.android.com/devices/tech/security/

I https://www.apple.com/business/docs/iOS˙Security˙Guide.pdf

I http://sekurak.pl/analiza-komunikacji-http-na-platformie-android/

I http://sekurak.pl/testy-aplikacji-android-rekompilacja/

I http://sekurak.pl/drozer-narzedzie-do-analizy-aplikacji-mobilnych-android/

I http://developer.android.com/training/articles/security-tips.html

I http://www.slideshare.net/jserv/android-ipc-mechanism

I http://www.mcafee.com/us/resources/white-papers/foundstone/wp-pen-testing-android-apps.pdf

I https://www.securecoding.cert.org/confluence/display/android/2+Rules

I https://www.mdsec.co.uk/wp-content/uploads/2015/04/iOS˙Application˙Insecurity˙wp˙v1.0˙final.pdf

I http://www.slideshare.net/logicaltrust/owasp-mobile-top-10-na-przykadzie-aplikacji-bankowych-semafor-2016-mateusz-kocielski

Page 40: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)

Czas na pytania (i odpowiedzi)

Q&[email protected]

tel: +48 71 738 24 35http://akat1.pl/ @akat1 pl

Page 41: Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat 2016)