Limitare l'accesso per l'amministratore di Windows


11

Come indicato dalle best practice di SQL Server , "La modalità di autenticazione di Windows è più sicura dell'autenticazione di SQL ". E ora voglio sapere: esiste un modo per proteggere SQL Server dagli utenti con diritti di amministratore di Windows?


4
Sesta legge sulla sicurezza immutabile: "Un computer è sicuro tanto quanto l'amministratore è affidabile." Anche le leggi 2 e 10 sono rilevanti qui. technet.microsoft.com/library/cc722487.aspx
Dan è Fiddling di Firelight

Risposte:


15

No.

Se un utente è un amministratore di Windows di una casella, supponi di possedere tutto sulla casella (incluso SQL Server). Con i diritti di amministratore di Windows è banale bypassare qualsiasi protezione mirata applicata (come un trigger di accesso che identifica il loro nome utente), impersonando qualcun altro (incluso NT AUTHORITY\SYSTEM, che ottiene di fatto i diritti di amministratore su tutte le istanze locali di SQL Server ). Anche il controllo non aiuta molto, perché possono facilmente disattivarlo, ma dovresti averlo per ogni evenienza.

Se non ti fidi di qualcuno, non concedere loro i diritti di amministratore di Windows, punto.


2
+1 qualsiasi cosa che pretenda di negare builtin \ amministratori è olio di serpente
Remus Rusanu,

1

No, non è possibile impedire completamente agli amministratori locali di sysadminaccedere a un'istanza di SQL Server.

Se l'istanza viene riavviata in modalità utente singolo , SQL Server è codificato per consentire i sysadminprivilegi degli amministratori locali , anche se potrebbe non esserci un accesso esplicito. Il motivo per cui esiste è a fini di recupero perché è possibile bloccarsi da un'istanza.

Detto questo, limitare l'accesso mentre l'istanza è in esecuzione in modalità multiutente (senza interruzioni del servizio) non è così difficile. Come accennato da Aaron, gli amministratori locali possono impersonare NT AUTHORITY\SYSTEM, che per impostazione predefinita ha un sysadminaccesso di livello creato in SQL Server 2008. Questo può essere sfruttato per recuperare l' sysadminaccesso mentre il server è in esecuzione. (Nota: in SQL Server 2012, questo accesso non è più un sysadmin.) Non so esattamente a cosa serva questo accesso (aggiornamenti / hotfix / ecc., Presumibilmente), ma penso che sia sicuro disabilitarlo tranne durante quegli eventi. Se non ci sono altri accessi impersonabili, ciò dovrebbe essere sufficiente per negare l'accesso. Ancora una volta, solo se l'istanza è in esecuzione, ininterrotta .


0

Per impostazione predefinita in SQL 2008 e 2012, non esiste un accesso predefinito per gli amministratori di Windows a un server SQL. Affinché un amministratore di Windows (ovvero qualcuno che sia un amministratore di dominio o un amministratore locale) abbia accesso, al suo accesso deve essere concesso esplicitamente l'accesso o al gruppo a cui appartiene l'accesso concesso insieme ai diritti all'interno di SQL Server stesso. Quando si configura l'istanza, è necessario specificare un account di accesso o un gruppo di Active Directory come amministratore, ma tale accesso / gruppo può essere chiunque nel proprio dominio.

In SQL 2005, c'era un BUILTIN\Administratorsgruppo con diritti di accesso sysadmin. Questo gruppo consentirebbe agli amministratori locali l'accesso di amministratore di sistema a SQL Server. Questo gruppo può essere rimosso da SQL Server ed è stato considerato best practice per farlo.

Detto questo, non c'è modo di impedire a Windows (locale o dominio) di influire sul server su cui vive SQL Server. Ciò significa che gli amministratori possono comunque influenzare i servizi e le configurazioni a livello di sistema operativo, modificare la sicurezza della directory e altre attività a livello di sistema operativo. Questo è, dopo tutto, il motivo per cui sono amministratori di Windows.

In generale, dovresti fidarti dei tuoi amministratori, sia SQL Server che Windows. Sebbene gli amministratori di Windows non possano eseguire attività o accedere ai dati (per impostazione predefinita) all'interno dello stesso SQL Server, controllano comunque l'ambiente in cui vive SQL Server. Devi prenderti cura di chi assegni a quei ruoli.


3
Non dare troppo conforto in questo - mentre le modifiche apportate da Microsoft lo rendono un po 'più sicuro, non è ancora vicino a nessun proiettile. È banale per un amministratore locale impersonare e fare le proprie offerte direttamente a qualsiasi istanza locale di SQL Server , quindi è necessario preoccuparsi di qualcosa di più della semplice influenza indiretta a livello di sistema operativo.
Aaron Bertrand

Devo chiedere: quali circostanze giustificano la concessione a un amministratore non attendibile dell'accesso a un server?
Mark Allen,

Personalmente, non credo. Come molte altre persone hanno affermato in altre risposte (e non così chiaramente qui), dovresti fidarti dei tuoi amministratori. E se non ti fidi di loro, non renderli amministratori.
Mike Fal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.