Ogranicz dostęp administratora systemu Windows

11

Zgodnie z najlepszymi praktykami programu SQL Server : „ Tryb uwierzytelniania systemu Windows jest bezpieczniejszy niż uwierzytelnianie SQL ”. A teraz chcę wiedzieć: czy istnieje sposób ochrony programu SQL Server przed użytkownikiem z uprawnieniami administratora systemu Windows?

tsionyx
źródło
4
6. Niezmienne prawo bezpieczeństwa: „Komputer jest tak bezpieczny, jak administrator jest godny zaufania”. Obowiązują tu także przepisy 2 i 10. technet.microsoft.com/library/cc722487.aspx
Dan Is Fiddling Autor Firelight

Odpowiedzi:

15

Nie.

Jeśli użytkownik jest administratorem systemu Windows w pudełku, załóż, że jest właścicielem wszystkiego w tym pudełku (w tym programu SQL Server). W przypadku uprawnień administratora systemu Windows trywialne jest ominięcie zastosowanej ochrony ukierunkowanej (takiej jak wyzwalacz logowania identyfikujący ich nazwę użytkownika) poprzez podszywanieNT AUTHORITY\SYSTEM się pod inną osobę (w tym , która de facto uzyskuje uprawnienia administratora we wszystkich lokalnych instancjach SQL Server ). Audytowanie też niewiele pomoże, ponieważ można je łatwo wyłączyć, ale powinieneś to mieć na wszelki wypadek.

Jeśli komuś nie ufasz, nie przyznawaj mu uprawnień administratora systemu Windows, kropka.

Aaron Bertrand
źródło
2
+1 wszystkim, co twierdzi, że odmawia wbudowania \ administratorów, jest olejek z węża
Remus Rusanu,
1

Nie, nie można całkowicie uniemożliwić lokalnym administratorom sysadmindostępu do instancji SQL Server.

Jeśli instancja zostanie zrestartowana w trybie pojedynczego użytkownika , SQL Server jest zakodowany na stałe, aby umożliwić lokalnym administratorom sysadminuprawnienia, nawet jeśli nie może istnieć jawne logowanie. Przyczyną takiego stanu rzeczy jest odzyskanie danych, ponieważ możliwe jest zablokowanie się przed wystąpieniem.

To powiedziawszy, ograniczenie dostępu podczas działania instancji w trybie wielu użytkowników (bez przerw w świadczeniu usług) nie jest tak trudne. Jak wspomniał Aaron, lokalni administratorzy mogą podszywać się pod inne osoby NT AUTHORITY\SYSTEM, które domyślnie mają sysadminw SQL Server 2008 login -level. Można to wykorzystać do odzyskania sysadmindostępu podczas działania serwera. (Uwaga: w SQL Server 2012 ten login nie jest już a sysadmin.) Nie wiem dokładnie, do czego ten login jest używany (prawdopodobnie aktualizacje / poprawki / itp.), Ale myślę, że można go bezpiecznie wyłączyć, z wyjątkiem te wydarzenia. Jeśli nie ma innych personifikacji loginów, powinno to wystarczyć do odmowy dostępu. Ponownie, tylko jeśli instancja jest uruchomiona, nieprzerwanie .

Jon Seigel
źródło
0

Domyślnie w SQL 2008 i 2012 administratorzy Windows nie mają domyślnego dostępu do SQL Server. Aby administrator systemu Windows (tj. Ktoś, kto jest administratorem domeny lub administratorem lokalnym) miał dostęp, jego login musi mieć jawnie przyznany dostęp lub grupę, do której należą, wraz z prawami w samym SQL Server. Podczas konfigurowania instancji wymagane jest określenie jednego loginu lub grupy usługi Active Directory jako administratora, ale tym logowaniem / grupą może być każdy w domenie.

W SQL 2005 istniała BUILTIN\Administratorsgrupa z prawami dostępu sysadmin. Ta grupa umożliwi lokalnym administratorom sysadmin dostęp do SQL Server. Tę grupę można usunąć z programu SQL Server i uznano to za najlepszą praktykę.

Biorąc to pod uwagę, nie ma sposobu, aby zapobiec wpływowi systemu Windows (lokalnego lub domeny) na serwer, na którym działa program SQL Server. Oznacza to, że administratorzy mogą nadal wpływać na usługi i konfiguracje na poziomie systemu operacyjnego, zmieniać zabezpieczenia katalogu i inne zadania na poziomie systemu operacyjnego. Właśnie dlatego są administratorami systemu Windows.

Ogólnie powinieneś zaufać swoim administratorom, zarówno SQL Serverowi, jak i Windowsowi. Administratorzy Windows nie mogą wykonywać zadań ani uzyskiwać dostępu do danych (domyślnie) w samym SQL Serverie, ale nadal kontrolują środowisko, w którym SQL Server żyje. Musisz zadbać o to, kogo przypisujesz do tych ról.

Mike Fal
źródło
3
Nie przejmuj się zbytnio komfortem - podczas gdy zmiany wprowadzone przez Microsoft sprawiają, że jest trochę bardziej bezpieczny, nie jest jeszcze tak blisko kuloodpornego. Jest to banalne dla lokalnego administratora, który podszywa się pod niego i wykonuje licytację bezpośrednio do dowolnej lokalnej instancji SQL Server - więc musisz się martwić o coś więcej niż tylko pośredni wpływ na poziomie systemu operacyjnego.
Aaron Bertrand
Muszę zapytać - jakie okoliczności uzasadniają przyznanie niezaufanego administratora dostępu do serwera?
Mark Allen
Osobiście nie sądzę. Jak wiele innych osób stwierdziło w innych odpowiedziach (i tutaj nie tak jasno), powinieneś zaufać swoim administratorom. A jeśli im nie ufasz, nie rób z nich administratorów.
Mike Fal