Jak zabezpieczyć serwer MS SQL?

Instancje Microsoft SQL Servera zwykle nie są eksponowane w Internecie, przynajmniej w teorii. SANS w przeszłości kilkukrotnie informował o zwiększonej aktywności automatycznych skanerów poszukujących otwartego portu 1433, używanego przez SQL Server. Co więcej, włamywacze niejednokrotnie mają możliwość prowadzenia "konwersacji" z bazą danych za pośrednictwem aplikacji webowej, wstrzykując do niej kod SQL. Dlatego warto zapoznać się z kilkoma zasadami bezpiecznej konfiguracji serwera Microsoft SQL.

Uwierzytelnienie użytkowników SQL

SQL Server używa kont użytkowników do kontroli dostępu do tablic oraz szeregu innych operacji na bazie. Historycznie baza danych posługiwała się swoją własną listą użytkowników, wśród których najistotniejszy był użytkownik "sa" (SQL administrator). Z punktu widzenia bezpieczeństwa preferowany powinien być tryb uwierzytelnienie Windows (Windows Authentication), wprowadzony w SQL Server 2000, który opiera się o hasła systemu Windows, na którym działa SQL Server. Dzięki temu w bazie będą obowiązywać te same ograniczenia dotyczące np. długości haseł co w systemie, a lista użytkowników będzie spójna - np. skasowanie użytkownika z systemu spowoduje, że straci on również dostęp do bazy.

W przypadku aplikacji ASP.NET zaletą jest także to, że stosując Windows Authentication nie trzeba podawać nazwy użytkownika i hasła w kodzie źródłowym skryptu ASP, skąd mogą wycieknąć w razie włamania.

Natywne hasła SQL Server są nadal dostępne w trybie mieszanym (Mixed Mode). Jeśli korzystamy z tej opcji to kluczowe jest stosowanie silnych haseł. Z konta SA nie należy korzystać do codziennej pracy (chociaż tak jest łatwiej). Należy traktować go jako konto specjalne, służące wyłącznie do wykonywania czynności o charakterze administracyjnym, jak zakładanie użytkowników lub zarządzenie ich uprawnieniami do poszczególnych baz i tablic. Szczególnie rażącym błędem jest natomiast stosowanie konta SA do uwierzytelnienia aplikacji z hasłem zapisanym w jej kodzie źródłowym.

Być na bieżąco

Baza SQL nie działa w próżni - na wypadkowe bezpieczeństwo aplikacji wpływ ma także bezpieczeństwo aplikacji, systemu operacyjnego, serwera Internet Information Server (IIS) oraz środowisk programistycznych takich jak .NET Framework. Wszystkie te komponenty należy aktualizować tak szybko jak to jest możliwe, po publikacji poprawek przez Microsoft, autora aplikacji lub bibliotek zewnętrznych. Należy pamiętać, by przed instalacją poprawek tworzyć kopię zapasową bazy.

Aktualny stan bezpieczeństwa systemu można porównać do zaleceń producenta za pomocą narzędzi takich jak SQL Server 2005 Best Practices Analyzer oraz Microsoft Baseline Security Analyzer.

Poza instalacją aktualizacji warto także być na bieżąco z informacjami publikowanymi na blogu SQL Security Microsoftu. Można się tam dowiedzieć na przykład jaka jest rada Microsoftu na zwalczanie automatycznych ataków SQL injection oraz poznać najnowsze rozwiązania techniczne wprowadzane do SQL Servera przez producenta.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200