Mobile Application Development and Security - Cheatsheet.pdf

Mobile Application Development and Security - Cheatsheet
Mobile Application Development and Security - Cheatsheet Architektur mobiler Anwendungen Definition: Grundlegende Struktur und Design von mobilen Anwendungen, die den Ablauf und die Interaktion zwischen verschiedenen Komponenten definiert. Details: Komponenten: UI, Backend, API, Datenbank Design-Muster: MVC, MVP, MVVM Plattformen: iOS, Android Technologien: Native, Hybrid, Cross-Platform Sicherhei...

© StudySmarter 2024, all rights reserved.

Mobile Application Development and Security - Cheatsheet

Architektur mobiler Anwendungen

Definition:

Grundlegende Struktur und Design von mobilen Anwendungen, die den Ablauf und die Interaktion zwischen verschiedenen Komponenten definiert.

Details:

  • Komponenten: UI, Backend, API, Datenbank
  • Design-Muster: MVC, MVP, MVVM
  • Plattformen: iOS, Android
  • Technologien: Native, Hybrid, Cross-Platform
  • Sicherheitsaspekte: Authentifizierung, Datenverschlüsselung, sichere API-Kommunikation

Unterschiede zwischen iOS und Android

Definition:

Vergleich zwischen iOS und Android Plattformen in Bezug auf Mobile Application Development und Sicherheit.

Details:

  • Entwicklungsumgebungen: iOS nutzt Xcode und Swift/Objective-C, Android verwendet Android Studio und Java/Kotlin.
  • App-Verteilung: iOS über den Apple App Store, Android über den Google Play Store und andere Drittanbieter.
  • Sicherheitsrichtlinien: iOS hat striktere Prüfprozesse für Apps, während Android offener, aber anfälliger für Malware ist.
  • Betriebssystem-Updates: iOS bietet häufige Updates für alle kompatiblen Geräte, während Android-Updates oft vom Gerätehersteller abhängen.
  • Benutzeroberfläche: iOS ist bekannt für seine einheitliche Benutzeroberfläche, Android bietet mehr Anpassungsmöglichkeiten.

Sicherheitsrisiken in mobilen Anwendungen und Bedrohungsmodelle

Definition:

Sicherheitsrisiken in mobilen Anwendungen: Schwachstellen und Bedrohungen, die Integrität, Vertraulichkeit und Verfügbarkeit von Daten gefährden; Bedrohungsmodelle: systematische Identifikation und Bewertung potentieller Bedrohungen.

Details:

  • Datendiebstahl: durch ungeschützte API-Schnittstellen oder unsichere Datenübertragung.
  • Schadsoftware: installiert durch bösartige Apps oder Schwachstellen in Apps.
  • Phishing-Angriffe: Benutzer durch gefälschte Apps oder Links zur Preisgabe sensibler Informationen verleitet.
  • Bedrohungsmodelle: STRIDE, DREAD, und OWASP Mobile Top Ten.
  • STRIDE: Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege.
  • DREAD: Damage Potential, Reproducibility, Exploitability, Affected Users, Discoverability.

Statische Codeanalyse und dynamische Analyse

Definition:

Statische Codeanalyse: Untersuchung des Quellcodes, ohne das Programm auszuführen. Dynamische Analyse: Untersuchung des Programms während der Ausführung im Laufzeitumfeld.

Details:

  • Statische Codeanalyse:
  • - Findet Sicherheitslücken, Syntaxfehler und Schwachstellen vor der Laufzeit.
  • - Tools: SonarQube, PMD, FindBugs.
  • Dynamische Analyse:
  • - Bewertet das Verhalten der Anwendung während der Ausführung.
  • - Überwacht Speicherverbrauch, Performance und Runtime-Anomalien.
  • - Tools: Valgrind, Dyba, Instrumentation Frameworks.

Sichere Codierungspraktiken und sichere APIs

Definition:

Implementierung von Sicherheitsmechanismen beim Schreiben von Code und beim Design von APIs, um Schwachstellen zu minimieren und Angriffe zu verhindern.

Details:

  • Verwende parameterisierte Abfragen (\texttt{Prepared Statements}) anstelle von dynamischem SQL.
  • Input-Validierung und -Sanitierung, besonders bei Benutzereingaben.
  • Vermeide harte Kodierung von Passwörtern und vertraulichen Informationen im Code.
  • Setze sichere Authentifizierungs- und Autorisierungsmechanismen ein (z.B. OAuth, JWT).
  • Über HTTPS kommunizieren, SSL/TLS verwenden.
  • Vermeide die Offenlegung detaillierter Fehlermeldungen an Endbenutzer.
  • Regelmäßiges Überprüfen und Aktualisieren von Abhängigkeiten und Bibliotheken.
  • \texttt{Rate Limiting} und Schutz gegen \texttt{Brute Force}-Attacken bei Authentifizierung.
  • Nutzung von API-Gateways und Firewalls zur Absicherung von APIs.
  • Implementierung von Logging und Monitoring.

Authentifizierung, Autorisierung und Datenschutz

Definition:

Authentifizierung: Identitätsprüfung. Autorisierung: Rechtevergabe. Datenschutz: Schutz persönlicher Daten.

Details:

  • Authentifizierung: Überprüfung der Benutzeridentität über Benutzername/Passwort, biometrische Daten oder Tokens.
  • Autorisierung: Erlaubnislevel, was ein Benutzer innerhalb einer Anwendung tun darf, z.B. *RBAC* (Role-Based Access Control).
  • Datenschutz: Schutz der Privatsphäre durch Verschlüsselung, Anonymisierung und gesetzliche Anforderungen wie DSGVO (Datenschutz-Grundverordnung).

Frameworks und Werkzeugen für plattformübergreifende Entwicklung

Definition:

Frameworks und Werkzeuge zur Entwicklung von Anwendungen, die auf mehreren Plattformen laufen (z.B., iOS, Android).

Details:

  • Xamarin: Erweiterbar, verwendet C#, integriert in Visual Studio.
  • React Native: JavaScript-basiert, ermöglicht native Komponenten, Hot-Reloading.
  • Flutter: Verwendet Dart, schnelle Entwicklung durch Hot-Reload, eigene UI-Engine.
  • Apache Cordova: Nutzt HTML, CSS, JavaScript, Zugriff auf native APIs über Plugins.
  • Ionic: Basierend auf Angular, verwendet Web-Technologien, unterstützt Progressive Web Apps.

Lebenszyklus und Performance-Optimierungen mobiler Anwendungen

Definition:

Lebenszyklus mobiler Anwendungen umfasst die Stadien von Erstellen über Ausführen bis zu Zerstören der Anwendung. Performance-Optimierungen zielen auf Verbesserung der Effizienz und Benutzererfahrung.

Details:

  • Lebenszyklus: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()
  • Wichtig für Speicherverwaltung und Energieeffizienz
  • Optimierungen: Code-Minimierung, effiziente Algorithmen, Ressourcenverwaltung
  • Spezifische Techniken: Lazy Loading, Caching, Database Indexing
  • Tools: Android Profiler, Xcode Instruments
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden