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:
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:
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