mobile application penetration testing tools service providers
Przewodnik krok po kroku dotyczący testowania aplikacji mobilnej za pomocą pióra (z narzędziami i usługodawcami):
Dziesięć lat temu dzięki ewolucji technologii wszyscy zaczęliśmy rozumieć branżę IT i wtedy wszyscy dowiedzieliśmy się, jak i co można zrobić przy użyciu systemów komputerowych.
Powoli stało się możliwe przesyłanie pieniędzy przez Internet zamiast odwiedzania banku osobiście i czekania w kolejce do wykonania transakcji. W związku z takim popytem wszystkie banki zaczęły działać online.
Ale czy wszyscy czuliśmy się komfortowo i bezpiecznie, korzystając z tej funkcji od samego początku, większość z nas odpowiedziałaby „NIE”.
Jeśli chodzi o pieniądze, wszyscy się zastanawiamy.
Kiedy coś jest nowo uruchamiane, chcemy mieć pewność, że jest zabezpieczone pod każdym względem, wszystkie strony internetowe, których używamy obecnie, przechodzą przez kilka warstw kontroli bezpieczeństwa, zanim zostaną ujawnione publicznie. Teraz trend znów się zmienia i chcemy, aby wszystko działo się za jednym kliknięciem przycisku, co jest możliwe tylko przy użyciu aplikacji mobilnych.
Jak upewnić się, że wszystkie aplikacje mobilne pobrane ze sklepu Play lub iStore są bezpieczne w użyciu? Każde pobranie wiąże się z ryzykiem złośliwych ataków. Z tego samego powodu i aby mieć pewność, że ich aplikacja będzie preferowana nad innymi, twórcy aplikacji powinni upewnić się, że ich aplikacje zostały pomyślnie przetestowane pod kątem bezpieczeństwa, zanim faktycznie opublikują je do pobrania.
Z tego artykułu dowiesz się o rodzajach aplikacji mobilnych, czego należy się spodziewać po testach penetracyjnych aplikacji mobilnych, jak można przeprowadzić testy, usługodawcach oferujących usługi do testowania aplikacji mobilnych oraz listę niektórych narzędzi, które można wykorzystać do testowanie.
Czego się nauczysz:
- Aplikacje mobilne i ich typy
- Dostawcy usług testowania penetracji aplikacji mobilnych
- Narzędzia do testowania penetracji aplikacji mobilnych
- Kilka popularnych fałszywych aplikacji mobilnych z lukami w zabezpieczeniach
- Czego powinieneś się spodziewać po swoim teście?
- Kroki do testowania penetracji aplikacji mobilnych
- Wniosek
- rekomendowane lektury
Aplikacje mobilne i ich typy
Zanim przejdziemy dalej jak test pióra aplikację mobilną , bardzo ważne jest, aby upewnić się, że masz podstawową wiedzę na temat aplikacji mobilnych.
Przyjrzyjmy się różnym typom aplikacji mobilnych.
co to jest programowanie opisowe w qtp
1) Natywna aplikacja mobilna
Aplikacja natywna oznacza aplikacje stworzone dla określonej platformy, takiej jak iOS lub Android, napisane specjalnie w określonym języku programowania i można je zainstalować z odpowiednich sklepów, takich jak Google Play Store lub Apple App Store. Oferują najbardziej przyjazne dla użytkownika doświadczenie i można je obsługiwać po prostu klikając ikonę.
Coś dobrego przykłady natywnych aplikacji to Facebook, Instagram, Angry Birds itp.
Jedynym problemem jest to, że te aplikacje nie działają na wszystkich typach urządzeń, na przykład jeśli aplikacja jest tworzona na Androida, nie będzie działać na iOS i odwrotnie. Aplikacje natywne mogą również działać bez połączenia z Internetem.
2) Aplikacja mobilna oparta na przeglądarce / mobilne aplikacje internetowe
Mobilne aplikacje internetowe to w zasadzie aplikacje działające w przeglądarce i niezależne od urządzenia.
Tę samą aplikację można uruchomić na urządzeniu z systemem iOS lub smartfonie z systemem Android. Te aplikacje są w większości napisane w HTML5. Są łatwe do opublikowania, ponieważ nie wymagają żadnego pozwolenia od Google ani Apple, aby zezwolić na ich sklep.
Aplikacje internetowe można pobrać bezpośrednio za pomocą przycisku pobierania dostępnego na odpowiednich stronach internetowych. Typowym przykładem mogą być nasze witryny handlowe, takie jak Flipkart, Amazon itp.
# 3) Mobilna aplikacja hybrydowa
Są to aplikacje, które są częściowo natywne, a częściowo nienatywne. Można je pobrać ze sklepów, a także uruchomić w przeglądarce.
Zaletą tworzenia tego typu aplikacji jest to, że obsługuje on tworzenie aplikacji na wiele platform, a tym samym zmniejsza całkowity koszt programowania, co oznacza, że umożliwia ponowne użycie tego samego składnika kodu na innym urządzeniu. Te aplikacje można również szybko opracować.
Ponadto hybrydowe aplikacje mobilne umożliwiają korzystanie z funkcji zarówno aplikacji natywnych, jak i internetowych.
Dostawcy usług testowania penetracji aplikacji mobilnych
Nasza rekomendacja
# 1) Szyfr
Szyfr jest jednym z najlepszych dostawców usług testowania aplikacji mobilnych. Jest znana jako globalna firma zajmująca się bezpieczeństwem, która oferuje wysoce wydajne zarządzane usługi w zakresie bezpieczeństwa i doradztwa z certyfikatem SOC I i SOC II typu 2.
Główna siedziba: Miami, USA
Założony: 2000
Pracowników: 300
Dochód: 20–50 mln USD
Podstawowe usługi: Testy penetracyjne i usługi etycznego hakowania, ocena podatności, ryzyko i ocena, ocena i doradztwo PCI, zapewnienie bezpieczeństwa oprogramowania, monitorowanie zagrożeń itp.
Funkcje:
- Wspomaga system w obronie przed zaawansowanymi zagrożeniami podczas zarządzania ryzykiem.
- Cipher oferuje wydajne i innowacyjne rozwiązania zapewniające zgodność systemu.
- Świadczy autorskie i wyspecjalizowane usługi ochrony dla każdej zrzeszonej organizacji.
Niewielu innych usługodawców:
- Appsec
- Procheckup
- Pretorianin
- Cigital
- Wesecureapp
- Netspi
- CyberChops
- Aplikacja ray
- Jumpsec
- Sciencesoft
Narzędzia do testowania penetracji aplikacji mobilnych
- Core Impact Pro (Android, iOS i Windows)
- zANTI (Android)
- Ianalyzer (iOS)
- DVIA (iOS)
Inne narzędzia:
- Skaner portów (Android)
- Fing (Android i iOS)
- DroidSheep (Android)
- Intercepter-NG (Android)
- Nessus (Android)
- Droid SQLi (Android)
- Orweb (Android)
Kilka popularnych fałszywych aplikacji mobilnych z lukami w zabezpieczeniach
Ogólnie rzecz biorąc, istnieją dobrze znane podatne na ataki aplikacje mobilne, które zostały stworzone, aby dać użytkownikom wyobrażenie o testowaniu mobilnym. Te aplikacje mają luki, które mają na celu pomóc użytkownikom / testerom w ćwiczeniu i poszerzaniu wiedzy o testach piórkowych.
darmowa aplikacja do pobrania utworów mp3 na Androida
Możesz odwołać się do iMAS, GoatDroid, DVIA, MobiSec:
Czego powinieneś się spodziewać po swoim teście?
Celem testowania jest znalezienie jak największej liczby problemów i upewnienie się, że problemy zostaną znalezione, zanim faktycznie wpłyną one na użytkowników końcowych. Głównym powodem wystąpienia problemu z bezpieczeństwem urządzeń mobilnych jest to, że programiści chcą tworzyć bardziej przydatne aplikacje niż aplikacje zabezpieczone i są szanse na brak świadomości bezpieczeństwa podczas opracowywania aplikacji.
W tej sekcji omówię niektóre luki w zabezpieczeniach / luki w zabezpieczeniach, na które należy zwrócić uwagę w ramach testów.
Typowe luki w zabezpieczeniach, których należy szukać:
1) Format przechowywania danych :Wszystko zależy od formatu, w jakim przechowywane są dane. Czy to w postaci zwykłego tekstu, czy w innych formatach. Dla Na przykład ., Android przechowuje nazwę użytkownika i hasło w postaci zwykłego tekstu, co z kolei czyni go bardziej podatnym na ataki.
2) Przechowywane wrażliwe dane :Czasami programiści na stałe zapisują hasła lub przechowują poufne informacje, które mogą zostać łatwo złamane.
3) Złe metody kodowania: Wykorzystanie biblioteki Open SSL, która jest podatna na atak FREAK, jest jedną z rzeczy, które należy sprawdzić.
4) Szyfrowanie danych: Ważne jest, aby transmisja danych odbywała się w bezpieczny sposób, a przechowywane dane były szyfrowane.
5) Słabe tworzenie hasła: Aplikacje powinny mieć mechanizm sprawdzania siły hasła. Słabe hasła są zawsze podatne na ataki.
6) Synchronizacja danych: Transmisja danych lub synchronizacja danych powinna odbywać się bezpieczną metodą. Sposób, w jaki dane są przesyłane lub synchronizowane z chmurą, może prowadzić do ataków, a tym samym powoduje utratę danych.
Testowanie aplikacji mobilnej nadal pozostaje wyzwaniem w porównaniu z testami sieciowymi, ponieważ aplikacje mobilne są stosunkowo nowe na rynku i nie mamy kilku skanerów dostępnych w Internecie, a wciąż tworzymy ściągawki lub wymyślamy sposoby skanowania i mieć bezpieczniejsze aplikacje mobilne stworzone dla użytkowników końcowych.
Kroki do testowania penetracji aplikacji mobilnych
Testowanie aplikacji mobilnych wymaga wykonania pewnych czynności.
Oni są:
# 1) Konfiguracja środowiska testowego
Konfiguracja środowiska testowego jest procesem sama w sobie i może być osobnym tematem do czytania :)
Nie wspomniałem tutaj o wielu szczegółach dotyczących konfigurowania środowiska testowego, ponieważ będzie się ono różnić w zależności od testów. Właśnie umieściłem to tutaj, ponieważ nie chciałem całkowicie przegapić tego kroku.
Niektóre testy można wykonać na prawdziwym urządzeniu, a inne na emulatorach. Różni się też w zależności od platformy, którą planujemy przetestować. W przypadku aplikacji na Androida może być konieczne zainstalowanie pakietu SDK, a w przypadku systemu iOS będziemy wymagać jailbreakingu.
2) Odkryj / Zrozumienie aplikacji
Każda aplikacja mobilna będzie działać inaczej, dlatego pierwszym krokiem w testowaniu powinno być odkrycie lub zdobycie dodatkowych informacji o testowanej aplikacji. Powinno to również obejmować określenie, w jaki sposób aplikacja łączy się z systemem operacyjnym i serwerem zaplecza.
Powinien obejmować sprawdzenie używanych bibliotek, lepsze zrozumienie platformy i ustalenie, czy aplikacja jest typem natywnym / sieciowym / hybrydowym. Ten krok można również nazwać jako Etap gromadzenia informacji .
# 3) Analiza / ocena aplikacji
W ramach tego kroku zainstaluj aplikację na urządzeniu mobilnym i zrób migawkę systemu plików i rejestru przed i po instalacji.
Przeanalizuj dostępne informacje, aby zidentyfikować słabe punkty, które można wykorzystać, np. Zrozumienie, w jaki sposób przechowywane są poufne informacje, w jaki sposób dane są przesyłane, w jaki sposób zachodzi interakcja ze stroną trzecią itp.
# 4) Inżynieria odwrotna
Będzie to wymagane, jeśli tester nie ma kodu źródłowego. Zaplanowane zostaną przeglądy kodu, aby zrozumieć, jak aplikacja działa wewnętrznie. Celem tego jest wyszukanie luk w zabezpieczeniach.
# 5) Przechwytywanie ruchu
Na tym etapie skonfiguruj urządzenie do kierowania przez serwer proxy, co z kolei powinno pomóc w przechwytywaniu ruchu i znajdowaniu błędów, takich jak problemy z wstrzykiwaniem lub autoryzacją.
# 6) Eksploatacja
Po przeprowadzeniu analizy i ustawieniu serwera proxy można przeprowadzić eksploitację, w której zachowujesz się jak haker, symulujesz ataki i próbujesz złamać zabezpieczenia systemu.
Wykorzystaj system i wykonaj złośliwe działania.
# 7) Raportowanie
Powyższy krok byłby głównym etapem testowania, więc ostatnim krokiem powinno być sporządzenie raportu opisującego wszystkie wyniki. Dobry raport powinien zawierać szczegóły wszystkich znalezionych luk wraz z oceną ryzyka biznesowego i technicznego.
Innym ważnym punktem, o którym można wspomnieć, jest zalecenie dotyczące poprawki.
Wniosek
Mam nadzieję, że wszystkim podobał się artykuł o testowaniu aplikacji mobilnych. Moim zdaniem testowanie mobilności jest nadal obszarem, który nie został do końca zbadany.
Możemy jednak uznać, że przyniosło to zmianę i daje nam możliwość ponownego przemyślenia naszych możliwości i rozpoczęcia myślenia nieszablonowego i innego niż nasze tradycyjne podejście do testowania. Deweloperzy stawiają na swoją kreatywność i opracowują różne odmiany aplikacji, więc nawet my, jako testerzy, mamy dużo więcej do zrobienia!
Mam nadzieję, że miałbyś świetny wgląd w narzędzia do testowania penetracji aplikacji mobilnych i dostawców usług !!
rekomendowane lektury
- Testowanie wydajności w chmurze: dostawcy usług testowania obciążenia w chmurze
- TOP 10 zarządzanych firm usługowych w 2021 roku
- Przewodnik dla początkujących po testach penetracyjnych aplikacji internetowych
- Przewodnik po testowaniu wydajności aplikacji mobilnych
- Testowanie aplikacji mobilnych w chmurze: pełny przegląd
- 10 najlepszych dostawców usług testowania mobilnego
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Różnica między testami na komputerach stacjonarnych, serwerach klienckich i testach internetowych