Beschränken Sie den Zugriff für Windows-Administratoren

11

In den Best Practices von SQL Server heißt es: "Der Windows-Authentifizierungsmodus ist sicherer als die SQL-Authentifizierung. " Und jetzt möchte ich wissen: Gibt es eine Möglichkeit, SQL Server vor Benutzern mit Windows-Administratorrechten zu schützen?

Tsionyx
quelle
4
6. Unveränderliches Sicherheitsgesetz: "Ein Computer ist nur so sicher, wie der Administrator vertrauenswürdig ist." Auch hier sind die Gesetze 2 und 10 relevant. technet.microsoft.com/library/cc722487.aspx
Dan spielt mit Firelight

Antworten:

15

Nein.

Wenn ein Benutzer ein Windows-Administrator einer Box ist, nehmen Sie an, dass er alles auf der Box besitzt (einschließlich SQL Server). Mit Windows-Administratorrechten ist es trivial, den von Ihnen angewendeten gezielten Schutz (z. B. einen Anmeldetrigger, der den Benutzernamen identifiziert) zu umgehen, indem Sie sich als eine andere Person ausgeben (einschließlich NT AUTHORITY\SYSTEMder De-facto-Administratorrechte für alle lokalen SQL Server-Instanzen ). Auditing hilft auch nicht viel, weil sie das leicht ausschalten können, aber Sie sollten es nur für den Fall haben.

Wenn Sie jemandem nicht vertrauen, geben Sie ihm keine Windows-Administratorrechte.

Aaron Bertrand
quelle
2
+1 alles, was behauptet, eingebaute Administratoren zu leugnen, ist Schlangenöl
Remus Rusanu
1

Nein, es ist nicht möglich, lokale Administratoren vollständig daran zu hindern, zu gewinnen sysadmin Zugriff auf eine SQL Server-Instanz zu erhalten.

Wenn die Instanz im Einzelbenutzermodus neu gestartet wird , ist SQL Server fest codiert, um lokale Administratoren zuzulassensysadmin , auch wenn möglicherweise keine explizite Anmeldung erfolgt. Der Grund dafür ist zu Wiederherstellungszwecken, da es möglich ist, sich von einer Instanz auszuschließen.

Das Einschränken des Zugriffs, während die Instanz im Mehrbenutzermodus (ohne Dienstunterbrechungen) ausgeführt wird, ist jedoch nicht so schwierig. Wie Aaron bereits erwähnt hat, können sich lokale Administratoren NT AUTHORITY\SYSTEMals sysadminBenutzer ausgeben , für die standardmäßig eine Anmeldung auf Ebene in SQL Server 2008 erstellt wurde. Dies kann genutzt werden , um den sysadminZugriff wiederherzustellen, während der Server ausgeführt wird. (Hinweis: In SQL Server 2012 ist diese Anmeldung nicht mehr asysadmin .) Ich weiß nicht genau, wofür diese Anmeldung verwendet wird (Upgrades / Hotfixes / etc., Vermutlich), aber ich denke, es ist sicher, sie zu deaktivieren, außer während diese Ereignisse. Wenn keine anderen unpersönlichen Anmeldungen vorhanden sind, sollte dies ausreichen, um den Zugriff zu verweigern. Wieder nur, wenn die Instanz ausgeführt wird, ohne Unterbrechung .

Jon Seigel
quelle
0

Standardmäßig gibt es in SQL 2008 und 2012 keinen Standardzugriff für Windows-Administratoren auf einen SQL Server. Damit ein Windows-Administrator (dh jemand, der entweder ein Domänenadministrator oder ein lokaler Administrator ist) Zugriff hat, muss seiner Anmeldung explizit Zugriff gewährt werden oder der Gruppe, zu der er gehört, zusammen mit Rechten in SQL Server selbst Zugriff gewährt werden. Beim Einrichten der Instanz müssen Sie eine Active Directory-Anmeldung oder -Gruppe als Administrator angeben. Diese Anmeldung / Gruppe kann jedoch eine beliebige Person in Ihrer Domäne sein.

In SQL 2005 gab es eine BUILTIN\AdministratorsGruppe mit Sysadmin-Zugriffsrechten. Diese Gruppe würde lokalen Administratoren den Systemadministratorzugriff auf SQL Server ermöglichen. Diese Gruppe kann aus SQL Server entfernt werden und wurde als bewährte Methode angesehen.

Es gibt jedoch keine Möglichkeit zu verhindern, dass Windows (lokal oder domänenbezogen) den Server beeinflusst, auf dem SQL Server lebt. Dies bedeutet, dass die Administratoren weiterhin Dienste und Konfigurationen auf Betriebssystemebene, Verzeichnissicherheit und andere Aufgaben auf Betriebssystemebene beeinflussen können. Dies ist schließlich der Grund, warum sie Windows-Administratoren sind.

Im Allgemeinen sollten Sie Ihren Administratoren vertrauen, sowohl SQL Server als auch Windows. Die Windows-Administratoren können zwar keine Aufgaben ausführen oder (standardmäßig) nicht auf Daten im SQL Server selbst zugreifen, sie steuern jedoch weiterhin die Umgebung, in der sich Ihr SQL Server befindet. Sie müssen darauf achten, wen Sie diesen Rollen zuweisen.

Mike Fal
quelle
3
Nehmen Sie sich nicht zu viel Komfort dabei - obwohl die von Microsoft vorgenommenen Änderungen die Sicherheit etwas erhöhen, ist es noch lange nicht kugelsicher. Es ist trivial, wenn sich ein lokaler Administrator ausgibt und seine Gebote direkt an eine lokale SQL Server-Instanz abgibt. Sie müssen sich also über mehr als nur indirekten Einfluss auf Betriebssystemebene Gedanken machen.
Aaron Bertrand
Ich muss fragen: Welche Umstände rechtfertigen es, einem nicht vertrauenswürdigen Benutzer Administratorzugriff auf einen Server zu gewähren?
Mark Allen
Persönlich denke ich keine. Wie viele andere Personen in anderen Antworten angegeben haben (und hier nicht so deutlich), sollten Sie Ihren Administratoren vertrauen. Und wenn Sie ihnen nicht vertrauen, machen Sie sie nicht zu Administratoren.
Mike Fal