Nullify

Usługi

Testy penetracyjne Audyty bezpieczeństwa Bezpieczeństwo aplikacji Szkolenia dla firm Bezpłatny skan ekspozycji

Menu

Blog O nas Kontakt
Pentest / iOS

Testy penetracyjne aplikacji iOS

iOS ma szczelniejszą piaskownicę niż Android, ale to nie zwalnia aplikacji z odpowiedzialności. Sprawdzamy, co aplikacja sama zapisuje, komu ufa i ile z jej zabezpieczeń zostaje na urządzeniu z jailbreakiem.

PakietIPA / TestFlight
StandardOWASP MASVS i MASTG
Odpowiedźbezpłatna wycena w 24 h
Zakres

Co sprawdzamy na iOS

IPA

Analiza pakietu

Plik binarny, Info.plist, uprawnienia (entitlements), zasoby i biblioteki. Szukamy sekretów, adresów środowisk testowych i ukrytych funkcji zaszytych w aplikacji.

KEY

Keychain i ochrona danych

Czy sekrety trafiają do Keychain z właściwą klasą dostępności, czy dane leżą w NSUserDefaults, plikach i bazach bez ochrony, co zostaje w zrzutach ekranu przy przełączaniu aplikacji.

ATS

Komunikacja

Wyjątki od App Transport Security, akceptowanie fałszywych certyfikatów, przypinanie certyfikatów i to, co aplikacja wysyła ponad to, czego potrzebuje ekran.

LINK

URL schemes i Universal Links

Czy link otwierający aplikację wykona akcję bez potwierdzenia albo przekaże złośliwe parametry. Własne schematy URL może zarejestrować także inna aplikacja.

WEB

WKWebView

Treści ładowane wewnątrz aplikacji i mostki do kodu natywnego. Jeśli da się wstrzyknąć obcą stronę, dostaje ona możliwości aplikacji.

JB

Jailbreak i backend

Na urządzeniu z jailbreakiem modyfikujemy działanie aplikacji w locie (Frida) i obchodzimy kontrole po stronie klienta. Potem API, które musi bronić się samo.

Kontekst

Szczelna platforma, ale nie szczelna aplikacja

iOS izoluje aplikacje mocniej niż Android: mniej kanałów komunikacji między nimi, podpisywanie kodu, piaskownica, sklep z przeglądem. To realnie utrudnia część ataków i łatwo uznać, że reszta też jest załatwiona. Nie jest, bo platforma nie wie, co aplikacja uważa za tajne.

Najczęściej znajdujemy dane zapisane poza Keychain: tokeny w NSUserDefaults, odpowiedzi serwera w pamięci podręcznej, dokumenty w katalogu aplikacji bez klasy ochrony danych. Na urządzeniu z jailbreakiem albo z kopii zapasowej to wszystko da się odczytać.

Druga kategoria to zaufanie do klienta. Aplikacja sprawdza uprawnienia przed pokazaniem ekranu, liczy cenę albo pilnuje limitu, a serwer przyjmuje wynik bez weryfikacji. Na iOS wymaga to od napastnika trochę więcej przygotowania, ale narzędzia takie jak Frida działają tu tak samo dobrze jak na Androidzie.

Dlatego test aplikacji iOS zawsze łączymy z testem API, z którym się komunikuje. Szerzej o całym procesie piszemy we wpisie co sprawdzamy w teście aplikacji mobilnej.

Proces

Jak wygląda test

01

Ustalamy zakres

Definiujemy, co testujemy, w jakim trybie i w jakich godzinach. Doprecyzowujemy, co jest poza zakresem.

02

Podpisujemy NDA

Pełna poufność na każdym etapie. Znalezione podatności zostają między nami.

03

Przeprowadzamy testy

Testy manualne wsparte narzędziami. Krytyczne znaleziska zgłaszamy od razu, nie czekamy z nimi do raportu.

04

Raport i retest

Raport z oceną ryzyka, krokami reprodukcji i rekomendacjami. Po wdrożeniu poprawek sprawdzamy je ponownie.

FAQ

Najczęstsze pytania

Jak przekazać aplikację do testu?

Najprościej przez TestFlight albo jako plik IPA z podpisem ad hoc lub firmowym. Aplikacji nie musi być jeszcze w App Store. Dostęp do kodu źródłowego nie jest wymagany, ale skraca analizę.

iOS jest bezpieczniejszy od Androida. Czy test ma sens?

Platforma jest szczelniejsza, aplikacja niekoniecznie. Piaskownica iOS nie chroni przed tokenem zapisanym poza Keychain, kluczem API zaszytym w pliku binarnym ani przed backendem, który ufa temu, co przyśle aplikacja. To te błędy znajdujemy najczęściej.

Czy potrzebujecie urządzenia z jailbreakiem?

Mamy własne urządzenia testowe. Jailbreak pozwala zajrzeć do danych aplikacji i obejść zabezpieczenia po stronie klienta, czyli zrobić to, co zrobiłby zdeterminowany napastnik. Sprawdzamy też, czy wykrywanie jailbreaka działa i ile daje.

Testujecie od razu wersję na Androida?

Możemy, ale to osobny zakres. Wspólny backend testujemy raz, więc przy obu platformach ta część się nie dubluje. Zobacz też testy penetracyjne aplikacji Android.

Przetestuj aplikację na iOS

Napisz, czy aplikacja jest już w App Store i czy mamy sprawdzić także backend - odezwiemy się w 24 h z wyceną.

Zapytaj o wycenę