Wstęp

Obserwując obecny trend cyfryzacji, a co za tym idzie postęp i powszechność, można wysnuć wniosek, że aplikacji mobilnych przybywa i będzie wciąż przybywać. Według statystyk Urzędu Komunikacji Elektronicznej pochodzących z roku 2019, korzystanie z telefonów komórkowych deklaruje 93,1% Polaków. Wśród tej grupy dostęp do Internetu deklaruje 90,7%.

Taki wolumen korzystania z usług mobilnych definiuje również potrzebę tworzenia aplikacji mobilnych, które będą ułatwiały użytkownikom poruszanie się po zasobach w cyberprzestrzeni.

Do tego należy uwzględnić fakt istnienia pandemii koronawirusa, która również walnie przyczyniła się do bardzo szybkiego wzrostu cyfryzacji, co niestety nie implikuje, że wraz za tym idzie bardzo szybki wzrost świadomości zagrożeń związanych z użytkowaniem różnego typu aplikacji.

Jak działa aplikacja mobilna?

Aby zrozumieć naturę ataków na aplikacje mobilne, należy na początku zrozumieć jak działa komunikacja w tego typu aplikacjach. Aby to zobrazować, poniżej znajduje się uproszczony model działania aplikacji mobilnych w porównaniu do poznanych już w poprzednich artykułach, aplikacji webowych:

Dla uproszczenia (ale i lepszego zrozumienia) widać, że dwoma najważniejszymi komponentami w kontekście komunikacji w aplikacjach mobilnych są:

  • część kliencka (gruby klient, czyli zainstalowana aplikacja mobilna na urządzeniu mobilnym);
  • część serwerowa (swego rodzaju mózg i logika aplikacyjna).

Bardzo podobnie jak w przypadku aplikacji webowych, część aplikacyjna jest interfejsem do części serwerowej. Jest to również powodem dla którego ciężar bezpieczeństwa skupiony jest na integralności samej aplikacji mobilnej, integralności i poufności komunikacji między aplikacją a serwerem aplikacyjnym oraz na integralności i dostępności części serwerowej.

Wiele scenariuszy ataków na aplikacje mobilne jest zbieżnych ze scenariuszami ataków na aplikacje webowe, natomiast są również pewne rozbieżności, które będą opisywane i wyjaśniane w niniejszej serii artykułów poświęconych bezpieczeństwu aplikacji mobilnych.

Podejście do testów penetracyjnych aplikacji mobilnych

Rozumiejąc podstawowe działanie aplikacji webowych, można zastanowić się w jaki sposób podejść do ataków na nie, czyli gdzie można by się upatrywać słabych punktów całej (uproszczonej) architektury.

Jak można się łatwo domyślić, mózgiem całej aplikacji webowej jest serwer aplikacyjny, który w bardzo istotny sposób będzie wpływał na całościowe bezpieczeństwo aplikacji.

Dla aplikacji mobilnych istnieje uznany standard wykonywania testów bezpieczeństwa – OWASP Mobile Top 10 oraz lista kontrolna testów jakie można wykonać OWASP Mobile ASVS 1.2 (https://github.com/OWASP/owasp-masvs/releases/download/v1.2/OWASP_MASVS-v1.2-en.pdf ).

Oczywiście nie jest to jedyne uznane podejście w kontekście testów penetracyjnych aplikacji mobilnych, natomiast OWASP w swojej prostocie i celowości wydaje się bardzo ciekawych i trafnym wyborem.