Dev Tools

Automatyczne testy bezpieczeństwa aplikacji mobilnych z MobSF

MobSF to darmowe narzędzie, które w kilka minut sprawdza aplikację na Androida lub iOS pod kątem typowych błędów bezpieczeństwa. Pokazujemy, jak czytać jego raport, jak włączyć go do procesu wydawania aplikacji i czego nie znajdzie.

03 lip 2026

Plik instalacyjny aplikacji mobilnej trafia do telefonów setek tysięcy osób. Każda z nich może go rozpakować i zajrzeć do środka. Jeśli programista zostawił tam klucz do bazy danych, adres testowego serwera albo hasło do zewnętrznej usługi, ktoś je w końcu znajdzie.

Automatyczne testy bezpieczeństwa aplikacji mobilnych z MobSF pozwalają wyłapać takie błędy, zanim aplikacja trafi do sklepu. MobSF, czyli Mobile Security Framework, to narzędzie open source, które analizuje plik aplikacji na Androida lub iOS i w kilka minut tworzy raport z listą problemów. Nie zastępuje audytu prowadzonego przez specjalistę, ale bardzo skutecznie usuwa najprostsze błędy.

Automatyczne testy bezpieczeństwa aplikacji mobilnych z MobSF - co to za narzędzie

MobSF rozwija społeczność skupiona wokół otwartego projektu na GitHubie. Według repozytorium MobSF projekt ma ponad 21 tys. gwiazdek i jest udostępniany na licencji GPL-3.0, co oznacza, że firma może go używać bezpłatnie, także w projektach komercyjnych.

Narzędzie wykonuje dwa rodzaje testów. Analiza statyczna sprawdza plik aplikacji bez jej uruchamiania: czyta kod, konfigurację i dołączone biblioteki. Analiza dynamiczna uruchamia aplikację na emulatorze i obserwuje, co robi w trakcie działania. To mobilne odpowiedniki podejść znanych z aplikacji webowych, czyli SAST, statycznej analizy kodu, i DAST, testowania działającej aplikacji. MobSF obsługuje aplikacje na Androida w formatach APK i AAB oraz aplikacje na iOS w formacie IPA. Nie ma znaczenia, czy powstały natywnie w Kotlinie i Swifcie, czy w React Native albo Flutterze. Analizowany jest gotowy plik, który trafia do sklepu.

Wyniki MobSF są powiązane z OWASP MASVS, czyli standardem wymagań bezpieczeństwa dla aplikacji mobilnych opracowanym przez fundację OWASP. Dzięki temu każde ostrzeżenie ma odniesienie do konkretnego wymagania, a raport łatwiej porównać z wymaganiami klienta czy audytora.

Pierwsze uruchomienie zajmuje kwadrans

MobSF najczęściej uruchamia się z gotowego obrazu w Dockerze, czyli w kontenerze, który zawiera wszystko, czego narzędzie potrzebuje. Wystarczy jedno polecenie na komputerze programisty lub serwerze, a po chwili w przeglądarce otwiera się panel MobSF. Dalej jest prosto. Przeciąga się do panelu plik APK lub IPA, czeka od jednej do kilku minut, zależnie od wielkości aplikacji, i dostaje raport. Można go przejrzeć w przeglądarce albo pobrać jako PDF.

Do pierwszego przeglądu nie potrzeba więc żadnej konfiguracji. Pierwszy raport pokazuje zwykle kilkadziesiąt pozycji, z czego część to sprawy poważne, część drobiazgi, a część fałszywe alarmy. Sztuka polega na tym, żeby je od siebie odróżnić.

Jak czytać raport MobSF

Raport ma kilkanaście sekcji. Nie wszystkie są równie ważne. Poniżej omawiamy te, na które w praktyce warto patrzeć najpierw. 

Infografika: części raportu MobSF i ich waga, dane Cybernews o sekretach zapisanych w aplikacjach na iOS, miejsce MobSF w procesie wydawania aplikacji oraz to, czego automatyczne testy bezpieczeństwa nie wykrywają

Ocena bezpieczeństwa

Na górze raportu jest ocena w skali od 0 do 100. To szybki wskaźnik, przydatny głównie do porównywania kolejnych wersji tej samej aplikacji. Nie należy go traktować jak certyfikatu. Aplikacja z wynikiem 60 może być bezpieczniejsza od aplikacji z wynikiem 80, jeśli jej problemy dotyczą mniej istotnych obszarów.

Uprawnienia i konfiguracja

MobSF wypisuje wszystkie uprawnienia, o które aplikacja prosi: dostęp do lokalizacji, kontaktów, aparatu, plików. Oznacza te, które uznaje za niebezpieczne. Tu często wychodzą uprawnienia dodane kiedyś na potrzeby funkcji, której już nie ma. W aplikacjach na Androida analizowany jest też plik konfiguracyjny aplikacji. MobSF sprawdza, czy aplikacja nie pozwala na tworzenie kopii zapasowych danych przez narzędzia deweloperskie, czy nie udostępnia swoich ekranów innym aplikacjom i czy wersja produkcyjna nie ma włączonego trybu debugowania. To błędy łatwe do naprawienia i łatwe do przeoczenia.

Sekrety zapisane w kodzie

To sekcja, którą czytamy zawsze. MobSF szuka w aplikacji kluczy do usług zewnętrznych, tokenów, haseł i adresów, które nie powinny być publiczne.

Skala problemu jest duża. Według badania Cybernews z 2024 r., które objęło ponad 156 tys. aplikacji na iOS, 71% z nich zawierało co najmniej jeden zapisany na sztywno sekret, a średnio 5,2 na aplikację. Wśród nich były klucze do baz Firebase bez zabezpieczeń i klucze do płatności w Stripe, które pozwalają wykonywać operacje na koncie firmy. Nie każdy znaleziony klucz jest problemem. Klucz publiczny do mapy czy analityki z założenia trafia do aplikacji. Klucz prywatny do płatności czy bazy danych nigdy nie powinien. Ocena, który jest który, wymaga człowieka, ale MobSF wskazuje, gdzie szukać.

Komunikacja sieciowa

MobSF sprawdza, czy aplikacja wymusza szyfrowane połączenia, czy nie pozwala na połączenia bez szyfrowania z wybranymi serwerami i czy weryfikuje certyfikaty serwera. Wyjątki dodane na czas testów, na przykład zgoda na połączenie z serwerem testowym bez certyfikatu, często zostają w wersji produkcyjnej. Raport je pokazuje.

Analiza kodu i biblioteki

Ostatnia duża część to ostrzeżenia dotyczące kodu, na przykład słabe algorytmy szyfrowania albo zapisywanie danych w miejscach dostępnych dla innych aplikacji. MobSF wypisuje też biblioteki zewnętrzne i narzędzia śledzące użytkowników, tak zwane trackery, które aplikacja zawiera. To przydatne przy wypełnianiu informacji o prywatności wymaganych przez App Store i Google Play.

Analiza dynamiczna, czyli co aplikacja robi po uruchomieniu

Analiza statyczna widzi tylko to, co jest zapisane w pliku. Część problemów wychodzi dopiero wtedy, gdy aplikacja działa: jakie dane wysyła na serwer, co zapisuje w pamięci telefonu, jak reaguje na zmodyfikowane odpowiedzi serwera. MobSF uruchamia aplikację na Androida w emulatorze i przechwytuje jej ruch sieciowy. Korzysta przy tym z Fridy, narzędzia, które pozwala podglądać i zmieniać działanie aplikacji w trakcie pracy. Tester klika po aplikacji, a MobSF zapisuje, jakie żądania wychodzą, jakie pliki powstają i jakie dane trafiają do logów. Tu często wychodzą sprawy, których nie widać w kodzie. Token logowania zapisany w niezaszyfrowanym pliku. Numer telefonu użytkownika wysyłany do zewnętrznej biblioteki analitycznej.

Dla iOS analiza dynamiczna jest trudniejsza, bo wymaga wirtualnych urządzeń Apple dostępnych przez płatną usługę Corellium. W praktyce aplikacje na iOS najczęściej sprawdza się w MobSF statycznie, a testy dynamiczne prowadzi specjalista na fizycznym urządzeniu.

MobSF w procesie wydawania aplikacji

Jednorazowy raport ma ograniczoną wartość. Aplikacja zmienia się co kilka tygodni, a nowy sekret może pojawić się w kodzie przy dowolnej zmianie. Dlatego najwięcej daje uruchamianie MobSF automatycznie przy każdym budowaniu aplikacji. MobSF udostępnia API, czyli interfejs do sterowania nim z innych programów. Potok CI/CD, który po każdej zmianie buduje aplikację, może wysłać gotowy plik do MobSF, pobrać raport i sprawdzić, czy nie pojawiły się nowe problemy o wysokim priorytecie. Jeśli tak, wydanie zostaje zatrzymane, a zespół dostaje informację, co poprawić.

Do analizy kodu źródłowego jeszcze przed zbudowaniem aplikacji służy mobsfscan, lżejsze narzędzie tego samego zespołu. Sprawdza kod w repozytorium i można je uruchamiać przy każdej zmianie zgłaszanej przez programistę. To podejście DevSecOps, w którym bezpieczeństwo jest częścią codziennej pracy zespołu, a nie jednorazowym audytem przed premierą.

Przy wdrażaniu automatu najważniejsze jest ustawienie progów. Zatrzymanie wydania przy każdym ostrzeżeniu sprawi, że zespół zacznie automat obchodzić. Lepiej zacząć od blokowania tylko problemów krytycznych, a pozostałe zbierać w raporcie do regularnego przeglądu. Taki automat warto połączyć z resztą testowania oprogramowania, żeby wyniki trafiały do tego samego miejsca co błędy funkcjonalne.

Fałszywe alarmy i to, czego MobSF nie znajdzie

MobSF działa na podstawie wzorców. Widzi coś, co wygląda jak klucz, i zgłasza to jako klucz. Widzi użycie starego algorytmu szyfrowania w bibliotece, która korzysta z niego do czegoś niegroźnego, i też to zgłasza. Przy pierwszym raporcie fałszywych alarmów jest sporo, a ich przejrzenie zajmuje zwykle od kilku godzin do dnia pracy. Ważniejsze jest to, czego MobSF w ogóle nie widzi. Nie sprawdza serwera, z którym aplikacja się łączy. Jeśli API pozwala pobrać dane innego użytkownika po zmianie identyfikatora w zapytaniu, aplikacja może być w raporcie bez zarzutu, a dane i tak wyciekną. Większość poważnych incydentów dotyczy właśnie strony serwerowej, na przykład błędnej autoryzacji czy źle zabezpieczonych tokenów JWT. MobSF nie rozumie też logiki biznesowej. Nie wie, że kupon rabatowy nie powinien działać dwa razy ani że użytkownik bez opłaconego planu nie powinien widzieć treści premium. Takie problemy znajduje człowiek, który rozumie, jak aplikacja ma działać.

Dlatego MobSF to pierwsza linia kontroli, a nie zastępstwo testów penetracyjnych prowadzonych przez specjalistów. Automat pilnuje, żeby proste błędy nie wracały. Pentester szuka tego, czego automat nie zauważy.

Niezależnie od narzędzi obowiązują też podstawowe zasady bezpieczeństwa aplikacji mobilnych, takie jak szyfrowanie danych zapisanych w telefonie i ochrona API przed nieuprawnionym dostępem.

FAQ

FAQ - Najczęściej zadawane pytania o MobSF

  • Tak, MobSF jest projektem open source na licencji GPL-3.0 i można go bezpłatnie używać do testowania aplikacji, także komercyjnych. Licencja nakłada obowiązki dopiero wtedy, gdy firma modyfikuje kod samego MobSF i rozpowszechnia zmienioną wersję, co przy zwykłym testowaniu aplikacji nie ma miejsca. Kosztem jest więc czas zespołu i infrastruktura: serwer lub komputer, na którym działa narzędzie, a przy analizie dynamicznej mocniejsza maszyna z emulatorem. Płatna jest jedynie usługa Corellium, potrzebna do testów dynamicznych aplikacji na iOS na wirtualnych urządzeniach Apple. Pierwsze uruchomienie i analiza jednej aplikacji zajmują zwykle od godziny do dnia pracy, zależnie od liczby zgłoszonych problemów.
  • Tak, MobSF analizuje gotowy plik instalacyjny aplikacji, czyli APK lub AAB dla Androida i IPA dla iOS, bez potrzeby dostępu do repozytorium. Narzędzie rozpakowuje plik, odtwarza z niego kod w możliwym do odczytania formacie i sprawdza konfigurację, uprawnienia, biblioteki oraz zapisane w nim dane. Dzięki temu można sprawdzić aplikację przygotowaną przez zewnętrznego wykonawcę albo starszą wersję, do której kod już nie istnieje. Pliki IPA z App Store są zaszyfrowane, więc do analizy potrzebna jest wersja zbudowana przez zespół lub pobrana w niezaszyfrowanej postaci. Jakość wyników zależy też od tego, czy kod był zaciemniony, bo utrudnia to odczytanie części logiki.
  • Tak, MobSF działa w całości na komputerze lub serwerze firmy, najczęściej jako kontener Docker, i nie wysyła analizowanej aplikacji do zewnętrznych serwerów. To ważne przy aplikacjach jeszcze niepublikowanych albo zawierających poufne rozwiązania, których firma nie chce udostępniać dostawcom usług chmurowych. Opcjonalnie można włączyć sprawdzanie pliku w zewnętrznych bazach złośliwego oprogramowania, ale jest to wyłączone, dopóki administrator samodzielnie tego nie skonfiguruje. Lokalne uruchomienie wymaga kilku gigabajtów miejsca i kilku minut na pierwszą instalację. Przy analizie dynamicznej potrzebny jest dodatkowo emulator Androida na tej samej lub sąsiedniej maszynie.
  • Tak, MobSF udostępnia API, przez które system ciągłej integracji może przesłać zbudowaną aplikację, pobrać raport i na jego podstawie zatrzymać lub przepuścić wydanie. W GitHub Actions i GitLab CI robi się to zwykle przez uruchomienie MobSF jako usługi w kontenerze na czas budowania albo przez połączenie z serwerem MobSF działającym na stałe. Do sprawdzania samego kodu źródłowego przy każdej zmianie służy lżejsze narzędzie mobsfscan, które działa bez uruchamiania całego MobSF. Konfiguracja potoku z progami blokującymi wydanie i powiadomieniami dla zespołu zajmuje zwykle od kilku dni do dwóch tygodni, zależnie od tego, jak rozbudowany jest obecny proces budowania aplikacji.
  • Tak, wyniki MobSF są powiązane z wymaganiami OWASP dla aplikacji mobilnych i obejmują dużą część zagrożeń z listy OWASP Mobile Top 10, takich jak niebezpieczne przechowywanie danych, słaba kryptografia czy niezabezpieczona komunikacja sieciowa. Każde ostrzeżenie w raporcie ma odniesienie do konkretnego wymagania, co ułatwia ocenę jego wagi i dokumentowanie poprawek. Automat nie pokrywa jednak kategorii wymagających zrozumienia działania aplikacji, na przykład błędów autoryzacji po stronie serwera czy nadużyć logiki biznesowej. Pełne sprawdzenie zgodności z listą OWASP wymaga więc połączenia raportu MobSF z testami prowadzonymi przez specjalistę.
  • Tak, raport MobSF można wyeksportować do PDF i dołączyć do dokumentacji jako dowód, że aplikacja przeszła automatyczne testy bezpieczeństwa. Raport zawiera listę wykrytych problemów z oceną ich wagi i odniesieniami do wymagań OWASP, więc daje odbiorcy czytelny obraz stanu aplikacji. Najlepiej uzupełnić go krótkim opisem, które pozycje uznano za fałszywe alarmy i dlaczego, oraz jakie poprawki wprowadzono. Raport z automatu nie jest jednak certyfikatem ani zamiennikiem audytu, więc w projektach, w których klient lub regulator wymaga testów penetracyjnych, potrzebny jest dodatkowo raport specjalisty.
  • Tak, MobSF ma funkcje analizy złośliwego oprogramowania: sprawdza, czy aplikacja nie łączy się z domenami znanymi z działalności przestępczej, rozpoznaje narzędzia używane do zaciemniania kodu i pakowania aplikacji oraz wypisuje wszystkie dołączone biblioteki i narzędzia śledzące użytkowników. Pozwala to wykryć sytuację, w której do aplikacji trafiła biblioteka zbierająca dane bez wiedzy zespołu, na przykład zewnętrzny pakiet reklamowy. Opcjonalnie MobSF może też sprawdzić plik w bazie VirusTotal. Skuteczność zależy od aktualności baz, z których korzysta narzędzie, dlatego MobSF warto regularnie aktualizować.

Blog

Powiązane artykuły

Czytaj więcej
Support

DAST: Jak przeprowadzić dynamiczne testowanie bezpieczeństwa aplikacji

Zabezpieczenie aplikacji to poważne wyzwanie. DAST, czyli Dynamic Application Security Testing, to jedno z kluczowych narzędzi w walce o bezpieczeństwo naszych danych. Artykuł ten wprowadzi Cię w podstawy DAST, pokaże, jak przeprowadzić dynamiczne testowanie bezpieczeństwa i na co zwrócić uwagę podczas tego procesu.

Tomasz Kozon
06 maj 2024
IT administrator

DevSecOps: Kierunek przyszłości w zarządzaniu bezpieczeństwem aplikacji

DevSecOps, czyli zintegrowanie zasad zabezpieczeń z DevOps, zyskuje na znaczeniu w erze cyfrowej. Niniejszy artykuł poświęcony jest roli DevSecOps jako kluczowego kierunku w zarządzaniu bezpieczeństwem aplikacji. Tworzenie, testowanie i wdrażanie aplikacji nigdy nie było tak wymagające, a rola bezpieczeństwa nigdy nie była tak krytyczna.

Tomasz Kozon
09 lut 2024
Support

Testy penetracyjne: Podstawy i ich kluczowe znaczenie w sektorze IT

Testy penetracyjne stanowią jedno z podstawowych narzędzi w środowisku IT, służące do ochrony organizacji przed cyfrowymi zagrożeniami. Poprzez symulację ataków hakerskich pozwalają na zidentyfikowanie i wzmocnienie potencjalnych słabości systemów. Są kluczowym elementem polityki bezpieczeństwa każdej firmy informatycznej.

Tomasz Kozon
10 lip 2023
IT administrator

Bezpieczeństwo w aplikacjach mobilnych: Praktyczne wskazówki

Czy twoja aplikacja mobilna jest wystarczająco zabezpieczona? W erze cyfrowej, gdzie cyberprzestępczość jest coraz bardziej zaawansowana, bezpieczeństwo aplikacji mobilnych staje się priorytetem. Podzielę się praktycznymi poradami, które pomogą Ci chronić Twoje aplikacje przed potencjalnymi zagrożeniami.

Tomasz Kozon
02 cze 2024