12 wskazówek, jak zabezpieczyć aplikację mobilną PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

12 wskazówek, jak zabezpieczyć swoją aplikację mobilną

Cyberataki i kradzieże danych stały się w dzisiejszych czasach tak powszechne, zwłaszcza jeśli chodzi o aplikacje mobilne. W rezultacie aplikacje mobilne, które doświadczają naruszeń bezpieczeństwa, mogą ponieść straty finansowe. Ponieważ wielu hakerów chce wykraść dane klientów, zabezpieczenie tych aplikacji stało się priorytetem numer jeden dla organizacji i poważnym wyzwaniem dla programistów. Według ostatnich badań Gartnera, Cykl szumu dla bezpieczeństwa aplikacji, inwestycje w bezpieczeństwo aplikacji wzrosną ponad dwukrotnie w ciągu najbliższych kilku lat, z 6 miliardów dolarów w tym roku do 13.7 miliarda dolarów w 2026 roku. Ponadto w raporcie stwierdzono: „Bezpieczeństwo aplikacji jest obecnie najważniejsze dla programistów i profesjonalistów, a nacisk kładzie się teraz na aplikacje hostowane w chmurach publicznych”. Bardzo ważne jest, aby podstawowe komponenty bezpieczeństwa DevOps były poprawne. Oto 12 wskazówek, jak zabezpieczyć aplikację mobilną: 

1. Instaluj aplikacje z zaufanych źródeł:

Często zdarza się, że aplikacje na Androida są ponownie publikowane na alternatywnych rynkach lub udostępniane do pobrania ich pliki APK i IPA. Zarówno pakiet APK, jak i IPA można pobrać i zainstalować z różnych miejsc, w tym ze stron internetowych, usług w chmurze, dysków, mediów społecznościowych i sieci społecznościowych. Tylko Play Store i App Store powinny mieć możliwość instalowania godnych zaufania plików APK i IPA. Aby uniemożliwić korzystanie z tych aplikacji, powinniśmy mieć wykrywanie sprawdzania źródła (Sklep Play lub App Store) podczas uruchamiania aplikacji.

Czytaj także https://andresand.medium.com/add-method-to-check-which-app-store-the-android-app-is-installed-from-or-if-its-sideloaded-c9f450a3d069

2. Wykrywanie korzeni:

Android: osoba atakująca może uruchomić aplikację mobilną na zrootowanym urządzeniu i uzyskać dostęp do pamięci lokalnej lub wywołać określone działania lub zamiary wykonania złośliwych działań w aplikacji. 

iOS: aplikacje na urządzeniu z jailbreakiem działają jako root poza piaskownicą iOS. Może to umożliwić aplikacjom dostęp do poufnych danych przechowywanych w innych aplikacjach lub instalowanie złośliwego oprogramowania negującego funkcjonalność piaskownicy. 

Więcej o wykrywaniu korzeni- https://owasp.org/www-project-mobile-top-10/2016-risks/m8-code-tampering

3. Przechowywanie danych:

Programiści używają wspólnych preferencji i ustawień domyślnych użytkownika do przechowywania par klucz-wartość, takich jak tokeny, numery telefonów komórkowych, adres e-mail, wartości logiczne itp. Ponadto podczas tworzenia aplikacji programiści preferują bazy danych SQLite do przechowywania danych strukturalnych. Zaleca się przechowywanie wszelkich danych w postaci zaszyfrowanej, aby utrudnić hakerom wydobycie informacji.

4. Bezpieczne tajne klucze:

Klucze interfejsu API, hasła i tokeny nie powinny być zakodowane na stałe w kodzie. Zaleca się stosowanie różnych technik przechowywania tych wartości, aby hakerzy nie mogli szybko uciec, manipulując aplikacją. 

Oto link referencyjny: https://guides.codepath.com/android/Storing-Secret-Keys-in-Android

5. Zaciemnianie kodu

Osoba atakująca może zdekompilować plik APK i wyodrębnić kod źródłowy aplikacji. Może to narazić atakującego na poufne informacje przechowywane w kodzie źródłowym aplikacji, które mogą zostać wykorzystane do przeprowadzenia dostosowanych ataków. 

Lepiej jest zaciemniać kod źródłowy, aby zapobiec wszystkim poufnym informacjom zawartym w kodzie źródłowym.

6. Bezpieczna komunikacja:

Osoba atakująca może wykonać złośliwe działania, aby wykorzystać poziom ataków, ponieważ cała komunikacja odbywa się za pośrednictwem niezaszyfrowanych kanałów. Dlatego zawsze używaj adresów URL HTTPS zamiast adresów URL HTTP.

7. Przypinanie SSL:

Przypinanie certyfikatów umożliwia aplikacjom mobilnym ograniczenie komunikacji tylko do serwerów posiadających ważny certyfikat zgodny z oczekiwaną wartością (pin). Przypinanie to zapewnia żadne dane sieciowe nie są zagrożone, nawet jeśli użytkownik zostanie nakłoniony do zainstalowania złośliwego certyfikatu głównego na swoim urządzeniu mobilnym. Każda aplikacja, która przypina swoje certyfikaty, udaremniłaby takie próby phishingu, odmawiając przesyłania danych przez zhakowane połączenie

Proszę odnieś się: 

https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning

8. Bezpieczne dane żądań i odpowiedzi API

Standardową praktyką jest używanie protokołu HTTPS do podstawowej ochrony wywołań interfejsu API REST. Informacje wysyłane do serwera lub odbierane z serwera mogą być dalej szyfrowane za pomocą algorytmu AES itp. Na przykład, jeśli istnieją wrażliwe treści, możesz wybrać te do zaszyfrowania, aby nawet jeśli HTTPS jest w jakiś sposób zepsuty lub źle skonfigurowany, mieć kolejną warstwę ochrony przed szyfrowaniem.

9. Bezpieczne uwierzytelnianie aplikacji mobilnej:

W przypadku, gdy aplikacja nie przypisze użytkownikowi odrębnych i złożonych tokenów sesji po zalogowaniu, atakujący może przeprowadzić phishing w celu nakłonienia ofiary do użycia niestandardowego wygenerowanego tokena dostarczonego przez atakującego i łatwego ominięcia strony logowania z przechwyconą sesją za pomocą ataku MiTM.

i) Przypisz użytkownikowi odrębny i złożony token sesji za każdym razem, gdy pomyślnie zaloguje się do aplikacji. 

ii) Zakończenia sesji natychmiast po wylogowaniu. 

iii) Nie używaj tego samego tokena sesji dla dwóch lub więcej adresów IP. 

iv) Ogranicz czas wygaśnięcia dla każdego tokena sesji.

10. Zezwól na kopię zapasową 

Nie zezwalaj użytkownikom na tworzenie kopii zapasowych aplikacji, jeśli zawiera ona poufne dane. Mając dostęp do plików kopii zapasowych (np. gdy android:allowBackup=”true”) można modyfikować/odczytywać zawartość aplikacji nawet na urządzeniu nierootowanym. Dlatego zaleca się ustawienie opcji Zezwalaj na tworzenie kopii zapasowych na wartość false. 

11. Ogranicz dostęp do ekranów aplikacji Android z innych aplikacji

Idealnie, twoje działania nie powinny zapewniać otwarcia z innych usług lub aplikacji. Uczyń to prawdą tylko wtedy, gdy masz określone wymagania dotyczące dostępu do trzepoczących ekranów z innych aplikacji, na które inaczej się zmienisz android:exported= „fałsz”

12. Ogranicz instalowanie pakietów z aplikacji na Androida

REQUEST_INSTALL_PACKAGES pozwolenie zezwala aplikacjom na zainstalować nowe pakiety na urządzeniu użytkownika. Dokładamy wszelkich starań, aby zapobiegać nadużyciom na platformie Android i chronić użytkowników przed aplikacjami, które aktualizują się samodzielnie przy użyciu metody innej niż mechanizm aktualizacji Google Play lub pobierają szkodliwe pliki APK.

Wnioski: 

Aplikacje mobilne stały się bardziej spersonalizowane niż kiedykolwiek wcześniej dzięki stosom danych osobowych klientów przechowywanych w nich każdego dnia. Aby zbudować zaufanie i lojalność wśród użytkowników oraz zapobiec znaczącym stratom finansowym i uwierzytelniającym dla firm, ważne jest teraz, aby aplikacja była bezpieczna dla użytkownika. Przestrzeganie wyżej wymienionych list kontrolnych bezpieczeństwa aplikacji mobilnych z pewnością pomoże uniemożliwić hakerom włamanie się do aplikacji.

O autorze:

Raviteja Aketi jest starszym inżynierem oprogramowania w Mantra Labs. Posiada bogate doświadczenie w projektach B2B. Raviteja uwielbia odkrywać nowe technologie, oglądać filmy i spędzać czas z rodziną i przyjaciółmi.

Przeczytaj nasz najnowszy blog: Wdrażanie czystej architektury z Nest.JS

Wiedza, którą warto dostarczyć w swojej skrzynce odbiorczej

Znak czasu:

Więcej z Mantra Labstra