Vertraulichkeit in Datenbanksystemen
Vertraulichkeit bedeutet, dass die enthaltenen Informationen nur für Befugte zugänglich sind. Um die Übertragung der Daten und den Zugang zu schützen, müssen Maßnahmen ergriffen werden. Der Zugang lässt sich durch Zugriffskontrollen und Zugriffsrechte regeln. Bei der Übertragung der sicherheitsrelevanten Daten spielt die Verschlüsselung eine wichtige Rolle.
Datenbanksysteme
Datenbanksysteme (DBMS) bieten ebenfalls verschiedene Methoden zum Schutz von Informationen, die die Datenbankforensik gleichermaßen erleichtern (Nachvollziehbarkeit) und erschweren (Verschlüsselung) können.
Übersicht möglicher Maßnahmen einzelner DBMS:
MSSQL
- verschiedene Authentifizierungsmöglichkeiten über AD (Windows, SQL-Server)
- Zuweisung von Rechten und Rollen durch Berechtigungshierarchie
- Einschränkung des Datenzugriffs mit Ansichten und Verfahren
- dynamische Datenmaskierung
- Verschlüsselung auf Dateiebene mit symmetrischen und asymmetrischen Schlüsseln oder einer Datenspalte durch Passphrase (Transact-SQL)
- SSL/TLS geschützte Datenübertragungen
vgl. Microsoft, Sicherheitscenter für SQL Server-Datenbank-Engine und Azure SQL-Datenbank
MySQL
- Zuweisung von Rechten und Rollen (dynamische und statische Privilegien) durch "Account Management Statements"
- Steuerung des Datenzugriffs mit "Server Command Options" und "Server System Variables"
- zentrale Speicherung gehashter Passwörter und Unterstützung von Funktionen wie Ablauf, Wiederverwendung, Strenge, Fehlerprotokollierung, Sperre u.ä.
- Einsatz von Authentication Plugins möglich
- SSL/TLS oder SSH geschützte Datenübertragungen
- Audit-Funktionen
- Datenmaskierung und Anonymisierung von Daten (MySQL Enterprise Data Masking and De-Identification)
vgl. Security in MySQL, MySQL Security Guide extract from the MySQL 8.0 Reference Manual
Oracle
- zentralisiertes User Management: Zuweisung von Rechten und Rollen (Privilegien) per Profil
- Steuerung des Datenzugriffs durch Advanced Access Control
- Klient-seitige Passwortspeicherung im "Oracle wallet" zur Vermeidung der Speicherung im Code
- Authentisierung per Kerberos, SSL/TLS (PKI) oder RADIUS
- Transparent Data Encryption (TDE), automatische Ver- und Entschlüsselung von Spalten oder Tablespaces durch das DBMS
- SSL oder von "Oracle native encryption" geschützte Datenübertragungen
- Audit-Funktionen nach internationalen Standards (SOX, HIPAA, PCI DSS, GLB, FISMA) inkl. Monitoring, Kontrolle des SQL-Inputs, Report- und Alarmfunktionen
- Einsatz einer Datenbank-Firewall
- Datenmaskierung sensitiver Daten mit "Oracle Data Masking" durch Chiffren oder Hashes
- regelmäßige "Security Configuration Scannings"
- automatisiertes Patch-Management
vgl. Oracle, Securing Oracle Database 12c: A Technical Primer, 2014, Sicherung von Oracle Database 12c (PDF)
PostgreSQL
- Zuweisung von Rechten und Rollen durch Einrichtung von Privilegien[1]
- Einsatz von Verschlüsselungsfunktionen für:[2]
- Client Authentication
- Monitoring der Datenbankaktivitäten
SQLite
Um entsprechende Maßnahmen in/mit SQLite-Datenbanken umzusetzen, können eigene Tabellen für Audit und Monitoring in der Datenbank implementiert werden. Eine Verschlüsselung der Daten ist mit der Erweiterung SQLite Encryption Extension (SEE), mit SQLCipher, SQLiteCrypt, wxSQLite3 und auf Dateisystemebene mit GnuPG möglich.
Einzelnachweise
- ↑ The PostgreSQL Global Development Group, PostgreSQL 12.2 Documentation
- ↑ The PostgreSQL Global Development Group, Documentation → PostgreSQL 12, 18.8. Encryption Options
- ↑ The PostgreSQL Global Development Group, Documentation → PostgreSQL 12, 18.9. Secure TCP/IP Connections with SSL
- ↑ The PostgreSQL Global Development Group, Documentation → PostgreSQL 12, 18.10. Secure TCP/IP Connections with GSSAPI Encryption
- ↑ The PostgreSQL Global Development Group, Documentation → PostgreSQL 12, 18.11. Secure TCP/IP Connections with SSH Tunnels