Sicherheit für Microsoft SQL Server

Vorwort
SQL Server ist eine beliebte Datenbank, die als Back-End-Datenspeicher für viele Unternehmensanwendungen
dient, die unter Windows Server 2003 laufen. Nach der Installation verwalten Sie SQL Server mit dem Enterprise-
Manager in der Programmgruppe "Microsoft SQL Server".

Hinweis:
Microsoft SQL Server ist kein Bestandteil von Windows Server 2003. Aus diesem Grund können Sie sich in
Bezug auf sicherheitsrelevante Patches nicht auf Windows Update verlassen. Rufen Sie stattdessen die Seite
http://www.microsoft.com/sql/downloads auf, um die aktuellen Updates herunterzuladen.
Seit SUS bzw. WSUS ist es auch möglich, dass dieser die Updates herunterlädt.

 

Authentifizierung
Microsoft SQL Server unterstützt zwei Authentifizierungsmethoden:
Windows Authentifizierungsmodus
Gemischter Modus

Der Windows Authentifizierungsmodus ist der Standardauthentifizierungsmodus unter SQL Server 2000. In dies-
em Modus verlässt sich SQL Server 2000 einzig auf die Windows Authentifizierung des Benutzers. Authenti-
fizierten Windows Benutzern oder -Gruppen wird der Zugriff auf die SQL Server-Datenbankressourcen gewährt.

Sofern möglich, sollten Sie immer den Windows-Authentifizierungsmodus für Verbindungen mit SQL Server ver-
langen. Dies vereinfacht die Administration, ermöglicht Benutzern, die Einzelanmeldung und erlaubt Ihnen, die
Windows-Methoden zur Erzwingung der Sicherheit zB. stärkere Authentifizierungsprotokolle und eine obliga-
torische Komplexität und maximale Gültigkeit für Kennworter zu verwenden. Auch die Delegierung von Anmelde-
informationen (d.h. die Fähigkeit, Anmeldeinformationen serverübergreifend zu verwenden) steht nur im Win-
dows Authentifizierungsmodus zur Verfügung. Auf der Clientseite beseitigt der Windows-Authentifizierungs-
modus die Notwendigkeit, Kennwörter speichern zu müssen (das größte Sicherhetisrisiko bei Anwendungen,
die SQL Server Standardanmeldungen verwenden).

Im gemischten Modus können Benutzer entweder über die Windows- oder die SQL Serverauthentifizierung
authentifiziert werden. Die Benutzernamen und Kennwörter von Benutzern, die durch SQL Server authentifi-
ziert werden, werden in SQL Server gespeichert. Wenn ein Client, der auf die SQL Server Datenbank zugreift,
keine Windows-Standardanmeldung verwenden kann, verlangt SQL Server die Angabe eines Namens und
eines Kennworts und vergleicht die Eingaben dann mit den entsprechenden Dateien in den Systemtabellen.

Gehen Sie wie folgt vor, um einen Authentifizierungsmodus im Enterprise Manager zu wählen:

  1. Starten Sie den Enterprise Manager.

  2. Klicken Sie mit der rechten Maustaste auf einen Server und wählen Sie dann Eigenschaften.

  3. Klicken Sie auf die Registerkarte Sicherheit und wählen Sie dort eine der Optionen Nur Windows
    oder SQL Server und Windows.

  4. Klicken Sie auf OK.

Wenn Sie den gemischten Modus verwenden, achten Sie auf ein Konto namens "sa". Das SQL Server
Konto "sa" ähnelt dem Konto "Administrator" in WIndows. Es genießt einerseits sehr hohe Privilegien,
andererseits ist es vordefiniert, und genau deswegen das Ziel vieler Angriffe auf SQL Server. Um das
Risiko, Opfer eines solchen Angriffs zu werden, zu verringern, weisen Sie dem Konto "sa" ein starkes
Kennwort zu. Gehen SIe hierzu wie folgt vor:

  1. Erweitern Sie eine Servergruppe und darin einen Server.

  2. Erweitern Sie Sicherheit und klicken Sie auf Benutzernamen.

  3. Klicken Sie Bereich Details mit der rechten Maustaste auf SA und wählen Sie dann Eigenschaften.

  4. In das Feld Kennwort tragen Sie das neue Kennwort ein.

 

Autorisierung
SQL Server bietet drei Autorisierungsmethoden:
Objektberechtigungen
Anweisungsberechtigungen
implizite Berechtigungen

Die Objektberechtigungen in SQL Server bieten eine fein abstimmbare Kontrolle über die Autorosierung für
Danbanken, Tabellen und sogar Datenzeieln und -spalten in Tabellen. Sie steruern den Zugriff auf diese
Objekte, indem Sie die Fähigkeit, bestimmte Anweisungen oder gespeicherte Prozeduren auszuführen,
gewähren, verweigern oder aufheben. So können Sie beispielsweise einem Benutzer das Recht gewähren,
Informationen in einer Tabelle auszuwählen, ihm gleichzeitig jedoch Berechtigungen zum Einfügen, Aktu-
alisieren oder Löschen von Tabellendaten verweigern.

Hinweis:
Die entsprechenden SQL-Befehle (Structured Query Language) für diese Handlungen lauten: SELECT,
INSERT, UPDATE
und DELETE

Anweisungsberchtigungen steuern administrative Handlungen wie etwa das Erstellen einer Datenbank
oder das Hinzufügen von Objekten zu einer Datenbank. Nur Mitglieder der Systemadministratorrolle
und Datenbankbesitzer können Anweisungsberechtigungen vergeben. Standardmäßig werden normalen
Benutzernamen Anweisungsberechtigungen nicht gewährt, weswegen Sie diese Berechtigungen für
Benutzer, die nicht Administratoren sind, explizit gewähren müssen. Wenn beispielsweise ein Benutzer
die Möglichkeit braucht, Sichten in einer Datenbank zu erstellen, dann würden Sie ihm die Berechtigung
gewähren, den Befehl CREATE VIEW auszuführen.

Nur Mitglieder vordefinierter Systemrollen oder Datenbank- und Datenbankobjektbesitzer können impli-
zite Berechtigungen zuweisen. Implizite Berechtigungen für eine Rolle können nicht geändert werden
oder auf andere Konten angewendet (es sei denn, diese Konten werden zu Mitgliedern der Rolle ge-
macht). Mitglieder der Serverrolle "System-Administratoren" beispielsweise können jede beliebige Han-
dlung in SQL Server durchführen. Sie können etwa Datenbanken erweitern oder Prozesse abbrechen.
Diese Rechte können SIe weder aufheben noch anderen Konten separat zuweisen. Besitzer von Daten-
banken und Datenbankobjekten haben ebenfalls implizite Berechtigungen. Diese gestatten es ihne, alle
Handlungen an den entsprechenden Datenbanken, Datenbankobjekten oder an beiden vorzunehmen.
Beispielsweise kann ein Benutzer, der eine Tabelle besitzt Daten anzeigen, hinzufügen, ändern und
löschen. Ferner kann dieser Benutzer die Tabellendefinition ändern und die Berechtigungen für die
Tabelle steuern.

 

Überlegungen zur Protokollierung
SQL Server hat eigene Authentifizierungsmethoden. Um Anmeldeversuche für SQL Server Benutzer zu
überwachen, kann SQL Server so konfiguriert werden, dass entpsrechente Ereignisse dem Anwendung-
sprotokoll hinzugefügt werden. Diese Einstellung erfolgt auf der Registerkarte Sicherheit des Eigensch-
aftendialogs des Servers. Sie können eine von vier verschiedenen Überwachungsstufen wählen:
Keine, Es findet keine Authentifizierungsprotokollierung statt.
Fehler, Es wird dem Anwendungsprotokoll ein Ereignis hinzugefügt, wenn der Authentifizierungsver-
such eines Benutzers fehlschägt.
Erfolg, Im Anwendungsprotokoll werden bei erfolgreicher Authentifizierung Ereignisse hinzugefügt.
Alle, Bei jedem Authentifizierungsversuch werden unabhängig von Erfolg oder Fehlschlag Ereignisse
hinzugefügt.

Aber auch wenn Sie Authentifizierungsüberwachung im Anwendungsprotokoll aktivieren, werden Sie
keine Details zu bestimmten Benutzeraktivitäten in den Protokolldateien finden, zB. auf welche Ta-
bellen ein Benutzer zugreift, welche Abfragen er ausführt und welche gespeicherten Prozeduren er
aufruft. Um solche Datails zu protokollieren, verwenden Sie das Programm Profiler, welches aus der
Programmgruppe SQL Server heraus gestartet werden aknn. Mit Profiler können Sie eine Ablaufver-
folgung praktisch aller Aktivitäten erzeugen, die innerhalb einer SQL Server-Datenbank stattfinden, so
auch die exakten Abfragen, die von Benutzern gesendet werden. Wenn Sie glauben, dass Sie gerade
aktiv angegriffen werden, erhalten sie durch Aufzeichnung der an SQL Server abgesetzten Abfragen
eine Menge Informationen zum Angreifer.

 

Schützen von SQL Server mit Firewalls
SQL Server Datenbanken sollten niemals mit dem Internet verbunden werden, ohne dass nicht minde-
stens ein Paketfilterfirewall eingesetzt wird. Selbst die Anbindung einer SQL Server Datenbank an ein
internes Netzwerk ist "riskant", denn andere interne Systeme, die etwa mit einem Wurm infiziert sind
könnten ihrerseits ein System anstecken, welches eingehende Datenbankverbindungen akzeptiert.
Damit Ihre Datenbankclients Abfragen an den Datenbankserver absetzen können, müssen Sie den
Versand von Paketen über den TCP-Anschluss 1433 zulassen. Allerdings sollten Sie angesichts des
Risiko von Würmern, die eine Verbindung mit deisem Anschluss herstellen wollen, eine Firewall ver-
wenden, um Pakete, die nciht von autorisierten Datenbankclients stammen, zu verwerden.
Natürlich sollten Sie auch regelmäßig Updates Ihres SQL Servers durchführen. Wer das seit den le-
tzten Attacken bereits immer bedacht hatte, der hatte auch bei den Slammer Attacken etc. keine
Sytembeeinträchtigungen denn die Updates waren schon lange vor den Attacken verfügbar.

 

 

Erstellt von: Haßlinger Stefan
Im: Jahr 2006