Das Ziel von Penetrationstests für mobile Anwendungen (Apps) ist die Feststellung von Schwachstellen auf Applikationsebene, um die Sicherheit der Daten Ihrer Kunden und Ihrer Organisation selbst zu erhöhen. Unsere Penetrationstester überprüfen beispielsweise Authentifizierungs- und Autorisierungsmechanismen, Ein- und Ausgabevalidierung, Kommunikationssicherheit sowie die sichere Speicherung von sensiblen Daten. Der Fokus der Pentests wird bereits im Vorfeld mit Ihnen abgestimmt. Neben generellen Prüfungen, die sich beispielsweise an den OWASP-Mobile-Top-10-Risks orientieren, sind auch spezielle Prüfungen der Resilienz gegen Reverse Engineering möglich, um den Schutz Ihres geistigen Eigentums bewerten zu können. Die Resultate werden in einem Prüfbericht dokumentiert, der eine Zusammenfassung der Ergebnisse und eine detaillierte Darstellung der Befunde inklusive möglicher Maßnahmen zur Behebung enthält.
Durch die voranschreitende Digitalisierung und den hohen Bedarf, überall per Smartphone auf Dienste und Services zugreifen zu können, sind mobile Anwendungen ein lohnenswertes Ziel und schon längst im Fokus von maliziösen Akteuren. Mobile Penetrationstests gewährleisten die Sicherheit mobiler Anwendungen, indem Sicherheitslücken identifiziert und für die Behebung dokumentiert werden. Durch App-Penetrationstests identifizierte und behobene Schwachstellen dienen der Prävention von erfolgreichen Angriffen auf Ihre Daten und die Ihrer Nutzer.
Penetrationstests sind empfehlenswert, wenn Ihre mobile Applikation schützenswerte Daten wie beispielsweise personenbezogene Daten, Zahlungsdaten, Zugangsdaten oder Gesundheitsdaten speichert, übermittelt oder verarbeitet. Durch die sich ständig verändernden Technologien und den damit verbundenen Wandel der Bedrohungslandschaft sollten Penetrationstests in regelmäßigen Abständigen und nach Änderungen mit Security Impact durchgeführt werden. Anwendungen mit besonderem Schutzbedarf, die in der Regel eine Zulassung der entsprechenden Vorschriften bzw. Regularien benötigen, erfordern häufig auch den Nachweis von Penetrationstests. Ein Beispiel sind die digitalen Gesundheitsanwendungen (DiGA), die einen Penetrationstest erfordern, um den geltenden Standards und Vorschriften nach der 1. DiGAVÄndV (Erste Verordnung zur Änderung der Digitalen Gesundheitsanwendungen-Verordnung) zu entsprechen.
Ein App-Pentest deckt eine Vielzahl von Tests für iOS- und Android-Anwendungen ab, einschließlich nativer und hybrider Apps. Im Rahmen der Tests werden Sicherheitslücken und Schwachstellen in der Anwendungssicherheit identifiziert, wie beispielsweise eine unsichere Datenübertragung, eine fehlerhafte Authentifizierung oder die unsichere Speicherung sensibler Daten. Zudem werden die Netzwerksicherheit und Gerätesicherheit geprüft, um mögliche Schwachstellen in der Verschlüsselung, der Gerätekonfiguration oder der Betriebssystemintegrität aufzudecken. Zusätzlich kann auch die Resilienz gegen Reverse Engineering geprüft werden.
Darüber hinaus können API-Tests durchgeführt werden, um die Sicherheit der Schnittstellen zu überprüfen, die von der mobilen Anwendung genutzt werden. Quellcode-Audits können ebenfalls Teil der Pentests von Apps sein, um potenzielle Schwachstellen in der Anwendungslogik oder in Drittanbieter-Bibliotheken zu identifizieren.
Der Fokus liegt darauf sicherzustellen, dass sowohl die iOS- als auch die Android-Anwendungen robust und sicher sind, um Benutzerdaten zu schützen und potenzielle Angriffsvektoren zu minimieren. Der App-Pentest gewährleistet die Einhaltung von Best Practices und Standards, um die Sicherheit zu gewährleisten und das Vertrauen der Benutzer in die Anwendung zu stärken.
Um Ihre Ziele und Erwartungen zu erfüllen, sind wir auf eine enge Zusammenarbeit mit Ihnen angewiesen. Unsere Pentester begleiten Ihr Projekt ab der Angebotserstellung bis zum Abschluss des Projekts, um Ihre Ziele möglichst effizient zu erreichen und gleichzeitig eine angemessene Testabdeckung gewährleisten zu können. Aus diesem Grund ist es wichtig, feste technische Ansprechpartner zu definieren, die dem Prüfteam über den gesamten Projektzeitraum für Rückfragen zur Verfügung stehen. Neben technischen Ansprechpartnern, die mit dem Prüfobjekt vertraut sind, benötigt unser Prüfteam zudem die folgenden Informationen:
Die benötigten Informationen sind von der gewünschten Prüftiefe und von der gewählten Prüfmethode abhängig. Ein Penetrationstest kann beispielsweise allein auf Basis von öffentlichen Informationen (Black-Box) durchgeführt oder im White-Box-Verfahren mit detaillierten Informationen, bis hin zum Zugriff auf den Quellcode der Anwendungen, angereichert werden.
Durch eine enge Zusammenarbeit und Ihre aktive Unterstützung bei der Planung können wir einen effektiven und umfassenden Penetrationstest für Ihre mobile Anwendung durchführen.
In der Praxis ist jeder Mobile-Pentest immer individuell, um eine umfassende Prüfung im vereinbarten Zeitrahmen zu ermöglichen. Die Schwerpunkte der Untersuchung werden auf Grundlage unserer langjährigen Erfahrung aus hunderten von Mobile-Penetrationstests und in Abstimmung mit Ihnen festgelegt. Besondere Aufmerksamkeit gilt den risikobehafteten Schnittstellen mobiler Anwendungen – Ihre individuellen Anforderungen werden ebenfalls berücksichtigt.
Zu Beginn des Penetrationstests stimmt das Prüfteam alle Rahmenbedingungen mit Ihnen ab, um einen reibungslosen Projektablauf gewährleisten zu können. Die Untersuchung beginnt mit der Verifikation der Rahmenbedingungen. Unser Prüfteam stellt sicher, dass die mobile Anwendung verfügbar und der Zugriff auf Backend-Systeme möglich ist. Gemeinsam werden in dieser Phase auch die Schwerpunkte des Pentests abgestimmt und nötige Benutzerkonten ausgetauscht. Das Ziel ist, sowohl technische als auch geschäftliche Risiken im Test und bei der anschließenden Bewertung zu berücksichtigen.
Sind die Rahmenbedingungen geklärt, folgt die Phase der Informationsbeschaffung, auch "Reconnaissance" genannt. Hierbei werden manuelle und toolgestützte passive/statische Analysetechniken angewendet, um Informationen über die mobile Anwendung zu sammeln. Zudem wird die Anwendung aktiv erkundet, um einen umfassenden Überblick über die App zu erhalten. Das Ziel des Prüfteams lautet, eine detaillierte Auflistung potenzieller Angriffsvektoren wie beispielsweise Interaktionen mit dem Betriebs- und Dateisystem, API-Endpunkte, Benutzerinteraktionen oder mobile Backend-Services zu erstellen. Bei einem White-Box- oder Grey-Box-Test ist es hilfreich, wenn Sie vorab möglichst vollständige Informationen zum Aufbau der mobilen Anwendung bereitstellen, um den Fokus der Tester auf das Auffinden und Ausnutzen von Schwachstellen zu legen.
Basierend auf den gesammelten Informationen führt das Prüfteam in der anschließenden Phase der "Exploitation" manuelle Tests und dynamische Analysen durch. Dabei werden bereits identifizierte Schwachstellen verifiziert und die zehn wichtigsten Risiken für mobile Anwendungen (OWASP-Mobile-Top-10 Level 1 und Level 2) untersucht. Die Pentester überprüfen in dieser Phase die mobilen Anwendungen auf fehlerhaftes, ungewöhnliches oder anderweitig sicherheitsrelevantes Verhalten. Nicht alle Schwachstellen sind sofort erkennbar oder können ohne Weiteres ausgenutzt werden. Daher nutzen die Prüfer ihre Erfahrung und Kreativität, um potenzielle Angriffsvektoren zu identifizieren. Während des mobile Penetrationstests werden Schritte aus den Phasen "Reconnaissance" und "Exploitation" in der Regel mehrmals wiederholt, um flexibel auf neue Erkenntnisse zu reagieren und eine umfassende Prüfung der mobilen Anwendung durchzuführen. Der hybride Ansatz ermöglicht es dem Prüfteam, in kürzester Zeit einen tiefen Einblick in die Funktionsweise der Anwendung zu erlangen und so auch komplexe Angriffswege sowie Architektur- und Logikfehler zu identifizieren, welche bei rein automatisierten Prüfungen wie Schwachstellenscans unentdeckt bleiben würden.
In dieser Phase erstellt das Prüfteam einen Prüfbericht, der Ihnen ermöglicht, geeignete Maßnahmen zu ergreifen, um identifizierte Schwachstellen zu beheben. Gleichzeitig dient Ihnen der Prüfbericht als Nachweis über die Durchführung eines Penetrationstests gegenüber Dritten.
Während des gesamten Projektablaufs dokumentierten die Pentester identifizierte Informationen, Angriffe und Ergebnisse. Bei der Erstellung der Prüfberichte legen wir besonderen Wert auf Qualität, Vollständigkeit und Nachvollziehbarkeit der enthaltenen Informationen. Der Prüfbericht sollte sowohl für das Management verständlich sein als auch die technischen Details für die Entwickler enthalten, um die Ursachen der Schwachstellen nachvollziehen, reproduzieren und beheben zu können. Ein Prüfbericht beginnt daher mit einer Management Summary, in der die wesentlichen Ergebnisse und Empfehlungen zusammengefasst sind. Anschließend werden die Testschritte, Prüfergebnisse, Schwachstellen-Details sowie Handlungsempfehlungen zur Behebung in ausführlicher Form beschrieben. Ziel ist es, die Ergebnisse verständlich und nachvollziehbar darzustellen und Ihnen eine Referenz für die Behandlung der identifizierten Risiken an die Hand zu geben.
Alle Untersuchungsschritte orientieren sich an der gängigen Praxis und können in ähnlicher Form auch von Angreifern mit bösen Absichten durchgeführt werden. Das Prüfteam passt die einzelnen Prüfschritte während des Penetrationstests an anwendungsspezifische Gegebenheiten und Risiken an, um im Testzeitraum einen repräsentativen Überblick über die in den geprüften mobilen Applikationen vorhandenen Schwachstellen zu ermitteln. Typische Schwachstellen, die im Rahmen der Sicherheitsüberprüfung untersucht werden, sowie sinnvolle Prüfschritte werden beispielhaft im Folgenden benannt.
In der Regel speichern mobile Anwendungen Anmeldeinformationen auf den Geräten zwischen, um die Usability nicht durch häufige Anmeldeaufforderungen zu verringern. Das Prüfteam analysiert, wie diese und andere sensible Daten gespeichert werden, um zu verhindern, dass die Daten durch unsichere, unnötige oder unsachgemäße Speicherung offengelegt werden. Mithilfe einer Kombination aus statischen und dynamischen Analysen werden relevante Informationen und deren Speicherorte identifiziert. Basierend auf den identifizierten Informationen wird im Anschluss geprüft, ob die Speicherorte und die umgesetzten Schutzmaßnahmen die Vertraulichkeit der Daten wahren können.
Es wird geprüft, ob Authentifizierungs- und Autorisierungsmechanismen umgangen werden können, wodurch es möglich ist, dass Unbefugte Zugriff auf die Anwendung oder auf die Daten der Anwendung erhalten. Für die Prüfung erfasst das Prüfteam die Authentifizierungs- und Autorisierungsprozesse zur Laufzeit der Anwendung, um darauf aufbauend mögliche Schwachstellen zu identifizieren. Mithilfe von Werkzeugen für die Instrumentalisierung von mobilen Anwendungen und unter Verwendung von HTTP-Interception-Proxys versucht das Prüfteam, die implementierten Mechanismen zu manipulieren und unvorhergesehenes oder ungewolltes Verhalten zu provozieren.
In diesem Prüfschritt wird die Sicherheit der Kommunikation zwischen der mobilen Anwendung und dem Backend geprüft. Durch einen unzureichenden Schutz der Kommunikation kann es Dritten möglich sein, die Kommunikation mitzulesen und so an sensitive Informationen zu gelangen oder eine Inkonsistenz von Daten herbeizuführen. Das Prüfteam analysiert die eingesetzte Transportverschlüsselung, mögliche End-to-end-Verschlüsslung und weitere Maßnahmen wie Zertifikats-Pinning und CA-Pinning, um Schwächen zu identifizieren.
Das Prüfteam nutzt in diesem Schritt gängige Methoden, um die Logik der Anwendung offenzulegen. Um umfassende statische und dynamische Analysen durchzuführen, prüft das Prüfteam Maßnahmen wie Quellcode-Verschleierung, Anti-Tampering und Root/Jailbreak-Detection. Die Maßnahmen werden dabei in der Regel Black-Box aus Sicht eines Angreifers ohne Insiderinformationen geprüft, um eine möglichst realitätsnahe Prüfung zu ermöglichen. Basierend auf den identifizierten und umgangenen Schutzmaßnahmen schätzt das Prüfteam die Aufwände für eine vollständige Kompromittierung der Anwendungslogik ein.
Die Anwendung wird durch das Prüfteam auf mögliche Fehlkonfigurationen geprüft, die es Dritten ermöglichen können, Daten auszuspähen, die Integrität von Daten zu beinträchtigen oder Einfluss auf die Verfügbarkeit zu nehmen. Für die Prüfung identifiziert das Prüfteam alle relevanten Konfigurationsdateien und deren Verwendung, um die Auswirkungen der Konfiguration zu bestimmen.
In diesem Prüfschritt liegt der Fokus auf der Identifizierung und Bewertung der Sicherheitsmaßnahmen, die zum Schutz vertraulicher Daten innerhalb der mobilen Anwendung verwendet werden. Dabei werden gängige Speicherorte wie lokale Datenbanken, Dateisysteme und Zwischenspeicher untersucht, um festzustellen, ob vertrauliche Informationen wie persönliche Daten oder Authentifizierungsinformationen sicher gespeichert werden. Ziel ist es, die Wirksamkeit der implementierten Sicherheitsmaßnahmen zu bewerten und das Risiko einer unautorisierten Offenlegung oder Manipulation von Daten einzuschätzen.
In diesem Schritt steht die verwendete Kryptografie im Fokus des Prüfteams. Es wird geprüft, ob die eingesetzten kryptografischen Methoden die Vertraulichkeit und Integrität vertraulicher Daten angemessen schützen. Dabei identifiziert das Prüfteam die Punkte der Anwendung, an denen kryptografische Methoden eingesetzt und parametrisiert werden. Basierend auf den identifizierten kryptografischen Methoden werden diese auf bekannte Schwächen und die richtige Verwendung geprüft. Die Methoden und deren Anwendung, z. B. inklusive der Schlüsselverwaltung, wird analysiert und auf Angemessenheit geprüft. Die Verwendung unsicherer oder nicht anwendungsgerechter Kryptografie kann Angreifern ermöglichen, vertrauliche Daten zu stehlen oder zu manipulieren.