07 - Sicheres Programmieren Flashcards

1
Q

Arten von Sicherheit (3)

A

1) Netzwerksicherheit
2) Systemsicherheit
3) Anwendungssicherheit

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

Definition: Systemsicherheit

A

Diese Art von Sicherheit kann im Design und in der Implementation vom eigentlichen Systems sichergestellt werden indem Sicherheitseigenschaften der zugrundliegenden Plattform ausgenutzt werden.

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

Wo geht die Sicherheit von Software verloren? (3)

A

1) Architektur - Design des Software-Systems
2) Implementierung - Die Umsetzung der Architektur in Quellcode
3) Betrieb - Produktive Nutzung und die Konfiguration des Systems

  • Schwachstellen im früheren Stadium vermehren die Effekte von Problemen in den späteren Stadien - deswegen alle gleich sicher gestalten.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definition: Sicherheitsarchitektur

A

Eine Anzahl von high-level design principles und Entscheidungen die es einem Programmierer leicht machen “Ja” mit Vertrauen zu sagen und “Nein” mit Sicherheit zu sagen. Eine Sicherheitsarchitektur sollte alle Schritte der Informationssicherheit abdecken (prevent, detect, recover)

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

Designgrundsätze (8)

A

1) Economy of Mechanism
2) Fail-safe defaults
3) Complete mediation
4) Open design
5) Separation of privilege
6) Least privilege
7) Least common mechanism
8) Psychological acceptability

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

Definition: Economy of Mechanism

A

Funktioniert nach dem Prinzip das Sicherheitsmaßnahmen so einfach wie möglich sein sollten und somit Komplexität reduzieren. Nach diesem Ansatz können Design und Implementierung einfach sein um somit Fehler zu reduzieren. Da die meisten Sicherheitsprobleme Bugs sind, sollten diese mit einem einfacheren Mechanismus vermieden werden.

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

Definition: Fail-safe Defaults

A

Hier sollten möglichst sicherer Standardeinstellungen verwendet werden. D.h. eine sicherere Startkonfiguration und eine Einfache (Neu-)Konfiguration. z.B. Keine Beispielbenutzer oder sehr allgemeine Fehlermeldungen.

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

Definition: Complete Mediation

A

Jetzt wird vollständige Zugriffskontrolle eingeführt, d.h. jeder Zugriff auf jedes Objekt wird geprüft und es werden wirklich alle Aspekte vom Normalbetrieb bis zur Wartung betrachtet. Dennoch führt dieser Ansatz oft zu problematischen Caching. Es werden nur Eingaben von vertrauenswürdigen Kanälen (d.h. nicht Quellen die vom User beeinflusst werden)

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

Definition: Open Design

A

Das Design soll hier nicht geheim sein, sondern so sicher das die Sicherheitsmechanismen bekannt sein müssen also keine “security by obscurity”. Die Sicherheit des Systems hängt von wenigen, kurzen Token ab (Schlüssel, Passwörter). Dennoch wird dieses Prinzip oft durch Eigenbau-Kryptographie verletzt.

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

Definition: Separation of Privilege

A

Hier ist Zugriff an mehrere Voraussetzungen gebunden (z.B. 2 Schlüssel für den Zugriff auf eine bestimmte Ressource). Diese 2 Privilegien können aber auch physisch aufgeteilt werden, was sie Robuster und Flexibler machen.

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

Definition: Kompartimentierung

A

Ist mit Separation of Privilege verwandt, da das System in verschiedene, getrennte Teile aufgeteilt wird. Auf jeden dieser Teile werden dann die Rechte minimiert und somit der Schaden so gering wie möglich gehalten.

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

Definition: Least Privilege

A

Die Grundidee ist das jeder nur die minimalsten Zugriffsrechte hat, um seine Aufgabe zu erfüllen. Somit wird auch der mögliche Schaden und die Interaktion zwischen privilegierten Programmen minimiert. Sollte etwas schiefgehen, dann müssen nur wenige mögliche Urheber überprüft werden.

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

Methoden: Least Privilege (4)

A

1) Zeitliche Gültigkeit von Rechten begrenzen
2) Vergebenen Rechte Minimieren
3) Minimiere die Module denen Rechte eingeräumt werden.
4) Begrenze den Einblick ins System

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

Definition: Least-Common Mechanisms

A

Jetzt werden die geteilten Mechanismen und Ressourcen zwischen Komponenten und Systemen minimiert. So werden potenziell gefährliche Informationsflüsse reduziert und mögliche Interaktionen reduziert.

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

Definition: Psychological Acceptability

A

Einfach zu benutzende Mensch-Maschine-Schnittstellen. Die Sicherheitsmaßnahmen sollten sowohl leicht routinemäßig durchzuführend sein als auch mühelos richtig angewandt werden können. So wird der Nutzer nicht verärgert z.B. mit zu häufigem Zwang zum Passwortwechsel oder zu viele Alerts.

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

SDL (Security Development Lifecycle) Grundsätze (3)

A

1) Secure by Design
2) Secure by Default
3) Secure in Deployment

17
Q

STRIDE (6)

A

1) Spoofing Identity
2) Tampering with Data
3) Repudiation
4) Information Disclosure
5) Denial of Service
6) Elevation of Privilege

18
Q

Definition: STRIDE

A

Eine Form von Bedrohungsanalyse, wo Angriffe in Risikoklassen analysiert, bewertet und Abwehrmaßnahmen eingesetzt werden.

19
Q

Angriff: Spoofing Identity (STRIDE)

A

Angreifer täuscht falsche Identität entweder Server- oder Client-seitig

20
Q

Abwehrmaßnahme: Spoofing Identity (STRIDE)

A

Starke Authentifizierung mit Hilfe von Kryptografie und Mehr-Faktoren Authentifizierung

21
Q

Angriff: Tampering with Data (STRIDE)

A

Ein Angreifer Manipuliert entweder persistente Daten oder Netzwerk-Pakete

22
Q

Abwehrmaßnahmen: Tampering with Data (STRIDE) (4)

A

1) Hash Codes
2) Digitale Signaturen
3) Verschlüsselung
4) Einsatz entsprechender Netzwerk-Protokolle

23
Q

Angriff: Repudiation (STRIDE)

A

Ein Angreifer führt eine Aktion durch, und das Opfer kann es ihm nicht beweisen

24
Q

Abwehrmaßnahmen: Repudiation (STRIDE) (4)

A

1) Audit Logs
2) Empfangsbestätigungen
3) Digitale Signaturen
4) Zeitstempel

25
Q

Angriff: Information Disclosure (STRIDE)

A

Ein Angreifer sieht Daten, die er nicht sehen soll

26
Q

Abwehrmaßnahmen: Information Disclosure (STRIDE) (4)

A

1) Starke Authentifizierung
2) Zugriffskontrollen
3) Verschlüsselung
4) Sensibler Umgang mit Informationen

27
Q

Angriff: Elevation of Privileges (STRIDE)

A

Ein Angreifer findet einen Weg seine Berechtigungen zu erhöhen

28
Q

Abwehrmaßnahmen: Elevation of Privileges (STRIDE) (3)

A

1) Robuster Code
2) Least Privilege
3) Eingabevalidierung