Entwicklung Sicherer Apps (Teil 2) Flashcards

1
Q

Was kann die Folge sein, wenn Kommunikationspartner nicht authentifiziert und Zertifikate nicht ausreichend überprüft werden?

(Insecure Communication)

A

Daten können abgefangen werden

Angreifer kann sich zwischenschalten

Identitäten werden missbraucht

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

Was sind Schutzmaßnahmen für Insecure Communication

A

SSL/TLS verwenden

Bei der Verwendung von Services von Drittanbietern (z.B. Social Network) immer auf deren verschlüsselte Version (z.B. über https) zurückgreifen

Sorgfältige auswahl von vertrauenswürdigen CAS

Zertifikate immer sorgfältig prüfen

Keinen sensiblen Daten über SMS, MMS, Notifications etc.

Sehr sensible Daten eventuell noch zusätzlich verschlüsseln vor Versenden über SSL/TLS

Certificate Pinning nutzen
Beispiel iOS: eigene Zertifikate in App Bundle einschließen und an Trust Object binden.

HSTS nutzen

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

Nenne Aspekte der Online Authentifikation

A

Nicht auf Offline-Authentifikation verlassen, kann auf Gerät mit Jailbreak evtl. umgangen werden

Authentifikation auf Client als gebrochen ansehen und durch Maßnahmen auf dem Server das System härten

Falls lokale Authentifikation verwendet wird (Offline-Authentifikation) sollte Code sein Integrität überprüfen um unautorisierte Änderungen zu erkennen

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

Was sind Schutzmaßnahmen für Lokale Verschlüsselung aus Credential?

A

Falls auf Client-Seite vertrauliche Daten gehalten werden diese durch App verschlüsseln

Schlüssel durch Key Derivation Function aus User Credential ableiten (z.B. Passwort)

Schlüssel nicht speichern

Dadurch wird Passwort für Datenzugriff benötigt, unabhängig von eventueller Verschlüsselung, die Smartphone automatisch realisiert

Jedoch: schlechtes UXD

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

Nenne Gründe für eine Insufficient Cryptography

A

Verwendung von ungeeigneten kryptographischen Verfahren (=gebrochene oder schwache Verfahren)

Falsche Verwendung von kryptographischen Verfahren

Fehlerhaftes Schlüsselmanagement:
Schlüssel für Angreifer lesbar
Schlüssel hardcoded im Binary
Schlüssel aus Dokumentation übernommen Der gleiche Schlüssel für alle Apps

Verwendung selbst ausgedachter/implementierter/kopierter kryptographischer Funktionen

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

Was sind Schutzmaßnahmen für insufficient Cryptography?

A

Möglichst keine sensiblen Daten lokal speichern
Dann muss auch nichts geschützt werden

Empfehlungen BSI zum Thema kryptographische Algorithmen beachten (siehe Grundlagenteil)

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

Nenne Gründe für ein Risiko durch Insecure Authorization

A

Fehler in Autorisierung in App

Z.B. Insecure Direct Object References

Z.B. Hidden Endpoints

Z.B. Übergabe Rolle eines Benutzers durch App
(Auf Smartphone mit Jailbreak kann Angreifer Rolle manipulieren)

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

Was sind Schutzmaßnahmen für Insecure Authorization

A

Ermittlung von Rollen und Berechtigungen ausschließlich im Backend und nur basierend auf Informationen aus dem Backend

Gegenmaßnahmen zu Insecure Direct Object References (siehe Kapitel zu Web Anwendungen)

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

Was kann man unter unsicherem Umgang mit Eingaben und Ausgaben verstehen?

A

Schwachstellen, die es einem Angreifer erlauben, die Benutzerschnittstelle einer Anwendung zum eigenen Vorteil zu manipulieren

Oft bei webbasierten Benutzerschnittstellen der Fall, dort müssen Eingaben mehrfach interpretiert werden

Beispiel: SQL Injection: Einfügen von Datenbankbefehlen in eine Eingabe, obwohl sie dort nicht erwartet wird.

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

Was ist ein Buffer Overflow?

A

Ziel eines Angreifers: Ausführung eigenen Codes auf Opfer-System

Vorgehen beim Buffer Overflow: zu viele Daten werden in einen zu kleinen reservierten Speicherbereich geschrieben

Daten werden unplanmäßig überschrieben

Geschicktes Überschreiben ⇨ ungewollter Ausführung von Schadcode

Fehler kommt durch unsichere Methoden für Eingabe/Ausgabe zustande

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

Was ist eine Race Condition?

Wann treten diese auf?

A

Race Conditions = Wettlaufsituationen

Tritt auf, wenn verschiedene Prozesse/Threads eine gemeinsame Information nutzen und sich gegenseitig beeinflussen können

Operationen und Entscheidungen auf der Basis gemeinsam genutzter
Informationen müssen atomar ablaufen => kein Wettbewerb

Auftretend häufig:

Beim Zugriff auf Schnittstellen und Daten

Bei der Verwendung von Authentifizierungs- und Sitzungsverwaltungstechniken

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

was sind beim unsicheren Umgang mit Berechtigungen und Ressourcen die Expliziten und Impliziten Berechtigungen?

A

Explizite Berechtigungen: Code wird mit zu vielen Rechten ausgeführt

Implizite Berechtigungen: Sicherheit hängt davon ab, dass ein Benutzer eine gewisse Information nicht hat (z.B. Ort einer Konfigurationsdatei, Wissen über eine URL)

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

Was ist das Risiko durch Code Tampering?

A

Angreifer können Binary der App ändern und über anderen App Store anbieten (Android)

Beispiel: Werbe-Framework ändern

Angreifer kopiert eine App und hinterlegt eigenen Werbe-ID und stiehlt damit werbeeinnahmen

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

Was sind Schutzmaßnahmen für Code Temparing?

A

Angriff nicht unter iOS möglich, da dort zentraler App-Store

Jailbreak Detection
Z.B. Testen auf Vorhandensein eines Telnet-Zugangs, Jailbreak binaries,…

Überprüfung, ob Code vom Code zur Compile-Zeit abweicht

Applications Signing (Apps Signieren - prüfen wer signiert hat)

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

Was versteht man unter Reverse Engineering?

A

Reverse Engineering = Analyse der Software, um den Aufbau der App zu verstehen und Source Code wiederherzustellen

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

Was ist eine Schutzmaßnahme für recerse Engineering?

A

Obfuscation Tools verschleiern Code und erschweren Reverse Engineering

17
Q

Was versteht man unter Extraneous Functionality?

A

Extraneous = belanglos

Entwickler belassen teilweise Code in Apps, der für andere Zwecke diente oder nur zum Testen notwendig war

Code kann interessante Informationen enthalten
Z.B. Passwörter in Kommentaren

18
Q

Was ist eine Schutzmaßnahme gegen Extraneous Functionality?

A

Manuelles Code Review vor Veröffentlichung der App

z.B Überprüfen, ob aller Test Code entfernt wurde