Die mobile Anwendungslandschaft
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Beschreiben der mobilen Anwendungslandschaft
- Feststellen der Verbreitung mobiler Anwendungssicherheit
- Definieren der Terminologie im Zusammenhang mit mobiler Anwendungssicherheit
- Unterscheiden zwischen Anwendungssicherheit bei webbasierten und mobilen Anwendungen
- Beschreiben der Angriffsfläche mobiler Anwendungen
Bevor Sie beginnen
Wenn Sie die Module Anwendungssicherheit – Grundlagen und Aufgaben eines Anwendungssicherheitsingenieurs durchgearbeitet haben, dann kennen Sie sich bereits mit Anwendungssicherheit aus und wissen, wie ein Anwendungssicherheitsingenieur Anwendungen schützt. Jetzt sehen wir uns an, wie man die Cybersicherheit einer mobilen Anwendung verbessern kann.
Die mobile Anwendungslandschaft
Unsere Smartphones sind wahre Wunderwerke der Technik: Sie können 4K-Videos aufnehmen, Übersetzungen aus Fremdsprachen liefern, Diktate aufnehmen, die Herzfrequenz überwachen und Vieles mehr. Der rasante technologische Fortschritt, die Integration von Technologien wie künstliche Intelligenz (KI), Blockchain und Mobilfunknetze der fünften Generation (5G) haben unsere Sichtweise auf mobile Anwendungen (Apps) revolutioniert.
Entwickler mobiler Anwendungen müssen sich unbedingt über die sich schnell ändernden Trends auf dem Laufenden halten und über fundierte technische Kenntnisse verfügen, um innovative Apps für praktisch jedes Gerät zu entwickeln. Außerdem ist das Thema Cybersicherheit bei der Anwendungsentwicklung wichtiger denn je.
Da die Verbreitung von Mobilgeräten und Anwendungen weiter zunimmt, gehen immer mehr Unternehmen zu einer "Mobile First"-Designstrategie über. Der "Mobile First"-Ansatz zielt darauf ab, bessere Benutzererlebnisse zu schaffen, indem der Designprozess beim kleinsten Bildschirm beginnt, also dem Bildschirm mobiler Endgeräte. Die ersten Interaktionen von Kunden mit einem Unternehmen finden zum Großteil auf ihren Smartphones und Tablets statt. Dies bringt ganz eigene Sicherheitsprobleme mit sich und erfordert eine umfassende Strategie für die mobile Anwendungssicherheit. Wenn Sie Entwürfe und Prototypen Ihrer Websites zunächst für mobile Geräte erstellen, können Sie damit sicherstellen, dass die Benutzererfahrung auf jedem Gerät nahtlos ist.
Die Verbreitung mobiler Anwendungssicherheit
Heutzutage hat jedes größere Unternehmen eine mobile Anwendung, um einfacher mit seinen Kunden in Kontakt zu treten. Außerdem nutzen mehr Benutzer als je zuvor mobile Anwendungen für viele digitale Aufgaben, vom Abrufen von Nachrichten, E-Mails und sozialen Medien bis hin zu Online-Einkäufen und Bankgeschäften.
Diese mobilen Anwendungen haben Zugriff auf große Mengen an sensiblen Daten, die vor unbefugtem Zugriff geschützt werden müssen. Über diese Anwendungen können Unternehmen verwertbare Informationen wie Standort, Nutzungsstatistiken, Telefonnummern, Vorlieben, Abneigungen und andere relevante Metriken über Benutzer sammeln. Wenn die Daten in diesen mobilen Anwendungen in die falschen Hände gelangen, kann dies dem Benutzer schaden.
Sicherheitsexperten haben das Ziel, das Risiko für die mobile Anwendungssicherung in ihren Unternehmen zu minimieren. Unter mobiler Anwendungssicherheit versteht man den Schutz hochwertiger mobiler Anwendungen und digitaler Identitäten vor Angriffen. Dazu gehören Gerätemanipulation, Reverse Engineering, Malware, Keylogger und andere Formen der Manipulation oder Beeinträchtigung. Und als Entwickler oder Sicherheitsexperte müssen Sie wohl oder übel die vielen Bedrohungen berücksichtigen, die auf mobile Anwendungen abzielen.
Definition der Terminologie im Zusammenhang mit mobiler Anwendungssicherheit
Bevor wir fortfahren, sollten wir uns mit einigen gängigen Begriffen aus dem Bereich der mobilen Anwendungssicherheit vertraut machen.
Begriff |
Definition |
---|---|
API |
Ein Software-Vermittler, der zwei Anwendungen ermöglicht, miteinander zu kommunizieren |
Authentifizierung |
Der Vorgang, bei dem eine Person identifiziert wird |
Autorisierung |
Der Vorgang, bei dem überprüft wird, ob die identifizierte Person die nötigen Berechtigungen für eine Handlung besitzt |
Puffer |
Ein Speicherbereich, der für die Speicherung von Daten reserviert ist und häufig beim Verschieben von Daten von einem Abschnitt eines Programms in einen anderen oder zwischen Programmen genutzt wird |
Pufferüberlauf |
Eine Anomalie, bei der ein Programm beim Schreiben von Daten in einen Puffer die Puffergrenzen überschreitet und benachbarte Speicherplätze überschreibt |
Entwicklungsplattform |
Eine Reihe von Standards, die es Entwicklern ermöglichen, Softwareanwendungen auf der Grundlage des richtigen Technologiestapels zu entwickeln |
Dynamisches Testen |
Eine Software-Testmethode zur Analyse des Laufzeitverhaltens des Codes |
Statisches Testen |
Eine Software-Testmethode, die den Quellcode einer Anwendung beurteilt, um Fehler in der Software zu erkennen, ohne den Code der Softwareanwendung tatsächlich auszuführen |
Design der Benutzererfahrung (UX) |
Ein Designansatz, bei dem der Schwerpunkt darauf liegt, die Anwendung einfacher und kohärenter zu machen und dem Benutzer die Navigation zu erleichtern |
Sicherheit bei Web- und mobilen Anwendungen im Vergleich
Eine Webanwendung ist eine Anwendung, die auf einer Website ausgeführt wird und auf die über einen Internetbrowser zugegriffen wird. Webanwendungen funktionieren wie herunterladbare Anwendungen, werden aber im Kontext des Browsers Ihres Telefons ausgeführt. Webanwendungen passen sich an das Gerät an, auf dem Sie sie anzeigen. Sie sind nicht an ein bestimmtes System gebunden und müssen nicht heruntergeladen oder installiert werden.
Bei mobiler Anwendungssicherheit liegt der Fokus auf der Softwaresicherheit mobiler Anwendungen auf Plattformen wie Android und iOS. Dies gilt für Anwendungen, die sowohl auf Mobiltelefonen als auch auf Tablets laufen. Bei mobiler Anwendungssicherheit werden Anwendungen auf Sicherheitsprobleme geprüft, und zwar im Kontext der Plattformen, für die sie entwickelt wurden, der Frameworks, mit denen sie entwickelt wurden, und der erwarteten Benutzer (z. B. Mitarbeiter oder Endbenutzer). Mobile Anwendungen können viel mehr Informationen über den Benutzer sammeln als Webbrowser, wie etwa Standort-, biometrische, Video- und Audiodaten.
Sehen wir uns einige der Unterschiede zwischen Web- und mobilen Anwendungen genauer an.
Code
Bei Webanwendungen besteht die Möglichkeit, sensiblen Code auf dem Server zu hosten, wo Angreifer keinen Zugriff darauf haben. Mobile Anwendungen enthalten dagegen erhebliche Mengen an Code (einschließlich Logik und Daten) auf dem Client-Gerät. Mobile Anwendungen stellen im Wesentlichen öffentlich verfügbaren Code dar und haben eine größere Angriffsfläche als Webanwendungen, da sie aus öffentlichen Stores heruntergeladen werden können und der Code damit für Analysen zur Verfügung steht.
Netzwerk
Bei Webanwendungen nutzt der Browser die Protokolle TLS (Transport Layer Security) und HTTPS (Hypertext Transfer Protocol Secure), um die Kommunikation über ein Computernetzwerk zu schützen. Bei mobilen Anwendungen muss die Anwendung den Netzwerkaufruf sicher codieren. Ingenieure für mobile Anwendungssicherheit müssen sensible Daten schützen, während sie das Netzwerk des Mobilfunkanbieters und das Internet durchlaufen, indem sie überprüfen, ob sichere Kommunikationsmethoden wie TLS und HTTPS verwendet werden.
Speicher
Bei Webanwendungen isoliert der Browser die Daten vom lokalen Speicher und den Dateien des Rechners. Bei mobilen Anwendungen muss die Anwendung richtig mit lokalen Dateien und Speicher umgehen. Das bedeutet, dass Ingenieure für mobile Anwendungssicherheit Schutzmaßnahmen gegen Anomalien wie Pufferüberläufe ergreifen müssen, bei denen ein Programm beim Schreiben von Daten in einen Speicherbereich die Grenze überschreitet und angrenzende Speicherbereiche überschreibt.
Segmentierung
Browser-Sandboxes isolieren Daten und Logik von Webanwendungen voneinander. Mobile Anwendungen sind dagegen in der Lage, Daten untereinander auszutauschen, indem sie in freigegebene oder offene Speicherorte schreiben. Back-End-APIs, die für die Verbindung von mobilen Anwendungen mit Servern verwendet werden, um Daten zu übertragen, können sensible medizinische, finanzielle und persönliche Daten offenlegen, wenn sie nicht ordnungsgemäß geschützt sind.
Die Angriffsfläche mobiler Anwendungen
Die Angriffsfläche beschreibt alle verschiedenen Punkte, an denen ein Angreifer in eine Anwendung eindringen und Daten exfiltrieren könnte. Die Angriffsfläche einer mobilen Anwendung umfasst:
-
Daten während der Übertragung: Die Summe aller Wege für Daten und Befehle in die Anwendung und aus der Anwendung
-
Der Code, der diese Wege schützt: Die Ressourcenverbindung und Authentifizierung, Autorisierung, Aktivitätsprotokollierung, Datenvalidierung und Codierung
-
Daten im Ruhezustand: Alle wertvollen Daten, die in der Anwendung verwendet und gespeichert werden, einschließlich Geheimnisse und Schlüssel, geistiges Eigentum, kritische Geschäftsdaten und personenbezogene Daten
-
Der Code, der diese Daten schützt: Verschlüsselung und Prüfsummen, Zugriffsprüfung, Datenintegrität und operative Sicherheitskontrollen
-
Back-End-APIs: Die Schnittstellen, die verwendet werden, um Services zu verbinden und Daten zu übertragen
Als Sicherheitsexperte ist es Ihre Aufgabe, die gesamte Angriffsfläche mobiler Anwendungen sorgfältig zu beurteilen. Für Angreifer waren mobile Anwendungen schon immer eine interessante Angriffsfläche. Und obwohl die großen mobilen Plattformen ihre eigenen Sicherheitskontrollen bereitstellen, um Entwickler bei der Erstellung sicherer Anwendungen zu unterstützen, bleibt es oft den Entwicklern überlassen, aus einer Vielzahl von Sicherheitsoptionen auszuwählen. Wenn die Entwickler die Sicherheitsfunktionen nicht richtig prüfen, implementieren sie diese möglicherweise so, dass Angreifer sie leicht umgehen können.
Zusammenfassung
Sie haben hier jetzt Einiges über die mobile Anwendungslandschaft, die Verbreitung mobiler Anwendungssicherheit und die zugehörige Terminologie erfahren. In der nächsten Einheit befassen wir uns mit den Aufgaben eines Ingenieurs für mobile Anwendungssicherheit und lernen die Fertigkeiten kennen, die ihm zum Erfolg verhelfen.
Ressourcen
-
Trailhead: Anwendungssicherheit – Grundlagen
-
Trailhead: Entwicklung einer Mobilitätsstrategie
-
Externe Website: OWASP (Open Web Application Security Project): Übersicht für die Analyse der Angriffsfläche
-
Externe Website: Fortinet: Angriffsfläche
-
PDF: National Institute of Standards and Technology (NIST): Überprüfen der Sicherheit mobiler Anwendungen