Microsoft SQL Server Integrationsleitfaden
Übersicht
Diese Anleitung konfiguriert den CBOM Secure Discover_DB-Sensor zur Erkennung kryptografischer Assets, die von der transparenten Datenverschlüsselung (TDE) von Microsoft SQL Server verwaltet werden. Der Sensor stellt eine Verbindung mit einem schreibgeschützten Login her und fragt schreibgeschützte Systemkatalogansichten ab.
- Datenbankverschlüsselungsschlüssel (DEKs) über sys.dm_database_encryption_keys
- Serverzertifikate, die DEKs über sys.certificates schützen
- Asymmetrische Schlüssel (RSA/ECC) werden für den DEK-Schutz über sys.asymmetric_keys verwendet.
- Symmetrische Schlüssel auf Server- oder Datenbankebene über sys.symmetric_keys
Für jedes Asset werden Name, Algorithmus, Fingerabdruck, Schlüssellänge sowie Erstellungs- und Ablaufdatum erfasst. Es entschlüsselt niemals Daten, exportiert kein Schlüsselmaterial und führt keine Schreibvorgänge durch.
Voraussetzungen:
- SQL Server 2008 oder höher (jede Edition mit TDE-Unterstützung); für eine vollständige Katalogabdeckung wird SQL Server 2019+ empfohlen.
- Netzwerkzugriff vom Sensor-Host zur Instanz über TCP 1433 (oder den benutzerdefinierten Port).
- SQL Server-Authentifizierung (gemischter Modus) oder eine zugeordnete Windows-Anmeldung, falls die Windows-Authentifizierung verwendet wird.
- Systemadministrator- oder Sicherheitsadministratorrechte zum Erstellen des Logins und zum Erteilen von Berechtigungen.
- CBOM-Administratorzugriff zum Erstellen eines Discover_DB-Sensors.
- Mindestens eine TDE-fähige Datenbank für aussagekräftige DEK-Ergebnisse (Zertifikate/Schlüssel werden unabhängig davon aufgelistet).
Schritt-für-Schritt-Anleitung
Schritt 1: Erstellen Sie einen schreibgeschützten Login.
Erstellen Sie einen dedizierten Login in der Master-Datenbank (verwenden Sie keine Anwendungs- oder Administratorkonten wieder):
USE master; GO CREATE LOGIN cbom_reader WITH PASSWORD = 'R3pl@ceW1thStr0ngP@ssword!', DEFAULT_DATABASE = master, CHECK_EXPIRATION = ON, CHECK_POLICY = ON; GO
Schritt 2: Erteilen Sie die drei erforderlichen Serverberechtigungen
Es werden lediglich Leseberechtigungen auf Serverebene benötigt, keine Datenbankrollen oder Datenlesezugriffe:
USE master; GO GRANT VIEW SERVER STATE TO cbom_reader; -- sys.dm_database_encryption_keys und DMVs GRANT VIEW ANY DEFINITION TO cbom_reader; -- sys.certificates, sys.asymmetric_keys, sys.symmetric_keys GRANT VIEW ANY DATABASE TO cbom_reader; -- Datenbanken und Verschlüsselungsstatus auflisten GO
Überprüfen Sie dies mit einer Abfrage gegen sys.server_permissions verknüpft mit sys.server_principals; erwarten Sie GRANT-Zeilen für alle drei Berechtigungen.
Schritt 3: Überprüfen Sie den Zugriff auf die Katalogansicht.
Als Benutzer „cbom_reader“ verbunden, überprüfen Sie, ob jede erforderliche Ansicht Ergebnisse (oder ein leeres Set) ohne Berechtigungsfehler zurückgibt:
SELECT name, subject, thumbprint, algorithm_desc, expiry_date FROM sys.certificates; SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys; SELECT DB_NAME(database_id) AS database_name, encryption_state, encryptor_type, key_algorithm, key_length FROM sys.dm_database_encryption_keys; SELECT name, algorithm_desc, key_length, create_date FROM sys.symmetric_keys;
Schritt 4: Konfigurieren Sie den CBOM-Sicherheitssensor
Sensoren: - Name: mssql-tde-prod Typ: Discover_DB aktiviert: true Zeitplan: "0 2 * * *" Verbindung: Treiber: mssql Host: "sql-prod-01.corp.example.com" Port: 1433 Datenbank: master # Serverweite Katalogabfragen Benutzername: "cbom_reader" Passwort: "${CBOM_MSSQL_PASSWORD}" Verschlüsselung: true # TLS erzwingen trust_server_certificate: false Erkennung: Kataloge: [sys.certificates, sys.asymmetric_keys, sys.dm_database_encryption_keys, sys.symmetric_keys] include_system_databases: false Ausgabe: Asset-Typen: [certificate, asymmetric_key, symmetric_key, tde_dek] Tags: { environment: production, data_classification: confidential } Benachrichtigungen: on_expiring_cert_days: 30
Speichern Sie das von ${CBOM_MSSQL_PASSWORD} referenzierte Passwort in einem Geheimnismanager; speichern Sie es niemals fest im Code.
Schritt 5: Validieren
cbom sensor run --name mssql-tde-prod
Prüfen Sie, ob der Lauf Verbindungen herstellt und die Anzahl der gefundenen Zertifikate/asymmetrischen Schlüssel/DEKs/symmetrischen Schlüssel meldet. Überprüfen Sie im CBOM-Inventar, gefiltert nach Quelle = mssql-tde-prod, ob Zertifikate und TDE-Datenbankverschlüsselungsschlüssel mit Fingerabdruck, Algorithmus, Ablaufdatum und Betreff angezeigt werden. Wenn die SQL-Überwachung aktiviert ist, prüfen Sie, ob cbom_reader ausschließlich SELECT-Abfragen gegen Katalogansichten ausführt.
Häufige Fehler
Anmeldung für Benutzer 'cbom_reader' fehlgeschlagen
Ursache: Die Anmeldung fehlt/ist deaktiviert, das Passwort ist falsch oder die Instanz befindet sich im Modus „Nur Windows-Authentifizierung“.
Lösung: Aktivieren Sie den gemischten Modus (und starten Sie den Dienst neu), vergewissern Sie sich, dass die Anmeldung nicht deaktiviert ist, und setzen Sie das Passwort gegebenenfalls mit ALTER LOGIN zurück.
Der Benutzer hat keine Berechtigung, diese Aktion auszuführen.
Grund: Eine der Berechtigungen VIEW SERVER STATE / VIEW ANY DEFINITION / VIEW ANY DATABASE wurde nicht erteilt oder widerrufen.
Lösung: Führen Sie die Berechtigungsprüfung erneut durch und erteilen Sie alle fehlenden Berechtigungen erneut.
SSL-Anbieter – Zertifikatskette nicht vertrauenswürdig
Ursache: trust_server_certificate ist auf „false“ gesetzt, aber das SQL Server TLS-Zertifikat ist selbstsigniert oder stammt von einer nicht vertrauenswürdigen Zertifizierungsstelle.
Lösung: Installieren Sie die SQL Server-Zertifizierungsstelle im Truststore des Sensorhosts (empfohlen) oder stellen Sie ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle aus. Verwenden Sie `trust_server_certificate: true` nur als temporäre Problemumgehung in Nicht-Produktionsumgebungen.
Sicherheitsempfehlungen
- Gewähren Sie dem Login nur die drei aufgeführten Berechtigungen, niemals die Rollen sysadmin, db_owner oder data-access.
- Das Passwort sollte regelmäßig rotiert werden (CHECK_EXPIRATION = ON) und in einem Geheimnismanager gespeichert werden.
- Encrypt erzwingen: true und trust_server_certificate: false; Force Encryption = Yes auf dem Server einstellen.
- Aktivieren Sie die SQL Server-Überwachung für cbom_reader, um schreibgeschützte SELECT-Anweisungen für Katalogsichten aufzuzeichnen.
- Beschränken Sie eingehende TCP/1433-Verbindungen über eine Firewall oder Netzwerksicherheitsgruppen auf die IP-Adresse des Sensorhosts.
Fazit
Mit einem minimalen cbom_reader-Login und drei Leseberechtigungen auf Serverebene ermöglicht der Discover_DB-Sensor CBOM Secure eine kontinuierliche, schreibgeschützte Transparenz von SQL Server TDE-Zertifikaten, asymmetrischen Schlüsseln, symmetrischen Schlüsseln und Datenbankverschlüsselungsschlüsseln, ohne geschützte Daten offenzulegen oder zu entschlüsseln, und bietet dank Ablaufbenachrichtigungen eine zeitnahe Kenntnis von Ereignissen im Zertifikatslebenszyklus.
