Sicherheit ist heutzutage in allen Bereichen das Hauptanliegen. Auch die Datenbanksicherheit ist ein wichtiges Anliegen für jeden Kunden. SQL Server wurde entwickelt, um alle Ihre in den Datenbanken gespeicherten Daten zu sichern, aber manchmal wenden wir nicht die richtigen Konfigurationen an und hinterlassen ein Loch in unserem System. Hacker und nicht autorisierte Aliens könnten diese Schlupflöcher nutzen, um in Ihr System einzudringen. Ihre Daten können kompromittiert oder verleumdet werden, Ihre Systemressourcen können gelöscht werden, um einen Ausfall zu verursachen, um Ihre Geschäftsaktivitäten zu stoppen, die Daten Ihrer Kunden könnten Konkurrenten ausgesetzt werden usw.
Sperrung oder Härtung von SQL Server
Der gesamte Prozess zum Sichern Ihrer Datenbankumgebung wird als Datenbank- \ SQL Server-Sperre bezeichnet. Ich werde verschiedene Parameter und Konfigurationsdetails beschreiben, die Sie anwenden können, um Ihre Datenbankumgebung zu sichern.
Nur erforderliche Komponenten installieren
Beginnen wir mit den Lockdown-Praktiken bei der SQL Server-Installation. SQL Server bietet verschiedene Komponenten und Funktionen, die DBAs für verschiedene Anforderungen auswählen. Einige dieser Komponenten und Funktionen sind unten aufgeführt:
- Datenbank-Engine
- Meldedienste
- Integrationsdienste
- Analysis Services Engine
- Benachrichtigungsdienste
- Dokumentation und Beispiele (Beispieldatenbanken und Codes)
- Volltextsuche
- Andere Funktionen wie Replikation, maschinelle Lerndienste, Datenqualitätsdienste usw.
Es empfiehlt sich, nur benötigte Funktionen zu installieren, da Sie dadurch die Möglichkeiten von Oberflächenangriffen verringern oder einschränken. Außerdem haben Sie eine geringe Auslastung der Systemressourcen.
Neueste Updates installieren
Stellen Sie sicher, dass Sie Ihre Systeme rechtzeitig aktualisieren. Wenn neue Schwachstellen entdeckt werden, werden diese von Ihren Produktanbietern in Sicherheitsbulletins veröffentlicht.
Ich spreche nicht nur von der Aktualisierung von SQL Server-Patches, sondern von allem, was auf Ihrem System ausgeführt wird, angefangen vom Betriebssystem bis hin zu jeder anderen Anwendung, die auf Ihrem Computer installiert ist. Wenden Sie immer Patches an, um Ihre Software auf dem neuesten Stand zu halten und externe Bedrohungen oder Angriffe zu verhindern.
Windows-Authentifizierungsmodus verwenden
Wählen Sie immer den Windows-Authentifizierungsmodus für Benutzerverbindungen, wenn Sie keine Abhängigkeiten haben, um den SQL Server-Authentifizierungsmodus zu verwenden. Es ist sicherer und authentifiziert die Windows-Anmeldung bei jedem Anmeldeversuch mit dem Windows Active Directory. SQL Server hat zwei Arten von Authentifizierungsmodi.
- Windows-Authentifizierung
- Gemischter Modus (Windows + SQL Server)
Windows-Authentifizierungsmodus: Dies ist ein Standardauthentifizierungsmodus für SQL Server. Der Windows-Authentifizierungsmodus nutzt lokale Konten, Active Directory-Benutzerkonten und Gruppen beim Gewähren des Zugriffs auf SQL Server. In diesem Modus können Sie als Datenbankadministrator Domänen- oder lokalen Serverbenutzern Zugriff auf den Datenbankserver gewähren, ohne ein separates SQL Server-Konto zu erstellen und zu verwalten.
Gemischter Modus: Der gemischte Authentifizierungsmodus hat beide Optionen. Sie können die Windows-basierte Authentifizierung sowie die anmeldungsbasierte SQL Server-Authentifizierung verwenden. Der Authentifizierungsmechanismus von SQL Server basiert auf Konten, die innerhalb von SQL Server verwaltet werden, einschließlich der Kennwortrichtlinie. Möglicherweise ist eine gemischte Authentifizierung erforderlich, wenn Sie einige Abhängigkeiten zur Unterstützung älterer Anwendungen haben.
Sie können die folgenden Schritte ausführen, um den Serverauthentifizierungsmodus auszuwählen oder zu ändern:
- Starten Sie SQL Server Management Studio und stellen Sie eine Verbindung zu Ihrer SQL Server-Zielinstanz her.
- Klicken Sie in SQL Server Management Studio mit der rechten Maustaste auf die SQL Server-Instanz und klicken Sie dann auf Eigenschaften .
- Klicken Sie auf Sicherheit Seite im linken Bereich sehen Sie beide Authentifizierungsoptionen im rechten Bereich unter der Server-Authentifizierung Sektion. Wenn Sie Ihre Instanz sichern möchten, stellen Sie sicher, dass Sie in den Windows-Authentifizierungsmodus wechseln. Sie müssen nur auf das Optionsfeld des Windows-Authentifizierungsmodus klicken und dann auf OK klicken um die Änderungen zu übernehmen.
- Klicken Sie im Dialogfeld von SQL Server Management Studio auf OK um die Notwendigkeit eines Neustarts von SQL Server zu bestätigen.
Der Windows-Authentifizierungsmodus ist eine sicherere Wahl. Wenn jedoch eine Authentifizierung im gemischten Modus erforderlich ist, sollten Sie komplexe Kennwörter für SQL Server-Anmeldungen bereitstellen und Sicherheits-/Sperrrichtlinien für eine bessere Sicherheit anwenden. Es wird außerdem empfohlen, das SQL Server-Konto sa zu deaktivieren, wenn Sie den gemischten Authentifizierungsmodus verwenden. Darauf werde ich im nächsten Abschnitt eingehen.
SA-Konto umbenennen/deaktivieren
Login sa wird standardmäßig während der Installation von SQL Server erstellt, daher könnte dies einer der möglichen Gründe für Angreifer sein, dieses Konto zu hacken oder die Kontrolle darüber zu übernehmen. Denken Sie daran, dass diese Anmeldung über Systemadministrationsrechte verfügt, sodass jeder, der Zugriff auf dieses Konto hat, Ihre Datenbanken und SQL Server-Instanzen verwalten kann.
Sie sollten den folgenden Befehl ausführen, um das sa-Konto zu deaktivieren.
--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO
Sie können seine Ausführung in der folgenden Abbildung sehen.
Stellen Sie vor dem Umbenennen oder Deaktivieren des sa-Kontos sicher, dass ein anderes Konto mit Administratorrechten auf der SQL Server-Instanz vorhanden ist.
Standard-SQL-Server-Ports ändern
Wir alle wissen, dass SQL Server Port 1433 für alle Clientanfragen und -kommunikationen verwendet. Da sich diese Konfiguration in der Public Domain befindet, können Hacker auf diese Konfiguration abzielen, um eine Verbindung zu Ihrer SQL Server-Instanz herzustellen.
Sie können den SQL Server-Port ändern, indem Sie die folgenden Schritte ausführen.
- Melden Sie sich bei Ihrem Zielcomputer an, auf dem SQL Server installiert ist.
- Starten Sie den Server Configuration Manager Werkzeug.
- Erweitern Sie die SQL Server-Netzwerkkonfiguration -Knoten im linken Bereich und wählen Sie Protokolle aus für die zu konfigurierende SQL Server-Instanz.
- Klicken Sie im rechten Bereich mit der rechten Maustaste auf den Protokollnamen TCP/IP und wählen Sie Eigenschaften .
- In den TCP/IP-Eigenschaften Wählen Sie im Dialogfeld die IP-Adressen aus Tab. Für jede dem Server zugewiesene IP-Adresse gibt es einen entsprechenden Eintrag.
- Löschen Sie die Werte für beide dynamische TCP-Ports und TCP-Port für jede IP-Adresse mit Ausnahme der IP-Adressen unter IPAll .
- Im IPAll Geben Sie für jede Instanz im Abschnitt einen neuen Port ein, den SQL Server überwachen soll.
- Klicken Sie auf Anwenden und starten Sie die SQL Server-Dienste neu.
SQL-Browserdienst deaktivieren
SQL Server-Browserdienste werden bei der Installation der SQL Server-Instanz installiert. Dieser Dienst leitet Ihre Verbindung zu dem Port um, auf dem SQL Server ausgeführt wird. Wenn dieser Dienst ausgeführt wird, ist es für Angreifer einen Schritt einfacher, da er es ihnen ermöglicht, eine Verbindung zu SQL Server herzustellen, ohne dessen Portnummer weiterzugeben. Daher ist es besser, diesen Dienst nach dem Ändern des Ports zu deaktivieren.
Xp_cmdshell-Option deaktivieren
SQL Server bietet eine erweiterte gespeicherte Prozedur xp_cmdshell zum Ausführen und Ausführen von Betriebssystembefehlen von SQL Server. Es sollte deaktiviert werden, um jegliches Sicherheitsrisiko zu vermeiden. Sie finden diese erweiterte gespeicherte Prozedur in den Konfigurationen auf Serverebene oder durch Ausführen der gespeicherten T-SQL-Prozedur sp_configure. Sie können die folgenden T-SQL-Anweisungen ausführen, um diese Konfiguration zu deaktivieren.
-- Enable advanced options to display configure xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE
-- Disable xp_cmdshell
sp_configure 'xp_cmdshell', '0'
RECONFIGURE
GO
Datenverschlüsselung oder -maskierung verwenden
SQL Server bietet verschiedene Verschlüsselungsmethoden zum Schutz Ihrer Daten. Die Verschlüsselung wird empfohlen, wenn Ihre Benutzer über das öffentliche Netzwerk auf Daten zugreifen. SQL Server bietet mehrere Optionen zum Implementieren der richtigen Verschlüsselungen unter Berücksichtigung Ihrer geschäftlichen Anforderungen. Dies ist die Liste der Verschlüsselungs- oder Datenmaskierungsoptionen, die wir verwenden können, um unsere Daten zu schützen:
- TDE (Transparente Datenverschlüsselung)
- Sichern Sie Daten mit Verschlüsselungsschlüsseln
- Immer verschlüsseln
- Dynamische Datenmaskierung
Entfernen Sie BUILTIN\Administrators von SQL Server
Wir sollten das Konto BUILTIN\Administrators immer aus der SQL Server-Instanz entfernen, um unerwünschten Zugriff auf die Datenbankinstanz zu beschränken. Am besten gewähren Sie den Benutzern einzeln Zugriff auf SQL Server. Sie können auch eine Gruppe von Personen zur Windows-Gruppe hinzufügen und ihnen Zugriff auf SQL Server gewähren. Sie können die folgende T-SQL-Anweisung verwenden, um diese Anmeldung aus der SQL Server-Instanz zu löschen.
Sie können diese Anmeldung auch mithilfe der GUI über SQL Server Management Studio löschen. Sie müssen sich nur mit Ihrer SQL Server-Instanz verbinden und dann den Sicherheitsordner auf Instanzebene erweitern. Hier können Sie mit der rechten Maustaste auf dieses Login klicken, um es aus der SQL Server-Instanz zu entfernen.
--DROP Login
DROP LOGIN [BUILTIN\Administrators]
Starke Passwörter und angemessene Benutzerrechte
Weisen Sie jedem Benutzer immer angemessene Rechte zu, sie sollten minimal sein, unter Berücksichtigung ihrer Rolle beim Zugriff auf die Datenbanken. Außerdem sollten wir niemals schwache Passwörter für Logins oder denselben Login und dasselbe Passwort verwenden. Verwenden Sie immer die Kennwortrichtlinie für alle SQL-Anmeldungen.
Konfigurieren Sie die SQL Server-Anmeldeüberwachung
SQL Server hat eine Überwachungsfunktion bereitgestellt, um Details zu allen fehlgeschlagenen und erfolgreichen Anmeldungen zu erfassen. Dies ist eine sehr nützliche Konfiguration, wenn Sie überwachen möchten, wer sich mit Ihren Datenbanken verbindet oder versucht, eine Verbindung herzustellen. Wir können die SQL Server-Warnung konfigurieren, die bei jeder fehlgeschlagenen und erfolgreichen Anmeldung bei SQL Server eine E-Mail-Benachrichtigung sendet. Sie können die folgenden Schritte ausführen, um die Anmeldeprüfung zu aktivieren.
- Verbinden Sie sich mit Ihrer SQL Server-Zielinstanz in SQL Server Management Studio
- Klicken Sie mit der rechten Maustaste auf den Namen der SQL Server-Instanz und klicken Sie dann auf Eigenschaften .
- Klicken Sie auf Sicherheit Registerkarte im linken Bereich. Sie erhalten eine Login-Prüfung im rechten Bereich, wie im ersten Screenshot dieses Artikels gezeigt
- Wählen Sie die gewünschte Option und schließen Sie die Servereigenschaften Seite
- Starten Sie den SQL Server-Dienst neu, um diese Änderung zu übernehmen
Nicht verwendete SQL Server-Anmeldungen entfernen
Behalten Sie Ihre SQL Server-Anmeldungen immer im Auge. Sie sollten darauf achten, alle Anmeldekonten zu entfernen, die nicht mehr verwendet werden. Ich weiß, dass die manuelle Verwaltung schwierig ist, aber Sie können eine E-Mail-Benachrichtigung konfigurieren, um eine E-Mail über alle SQL Server-Anmeldungen und deren Berechtigungen zu senden.
Schlussfolgerung
Ich habe einige der möglichen Konfigurationen erläutert, die wir anwenden können, um unsere Datenbanken vor externen Bedrohungen zu schützen. Berücksichtigen Sie alle oben genannten Punkte, während Sie die Richtlinien zur Datenbankhärtung in der Umgebung bereitstellen.
Bitte teilen Sie diesen Artikel und geben Sie Ihr Feedback im Kommentarbereich ab, damit wir uns verbessern können.