Entwicklung Sicherer Apps (Teil 1) Flashcards

1
Q

Was sind laut OWASP die Top 10 Risiken für Apps?

A
M1: Improper Platform Usage 
M2: Insecure Data Storage 
M3: Insecure Communication 
M4: Insecure Authentication 
M5: Insufficient Cryptography 
M6: Insecure Authorization 
M7: Client Code Quality
M8: Code Tampering
M9: Reverse Engineering 
M10: Extraneous Functionality
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind Gründe für Inproper Plattform Usage?

A

Fehlerhafte Nutzung von Plattform-Features

Fehlende Nutzung von vorhandenen Sicherheitsmechanismen

Beispiel: Speicherung von Passwörtern im App-Local-Storage statt in dedizierten Speicherorten (z.B. Keychain unter iOS)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist das Secure Enclave?

A

ist ein Zentrales und dediziertes Schutzkonzept
In Apple Systems on Chip (SoCs) integriert

Vom Hauptprozessor isoliert (Bestimmte Region im Processor wird dafür verwendet)

Arbeitet mit verschiedenen Komponenten (z.B Kernel, Bootloader, Firmware)

Damit wird Integrität und Authentizität des ausgeführten Codes sichergestellt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie funktioniert der Secure Enclave grob?

A

Startvorgang:
Temporärer Schlüssel aus UID abgeleitet, welche verwendet wird, um Teil des Speichers des Geräts zu verschlüsseln

Schlüssel zum Schutz von Daten im Dateisystem zusätzlich mit Anti-Replay-Zähler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welche zwei unterschiedliche Schlüsselarten gibt es?

Wie unterscheiden sich diese?

A

Geräte ID (UID) und Gerätegruppen-ID (GID)

UID:

  • eindeutig für Gerät,
  • in Secure Enclave eingebrannt
  • Kann nicht ausgelesen werden

GID:

  • eindeutig für Geräteklasse
  • in Secure Enclave kompiliert
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wenn wir 2 * Iphone11 und 3 * Iphone8 haben. Wie viel UIDs und GIDs ergeben sich?

A

UIDs = 5

GIDs = 2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Schlüssel gibt es in der Dateiverschlüsselung?

Was ergeben diese Schlüssel?

A
  • Hardware Schlüssel
  • Codeschlüssel
  • Klassen Schlüssel
  • Dateisystem Schlüssel
  • Dateischlüssel

Diese Schlüssel hängen voneinander ab!
Bilder eine Schlüssel-Kaskade

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist die Aufgabe vom Dateischlüssel, Klassenschlüssel und Dateisystemschlüssel?

A

Dateischlüssel:
Zum Schutz von Dateien
In Datei-Metadaten enthalten
Durch einen/mehrere Klassenschlüssel geschützt

Klassenschlüssel:
Geschützt durch UID der Hardware oder durch Code des Benutzers (abhängig von Klasse)

Dateisystemschlüssel:
Zur Verschlüsselung der Metadaten einer Datei Geschützt durch UID der Hardware

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Dateisicherheitsklassen kennen Sie von IOS?

Was bedeuten diese?

A

Klasse „Vollständiger Schutz“:
Klassenschlüssel geschützt mit Schlüssel aus Code und UID
Entschlüsselter Klassenschlüssel 10
Sekunden nach Sperren des Geräts durch Benutzer verworfen (wenn „Code anfordern > Sofort“ aktiviert ist)

Klasse „Geschützt, außer wenn offen“:
Manche Dateien müssen geschrieben werden, wenn Gerät gesperrt ist (z.B. E- Mail-Anhänge, die im Hintergrund geladen werden)
Hier werden temporäre Schlüssel genutzt so lange, bis Gerät entsperrt
Temporärer Dateischlüssel durch asymmetrischen Public Key geschützt, private Key nur der Secure Enclave bekannt

Problem: Wenn kein Nutzer angemeldet, kein Code/TouchID abhängiger Schlüssel verfügbar

Klasse „Geschützt bis zur ersten Benutzerauthentifizierung“:

Wie Klasse „vollständiger Schutz“, jedoch wird entschlüsselter Klassenschlüssel beim Sperren des Geräts nicht aus dem Speicher gelöscht

Ähnlich zu Festplattenverschlüsselung auf Desktop-Rechnern

Schützt gegen Angriffe, die einen Neustart beinhalten

Standardklasse für Apps von Drittanbietern, die keiner anderen
Datensicherheitsklasse zugewiesen wurden

Klasse „Kein Schutz“:

Klassenschlüssel nur mit UID geschützt und im Effaceable Storage gespeichert

Damit über Gerät zugänglich

Vorteil jedoch: schnelle Fernlöschung

(Man sollte sich überlegen, welche Klassen für welche Daten geeignet sind)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist der Schlüsselbund?

A

Schlüsselbund speichert sicher Passwörter und andere kurze, aber vertrauliche Datensätze für Apps

Als SQLite-Datenbank implementiert (also im Dateisystem gespeichert)

Securityd-Daemon legt fest, auf welche Schlüsselbundelemente ein Prozess oder eine App zugreifen kann

Zugriffsgruppen ermöglichen es, Schlüsselbundeinträge zwischen Apps eines Herstellers zu teilen

Vorteile:
Alle Passwörter an einem Ort
Zufällige Passwortgenerierung
Man muss sich nur ein Passwort merken (Master Passwort)

Nachteile:
Hat jemand mein Masterpasswort, hat er vollen Zugriff auf alles
Master-Passwort darf nicht vergessen werden
Ich muss Anbieter vertrauen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist die App-Codesignierung unter IOS?

A

Ausführbarer Code muss mit einem von Apple ausgegebenen Zertifikat signiert worden sein.

IOS Kernel legt nach Start fest, welche Benutzerprozesse und Apps ausgeführt werden dürfen. Eine nicht vertraunswürdige App wird blockiert. (System startet trotzdem)

Sicherstellung von Qualität und Sicherheit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie kann man sicher Daten unter IOS speichern?

A

Immer so wenig Daten wie möglich speichern

Sandboxing (Trennung von anderen Daten)

Kleine, vertrauliche Daten in der Keychain speichern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie kommunizieren Apps?

A

Inter-Application Communication über Protokoll XPC

Alle Anwendungen bleiben isoliert in eigener Sandbox, XPC vermittelt zwischen Apps

Sender schickt Nachricht/Anfrage - Empfangende App kann entscheiden, ob sie die Anfrage annimmt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly