Bezpieczeństwo aplikacji mobilnych

Wraz ze wzrostem popularności urządzeń mobilnych rośnie również liczba dostępnych na nie aplikacji. Poza popularnymi grami udostępniane są także aplikacje będące interfejsem dla serwisów takich jak sklepy, banki, portale społecznościowe, komunikatory. W większości przypadków stanowią one prosty interfejs, który komunikuje się za pomocą protokołu HTTP/HTTPS z właściwym serwisem wykorzystując przy tym API.

W ramach działalności Grey Wizard poza ochroną przed cyberatakami (w szczególności DDoS) prowadzimy również analizę bieżących zagrożeń jakie mogą napotkać nasi użytkownicy. Wielokrotnie mieliśmy okazję analizować aplikacje mobilne jak i chronić systemy obsługiwane przez te aplikacje przed różnymi zagrożeniami. Z tego względu postanowiliśmy przedstawić zagadnienia, na które warto zwrócić uwagę podczas procesu tworzenia aplikacji oraz jej użytkowania.

Przechowywanie danych
Pierwszym faktem, na który warto zwrócić uwagę jest sposób w jaki informacje są przechowywane na urządzeniu mobilnym. W wielu przypadkach deweloperzy w celu szybkiego wytworzenia aplikacji wykorzystują najprostszy sposób przechowywania danych - w postaci plików konfiguracyjnych lub prostych relacyjnych bazach danych jak np. SQLite. Mechanizm ten pozwala na bezpośredni dostęp do nich intruzowi szczególnie, gdy mogą one zostać przeniesione na pamięć zewnętrzną jaką jest karta SD. Dane przechowywane na pamięciach zewnętrznych nie są w żaden sposób chronione i dostęp do nich zarówno odczyt jak i zapis można bardzo szybko uzyskać przenosząc je do innego czytnika. W ten sposób newralgiczne dane mogą zostać odczytane lub nawet zmodyfikowane (np. dynamicznie ładowane biblioteki lub uruchamiane pliki binarne) co może pozwolić na przejęcie pełnej kontroli nad aplikacją lub jej dokładniejszą analizę.

Warto w tym przypadku korzystać wyłącznie z pamięci wewnętrznej urządzenia, dodatkowo dane w niej zapisywane szyfrować wykorzystując KeyStore, który zapewni bezpieczny sposób przechowywania kluczy i dostępu do danych. Ewentualne przydzielanie dostępu do danych innym aplikacjom warto zrealizować dynamicznie, tak aby by był on udzielany tylko w konkretnych przypadkach, a po wykonaniu zdefiniowanych akcji natychmiast odbierany.

Transmisja danych
Większość aplikacji jako źródło danych wykorzystuje usługi dostępne w sieci. Użytkownicy urządzeń mobilnych często korzystają z ogólnie dostępnych HotSpotów, które kontrolowane przez niezaufane podmioty mogą być wykorzystywane do podsłuchiwania transmisji pomiędzy ich nieświadomym użytkownikiem a źródłem danych. Z tego powodu warto, aby transmisja była realizowana wyłącznie przy wykorzystaniu bezpiecznych protokołów jakimi są SSL/TLS.

Podczas analizy aplikacji często są wykorzystywane narzędzia takie jak Burp Suite lub OWASP ZAP, które obsługują również protokół HTTPS. W tym przypadku można utrudnić intruzowi zadanie implementując w samej aplikacji dokładniejszą weryfikację źródła danych jak np. podpisu certyfikatu SSL jakim się on identyfikuje, a w przypadku stwierdzenia niezgodności porzucenie dalszej komunikacji.

Źródło danych
Najczęściej wykorzystywanym sposobem udostępniania danych dla aplikacji mobilnych jest uruchomienie usługi w postaci API dostępnego za pośrednictwem protokołu HTTP.
Jak się okazuje jest to najbardziej krytyczne miejsce, a tym samym najczęściej atakowane przez intruzów.

W ramach świadczenia naszej usługi stale wykrywamy i aktywnie blokujemy kolejne próby ataków na tego typu serwisy. Najczęstszym przypadkiem są zwykle próby kradzieży kont użytkowników wykorzystując przy tym ataki słownikowe oraz brute-force. W tym celu cyberprzestępcy coraz częściej sięgają po bardziej wyrafinowane próby starając się ukryć taki atak wykonując je z setek adresów IP. Warto tutaj zastosować mechanizm limitowania prób dostępu lub dynamicznie generowanych tokenów przypisanych do konkretnego urządzenia i posiadających krótki okres ważności.

Innym przykładami ataków są próby włamania do samej usługi przy pomocy takich form ataków jak SQL Injection, próby manipulacji danymi (np. w celu wpłynięcia na wyniki w grze) lub ataki odmowy dostępu (DDoS) mające utrudnić lub zablokować dostęp do usługi jej użytkownikom.



Brak komentarzy :

Prześlij komentarz