Na czym polega audyt komputerowy?

Audyt Serwera SQL: Kompleksowy Przewodnik

14/03/2024

Rating: 4.01 (6440 votes)

Audyt serwera SQL to kluczowy element zapewnienia bezpieczeństwa i zgodności w środowisku baz danych. Polega on na śledzeniu i rejestrowaniu zdarzeń zachodzących w silniku bazy danych SQL Server. Dzięki audytowi administratorzy mogą monitorować aktywność użytkowników, wykrywać potencjalne zagrożenia i spełniać wymogi regulacyjne. W tym artykule szczegółowo omówimy, czym jest audyt serwera SQL, jakie są jego komponenty i jak go efektywnie wykorzystać.

Co oznacza audyt bezpieczeństwa?
Audyt bezpieczeństwa to proces, który ocenia zdrowie i bezpieczeństwo w miejscu pracy . Podczas audytu grupa zbiera dane o operacjach w danej lokalizacji. Identyfikują zagrożenia i ilustrują, jak uczynić obszar bezpieczniejszym dla pracowników. Liderzy organizacji wykorzystują audyty do opracowywania procedur bezpieczeństwa dla członków swojego zespołu.
Spis treści

Czym Jest Audyt Serwera SQL?

Audyt serwera SQL to proces monitorowania i rejestrowania zdarzeń, które mają miejsce w instancji silnika bazy danych SQL Server lub w poszczególnych bazach danych. Umożliwia on tworzenie audytów serwera, które mogą zawierać specyfikacje audytu serwera dla zdarzeń na poziomie serwera oraz specyfikacje audytu bazy danych dla zdarzeń na poziomie bazy danych. Zdarzenia podlegające audytowi mogą być zapisywane do dzienników zdarzeń systemu Windows lub do plików audytu.

Istnieje kilka poziomów audytu dla SQL Server, w zależności od wymagań rządowych lub standardów obowiązujących w danej instalacji. SQL Server Audit dostarcza narzędzi i procesów niezbędnych do włączania, przechowywania i przeglądania audytów różnych obiektów serwera i bazy danych.

Można rejestrować grupy akcji audytu serwera dla każdej instancji oraz grupy akcji audytu bazy danych lub akcje audytu bazy danych dla każdej bazy danych. Zdarzenie audytu występuje za każdym razem, gdy zostanie napotkana akcja podlegająca audytowi.

Wszystkie edycje SQL Server obsługują audyty na poziomie serwera. Wszystkie edycje obsługują audyty na poziomie bazy danych począwszy od SQL Server 2016 SP1. Wcześniej audyt na poziomie bazy danych był ograniczony do edycji Enterprise, Developer i Evaluation.

Komponenty Audytu Serwera SQL

Audyt to połączenie kilku elementów w jeden pakiet dla określonej grupy akcji serwera lub bazy danych. Komponenty audytu serwera SQL łączą się, aby wygenerować dane wyjściowe nazywane audytem. SQL Server Audit wykorzystuje Rozszerzone Zdarzenia (Extended Events) do tworzenia audytu.

Obiekt Audytu Serwera SQL

Obiekt audytu serwera SQL zbiera pojedynczą instancję akcji na poziomie serwera lub bazy danych oraz grupy akcji do monitorowania. Audyt znajduje się na poziomie instancji SQL Server. Można mieć wiele audytów na instancję SQL Server.

Podczas definiowania audytu należy określić lokalizację danych wyjściowych wyników. Jest to miejsce docelowe audytu. Audyt jest tworzony w stanie wyłączonym i nie audytuje automatycznie żadnych akcji. Po włączeniu audytu, miejsce docelowe audytu odbiera dane z audytu.

Specyfikacja Audytu Serwera

Obiekt specyfikacji audytu serwera należy do audytu. Można utworzyć jedną specyfikację audytu serwera na audyt, ponieważ oba są tworzone w zakresie instancji SQL Server.

Specyfikacja audytu serwera zbiera wiele grup akcji na poziomie serwera wywoływanych przez funkcję Rozszerzonych Zdarzeń. Można uwzględnić grupy akcji audytu w specyfikacji audytu serwera. Grupy akcji audytu to predefiniowane grupy akcji, które są atomowymi zdarzeniami występującymi w silniku bazy danych. Te akcje są wysyłane do audytu, który rejestruje je w miejscu docelowym.

Grupy akcji audytu na poziomie serwera są opisane w artykule Grupy akcji i akcje audytu serwera SQL.

Specyfikacja Audytu Bazy Danych

Obiekt specyfikacji audytu bazy danych również należy do audytu serwera SQL. Można utworzyć jedną specyfikację audytu bazy danych na bazę danych SQL Server na audyt.

Specyfikacja audytu bazy danych zbiera akcje audytu na poziomie bazy danych wywoływane przez funkcję Rozszerzonych Zdarzeń. Można dodać grupy akcji audytu lub zdarzenia audytu do specyfikacji audytu bazy danych. Zdarzenia audytu to atomowe akcje, które mogą być audytowane przez silnik SQL Server. Grupy akcji audytu to predefiniowane grupy akcji. Oba znajdują się w zakresie bazy danych SQL Server. Te akcje są wysyłane do audytu, który rejestruje je w miejscu docelowym. Nie należy uwzględniać obiektów o zakresie serwera, takich jak widoki systemowe, w specyfikacji audytu bazy danych użytkownika.

Grupy akcji audytu na poziomie bazy danych i akcje audytu są opisane w artykule Grupy akcji i akcje audytu serwera SQL.

Miejsce Docelowe Audytu

Wyniki audytu są wysyłane do miejsca docelowego, którym może być plik, dziennik zdarzeń zabezpieczeń systemu Windows lub dziennik zdarzeń aplikacji systemu Windows. Dzienniki muszą być okresowo przeglądane i archiwizowane, aby upewnić się, że miejsce docelowe ma wystarczająco dużo miejsca na zapisywanie kolejnych rekordów.

Ważne jest, aby pamiętać o implikacjach bezpieczeństwa związanych z wyborem miejsca docelowego:

  • Dziennik Zdarzeń Aplikacji Windows: Każdy uwierzytelniony użytkownik może czytać i zapisywać do dziennika zdarzeń aplikacji Windows. Wymaga on niższych uprawnień niż dziennik zdarzeń zabezpieczeń systemu Windows i jest mniej bezpieczny.
  • Dziennik Zdarzeń Zabezpieczeń Windows: Zapis do dziennika zabezpieczeń systemu Windows wymaga dodania konta usługi SQL Server do zasady „Generuj inspekcje zabezpieczeń”. Domyślnie Local System, Local Service i Network Service są częścią tej zasady. Wymaga włączenia zasady inspekcji obiektu dostępu dla powodzenia i niepowodzenia. Jest to bezpieczniejsza opcja, ale wymaga odpowiedniej konfiguracji uprawnień.
  • Plik: Zapisywanie informacji audytu do pliku pozwala na większą kontrolę nad dostępem i bezpieczeństwem. Aby zapobiec manipulacjom, można ograniczyć dostęp do lokalizacji pliku. Konto usługi SQL Server musi mieć uprawnienia do odczytu i zapisu. Administratorzy audytu zazwyczaj wymagają uprawnień do odczytu i zapisu. Czytelnicy audytu, którzy są upoważnieni do odczytu plików audytu, muszą mieć uprawnienia do odczytu.

Zaleca się generowanie raportów audytu z oddzielnej instancji SQL Server, takiej jak instancja SQL Server Express, do której dostęp mają tylko Administratorzy audytu lub Czytelnicy audytu. Korzystanie z oddzielnej instancji silnika bazy danych do raportowania pomaga zapobiegać nieautoryzowanym użytkownikom uzyskaniu dostępu do rekordów audytu.

Przegląd Korzystania z Audytu Serwera SQL

Można użyć SQL Server Management Studio lub Transact-SQL do zdefiniowania audytu. Po utworzeniu i włączeniu audytu, miejsce docelowe będzie odbierać wpisy.

Dzienniki zdarzeń systemu Windows można odczytać za pomocą narzędzia Podgląd zdarzeń w systemie Windows. W przypadku miejsc docelowych plików, można użyć Przeglądarki plików dziennika w SQL Server Management Studio lub funkcji fn_get_audit_file, aby odczytać plik docelowy.

Ogólny proces tworzenia i korzystania z audytu jest następujący:

  1. Utwórz audyt i zdefiniuj miejsce docelowe.
  2. Utwórz specyfikację audytu serwera lub specyfikację audytu bazy danych, która jest mapowana na audyt.
  3. Włącz specyfikację audytu.
  4. Włącz audyt.
  5. Odczytaj zdarzenia audytu za pomocą Podglądu zdarzeń systemu Windows, Przeglądarki plików dziennika lub funkcji fn_get_audit_file.

Ważne Aspekty Audytu Serwera SQL

Podczas korzystania z audytu serwera SQL należy wziąć pod uwagę kilka istotnych aspektów:

  • Awaria podczas uruchamiania audytu: W przypadku awarii podczas inicjowania audytu, serwer nie uruchomi się. W takim przypadku serwer można uruchomić za pomocą opcji -f w wierszu poleceń.
  • Zamykanie serwera z powodu błędu audytu: Gdy błąd audytu powoduje zamknięcie serwera lub brak możliwości uruchomienia, ponieważ dla audytu określono ON_FAILURE=SHUTDOWN, zdarzenie MSG_AUDIT_FORCED_SHUTDOWN jest zapisywane do dziennika. Administrator może ominąć zamknięcia wywołane przez audyt, uruchamiając SQL Server w trybie Single User za pomocą flagi -m.
  • Dołączanie bazy danych z zdefiniowanym audytem: Dołączenie bazy danych, która ma specyfikację audytu i określa identyfikator GUID, który nie istnieje na serwerze, spowoduje osierocenie specyfikacji audytu. Aby to naprawić, użyj polecenia ALTER DATABASE AUDIT SPECIFICATION, aby połączyć osieroconą specyfikację audytu z istniejącym audytem serwera. Lub użyj polecenia CREATE SERVER AUDIT, aby utworzyć nowy audyt serwera z określonym identyfikatorem GUID.
  • Mirroring bazy danych i audyt serwera SQL: Baza danych, która ma zdefiniowaną specyfikację audytu bazy danych i która korzysta z mirroringu bazy danych, będzie zawierać specyfikację audytu bazy danych. Aby poprawnie działać na serwerze mirror, serwer mirror musi mieć audyt z tym samym identyfikatorem GUID, aby specyfikacja audytu bazy danych mogła zapisywać rekordy audytu.

Audytowanie Administratorów

Członkowie stałej roli serwera sysadmin są identyfikowani jako użytkownik dbo w każdej bazie danych. Aby audytować działania administratorów, audytuj działania użytkownika dbo.

Tworzenie i Zarządzanie Audytami za Pomocą Transact-SQL

Można użyć instrukcji DDL, dynamicznych widoków zarządzania i funkcji oraz widoków katalogowych do wdrożenia wszystkich aspektów audytu serwera SQL.

Instrukcje Języka Definicji Danych (DDL)

Można użyć następujących instrukcji DDL do tworzenia, modyfikowania i usuwania specyfikacji audytu:

  • CREATE SERVER AUDIT
  • ALTER SERVER AUDIT
  • DROP SERVER AUDIT
  • CREATE SERVER AUDIT SPECIFICATION
  • ALTER SERVER AUDIT SPECIFICATION
  • DROP SERVER AUDIT SPECIFICATION
  • CREATE DATABASE AUDIT SPECIFICATION
  • ALTER DATABASE AUDIT SPECIFICATION
  • DROP DATABASE AUDIT SPECIFICATION

Widoki i Funkcje Dynamiczne

Dostępne są dynamiczne widoki i funkcje do monitorowania audytu, takie jak:

  • sys.dm_audit_actions
  • sys.dm_server_audit_status
  • sys.dm_audit_class_type_map
  • fn_get_audit_file

Widoki Katalogowe

Widoki katalogowe umożliwiają przeglądanie konfiguracji audytu, na przykład:

  • sys.database_audit_specifications
  • sys.database_audit_specification_details
  • sys.server_audits
  • sys.server_audit_specifications
  • sys.server_audit_specifications_details
  • sys.server_file_audits

Uprawnienia

Każda funkcja i polecenie audytu serwera SQL ma indywidualne wymagania dotyczące uprawnień.

Aby tworzyć, modyfikować lub usuwać audyt serwera lub specyfikację audytu serwera, podmioty zabezpieczeń serwera wymagają uprawnienia ALTER ANY SERVER AUDIT lub CONTROL SERVER. Aby tworzyć, modyfikować lub usuwać specyfikację audytu bazy danych, podmioty zabezpieczeń bazy danych wymagają uprawnienia ALTER ANY DATABASE AUDIT lub uprawnienia ALTER lub CONTROL do bazy danych. Ponadto podmioty zabezpieczeń muszą mieć uprawnienia do łączenia się z bazą danych lub uprawnienia ALTER ANY SERVER AUDIT lub CONTROL SERVER.

Uprawnienie VIEW ANY DEFINITION zapewnia dostęp do przeglądania widoków audytu na poziomie serwera, a VIEW DEFINITION zapewnia dostęp do przeglądania widoków audytu na poziomie bazy danych. Odmowa tych uprawnień unieważnia możliwość przeglądania widoków katalogowych, nawet jeśli podmiot zabezpieczeń ma uprawnienia ALTER ANY SERVER AUDIT lub ALTER ANY DATABASE AUDIT.

Podsumowanie

Audyt serwera SQL jest niezbędnym narzędziem do monitorowania bezpieczeństwa i zgodności baz danych SQL Server. Umożliwia śledzenie zdarzeń na poziomie serwera i bazy danych, zapisywanie danych audytu do różnych miejsc docelowych i analizowanie informacji o aktywności. Poprawne skonfigurowanie i zarządzanie audytem serwera SQL pozwala na proaktywne reagowanie na potencjalne zagrożenia bezpieczeństwa i spełnienie wymagań regulacyjnych.

Jeśli chcesz poznać inne artykuły podobne do Audyt Serwera SQL: Kompleksowy Przewodnik, możesz odwiedzić kategorię Audyt.

Go up