Vertrauenswürdige Gestaltung
Categories:
Sicherheitsarchitektur und Designprinzipien
Sicherheitsdreieck und Sicherheitsdesignprinzipien
- Integrität (Integrity)
- Verfügbarkeit (Availability)
- Vertraulichkeit (Confidentiality)
Prinzip des offenen Designs
Open Design
- Das Design sollte kein Geheimnis sein, offenes Design ist sicherer.
- Sicherheit darf nicht auf Geheimhaltung basieren.
Prinzip des Fehlersicherheitsstandards
Fail-safe defaults
- Zugriffsentscheidungen basieren auf „Erlauben“ und nicht auf „Verbieten“.
- Standardmäßig ist kein Zugriff erlaubt, Schutzmechanismen dienen nur zur Identifikation erlaubter Zugriffe.
- Fehlersicherheit: Jedes komplexe System sollte nach einem Funktionsausfall über eine Notfallschutzmechanismus verfügen. Außerdem sollten Fehlermeldungen und Protokolle sorgfältig behandelt werden, um Informationslecks zu verhindern.
- Standardsicherheit: Ein System ist in seinem Anfangszustand standardmäßig mit einer sicheren Konfiguration ausgestattet und bietet maximale Sicherheit durch die Verwendung der geringstmöglichen Systeme und Dienste.
Prinzip der Berechtigungstrennung
Separation of Privilege
- Ein Schutzmechanismus erfordert zwei Schlüssel zum Entriegeln, was robuster und flexibler ist als ein einziger Schlüssel.
- Zweck der Berechtigungstrennung
- Verhinderung von Interessenkonflikten und Missbrauch einzelner Befugnisse
- Aufteilung wichtiger Berechtigungen in mehrere Berechtigungen, damit geschützte Objekte schwieriger illegal erlangt werden können und somit sicherer sind.
- Trennung von Verantwortlichkeiten und Befugnissen verschiedener Prozesse
Das System kann standardmäßig drei Rollen einrichten, wobei die Systemkontoberechtigungen voneinander unabhängig sind und Aufgaben und Verantwortlichkeiten getrennt werden:
- Systemadministrator: Verantwortlich für das tägliche Benutzermanagement und die Konfigurationsverwaltung des Systems.
- Sicherheitsadministrator: Verantwortlich für die Aktivierung und Deaktivierung von Benutzerzuständen und Sicherheitskonfigurationen.
- Sicherheitsauditor: Verantwortlich für die Protokollierung und Überprüfung der oben genannten beiden Rollen sowie für die Protokollexportberechtigung, um die Rückverfolgbarkeit aller Benutzeraktionen im System zu gewährleisten.
Prinzip der minimalen Berechtigung
Least Privilege
- Jeder Benutzer und jedes Programm im System sollte den kleinstmöglichen und notwendigen Berechtigungsumfang verwenden, um seine Aufgaben zu erfüllen.
- Sicherstellen, dass Anwendungen mit den niedrigstmöglichen Berechtigungen ausgeführt werden.
- Bei der Ausführung verschiedener Programme durch Benutzer im System, wie Datenbanken und Webservern, ist darauf zu achten, dass sie mit minimalen Berechtigungskonten ausgeführt oder verbunden werden, nicht mit Konten mit den höchsten Systemberechtigungen.
- Bei der Erstellung neuer Konten standardmäßig die Rolle mit den minimalen Berechtigungen zuweisen.
Prinzip der Wirtschaftlichkeit des Mechanismus
Economy of Mechanism
- Das Systemdesign und der Code sollten so einfach und prägnant wie möglich gehalten werden.
- Je komplexer ein Software-Design ist, desto höher ist die Wahrscheinlichkeit von Fehlern im Code. Wenn das Design so elegant wie möglich ist, sinkt die Wahrscheinlichkeit von Sicherheitsproblemen.
- Unnötigen Code und Funktionsmodule löschen, da deren Beibehaltung nur die Angriffsfläche des Systems vergrößert.
- Wiederverwendbare Komponenten entwerfen, um redundanten Code zu reduzieren.
- Wirtschaftlich und zweckmäßig: einfach, elegant, modular.
- Nicht überdesignen
Prinzip der minimalen gemeinsamen Nutzung
Least Common Mechanism
- Szenarien, in denen mehrere Objekte dieselbe Ressource gemeinsam nutzen, sollten so weit wie möglich vermieden werden. Die Anzahl und Nutzung gemeinsamer Ressourcen sollte minimal sein.
- Gemeinsame Objekte schaffen potenzielle Gefahrenkanäle für Informationsfluss und unbeabsichtigte Wechselwirkungen. Szenarien, in denen mehrere Objekte dieselbe Ressource gemeinsam nutzen, sollten so weit wie möglich vermieden werden.
- Wenn ein oder mehrere Objekte mit den vom gemeinsamen Mechanismus bereitgestellten Diensten unzufrieden sind, können sie darauf verzichten, um indirekten Angriffen durch Fehler anderer Objekte zu entgehen.
- Minimierung gemeinsamer Speicherbereiche
- Minimierung gemeinsamer Portbindungen
- Reduzierung von Verbindungen zur Verteidigung gegen DoS-Angriffe
Prinzip der vollständigen Vermittlung
Complete Mediation
- Das Prinzip der vollständigen Vermittlung verlangt, dass jede Zugriffsanfrage auf jedes Objekt einer Sicherheitsüberprüfung unterzogen werden muss.
- Wenn ein Subjekt versucht, auf ein Objekt zuzugreifen, prüft das System jedes Mal, ob das Subjekt über die entsprechende Berechtigung verfügt.
- Entscheidungen zur Zugriffskontrolle sollten nach Möglichkeit vom Ressourcenbesitzer getroffen werden, z. B. durch den Hintergrundserver bei einer URL, anstatt sie im Frontend zu prüfen.
- Besonders auf die Verwendung und Überprüfung von Caches achten, da nicht garantiert werden kann, dass die zwischengespeicherten Informationen bei jedem Zugriff nicht von Hackern manipuliert wurden. z. B. DNS-Cachemanipulation.
Prinzip der psychologischen Akzeptanz
Psychological Acceptability
- Sicherheitsmechanismen können für Benutzer zusätzliche Belastungen mit sich bringen, diese Belastung muss jedoch minimal und gerechtfertigt sein.
- Sicherheitsmechanismen sollten Systembenutzern so freundlich wie möglich sein und ihnen die Nutzung und das Verständnis des Systems erleichtern.
- Wenn die Konfigurationsmethode zu komplex und umständlich ist, könnte der Systemadministrator versehentlich eine falsche Option konfigurieren und das System dadurch unsicher machen.
- Dieses Prinzip bezieht sich im Allgemeinen auf Mensch-Maschine-Interaktion und UCD (User Centered Design) Oberflächen.
Prinzip der tiefen Verteidigung
Defense in Depth
Die tiefe Verteidigung ist ein umfassendes und anspruchsvolles Verteidigungsprinzip, das normalerweise vom Systemarchitekten verlangt, die verschiedenen Sicherheitsdesignprinzipien umfassend anzuwenden und mehrere, mehrschichtige Sicherheitsprüfmechanismen zu verwenden. Es erfordert eine umfassende Betrachtung der gesamten Systemarchitektur und der Sicherheitsverteidigung, anstatt sich nur auf einen einzigen Sicherheitsmechanismus zu verlassen.