Systemsicherheit Flashcards
Wo geht Sicherheit von Software verloren?
- Architektur (Design des Software-Systems)
- Implementierung (Umsetzung der Architektur in Quellcode)
- Betrieb (produktive Nutzung und Konfiguration)
–> Schwachstellen in früheren Stadien vermehren Probleme in späteren Stadien (frühes Handeln spart viel Geld)
Problem: Sicherheit und Design
- Systeme werden ohne Sicherheitsaspekte entworfen
- funktionales Denken vor Schutz und Sicherheitsfragen
- kritische Systeme müssen ausfallsicher sein
Sicherheitsarchitektur
- ohne stabiles Fundament sind alle weiteren Sicherheitsmaßnahmen zum Scheitern verurteilt
- Designprinzipien und Framework für Sicherheitsdesign mit prevent, detect, recover, react
Designprinzipien (8)
1) Economy of Mechanism (Reduktion von Komplexität)
2) Fail-safe defaults (sichere Standardeinstellungen ohne default-Passwörter, deny als “default”-Action)
3) Complete mediation (vollständige Zugriffskontrolle)
4) Open design (Funktion von Sicherheitsmechanismen soll bekannt sein, wenige kurze Token)
5) Separation von Zugriffsprivilegien (mehrere Voraussetzungen für Zugriff, Kompartimentierung)
6) Least privilege (Reduktion auf unbedingt notwendige Zugriffsprivilegien)
7) Least common mechanisms (Minimierung der geteilten Mechanismen und Ressourcen zwischen Komponenten und Systemen)
8) Psychologische Akzeptanz von Sicherheitsmechanismen (einfache Mensch-Maschine-Schnittstellen, Nutzer nicht verärgern)
Security Development Lifecycle (SDL)
Von Microsoft veröffentlichtes Konzept zum sicheren Softwaredesign
- Secure by Design
- Secure by Default
- Secure in Deployment
SDL Bedrohungsanalyse - STRIDE
S - Spoofing Identity –> Authentifizierung (Mehr-Faktor)
T - Tampering with Data (Manipulation) –> Hash-Codes, digitale Signaturen
R - Repudiation (Nicht-Beweisbarkeit von Aktionen des Angreifers) –> Empfangsbestätigungen, Zeitstempel
I - Information Disclosure (Daten sehen, die man nicht sehen soll) –> Zugriffskontrollen, Verschlüsselung
D - Denial of Service
E - Elevation of Privileges (Angreifer tut dies selbst) –> robuster Code, least privilege, Eingabevalidierung