Testy penetracyjne
aplikacji mobilnych
Aplikacja mobilna to dwa osobne problemy: kod, który trafia na urządzenie użytkownika i przestaje być Twoją tajemnicą, oraz backend, który tej aplikacji ufa. Rozbieramy pakiet APK i IPA na części, podglądamy ruch mimo pinningu i sprawdzamy, co zostaje w pamięci telefonu po wylogowaniu.
- Android i iOS, w tym Flutter oraz React Native
- Analiza statyczna, dynamiczna i testy backendu w jednym zakresie
- Weryfikacja według OWASP MASVS i MASTG
Aplikacje mobilne
- OWASP Mobile Application Security Verification Standard (MASVS)
- OWASP Mobile Application Security Testing Guide (MASTG)
- OWASP Mobile Top 10
- PTES
Co dokładnie sprawdzamy
Zakres dopasowujemy do Twojego środowiska, ale te obszary bierzemy pod lupę zawsze.
Analiza statyczna i reverse engineering
Dekompilacja pakietu, przegląd kodu i zasobów. Szukamy zaszytych kluczy API, danych logowania do usług, adresów środowisk testowych i logiki, która powinna być po stronie serwera.
Dane na urządzeniu
Keychain i Keystore, SharedPreferences, bazy SQLite, pliki tymczasowe, pamięć podręczna WebView, logi systemowe, kopie zapasowe i zrzuty ekranu w przełączniku aplikacji.
Komunikacja z backendem
Poprawność TLS i walidacja certyfikatu, obecność oraz jakość certificate pinningu, próba jego obejścia, dane wrażliwe w parametrach adresu, brak szyfrowania w kanałach pobocznych.
Uwierzytelnianie i autoryzacja
Cykl życia tokenów, odświeżanie sesji, wylogowanie na wszystkich urządzeniach, biometria i jej obejście, kod PIN, przejęcie konta przez deep link lub własny schemat URL.
Odporność środowiskowa
Zachowanie na urządzeniu z rootem i po jailbreaku, wykrywanie debuggera i emulatora, odporność na wstrzykiwanie kodu w czasie działania (Frida, objection), integralność pakietu po repackagingu.
API mobilne
Backend testujemy w pełnym zakresie aplikacji webowej: kontrola dostępu, IDOR, logika biznesowa i limity. Endpointy mobilne bywają starsze i mniej pilnowane niż te używane przez stronę.
Co najczęściej znajdujemy
Przykłady z naszych projektów w tym zakresie. Nazwy klientów i szczegóły techniczne zostają w raportach.
- Klucz API do usługi płatniczej zaszyty w kodzie aplikacji
- Token sesji zapisany w postaci jawnej w SharedPreferences
- Certificate pinning obchodzony w kilka minut, bez dodatkowej kontroli po stronie serwera
- Deep link uruchamiający akcję na koncie bez potwierdzenia użytkownika
- Dane osobowe w logach systemowych czytelnych dla innych aplikacji
- Weryfikacja uprawnień wykonywana wyłącznie w aplikacji, nie na backendzie
- Brak unieważnienia tokenu po wylogowaniu i po zmianie hasła
- Aktywna konfiguracja debugowania w wydaniu produkcyjnym
Wybrane narzędzia
Narzędzia skracają pracę powtarzalną. Wnioski i łańcuchy ataku budujemy ręcznie.
Przebieg testu i raport
Proces testowy, forma raportu oraz zasady retestów są wspólne dla wszystkich zakresów.
Zobacz pełny proces i zawartość raportuNajczęstsze pytania
Czy potrzebujecie kodu źródłowego?
Nie, standardowo pracujemy w podejściu black box na gotowym pakiecie APK i IPA. Dostęp do kodu skraca czas i pozwala potwierdzić przyczynę błędu, więc jeśli możesz go udostępnić, test będzie dokładniejszy.
Jak przekazać wersję do testów na iOS?
Najwygodniej przez TestFlight albo plik IPA z profilem ad hoc obejmującym nasze urządzenia. Potrzebujemy wersji bez wymuszonej aktualizacji, która pozwoli pracować przez cały okres testów.
Czy testujecie aplikacje we Flutterze i React Native?
Tak. Różni się głównie warstwa analizy statycznej i sposób podpięcia się pod ruch sieciowy. Zakres testów, standardy i forma raportu pozostają takie same.
Czy backend trzeba zamawiać osobno?
Nie, API wykorzystywane przez aplikację jest częścią tego zakresu. Osobno wyceniamy tylko sytuację, w której ten sam backend obsługuje dużą aplikację webową i chcesz ją objąć testami w całości.
Pozostałe zakresy testów
Zakresy łączymy w jeden projekt, jeśli tak wychodzi lepiej dla Twojego środowiska.
Aplikacje webowe i API
Wykrywamy podatności z listy OWASP Top 10 (m.in. SQL Injection, XSS, SSRF, BOLA). Audytujemy panele klienta, systemy e-commerce, CRM oraz złożone środowiska oparte o mikroserwisy i API (REST, GraphQL).
Zobacz zakresInfrastruktura wewnętrzna
Symulujemy atak np. z perspektywy złośliwego pracownika lub przejętej stacji roboczej. Badamy segmentację sieci (VLAN), Active Directory, serwery plików i polityki haseł.
Zobacz zakresInfrastruktura zewnętrzna
Atakujemy wystawione do internetu systemy i usługi. Weryfikujemy konfigurację firewalli, podatności serwerów VPN, nieaktualne wersje oprogramowania czy błędne konfiguracje DNS.
Zobacz zakresŚrodowiska chmurowe
Weryfikujemy bezpieczeństwo zasobów w AWS, Azure i Google Cloud Platform. Skupiamy się na błędach uprawnień IAM, wyciekach z koszyków storage (S3) i podatnościach w Serverless.
Zobacz zakresSieci bezprzewodowe
Analizujemy zabezpieczenia firmowych sieci Wi-Fi, izolację sieci dla gości, podatności na przechwytywanie haseł, ataki Evil Twin oraz Rogue Access Point.
Zobacz zakres