Penetrationstest-Tools und Dienstanbieter für mobile Anwendungen
Eine Schritt-für-Schritt-Anleitung zum Penetrationstest einer mobilen Anwendung (mit Tools und Dienstanbietern) – Vor einem Jahrzehnt begannen wir alle aufgrund der Entwicklung der Technologie, die IT-Branche zu verstehen, und das war die Zeit, in der wir alle erfuhren, wie und was mit Computersystemen gemacht werden kann.
Langsam wurde es möglich, Geld online über das Internet zu überweisen, anstatt persönlich zur Bank zu gehen und in der Warteschlange zu warten, um eine Transaktion durchzuführen. Aufgrund dieser Nachfrage begannen alle Banken, online zu arbeiten. Aber haben wir uns alle von Anfang an mit dieser Funktion wohl und sicher gefühlt, würden die meisten von uns mit „NEIN“ antworten.
Wenn es um Geld geht, denken wir alle zweimal nach.
Wenn etwas neu gestartet wird, möchten wir sicherstellen, dass es in allen Aspekten gesichert ist. Alle Websites, die wir heutzutage verwenden, durchlaufen mehrere Ebenen von Sicherheitsprüfungen, bevor sie der Öffentlichkeit zugänglich gemacht werden. Jetzt ändert sich der Trend wieder und wir wollen, dass alles auf Knopfdruck passiert, was nur mit Mobile Apps möglich ist.
Wie stellen Sie sicher, dass alle mobilen Apps, die Sie aus dem Play Store oder iStore herunterladen, sicher verwendet werden können? Bei jedem Download besteht die Gefahr böswilliger Angriffe. Aus dem gleichen Grund und um sicherzustellen, dass ihre App gegenüber anderen bevorzugt wird, sollten die App-Entwickler sicherstellen, dass ihre Apps erfolgreich auf Sicherheit getestet werden, bevor sie sie tatsächlich zum Download veröffentlichen.
Dieser Artikel informiert Sie über die Arten von mobilen Apps, was Sie von Penetrationstests für mobile Apps erwarten können, wie die Tests durchgeführt werden können, Dienstanbieter, die Dienstleistungen für das Testen mobiler Apps anbieten, und eine Liste einiger Tools, die verwendet werden können testen.
Mobile Apps und ihre Typen
Bevor wir näher darauf eingehen, wie man , eine mobile App penetriert testet ist es sehr wichtig sicherzustellen, dass Sie über etwas Hintergrundwissen über mobile Apps verfügen.
Lassen Sie uns die verschiedenen Arten von mobilen Apps verstehen.
Native mobile Anwendung
Native App bedeutet die Apps, die für eine bestimmte Plattform wie iOS oder Android erstellt wurden, speziell in einer bestimmten Programmiersprache geschrieben sind und aus den jeweiligen Stores wie dem Play Store von Google oder dem App Store von Apple installiert werden können. Sie bieten die benutzerfreundlichste Erfahrung und können einfach durch Klicken auf das Symbol bedient werden.
Einige gute Beispiele für native Apps sind Facebook, Instagram, Angry Birds usw. Das einzige Problem ist, dass diese Apps nicht mit allen Arten von Geräten funktionieren, wie z. B. wenn eine App für Android erstellt wurde, funktioniert sie nicht auf iOS und umgekehrt. Native Apps können auch ohne Internetverbindung funktionieren.
Mobile Browser-basierte Anwendung/Mobile Web-Apps
Mobile Web-Apps sind im Grunde Apps, die auf einem Browser ausgeführt werden und geräteunabhängig sind. Die gleiche App kann mit einem iOS-Gerät oder einem Android-Smartphone ausgeführt werden. Diese Apps sind meist in HTML5 geschrieben. Sie können einfach veröffentlicht werden, da keine Genehmigung von Google oder Apple erforderlich ist, um sie in ihrem Geschäft zuzulassen.
Web-Apps können direkt über die Download-Schaltfläche auf den jeweiligen Websites heruntergeladen werden. Ein typisches Beispiel wären unsere Einkaufsseiten wie Flipkart, Amazon usw.
Mobile Hybridanwendung
Dies sind die Anwendungen, die teilweise nativ und teilweise nicht nativ sind. Sie können sowohl von den Stores heruntergeladen als auch im Browser ausgeführt werden. Der Vorteil der Entwicklung dieser Art von Apps besteht darin, dass sie die plattformübergreifende Entwicklung unterstützen und somit die Gesamtentwicklungskosten reduzieren, was bedeutet, dass dieselbe Codekomponente auf einem anderen Gerät wiederverwendet werden kann. Außerdem können diese Apps schnell entwickelt werden.
Darüber hinaus können Sie mit hybriden mobilen Apps die Funktionen von nativen und Web-Apps nutzen.
Anbieter von Penetrationstests für mobile Apps
- Cipher – Cipher ist einer der besten Pen-Testing-Dienstleister für mobile Apps. Es ist als globales Sicherheitsunternehmen bekannt, das hocheffiziente SOC I- und SOC II Typ 2-zertifizierte verwaltete Sicherheits- und Beratungsdienste anbietet.
- Astra Pentest – Astra Pentest ist eine intelligente, einfache und elegante Lösung für Penetrationstests für mobile Apps. Ein Benutzer muss lediglich seine Android- oder iOS-App hochladen, und die Sicherheitsexperten von Astra führen eine Mischung aus SAST, DAST und manuellen Pentests durch, um den Sicherheitsstatus Ihrer App zu analysieren. Auf den Test folgt ein gründlicher Pentest-Bericht mit Schwachstellen, die nach Schweregrad kategorisiert sind, und Schritt-für-Schritt-Anleitungen für die Behebung jeder einzelnen.
Weitere Anbieter
- Appsec
- Procheckup
- Praetorian
- Cigital
- Wesecureapp
- Netspi
- CyberChops
- App ray
- Jumpsec
- Sciencesoft
Mobile App Penetration Testing Tools
- Core Impact Pro (Android, iOS, and Windows)
- zANTI (Android)
- Ianalyzer (iOS)
- DVIA (iOS)
Other Tools:
- Port Scanner (Android)
- Fing (Android & iOS)
- DroidSheep (Android)
- Intercepter-NG (Android)
- Nessus (Android)
- Droid SQLi (Android)
- Orweb (Android)
Einige beliebte mobile Apps zum Testen Ihrer Fähigkeiten
Im Allgemeinen gibt es einige bekannte anfällige mobile Anwendungen, die entwickelt wurden, um Benutzern eine Vorstellung von Mobile Testing zu vermitteln. Diese Apps weisen Schwachstellen auf, die den Benutzern/Testern helfen sollen, ihr Wissen über Penetrationstests zu üben und zu verbessern.
Was sollten Sie von Ihrem Test erwarten?
Der Grund für das Testen besteht darin, so viele Probleme wie möglich herauszufinden und sicherzustellen, dass die Probleme gefunden werden, bevor sie sich tatsächlich auf die Endbenutzer auswirken. Der Hauptgrund für ein mobiles Sicherheitsproblem liegt darin, dass Entwickler nützlichere Apps als gesicherte Apps erstellen möchten und es bei der Entwicklung der Apps möglicherweise zu einem Mangel an Sicherheitsbewusstsein kommt.
In diesem Abschnitt werde ich Sie durch einige Schwachstellen/Sicherheitslücken führen, auf die Sie im Rahmen des Tests achten sollten.
Häufige Sicherheitslücken, nach denen Sie suchen sollten:
- Datenspeicherformat – Es hängt alles vom Format ab, in dem die Daten gespeichert werden. Ob im Klartext oder in anderen Formaten. Zum Beispiel speichert Android den Benutzernamen und das Passwort im Klartext, was es wiederum anfälliger macht.
- Gespeicherte sensible Daten – Manchmal programmieren Entwickler Passwörter fest oder speichern sensible Informationen, die leicht kompromittiert werden können.
- Schlechte Codierungsmethoden – Die Verwendung einer Open SSL-Bibliothek, die anfällig für FREAK-Angriffe ist, ist eines der Dinge, auf die Sie achten sollten.
- Datenverschlüsselung – Es ist wichtig sicherzustellen, dass die Datenübertragung auf sichere Weise erfolgt und die gespeicherten Daten verschlüsselt sind.
- Schwache Passworterstellung – Apps sollten einen Mechanismus haben, um die Passwortstärke zu überprüfen. Schwache Passwörter sind immer anfällig für Angriffe.
- Datensynchronisierung – Die Übertragung von Daten oder die Datensynchronisierung sollte über eine sichere Methode erfolgen. Die Art und Weise, wie Daten mit der Cloud übertragen oder synchronisiert werden, kann zu Angriffen und damit zu Datenverlust führen.
Das Testen einer mobilen App bleibt im Vergleich zum Web-Testen immer noch eine Herausforderung, da mobile Apps ziemlich neu auf dem Markt sind und wir nicht mehrere Scanner wie im Web zur Verfügung haben und wir immer noch Spickzettel erstellen oder Möglichkeiten zum Scannen finden sicherere mobile Apps für die Endbenutzer erstellen lassen.
Schritte zum Penetrationstest für mobile Apps
Beim Penetrationstest der mobilen Apps sind bestimmte Schritte erforderlich.
Einrichtung der Testumgebung
Das Einrichten der Testumgebung ist ein Prozess für sich und kann ein separates Thema zum Lesen sein. Ich habe hier nicht viele Details zum Einrichten einer Testumgebung erwähnt, da es je nach Test unterschiedlich sein wird. Ich habe es hier nur eingefügt, weil ich diesen Schritt nicht komplett verpassen wollte.
Einige der Tests können auf einem echten Gerät durchgeführt werden, während andere auf Emulatoren durchgeführt werden können. Außerdem hängt es davon ab, welche Plattform wir testen möchten. Für Android-Anwendungen müssen wir möglicherweise SDKs installieren, und für iOS benötigen wir einen Jailbreak.
Entdecken/Anwendungsverständnis
Jede mobile Anwendung funktioniert anders, daher sollte der allererste Schritt beim Testen darin bestehen, mehr Informationen über die zu testende Anwendung zu finden oder herauszufinden. Dazu sollte auch gehören, wie sich die Anwendung mit dem Betriebssystem und dem Back-End-Server verbindet.
Es sollte die Suche nach verwendeten Bibliotheken, ein besseres Verständnis der Plattform und das Herausfinden, ob es sich bei der Anwendung um einen nativen/Web-/Hybridtyp handelt, umfassen. Dieser Schritt kann auch als Informationsbeschaffungsschritt bezeichnet werden .
Anwendungsanalyse/Bewertung
Als Teil dieses Schritts installieren Sie die Anwendung auf dem Mobilgerät und erstellen vor und nach der Installation einen Schnappschuss des Dateisystems und der Registrierung.
Analysieren Sie die verfügbaren Informationen, um Schwachstellen zu identifizieren, die ausgenutzt werden können, z. B. zu verstehen, wie sensible Informationen gespeichert, wie Daten übertragen werden, wie die Interaktion mit Dritten stattfindet usw.
Reverse-Engineering
Dies ist erforderlich, wenn der Tester nicht über den Quellcode verfügt. Codeüberprüfungen werden geplant, um zu verstehen, wie die Anwendung intern funktioniert. Die Absicht dabei ist, nach Schwachstellen zu suchen.
Verkehrsüberwachung
Konfigurieren Sie in diesem Schritt das Gerät so, dass es über einen Proxy weiterleitet, was wiederum beim Abfangen des Datenverkehrs und beim Auffinden von Fehlern wie Injektions- oder Autorisierungsproblemen helfen sollte.
Ausbeutung
Nachdem die Analyse und die Proxy-Einstellung abgeschlossen sind, kann eine Ausnutzung erfolgen, bei der Sie sich wie ein Hacker verhalten, Angriffe simulieren und versuchen, das System zu kompromittieren.
Das System ausnutzen und böswillige Aktivitäten ausführen.
Berichterstattung
Der obige Schritt würde den Haupttestschritt bilden, daher sollte der letzte Schritt darin bestehen, einen Bericht zu erstellen, in dem alle Ergebnisse aufgeführt sind. Ein guter Bericht sollte Details zu allen gefundenen Schwachstellen zusammen mit der Punktzahl der geschäftlichen und technischen Risikobewertung enthalten.
Ein weiterer wichtiger Punkt, der erwähnt werden kann, ist die Empfehlung für den Fix.
Fazit
Ich hoffe, Sie alle hatten Spaß beim Lesen dieses Artikels über Penetrationstests für mobile Apps. Mobilitätstests sind meiner Meinung nach immer noch ein nicht vollständig erforschtes Gebiet.
Wir können jedoch davon ausgehen, dass dies eine Änderung gebracht hat und uns die Gelegenheit gibt, unsere Fähigkeiten zu überdenken und damit zu beginnen, über den Tellerrand hinauszudenken und uns von unserem traditionellen Testansatz abzuheben. Entwickler setzen ihre Kreativität ein und lassen sich verschiedene Variationen von Apps einfallen, sodass selbst wir als Tester noch viel mehr zu tun haben!
Ich hoffe, Sie haben einen großartigen Einblick in Tools und Dienstanbieter für Penetrationstests für mobile Apps erhalten!