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
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
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. 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
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
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
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. 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
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