Uber Data Breach: jak zapobiegać takim incydentom w aplikacji
Opublikowany: 2017-11-28W 2016 r. Uber stracił 57 milionów użytkowników i informacji o sterownikach hakerom, którym następnie zapłacili 100 000 USD za usunięcie danych.
Incydent pojawił się kilka dni temu, kiedy ich dyrektor generalny Dara Khosrowshahi opublikował post rzucający światło na naruszenie danych . Od tego czasu w centrum uwagi znalazła się kwestia bezpieczeństwa aplikacji.
Uber nie jest pierwszym przypadkiem naruszenia bezpieczeństwa danych, zdarza się, że dane osobowe użytkowników zostały naruszone: zdarzenie, które sprawiło, że ludzie obawiają się korzystania z aplikacji mobilnych, które proszą o ich informacje.
Oto wizualizacja przedstawiająca stanowisko użytkowników aplikacji mobilnych w świetle obaw dotyczących bezpieczeństwa aplikacji —
Widzisz, jakie to makabryczne?
Możesz jednak zapobiec sytuacji, w której Twoja aplikacja stanie się kolejnym studium przypadku, ostrzegając marki, aby skoncentrowały się na bezpieczeństwie aplikacji.
Oto jak -
1. Chroń swoją aplikację przed zarysowaniami
W kodzie źródłowym aplikacji istnieje wiele luk w zabezpieczeniach, ale większość producentów aplikacji skupia się tylko na części sieciowej, jednocześnie koncentrując się na wdrażaniu najlepszych praktyk w zakresie bezpieczeństwa aplikacji mobilnych . Jest tak wiele miejsc, które mogą być podstawą naruszeń danych – błąd kodowania, testowanie kodu itp.
Oto rzeczy, które możesz zrobić, aby zabezpieczyć swoją aplikację od dnia jej istnienia –
- Chroń kod swojej aplikacji za pomocą szyfrowania. Są na to dwa sposoby – minifikacja i zaciemnianie, ale to nie wystarczy. Zaleca się trzymanie się dobrze obsługiwanych algorytmów, które są połączone z szyfrowaniem API.
- Często uruchamiaj skanowanie kodu źródłowego swoich kodów
Znakiem bezpiecznego kodu jest to, że pozostaje on bezpieczny nawet po przeniesieniu między systemami operacyjnymi i urządzeniami. Na tym froncie niezmiernie pomaga tworzenie zwinnego kodu.
2. Zabezpiecz połączenie sieciowe z zaplecza
Serwery w chmurze, do których uzyskuje dostęp interfejs API Twojej aplikacji, muszą mieć odpowiednie środki bezpieczeństwa, aby zapobiegać nieautoryzowanemu dostępowi i chronić dane użytkowników. Weryfikacja API powinna być tak przeprowadzona, aby zero wrażliwych informacji nie przechodziło od klienta do bazy danych lub serwera aplikacji.
Aby ten krok zakończył się sukcesem, konieczne jest, aby proces tworzenia zaplecza był solidny .
Oto jak zabezpieczyć połączenie sieciowe
- Twórz zaszyfrowane kontenery do przechowywania dokumentów i danych
- Przeprowadź serię ocen podatności i testów penetracyjnych swojej sieci, aby upewnić się, że dane są chronione.
- Szyfruj bazę danych i połączenia za pomocą SSL, VPN i TLS, aby zwiększyć bezpieczeństwo
- Apply Federation – środek, który rozdziela zasoby na serwery tak, aby nie znajdowały się w jednym miejscu, jednocześnie oddzielając kluczowe zasoby od użytkowników.
3. Przygotuj proces uwierzytelniania, identyfikacji i autoryzacji
Oto jak sprawić, by Twoja aplikacja była identyfikowana, uwierzytelniana i autoryzowana
- Upewnij się, że interfejsy API, z których korzysta Twoja aplikacja, są tylko tymi, które są potrzebne do działania i zapewniają dostęp tylko do tych części, na których koncentruje się, a nie do wszystkich funkcji aplikacji.
- Istnieje wiele narzędzi i protokołów, z których możesz skorzystać i których musisz przestrzegać, gdy Twoja aplikacja jest w fazie rozwoju. Tutaj są -
- JSON Web Token – lekkie narzędzie służy do szyfrowania wymiany danych, jego bezproblemowa implementacja czyni go idealnym do aplikacji mobilnych.
- OpenID Connect – Jest to protokół, który pozwala użytkownikom na ponowne wykorzystanie ich danych uwierzytelniających w różnych domenach za pomocą tokena ID, aby zaoszczędzić czas na rejestracji i rejestracji przy użyciu tych samych informacji za każdym razem.
- OAuth2 — protokół służy do zarządzania bezpiecznym połączeniem za pomocą jednorazowego tokena określonego użytkownika. Po zainstalowaniu frameworka na serwerze autoryzacyjnym, pozwoli Ci on przyznać użytkownikom uprawnienia między użytkownikami końcowymi a klientem poprzez zbieranie danych uwierzytelniających, takich jak pytania 2 factor SMS.
4. Wykonaj kompleksowy zestaw testów
W przeciwieństwie do aplikacji internetowych większość danych aplikacji mobilnej jest zapisywana lokalnie, a ponieważ dane znajdują się na urządzeniu, którego przepustowość, wydajność i jakość są różne, ryzyko włamania jest znacznie większe.
Oprócz czynnika niestabilności urządzeń istnieją również aplikacje, które mają tendencję do publikowania danych bez wiedzy użytkowników, takich jak płeć, wiek, wykorzystanie urządzenia itp.
Sposoby, w jakie możesz zapewnić bezpieczeństwo danych klientów w aplikacji –
- Za pomocą szyfrowania na poziomie plików możesz chronić dane na zasadzie plik po pliku. Jest to jeden ze sposobów szyfrowania danych w spoczynku, aby nie były odczytywane w przypadku przechwycenia.
- Narzędzia takie jak platforma Appcelator zapewniają, że dane mobilne przechowywane lokalnie są bezpieczne.
Zarządzanie kluczami powinno być Twoim priorytetem. Podstawą silnego algorytmu jest jego równie silniejszy certyfikat i klucze.
5. Planowana strategia bezpieczeństwa API
Ponieważ tworzenie aplikacji mobilnych jest ściśle powiązane z interfejsami API, główna część zapewniania bezpieczeństwa aplikacji zależy od zabezpieczenia jej interfejsu API. Interfejsy API przesyłają dane między aplikacjami, chmurą i wieloma użytkownikami. Wszystkie zaangażowane strony muszą zostać zidentyfikowane i autoryzowane, aby móc zobaczyć i wykorzystać dane. Interfejsy API są kamieniem węgielnym funkcjonalności, treści i danych, więc zapewnienie ich bezpieczeństwa może zająć Ci dużo czasu.
W API są trzy etapy, którymi musisz się zająć, a mianowicie – Identyfikacja, Uwierzytelnianie i Autoryzacja.
Przyjrzyjmy się elementom wszystkich trzech poniższych –
Identyfikacja
Pierwsza część procesu, włamań identyfikacyjnych, można zapobiec poprzez wdrożenie kluczy API. Klucze te są losowymi, unikalnymi identyfikatorami, które eliminują konieczność podawania haseł.
Chociaż możesz zabezpieczyć, gdy dane są widziane za pomocą kluczy API, nie możesz zdecydować, że widzi je ktoś, kto miał je zobaczyć.
Uwierzytelnianie
Jest to proces, który gwarantuje, że informacje są widziane przez kogoś, kto miał je zobaczyć. Na tym etapie ustawiasz nazwy użytkowników i hasła, aby zapewnić systemowi dodatkowy poziom bezpieczeństwa.
Upoważnienie
Ten krok odpowiada na pytanie – Co można zrobić z API. Kroki w celu zabezpieczenia tego procesu obejmują autoryzację dwuskładnikową, tokeny i hasła jednorazowe.
6. Przetestuj aplikację
Niezależnie od tego, czy Twoja aplikacja jest hybrydowa, natywna czy webowa, powinna zostać przetestowana nie tylko pod kątem użyteczności i funkcjonalności, ale także pod kątem bezpieczeństwa. Aby zapewnić bezpieczną jakość aplikacji , musisz wykonać kilka czynności .
Oto sposoby, dzięki którym Twoja aplikacja zostanie przetestowana pod kątem bezpieczeństwa —
- Testy penetracyjne – Oznacza badanie sieci i systemu w celu znalezienia słabych punktów.
- Użyj emulatorów, aby przetestować działanie aplikacji w symulowanym środowisku.
- Przetestuj szczegółowo kwestie związane z autoryzacją i uwierzytelnianiem, zarządzaniem sesjami i bezpieczeństwem danych.
Oto 6 sposobów, które możesz zastosować w procesie tworzenia aplikacji, aby upewnić się, że Twoja nie jest w centrum uwagi.
Upewnij się, że włączysz się na czas, kiedy masz czas.