Microsoft SQL Server: Die wichtigsten Sicherheits-Tipps im Überblick

Authentifizierung, komplexe Passwörter und die Begrenzung von Berechtigungen sind die zentralen Punkte in dieser SQL-Server-Security-Checkliste.

Der SQL Server dient zur Verwaltung sensibler Unternehmensdaten. Daher ist es wichtig sicherzustellen, dass nur berechtigte Benutzer Zugriff auf die darin enthaltenen Daten und Informationen haben. Allerdings ist es nicht immer einfach, den SQL Server ohne Fehler abzusichern.

Datenbank-Administratoren (DBA) müssen eine Reihe zusätzlicher Aufgaben ausführen, um die Sicherheitskonfiguration ihres SQL Servers zu stärken. Dieser Artikel kann als Checkliste von Maßnahmen dienen, mit denen DBAs ihre Datenbank gegen interne und externe Angriffe schützen können.

Authentifizierung

Der SQL Server unterstützt zwei Arten der Authentifizierung: Windows Authentifizierung und “Mixed-Mode“-Authentifizierung. Wählen Sie immer die Windows Authentifizierung für Ihre SQL-Server-Installation, sofern nicht Legacy-Anwendungen in Ihrem Unternehmen die Mixed-Mode-Authentifizierung zwingend erfordern, um Zugang und Rückwärtskompatibilität zu gewährleisten.

Mehr zum Thema SQL Server:

So vermeiden und beheben Sie SQL Server Performance-Engpässe

In fünf Schritten zum Backup einer SQL Server Stored Procedure

SQL Server 2014: In-Memory OLTP, Buffer Pool- und AlwaysOn-Erweiterung

Sieben Geheimnisse des SQL Server Management Studios für Microsoft SQL Server

SQL Server 2014: So aktualisieren Sie partitionierte Indizes

Die Windows Authentifizierung ist sicherer als die Mixed-Mode-Authentifizierung. Wenn sie ausgewählt ist, werden die Windows Anmeldeinformationen (wie Kerberos- oder Windows NT LAN Manager[NTLM]- Authentifizierungsinformationen) anerkannt, um sich am SQL Server anzumelden. Windows Logins nutzen eine Reihe verschlüsselter Nachrichten zur Authentifizierung am SQL Server und die Passwörter werden im Verlauf der Anmeldung nicht durch das Netzwerk geschickt.

Darüber hinaus bietet Active Directory (AD) mit dem Kerberos-Protokoll zusätzlichen Schutz. Das macht die Authentifizierung zuverlässiger. Die Handhabung kann vereinfacht werden durch den Einsatz von Active-Directory-Gruppen für Rollen-basierten Zugriff auf SQL Server. 

Im Unterschied zum Windows-Authentifizierungs-Modus unterstützt die Mixed-Mode-Authentifizierung sowohl Windows- als auch SQL-spezifische Zugangsdaten bei der Anmeldung am SQL Server. Da die SQL-Passwörter über das Netzwerk verschickt werden, ist die Login-Methode weniger sicher als Windows-Logins.

Den Sysadmin-Account sichern

Der Sysadmin-Account ist verwundbar, wenn er unverändert bleibt. Potenzielle Angreifer wissen das und die Übernahme dieses Accounts mit weitgehenden Befugnissen macht ihnen die Arbeit leichter. Um entsprechende Attacken zu verhindern, benennen Sie den Sysadmin-Account um. Dazu erweitern Sie im Object Explorer die Logins, klicken dann mit der rechten Maustaste auf Sysadmin-Account und wählen Rename aus dem Menü.

Alternativ führen Sie folgendes T-SQL aus, um den Sysadmin-Account umzubenennen:

USE [master]
GO

ALTER LOGIN sa WITH NAME = [<New-name>]
GO

Zusätzlich sperren Sie den Account auf Ihrer SQL-Server-Instanz.

Komplexe Passwörter für Sysadmin- und SQL-Server-spezifische Logins

Wenn der Mixed Modus für die Authentifizierung genutzt wird, stellen Sie sicher, dass für den Sysadmin- und alle anderen SQL-Server-spezifischen Zugänge nur komplexe Passwörter vergeben werden. Wählen Sie dazu zunächst die Optionen „Enforce password expiration" und "Enforce password policy" für den Sysadmin- und alle anderen SQL-Server-spezifischen Anmeldungen aus.

Diese Einstellungen sorgen dafür, dass alle anderen SQL-Server-spezifischen Anmeldungen den Login-Regelungen des Betriebssystems entsprechen. Darüber hinaus aktivieren Sie die MUST_CHANGE-Option für jeden neuen SQL-Login. Damit ist sichergestellt, dass das Passwort für die Anmeldung beim ersten Zugriff geändert werden muss.

Mitgliedschaft in der festen Serverrolle Sysadmin und CONTROL-SERVER-Berechtigung

Wählen Sie die Mitglieder der festen Serverrolle Sysadmin sehr sorgfältig aus, denn sie haben die volle Kontrolle über den SQL Server. Vergeben Sie deshalb auch nicht die Server-Berechtigung CONTROL SERVER für Windows-Anmeldungen, Windows-Gruppen-Anmeldungen oder SQL-Anmeldungen, denn mit dieser Berechtigung erhalten sie sämtliche Administrator-Rechte für die SQL-Server-Installation. In der festen Serverrole Sysadmin ist die Serverberechtigung CONTROL SERVER als Voreinstellung explizit zugewiesen.

SQL-Server Administration

Vermeiden Sie es, SQL-Server-Instanzen mit einem Sysadmin Account oder einer anderen SQL-Anmeldung zu verwalten, die über die CONTROL-SERVER-Berechtigung verfügt  oder Mitglied einer festen Serverrolle Sysadmin ist. Richten Sie stattdessen dedizierte Windows-Anmeldungen für DBAs ein und weisen Sie ihnen dann Sysadmin-Rechte für Administrationszwecke auf dem SQL Server zu. 

Um Berechtigungen für Benutzer zu vergeben, verwenden Sie mitgelieferte festen Serverrollen und Datenbankrollen oder erstellen Sie Ihre eigenen Server- und Datenbankrollen, die Ihren Anforderungen an eine gezieltere Kontrolle über die Berechtigungen entsprechen.

Gastbenutzer-Zugang deaktivieren

In der Grundeinstellung existiert in jeder Datenbank ein Gastbenutzer-Zugang, der ein potenzielles Sicherheitsrisiko in einer geschlossenen Umgebung darstellt, weil er Zugriffe zulässt, die keinem Benutzer in der Datenbank zugordnet werden können. Entfernen Sie deshalb den Gastbenutzer-Zugang aus allen Benutzer- und System-Datenbanken (außer MSDB). Damit ist sichergestellt, dass Mitglieder öffentlicher Serverrollen nicht auf Benutzer-Datenbanken auf der SQL-Server-Instanz zugreifen können, sofern ihnen der Zugang zu diesen Datenbanken nicht explizit zugewiesen wird.

Berechtigungen für öffentliche Rolle begrenzen

Um potenzielle Sicherheitsrisiken auszuschließen, sollten Sie öffentlichen Rollen den Zugang zu den folgenden erweiterten gespeicherten Prozeduren entziehen:

Außerdem sollten Sie öffentlichen Rollen keine Berechtigungen für gespeicherte Prozeduren  explizit zuweisen. Um eine Liste aller gespeicherten Prozeduren zu erhalten, die in einer öffentlichen Rolle verfügbar sind, führen Sie folgende Abfrage aus:

SELECT  o.[name] AS [SPName]

 ,u.[name] AS [Role]

FROM [master]..[sysobjects] o

INNER JOIN [master]..[sysprotects] p

ON o.[id] = p.[id]

INNER JOIN [master]..[sysusers] u

ON P.Uid = U.UID

AND p.[uid] = 0

AND o.[xtype] IN ('X','P')

SQL Server Oberfläche beschränken

Konfigurieren Sie den SQL Server nur mit den benötigten Features und deaktivieren Sie nicht gewünschte Funktionen in der SQL Server Surface Area Configuration. Oder nutzen Sie das Policy-basierte Management, um granulare Konfigurationseinstellungen an einem oder mehreren SQL-Systemen vorzunehmen.

Server Ports stärken

Eine andere bewährte Maßnahme für mehr Sicherheit auf dem SQL Server besteht darin, die Standard-Ports aus der SQL-Server-Installation mit dem SQL Server Configuration Manager zu ändern. Benutzen Sie außerdem spezifische TCP-Ports anstelle von dynamischen Ports und stellen Sie sicher, dass allgemein gebräuchliche TCP-Ports wie 1433 und 1434 nicht für Client-Anfragen und -Kommunikation benutzt werden. Diese Ports sind sehr bekannt, was sie zu einem bevorzugten Ziel für Attacken von Hackern macht.

Server Browser Service deaktivieren

Sorgen Sie dafür, dass der SQL Server Browser Service nur dort auf SQL Servern läuft, wo mehrere Instanzen von SQL Servern sich einen Server teilen müssen. SQL Server Browser Service spezifiziert SQL-Server-Informationen im Netzwerk und bedeutet deshalb eine potenzielle Sicherheitsbedrohung in einer geschlossenen Umgebung

SQL Server Service Accounts einrichten

Legen Sie Domain-Accounts mit niedriger Berechtigungsstufe an, um SQL Server Services laufen zu lassen und prüfen Sie regelmäßig die Mitgliedschaften der SQL Server Service Accounts. Vergewissern Sie sich, dass sie nicht Mitglieder von Domain User Groups oder lokalen Gruppen sind, was ihnen unnötige Berechtigungen einräumen würde. Mehr Informationen zu den Berechtigungen, die jeder SQL Server Service Account erfordert, erhalten Sie im Microsoft Developer Network.

Server Fehlerprotokolle und Registry Keys sichern

Sichern Sie schließlich die Fehlerprotokolle von SQL und die Registrierungsschlüssel mit NTFS-Berechtigungen, denn sie verraten eine ganze Menge über SQL-Server-Instanz und -Installation.

Folgen Sie SearchEnterpriseSoftware.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Datenbanken