Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zrozumienie blokady SQL Server w bezpiecznym środowisku bazy danych

Bezpieczeństwo jest obecnie głównym problemem w każdym sektorze. Bezpieczeństwo bazy danych jest również głównym zmartwieniem każdego klienta. SQL Server ma na celu zabezpieczenie wszystkich Twoich danych przechowywanych w bazach danych, ale czasami nie stosujemy odpowiedniego zestawu konfiguracji i zostawiamy dziurę w naszym systemie. Hakerzy i nieautoryzowani obcy mogą wykorzystać te luki, aby przeniknąć do twojego systemu. Twoje dane mogą zostać naruszone lub oczernione, zasoby systemowe mogą zostać usunięte, aby spowodować awarię uniemożliwiającą prowadzenie działalności biznesowej, dane Twoich klientów mogą być narażone na kontakt z konkurencją itp.

Zablokowanie lub wzmocnienie serwera SQL

Cały proces zabezpieczania środowiska bazy danych jest nazywany blokadą bazy danych \ SQL Server. Opiszę różne parametry i szczegóły konfiguracji, które możesz zastosować, aby zabezpieczyć środowisko bazy danych.

Zainstaluj tylko wymagane składniki

Zacznijmy praktyki blokowania od instalacji SQL Server. SQL Server oferuje różne składniki i funkcje, które administratorzy baz danych wybierają do różnych wymagań. Niektóre z tych komponentów i funkcji są podane poniżej:

  1. Silnik bazy danych
  2. Usługi raportowania
  3. Usługi integracyjne
  4. Silnik usług analitycznych
  5. Usługi powiadomień
  6. Dokumentacja i próbki (przykładowe bazy danych i kody)
  7. Wyszukiwanie pełnotekstowe
  8. Inne funkcje, takie jak replikacja, usługi uczenia maszynowego, usługi jakości danych itp.

Dobrą praktyką jest instalowanie tylko potrzebnych funkcji, ponieważ w ten sposób zmniejszasz lub ograniczasz możliwości ataku powierzchniowego. Dodatkowo będziesz miał niskie wykorzystanie zasobów systemowych.

Zainstaluj najnowsze aktualizacje

Upewnij się, że aktualizujesz swoje systemy na czas. Jeśli zostaną wykryte jakiekolwiek nowe luki w zabezpieczeniach, są one publikowane w biuletynach bezpieczeństwa przez dostawców produktów.

Nie mówię o aktualizowaniu tylko poprawek SQL Server, ale wszystkiego, co działa w twoim systemie, począwszy od systemu operacyjnego do dowolnej innej aplikacji, która jest zainstalowana na twoim komputerze. Zawsze stosuj poprawki, aby oprogramowanie było aktualne, aby zapobiec wszelkim zewnętrznym zagrożeniom lub atakom.

Użyj trybu uwierzytelniania Windows

Zawsze wybieraj tryb uwierzytelniania systemu Windows dla połączeń użytkowników, jeśli nie masz żadnych zależności do korzystania z trybu uwierzytelniania programu SQL Server. Jest bezpieczniejszy i uwierzytelnia logowanie Windows za pomocą katalogu Windows Active podczas każdej próby logowania. SQL Server ma dwa rodzaje trybów uwierzytelniania.

  • Uwierzytelnianie Windows
  • Tryb mieszany (Windows + SQL Server)

Tryb uwierzytelniania Windows: Jest to domyślny tryb uwierzytelniania dla SQL Server. Tryb uwierzytelniania systemu Windows wykorzystuje konta lokalne, konta użytkowników usługi Active Directory i grupy podczas udzielania dostępu do programu SQL Server. W tym trybie Ty, jako administrator bazy danych, możesz przyznać użytkownikom domeny lub serwera lokalnego dostęp do serwera bazy danych bez tworzenia i zarządzania oddzielnym kontem SQL Server.

Tryb mieszany: Mieszany tryb uwierzytelniania ma obie opcje. Można używać uwierzytelniania opartego na systemie Windows oraz uwierzytelniania opartego na logowaniu programu SQL Server. Mechanizm uwierzytelniania SQL Server opiera się na kontach zarządzanych wewnątrz SQL Server, w tym na zasadach haseł. Uwierzytelnianie mieszane może być wymagane, jeśli masz pewne zależności do obsługi starszych aplikacji.

Aby wybrać lub zmienić tryb uwierzytelniania serwera, wykonaj poniższe czynności:

  1. Uruchom SQL Server Management Studio i połącz się z docelową instancją SQL Server.
  2. W SQL Server Management Studio kliknij prawym przyciskiem myszy wystąpienie SQL Server, a następnie kliknij Właściwości .
  3. Kliknij Zabezpieczenia strony w lewym panelu, możesz zobaczyć obie opcje uwierzytelniania w prawym panelu w sekcji Uwierzytelnianie serwera Sekcja. Jeśli chcesz zabezpieczyć swoją instancję, przełącz się na tryb uwierzytelniania Windows. Wystarczy kliknąć przycisk opcji trybu uwierzytelniania Windows, a następnie kliknąć OK aby zastosować zmiany.
  1. W oknie dialogowym SQL Server Management Studio kliknij OK aby potwierdzić potrzebę ponownego uruchomienia SQL Server.

Tryb uwierzytelniania systemu Windows jest bezpieczniejszym wyborem. Jeśli jednak wymagane jest uwierzytelnianie w trybie mieszanym, należy podać złożone hasła do logowania w programie SQL Server i zastosować zasady security\lockout w celu zwiększenia bezpieczeństwa. Zaleca się również wyłączenie konta SQL Server sa w przypadku korzystania z mieszanego trybu uwierzytelniania. Omówię to w następnej sekcji.

Zmień nazwę/wyłącz konto sa

Login sa jest domyślnie tworzony podczas instalacji SQL Server, więc może to być jeden z potencjalnych powodów, dla których atakujący mogą włamać się lub przejąć kontrolę nad tym kontem. Pamiętaj, że ten login ma uprawnienia administratora systemu, więc każdy, kto ma dostęp do tego konta, może zarządzać Twoimi bazami danych i instancjami SQL Server.

Powinieneś uruchomić poniższe polecenie, aby wyłączyć konto sa.

--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO

Możesz zobaczyć jego wykonanie na poniższym rysunku.

Przed zmianą nazwy lub wyłączeniem konta sa sprawdź, czy w instancji SQL Server istnieje inne konto z uprawnieniami administratora.

Zmień domyślne porty serwera SQL

Wszyscy wiemy, że SQL Server używa portu 1433 do wszelkich żądań klientów i komunikacji. Ponieważ ta konfiguracja znajduje się w domenie publicznej, hakerzy mogą zaatakować tę konfigurację, aby połączyć się z Twoją instancją SQL Server.

Możesz zmienić port SQL Server, wykonując poniższe czynności.

  1. Zaloguj się na maszynę docelową, na której jest zainstalowany SQL Server.
  2. Uruchom Menedżera konfiguracji serwera narzędzie.
  3. Rozwiń konfigurację sieci SQL Server węzeł z panelu po lewej stronie i wybierz Protokoły aby skonfigurować instancję SQL Server.
  4. W prawym okienku kliknij prawym przyciskiem myszy nazwę protokołu TCP/IP i wybierz Właściwości .
  5. W Właściwościach TCP/IP w oknie dialogowym wybierz Adresy IP patka. Dla każdego adresu IP przypisanego do serwera istnieje odpowiedni wpis.
  6. Wyczyść wartości dla obu portów dynamicznych TCP i port TCP dla każdego adresu IP z wyjątkiem adresów IP w IPAll .
  7. W IPAll dla każdej instancji wprowadź nowy port, na którym ma nasłuchiwać SQL Server.
  8. Kliknij Zastosuj i ponownie uruchom usługi SQL Server.

Wyłącz usługę przeglądarki SQL

Usługi przeglądarki SQL Server są instalowane wraz z instalacją wystąpienia SQL Server. Ta usługa przekierowuje połączenie do portu, na którym działa SQL Server. Jeśli ta usługa jest uruchomiona, atakującym będzie o krok łatwiej, ponieważ pozwala im połączyć się z SQL Server bez przekazywania jego numeru portu. Dlatego lepiej wyłączyć tę usługę po zmianie portu.

Wyłącz opcję xp_cmdshell

SQL Server oferuje rozszerzoną procedurę składowaną xp_cmdshell do uruchamiania i wykonywania poleceń systemu operacyjnego z SQL Server. Powinien być wyłączony, aby zapobiec wszelkim zagrożeniom bezpieczeństwa. Tę rozszerzoną procedurę składowaną można znaleźć w konfiguracjach na poziomie serwera lub uruchamiając procedurę składowaną sp_configure T-SQL. Możesz uruchomić poniższe instrukcje T-SQL, aby wyłączyć tę konfigurację.

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

Użyj szyfrowania lub maskowania danych

SQL Server oferuje różne metodologie szyfrowania w celu ochrony danych. Szyfrowanie jest zalecane, jeśli użytkownicy uzyskują dostęp do danych przez sieć publiczną. SQL Server ma wiele opcji implementacji odpowiedniego zestawu szyfrowania, biorąc pod uwagę Twoje potrzeby biznesowe. Oto lista opcji szyfrowania lub maskowania danych, których możemy użyć do zabezpieczenia naszych danych:

  • TDE (Przejrzyste szyfrowanie danych)
  • Zabezpiecz dane za pomocą kluczy szyfrowania
  • Zawsze szyfruj
  • Dynamiczne maskowanie danych

Usuń BUILTIN\Administrators z SQL Server

Należy zawsze usuwać konto BUILTIN\Administrators z instancji SQL Server, aby ograniczyć niepożądany dostęp do instancji bazy danych. Najlepszym sposobem jest przyznanie użytkownikom dostępu do SQL Server indywidualnie. Możesz także dodać grupę osób w grupie Windows i przyznać im dostęp do SQL Server. Możesz użyć poniższej instrukcji T-SQL, aby usunąć ten login z instancji SQL Server.

Możesz również usunąć ten login za pomocą graficznego interfejsu użytkownika za pośrednictwem programu SQL Server Management Studio. Wystarczy połączyć się z instancją SQL Server, a następnie rozwinąć folder zabezpieczeń na poziomie instancji. Tutaj możesz kliknąć ten login prawym przyciskiem myszy, aby usunąć go z instancji SQL Server.

--DROP Login
DROP LOGIN [BUILTIN\Administrators]

Silne hasła i odpowiednie uprawnienia użytkownika

Zawsze przypisuj każdemu użytkownikowi odpowiednie uprawnienia, powinny one być minimalne, biorąc pod uwagę jego rolę w dostępie do baz danych. Ponadto nigdy nie powinniśmy używać słabych haseł do żadnego loginu lub tego samego loginu i hasła. Zawsze używaj polityki haseł dla każdego logowania SQL.

Skonfiguruj inspekcję logowania do serwera SQL

SQL Server udostępnia funkcję inspekcji, która umożliwia przechwytywanie szczegółów wszystkich nieudanych i udanych logowań. Jest to bardzo przydatna konfiguracja, jeśli chcesz kontrolować, kto łączy się lub próbuje połączyć się z Twoimi bazami danych. Możemy skonfigurować alert SQL Server, który będzie wysyłał powiadomienia mailowe o każdym nieudanym i udanym logowaniu do SQL Server. Możesz wykonać poniższe kroki, aby włączyć kontrolę logowania.

  • Połącz się z docelową instancją SQL Server w SQL Server Management Studio
  • Kliknij prawym przyciskiem myszy nazwę instancji SQL Server, a następnie kliknij Właściwości .
  • Kliknij Zabezpieczenia w lewym panelu. Otrzymasz Kontrolę logowania w prawym panelu, jak pokazano na pierwszym zrzucie ekranu tego artykułu
  • Wybierz żądaną opcję i zamknij Właściwości serwera strona
  • Uruchom ponownie usługę SQL Server, aby zastosować tę zmianę

Usuń nieużywane dane logowania do serwera SQL

Zawsze miej oko na swoje loginy SQL Server. Należy uważać, aby usunąć wszystkie konta logowania, które nie są już używane. Wiem, że ręczne zarządzanie jest trudne, ale możesz skonfigurować alert e-mail, aby wysłać wiadomość dotyczącą wszystkich loginów serwera SQL i ich uprawnień.

Wniosek

Wyjaśniłem niektóre z możliwych konfiguracji, które możemy zastosować, aby zabezpieczyć nasze bazy danych przed zagrożeniami zewnętrznymi. Rozważ wszystkie powyższe punkty podczas wdrażania zasad wzmacniania bazy danych w środowisku.

Udostępnij ten artykuł i podziel się swoją opinią w sekcji komentarzy, abyśmy mogli ulepszyć.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najszybszy sposób zbiorczego wstawiania dużej ilości danych w programie SQL Server (klient C#)

  2. Jak DENSE_RANK() działa w SQL Server

  3. najlepszy sposób na konwersję i walidację ciągu daty

  4. Zresetuj źródło tożsamości po usunięciu rekordów w SQL Server

  5. Czy mogę połączyć się z SQL Server za pomocą uwierzytelniania Windows z aplikacji internetowej Java EE?