Analizujemy aplikację od strony pliku instalacyjnego, uruchomionego procesu i ruchu sieciowego. Sprawdzamy też backend, bo to zwykle tam znajduje się realne ryzyko.
Dekompilacja pakietu, przegląd kodu i zasobów, wyszukiwanie kluczy API, adresów środowisk testowych i danych pozostawionych w kodzie.
Obserwacja i modyfikacja działania aplikacji w czasie rzeczywistym (Frida), obchodzenie kontroli po stronie klienta, manipulacja przepływem.
Keychain i Keystore, bazy lokalne, pliki tymczasowe, logi, kopie zapasowe i to, co zostaje na urządzeniu po wylogowaniu.
Poprawność TLS, przypinanie certyfikatów i jego obchodzenie, dane przesyłane w sposób nadmiarowy lub niezaszyfrowany.
Najczęstsze źródło poważnych znalezisk. Autoryzacja po stronie serwera, dostęp do cudzych zasobów, logika przeniesiona do klienta.
Wykrywanie roota i jailbreaka, ochrona przed debugowaniem, odporność na modyfikację pakietu - i to, co realnie dają.
To założenie zmienia wszystko. Aplikację webową użytkownik widzi przez przeglądarkę, a kod wykonuje się na Waszym serwerze. Aplikację mobilną atakujący pobiera, rozbiera na części, uruchamia na urządzeniu z pełnymi uprawnieniami i modyfikuje jej działanie w locie.
Praktyczna konsekwencja: każde zabezpieczenie zaimplementowane wyłącznie po stronie aplikacji jest sugestią, nie zabezpieczeniem. Sprawdzenie uprawnień przed pokazaniem ekranu, walidacja kwoty w formularzu, wykrywanie roota, przypinanie certyfikatu - wszystko to da się obejść, mając kontrolę nad urządzeniem. Liczy się wyłącznie to, co weryfikuje serwer.
Dlatego w teście aplikacji mobilnej najwięcej poważnych znalezisk pochodzi z backendu. Typowy scenariusz: aplikacja pokazuje tylko własne zamówienia użytkownika, ale API zwróci dowolne, jeśli poprosić je bezpośrednio. W interfejsie tego nie widać, bo interfejs pyta grzecznie.
Osobny obszar to dane pozostawione na urządzeniu. Tokeny zapisane poza bezpiecznym magazynem, dane w logach, pliki tymczasowe i to, co zostaje po wylogowaniu. Przy urządzeniu zgubionym albo skradzionym to często najkrótsza droga do konta.
Definiujemy, co testujemy, w jakim trybie i w jakich godzinach. Doprecyzowujemy, co jest poza zakresem.
Pełna poufność na każdym etapie. Znalezione podatności zostają między nami.
Testy manualne wsparte narzędziami. Krytyczne znaleziska zgłaszamy od razu, nie czekamy z nimi do raportu.
Raport z oceną ryzyka, krokami reprodukcji i rekomendacjami. Po wdrożeniu poprawek sprawdzamy je ponownie.
Napisz, na jakich platformach działa aplikacja i czy mamy sprawdzić także backend - odezwiemy się w 24 h.
Zapytaj o wycenęPozostałe rodzaje testów