Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Budowanie i hakowanie nowoczesnych aplikacji iOS

69 views

Published on

Po ostatniej prezentacji dotyczącej pentestów bez jailbreaka, autor zdecydował stworzyć prezentację defensywną. Znajdują się w niej informacje o najczęściej występujących problemach w nowoczesnych aplikacjach iOS oraz wskazówki jak sobie z nimi radzić. W prezentacji przedstawiona jest równie nowa otwartoźródłowa biblioteka iOS Security Suite dostępna pod adresem https://github.com/securing/IOSSecuritySuite

Published in: Software
  • Be the first to comment

Budowanie i hakowanie nowoczesnych aplikacji iOS

  1. 1. www.securing.pl Wojciech Reguła Budowanie i hakowanie nowoczesnych aplikacji iOS @_r3ggi wojciech.regula@securing.pl
  2. 2. www.securing.plwww.securing.pl WHOAMI -Starszy specjalista ds. Bezpieczeństwa IT w SecuRing -❤ iOS apps security -Blogger https://wojciechregula.blog/ -Kontrybutor OWASP SKF @_r3ggi wojciech.regula@securing.pl
  3. 3. www.securing.plwww.securing.pl WSTĘP @_r3ggi wojciech.regula@securing.pl
  4. 4. www.securing.plwww.securing.pl AGENDA 1. Platforma iOS – mity a rzeczywistość 2. Wybrane problemy i ich rozwiązania 3. Nowe funkcjonalności pokazane na WWDC zwiększające bezpieczeństwo 4. Moja nowa otwartoźródłowa biblioteka – iOS Security Suite 🚀 5. Długoterminowe i krótkoterminowe cele dla Twojego kodu @_r3ggi wojciech.regula@securing.pl
  5. 5. www.securing.plwww.securing.pl CZĘŚĆ 1 PLATFORMA IOS – MITY A RZECZYWISTOŚĆ @_r3ggi wojciech.regula@securing.pl
  6. 6. www.securing.plwww.securing.pl MIT #1 PRZEGLĄD KODU APPLE-A JEST W 100% MIARODAJNY https://twitter.com/orhaneee/status/1076147994574184449 @_r3ggi wojciech.regula@securing.pl
  7. 7. www.securing.plwww.securing.pl MIT #2 – NA NOWE WERSJE IOS-A NIE MA JAILBREAKA hAps://github.com/pwn20wndstuff/Undecimus @_r3ggi wojciech.regula@securing.pl
  8. 8. www.securing.plwww.securing.pl MIT #3 – BRAK JAILBREAKA UNIEMOŻLIWIA REVERSE APPEK @_r3ggi wojciech.regula@securing.pl
  9. 9. www.securing.plwww.securing.pl CZĘŚĆ 2 BEZPIECZNE WYTWARZANIE OPROGRAMOWANIA @_r3ggi wojciech.regula@securing.pl
  10. 10. www.securing.plwww.securing.pl ARCHITEKTURA @_r3ggi wojciech.regula@securing.pl
  11. 11. www.securing.plwww.securing.pl SWIFT VS OBJECTIVE-C -Integer overflow -> Runtime error -Brak bezpośredniego dostępu do pamięci (chyba, że używasz UnsafePointer) -Podatność typu format string unieszkodliwiona przed interpolację stringów @_r3ggi wojciech.regula@securing.pl
  12. 12. www.securing.plwww.securing.pl MIT – SWIFT SIĘ AUTOOBFUSKUJE -Tu nie ma żadnej obfuskacji -Swift używa dekorowania nazw (ang. name mangling) @_r3ggi wojciech.regula@securing.pl
  13. 13. www.securing.plwww.securing.pl MIT – SWIFT SIĘ AUTOOBFUSKUJE -Klasa TestClass -1 Zmienna instancji -Konstruktor -2 Metody @_r3ggi wojciech.regula@securing.pl
  14. 14. www.securing.plwww.securing.pl MIT – SWIFT SIĘ AUTOOBFUSKUJE - _$ Swift Symbol - Długość i nazwa modułu - Długość i nazwa klasy - C funkcja klasy (metoda) - Długość i nazwa metody - Argumenty i zwracany typ @_r3ggi wojciech.regula@securing.pl
  15. 15. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl
  16. 16. www.securing.plwww.securing.pl MIT – METODY SWIFTA NIE MOGĄ BYĆ MODYFIKOWANE DYNAMICZNIE -Mogą, np. z użyciem Fridy -za pomocą przechwytywania wywołań (ang. function hooking) @_r3ggi wojciech.regula@securing.pl
  17. 17. www.securing.plwww.securing.pl MIT – METODY SWIFTA NIE MOGĄ BYĆ MODYFIKOWANE DYNAMICZNIE @_r3ggi wojciech.regula@securing.pl
  18. 18. www.securing.plwww.securing.pl DEMO HTTPS://VIMEO.COM/334861122 @_r3ggi wojciech.regula@securing.pl
  19. 19. www.securing.plwww.securing.pl WNIOSKI -Klasyczne podatności “binarne” unieszkodliwione -Brak bezpośredniego dostępu do pamięci -Obfuskacja ⬇ https://github.com/rockbruno/swiftshield @_r3ggi wojciech.regula@securing.pl
  20. 20. www.securing.plwww.securing.pl PRZECHOWYWANIE DANYCH @_r3ggi wojciech.regula@securing.pl
  21. 21. www.securing.plwww.securing.pl DANE NA URZĄDZENIU -Najbardziej popularnym problemem jest przechowywanie danych, których nie powinno w ogóle być na urządzeniu: • Klucze API • Klucze SSH • Poświadczenia do chmury • Konta testowe @_r3ggi wojciech.regula@securing.pl
  22. 22. www.securing.plwww.securing.pl DANE NA URZĄDZENIU - Wrażliwe dane często są niebezpiecznie przechowywane w: •Info.plist •User defaults •Zwykłych plikach •Zahardcodowane w pliku wykonywalnym •Nawet w Keychainie – jeśli w ogóle nie powinno ich być na urządzeniu!! @_r3ggi wojciech.regula@securing.pl
  23. 23. www.securing.plwww.securing.pl DANE NA URZĄDZENIU @_r3ggi wojciech.regula@securing.pl
  24. 24. www.securing.plwww.securing.pl DANE NA URZĄDZENIU -Katalogi, które są archiwizowane podczas kopii zapasowej: • Documents/ • Library/Application Support/ • Library/Preferences/ • Library/* -Katalogi niearchiwizowane: • Library/Caches/ • tmp/ @_r3ggi wojciech.regula@securing.pl
  25. 25. www.securing.plwww.securing.pl CREDENTIAL PROVIDER EXTENSION (WWDC 2018) -Menedżery haseł w natywnych appkach -Dodaj UITextContentType @_r3ggi wojciech.regula@securing.pl
  26. 26. www.securing.plwww.securing.pl WNIOSKI -Nie przechowuj wrażliwych danych w paczce aplikacji -kSecAttrAccessibleWhen z ThisDeviceOnly -UIKit DataProtection -Credential Provider @_r3ggi wojciech.regula@securing.pl
  27. 27. www.securing.plwww.securing.pl KRYPTOGRAFIA @_r3ggi wojciech.regula@securing.pl
  28. 28. www.securing.plwww.securing.pl KRYPTOGRAFIA - Niebezpieczne generowanie tokenów - Studium przypadku aplikacji Bear @_r3ggi wojciech.regula@securing.pl
  29. 29. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl
  30. 30. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl
  31. 31. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl
  32. 32. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl https://wojciechregula.blog/post/stealing-bear-notes-with-url-schemes/
  33. 33. www.securing.plwww.securing.pl AUTOMATIC STRONG PASSWORDS (WWDC 2018) - Wspomniany wcześniej Autofill może generować hasła skojarzone z Twoją domeną - Możesz natywnie ustawić politykę generowania tych haseł! @_r3ggi wojciech.regula@securing.pl
  34. 34. www.securing.plwww.securing.pl WNIOSKI -Ręcznie robione szyfry ❌ -Wszystko w 📦 jest publiczne -SecKeyCreateEncryptedData zamiast zewnętrznych AES/RSA -Natywna polityka haseł @_r3ggi wojciech.regula@securing.pl
  35. 35. www.securing.plwww.securing.pl KOMUNIKACJA SIECIOWA @_r3ggi wojciech.regula@securing.pl
  36. 36. www.securing.plwww.securing.pl NETWORK COMMUNICATION -Unikaj HTTP -Używaj HTTPS -App Transport Security -HTTPS -> sprawdź czy certyfikat jest zaufany @_r3ggi wojciech.regula@securing.pl
  37. 37. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl
  38. 38. www.securing.plwww.securing.pl KOMUNIKACJA NA IOS @_r3ggi wojciech.regula@securing.pl
  39. 39. www.securing.plwww.securing.pl KOMUNIKACJA MIĘDZY- APLIKACYJNA -XPC (macOS, iOS zastrzeżona) -Mach messages (macOS, iOS zastrzeżona) -URL Schemes -AirDrop -Clipboard (proszę nie…) @_r3ggi wojciech.regula@securing.pl
  40. 40. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl
  41. 41. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl
  42. 42. www.securing.plwww.securing.pl WNIOSKI -Zawsze weryfikuj nadawcę -Sprawdzaj parametry -Jeśli appka używa WebView to sprawdź uprawnienia @_r3ggi wojciech.regula@securing.pl
  43. 43. www.securing.plwww.securing.pl JAKOŚĆ KODU @_r3ggi wojciech.regula@securing.pl
  44. 44. www.securing.plwww.securing.pl JAKOŚĆ KODU -Przestarzałe API -Podatne biblioteki -CocoaPods/Carthage -> statycznie zdefiniowane wersje @_r3ggi wojciech.regula@securing.pl
  45. 45. www.securing.plwww.securing.pl AFNetworking 2.5.1 pozwalała na tzw. Man in The Middle gdy aplikacja nie korzystała z Certificate Pinningu @_r3ggi wojciech.regula@securing.pl
  46. 46. www.securing.plwww.securing.pl PRZESTARZAŁE UIWEBVIEW (WWDC 2018) -UIWebView ma dostęp do uchwytu file:// -WKWebView też o ile ustawisz odpowiednie flagi -XSS ☠ @_r3ggi wojciech.regula@securing.pl
  47. 47. www.securing.plwww.securing.pl DICTIONARY THAT LOOKS YOU UP @_r3ggi wojciech.regula@securing.pl
  48. 48. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl
  49. 49. www.securing.plwww.securing.pl DEMO HTTPS://VIMEO.COM/334862417 @_r3ggi wojciech.regula@securing.pl
  50. 50. www.securing.plwww.securing.pl PROBLEMY Z HELP VIEWER @_r3ggi wojciech.regula@securing.pl
  51. 51. www.securing.plwww.securing.pl PRZYKŁAD Z APPKĄ YAHOO OD @OMESPINO @_r3ggi wojciech.regula@securing.pl
  52. 52. www.securing.plwww.securing.pl ODPORNOŚĆ NA ATAKI @_r3ggi wojciech.regula@securing.pl
  53. 53. www.securing.plwww.securing.pl PRZECIWDZIAŁANIE ATAKOM Dla tych, którzy: • Nie chcą, aby ktoś ”majstrował” przy ich aplikacji • Rozważają malware jako ryzyko • Muszą być zgodni ze standardem OWASP MASVS @_r3ggi wojciech.regula@securing.pl
  54. 54. www.securing.plwww.securing.pl BIBLIOTEKA IOS SECURITY SUITE -Co wykrywa: • Jailbreaka za pomocą nowych wskaźników • Podpięty debugger • H4kerskie narzędzia (e.g. Frida) • Czy aplikacja jest uruchomiona na emulatorze @_r3ggi wojciech.regula@securing.pl
  55. 55. www.securing.plwww.securing.pl@_r3ggi wojciech.regula@securing.pl IOS SECURITY SUITE LIBRARY h"ps://github.com/securing/IOSSecuritySuite
  56. 56. www.securing.plwww.securing.pl CZĘŚĆ 3 PODSUMOWANIE @_r3ggi wojciech.regula@securing.pl
  57. 57. www.securing.plwww.securing.pl PODSUMOWANIE CZĘSTO WYSTĘPUJĄCYCH PODATNOŚCI -Archiwizacja poufnych danych -Klucze/konta w paczce aplikacji -Problemy sieciowe -Podatne URL schemes -Podatne, ustawione na sztywno biblioteki @_r3ggi wojciech.regula@securing.pl
  58. 58. www.securing.plwww.securing.pl MOJE REKOMENDACJE -Krótkoterminowe • Menedżery haseł & autofill • Przeciwdziałanie atakom w aplikacjach wysokiego ryzyka -Długoterminowe • WKWebView • Natywna polityka haseł • Swift > Objective-C @_r3ggi wojciech.regula@securing.pl
  59. 59. www.securing.plwww.securing.pl Świadomi Programiści Pentesterzy PROBLEMY BEZPIECZEŃSTWA @_r3ggi wojciech.regula@securing.pl
  60. 60. www.securing.pl SecuRing Kalwaryjska 65/6 30-504 Kraków, Poland info@securing.pl tel. +48 124252575 hJp://www.securing.biz/en Dziękuję za uwagę, Wojciech Reguła wojciech.regula@securing.pl @_r3ggi wojciech-regula

×