r06-06.doc

(512 KB) Pobierz
Wstęp

              Rozdział 6. u Zabezpieczenie dostępu do sieci i system identyfikacji Kerberos              3

 

Rozdział 6.
Zabezpieczenie
dostępu do sieci
i system identyfikacji Kerberos

Każda organizacja posiada cenne zasoby, które muszą być chronione przed złodziejami, wandalami oraz nieświadomym zniszczeniem przez pracowników. Bez względu na to, czy są to kontenery w magazynie domu towarowego, czy też pliki na dysku twardym, podstawowe zasady zabezpieczeń pozostają takie same:

n   Uwierzytelnianie. Indywidualni użytkownicy muszą zostać zidentyfikowani w celu uzyskania upoważnienia wstępu do kontrolowanych obszarów.

n   Kontrola dostępu. Wszystkie możliwe wejścia muszą być zablokowane i strzeżone. Szczególnie ważne obszary muszą posiadać dodatkowy, wewnętrzny system kontroli.

n   Monitorowanie. Dostęp musi być monitorowany, a personel, odpowiedzialny za bezpieczeństwo, musi być natychmiast informowany o próbie naruszenia dostępu.

W tym rozdziale zostały zamieszczone informacje dotyczące właściwości uwierzytelniania i kontroli dostępnych w Windows 2000. Kontrola dostępu została omówiona w rozdziale 14. „Bezpieczeństwo systemów plików” i rozdziale 15. „Zarządzanie zasobami udostępnionymi”. Dodatkowe informacje związane z uwierzytelnianiem i kontrolą zdalnego dostępu można znaleźć w rozdziale 17. „Zdalny dostęp i wyznaczanie tras w Internecie”.

Przegląd zabezpieczeń dostępu

Już w swoich początkach klasyczny system NT korzystał z własnego systemu uwierzytelniania noszącego nazwę NT LAN Manager (NTLM) Challenge-Response. Wraz z Windows 2000 Microsoft udostępnił system identyfikacji użytkowników sieci w środowisku przetwarzania rozproszonego, noszący nazwę Kerberos. Kerberos powstał jako część projektu Athena. Jego nazwa pochodzi od mitologicznego trójgłowego psa, który zgodnie z grecką mitologią strzegł bram podziemi Hadesu. Jeżeli jesteś zaznajomiony z mitologią grecką, z pewnością będziesz wiedział, dlaczego w projekcie Athena wy­brano właśnie Kerberosa. Windows 2000 używa systemu Kerberos w wersji 5., który został zdefiniowany w RFC 1510 „The Kerberos Network Authentication Service V5”. Wiele implementacji systemu zostało wykorzystanych także w bibliotece API, opisanej w RFC 1964 „The Kerberos Version 5 Generic Security Service Application Programming Interface (GSS-API) Mechanism”. Windows 2000 nie korzysta bezpośrednio z GSS-API. Zamiast tego używa podobnego zbioru funkcji udostępnionego przez interfejs SSPI (Security Support Provider Interface).

Ponieważ mechanizm uwierzytelniania został zaprojektowany w taki sposób, aby był jak najbardziej niezauważalny, działanie systemu Kerberos nie jest tak wyraziste, jak działanie NTLM Challenge-Response. Windows 2000 używa systemu Kerberos w następujących okolicznościach:

n   Uwierzytelnianie użytkowników logujących się do kontrolerów domeny Windows 2000.

n   Uwierzytelnianie użytkowników logujących się do serwerów i stacji roboczych Windows 2000, będących członkami domeny Windows 2000.

n   Uwierzytelnianie użytkowników logujących się do wolno stojących serwerów i stacji roboczych Windows 2000.

n   Uwierzytelnianie użytkowników uzyskujących dostęp do serwerów albo stacji roboczych Windows 2000 z klientów Windows 9x skonfigurowanych względem Active Directory.

Uwierzytelnianie NTLM Challenge-Response jest używane w następujących przypadkach:

n   Uwierzytelnianie użytkowników logujących się do serwerów i stacji roboczych Windows 2000, które należą do domeny klasycznego systemu NT (albo uzyskują dostęp do domeny klasycznego NT z Windows 2000, korzystając z zaufanej relacji).

n   Uwierzytelnianie użytkowników uzyskujących dostęp do serwera albo stacji roboczej Windows 2000 z serwera albo stacji roboczej klasycznego NT.

n   Uwierzytelnianie użytkowników uzyskujących dostęp do serwera Windows 2000 z klienta standardowego Windows 9x albo 3.1x

Jeżeli zastanawiasz się, w jaki sposób można sprawdzić działanie uwierzytelniania, możesz włączyć monitorowanie i sprawdzić zarejestrowane transakcje, gdyż są one rejestrowane zarówno w konsoli stacji roboczej, jak i w konsoli serwera. Więcej informacji na ten temat znajdziesz w dalszej części rozdziału „System inspekcji”.

Funkcjonalny opis architektury zabezpieczenia NT

Wskazanie jednego konkretnego miejsca w architekturze Windows 2000 i określenie go miejscem usług obsługujących zabezpieczenie, byłoby bardzo trudne. Zabezpieczenie jest zintegrowane z każdą częścią systemu operacyjnego. Główne decyzje systemu są kontrolowane przez LSA (Local Security Authority — Lokalne świadectwo zabezpieczeń). LSA za pomocą usług logowania, takich jak WINLOGON i NETLOGON, uzyskuje uwierzytelnienia od użytkowników. Następnie wykonuje czynności uwierzytelniające, korzystając z pomocy modułów zabezpieczeń. Po pomyślnym uwierzytelnieniu użytkownik otrzymuje żeton dostępu, który stanowi identyfikator dla wszystkich procesów zainicjowanych przez użytkownika. Żeton identyfikuje kod zabezpieczeń użytkownika wraz z dowolnymi grupami i specjalnymi przywilejami związanymi z użytkownikiem.

Microsoft umożliwił innym producentom rozszerzenie i modyfikację mechanizmu uwierzytelniania dla konsoli logowania. Normalnie użytkownik komputera udostępnia swoje uwierzytelnienie w formie kombinacji nazwa-hasło, jakkolwiek istnieją również takie formy jak badanie odcisków palców, barwy głosu, siatkówki oka, zadawanie drążących pytań, a pewnego dnia z pewnością możliwa stanie się identyfikacja na podstawie wewnętrznej ingerencji w organizm człowieka. Organizacje wykonują wiele kroków uniemożliwiających niepożądanym użytkownikom na korzystanie z ich zasobów sieciowych. Pakiety innych producentów mogą działać w oparciu o standardowy system uwierzytelniania dostarczony przez Microsoft. Jest to możliwe dzięki specjalnej bibliotece zabezpieczeń, która bazuje na wywołaniach biblioteki GINA (Graphical Identification and Authentication — Graficzna identyfikacja i uwierzytelnianie). Jednym z przykładów jest biblioteka NWGINA, używana przez klientów NetWare w Windows 2000.

Lokalne Świadectwo Zabezpieczeń (LSA)

LSA używa typowego dla NT/Windows 2000 podsystemu klient-serwer, składającego się z części trybu użytkownika pracującego w pierścieniu 3 oraz z części programu wykonawczego działającego w pierścieniu 0. Po stronie użytkownika znajduje się lokalny podsystem zabezpieczeń (LSASS.EXE — Local Security Authority SubSystem), natomiast po stronie programu wykonawczego znajduje się monitor odniesienia zabezpieczeń (SRM — Security Reference Monitor). LSASS posiada dwie usługi gromadzące uwierzytelnienia użytkowników: WINLOGON i NETLOGON, jak również zbiór SSPI, który przetwarza uwierzytelnienia i sprawdza, czy użytkownik może uzyskać prawo dostępu do komputera lub domeny, albo do jednego i drugiego. W rejestrze systemowym moduły zabezpieczeń noszą nazwę pakietów zabezpieczeń.

Moduły zabezpieczeń i SSPI

SSPI udostępnia systemowi Windows 2000 łatwy do konfigurowania i elastyczny sposób współdziałania z systemem zabezpieczeń. SSPI pozwala programistom na używanie pojedynczego zbioru wywołań API do obsługi zadań uwierzytelniania, zamiast zmuszać ich do tworzenia lokalnych, sieciowych, internetowych, prywatnych (lub publicznych) i własnych kluczy systemów uwierzytelniania. SSPI jest tak samo elastyczny dla systemów uwierzytelniania jak specyfikacja NDIS (Network Device Interface Specification — Specyfikacja interfejsu urządzeń sieciowych) dla systemów sieciowych albo otwarte łącze baz danych ODBC (Open Database Connectivity) dla systemów zarządzania bazami danych.

Moduły zabezpieczeń przybierają postać bibliotek DLL, które korzystają z programu wykonawczego LSASS. Producenci, którzy chcą udostępnić swoje nowe i udoskonalone pakiety zabezpieczeń, mogą je tworzyć samodzielnie. Rozwój Windows 2000 udos­tępnia wiele nowych możliwości dla pakietów zabezpieczeń SSPI, w związku z czym wielu producentów ciągle stara się tworzyć produkty mogące wykorzystać nowe właściwości systemu. Poniżej przedstawione zostały pakiety zabezpieczeń udostępnione w Windows 2000:

n   Kerberos — KERBEROS.DLL. Pakiet obsługuje klientów Kerberos. Gdy klient Windows 2000 próbuje uzyskać dostęp do serwera Windows 2000, klient wywołuje KERBEROS.DLL w celu obsługi uwierzytelniania. Po stronie serwera operacja jest kontrolowana przez usługę KDCSVC.DLL (Kerberos Key Distribution Center), pracującą w kontrolerze domeny Windows 2000.

n   NTLM Challenge-Response (Wezwanie-odpowiedź) — MSV1_0.DLL. Pakiet wspomaga klasyczne uwierzytelnianie NTLM Challenge-Response. Pełną implementację pakietu dla usług internetowych stanowi WINSSPI.DLL. Wspomagane są usługi WWW, które używają WINSSPI do uwierzytelniania użytkowników inicjujących po stronie serwera skrypty CGI, ActiveX, czy też Windows Script Host.

n   LSA Negotiate (Uzgadnianie LSA) — LSASRV.DLL. Pakiet współdziała z WINLOGON i NETLOGON w celu przekazania uwierzytelniania klientów do pakietów zabezpieczeń.

n   Distributed Password Authentication (Uwierzytelnianie z rozproszonym hasłem) – MSAPSSPC.DLL. Pakiet ten obsługuje sieć Microsoft (MSN — Microsoft Network) i inne wielkie pakiety zawartości.

n   MSN authentication (Uwierzytelnianie MSN) — MSNSSPC.DLL. Ten pakiet obsługuje starszą metodę uwierzytelniania, używaną przez MSN przed korzystaniem z MSAPSSPC.DLL.

n   Secure Socket Layer/Private Communications Transport (Warstwa gniazda zabezpieczenia/Prywatny transport komunikacyjny) — SCHANNEL.DLL. Pakiet obsługuje zabezpieczenia komunikacji internetowej. Na przykład pakiet ten jest używany, gdy wywołania zabezpieczeń API w Internet Explorerze są wykonywane do WININET.

n   Digest authentication (skrócone uwierzytelnianie) – DIGEST.DLL. Pakiet obsługuje nową metodę uwierzytelniania użytkowników WWW. Metoda opiera się na standardowym uwierzytelnianiu w sieci Web, lecz nie wymaga hasła użytkownika.

Wskazówka rejestru: Pakiety wspomagające zabezpieczenie

Lista pakietów wspomagających zabezpieczenie znajduje się w HKLM|System|CurrentControlSet|Control|SecurityProviders.

Parametry kontrolne dla LSA i jego modułów wspomagających zabezpieczenie znajduje się w HKLM|System|CurrentControlSet|Control|LSA.

Baza danych zabezpieczeń i kont

Moduły zabezpieczeń potrzebują miejsca, w którym można przechowywać uwierzytelnienia dla użytkowników, grup i komputerów. Kontrolery domeny Windows 2000 przechowują informacje zabezpieczeń w Active Directory. Klasyczny system NT oraz osobne stacje Windows 2000 przechowują informacje w trzech bazach danych opartych na rejestrze systemowym. Do tych trzech baz danych należą:

n   Builtin (Wbudowana). Ta baza danych zawiera dwa domyślne konta użytkownika
Administrator (Administratora) i Guest (Gościa), wraz z różnymi domyślnymi grupami, takimi jak Domain Users (Użytkownicy domeny) dla i Power User (Zaawansowany użytkownik), dla stacji roboczych i wolnostojących serwerów. Baza jest częścią grupy SAM w rejestrze systemowym, znajdującej się w gałęzi HKEY_Local_Machine (HKLM). Ta i inne grupy rejestrów (za wyjątkiem profili użytkowników) znajdują się w katalogu Winnt\System32\Config. Struktura bazy danych jest różna dla kontrolerów domeny i wolno stojących serwerów. Jest to jeden z powodów, dla których serwer pracujący w klasycznym NT wymaga dostosowania do kontrolera domeny. Kontroler domeny Windows 2000 pozwala na migrację kont bazy danych do Active Directory.

n   Security Account Manager — SAM (Menedżer kont zabepieczenia). Ta baza danych zawiera klasyczne konta NT użytkowników i grup, utworzonych po wstępnej instalacji Windows 2000. Znajduje się ona w grupie rejestru SAM. Każdy użytkownik, grupa i komputer posiada swój identyfikator zabezpieczenia. Identyfikator jest używany do kontroli dostępu do obiektów zabezpieczeń, takich jak pliki, klucze rejestru i obiekty Active Directory. Więcej informacji dotyczących budowy identyfikatorów znajdziesz w dalszej części rozdziału, w podrozdziale zatytułowanym „Kody identyfikatora zabezpieczeń”.

n   LSA. Ta baza danych zawiera zasady hasła, założenia systemowe i konta zaufania dla komputera. Przechowywana jest w grupie rejestru SECURITY, znajdującej się również w gałęzi HKEY_Local_Machine. Grupa SECURITY zawiera również kopię bazy danych SAM.

Przeglądanie grup rejestru

Zazwyczaj nie ma możliwości przeglądania zawartości trzech baz danych zabezpieczeń, gdyż klucze rejestru udostępniają pełny dostęp tylko dla konta System. Aby dostać się do grup rejestru, możesz zmienić prawo dostępu w kluczu rejestru i przydzielić pełny dostęp dla swojego konta albo konta grupy Administrators (Administratorzy). Nie rób tego jednak na komputerze przemysłowym. Nie jest powiedziane, że w ten sposób zniszczysz bazę danych, lecz z pewnością narazisz ją na niepotrzebne ryzyko. Wszystkie dane w bazie są szyfrowane i przechowywane w formacie binarnym. Przykładowa struktura grupy została przedstawiona na rysunku 6.1.

Rysunek 6.1.

Baza danych SAM widoczna w edytorze rejestru systemowego

 

Konta komputera

Baza danych SAM zawiera konta dla komputerów, użytkowników i grup. Konta komputerowe tworzą miniaturowe relacje zaufania z kontrolerem domeny. Relacje te są używane do ustanowienia bezpiecznych łączy komunikacyjnych za pomocą wywołania zdalnej procedury (MSRPC — MS Remote Procedure Call), której lokalne LSA używa do przesłania żądania uwierzytelnienia użytkownika do kontrolera domeny. Konto komputera Windows 2000 zapobiega przyłączeniu nie autoryzowanego komputera do sieci i uzyskaniu dostępu do domeny.

Każde konto komputera posiada hasło, które musi zostać wygenerowane podczas przyłączania komputera do domeny. Nie ma możliwości przeglądania hasła z interfejsu użytkownika. Jest ono zmieniane co 28 dni na skutek uzgodnień pomiędzy komputerem i kontrolerem domeny.

Utrata ważności hasła

Może się czasami zdarzyć, że po długiej nieobecności nie będziesz mógł przyłączyć się do domeny, gdyż lokalne hasło Twojego komputera straciło ważność. W takiej sytuacji musisz usunąć rejestrację domeny komputera i ponownie przyłączyć się do domeny. Konieczna jest również ponowna rejestracja stacji roboczej, jeżeli zmieniona została jej nazwa. Dzięki tej operacji komputer otrzyma nowy Identyfikator Zabezpieczenia (SID). Jeżeli będziesz próbował przyłączyć komputer do domeny i nadać mu nazwę istniejącego już komputera, kontroler domeny odrzuci żądanie rejestracji, nawet jeżeli dany komputer nie jest już przyłączony do sieci.

Hasła

Ani SAM, ani Active Directory nie przechowują haseł użytkowników w postaci tekstowej. Zamiast tego, hasła są szyfrowane za pomocą algorytmu RSA MD4. Dzięki wykorzystaniu tego algorytmu hasła o różnej długości szyfruje się za pomocą pewnego klucza, w wyniku czego otrzymuje się hasła o stałej długości, zwane message digest — skrócona wiadomość. Algorytm MD jest algorytmem jednokierunkowym, co oznacza, że hasła nie mogą być odszyfrowywane z powrotem do ich pierwotnej postaci. Algorytm ten jest często nazywany funkcją mieszającą. Jest to spowodowane tym, że podczas szyfrowania hasła, jego poszczególne elementy są mieszane pomiędzy sobą.

Im więcej bitów znajduje się w haśle, tym trudniej je złamać.

Wersje Windows 2000 przeznaczone do użytku wewnętrznego używają 128-bitowych haseł, które uważa się za niemożliwe do rozszyfrowania przez użytkowników komputerów. Wyjątek stanowi Narodowa Administracja Zabezpieczeń (NSA — National Security Administration), która, przy ogromnym nakładzie pracy i czasu, jest w stanie złamać hasła MD. Dodatkowo Windows 2000 zwiększył poziom skomplikowania hasła, wprowadzając możliwość rozróżnienia dużych i małych znaków Unicode. Wersje Windows 2000 przeznaczone do użytku zewnętrznego używają 40-bitowych haseł, które niestety z pewnością nie stanowią bariery nie do przeskoczenia dla hakerów.

Obraz zabezpieczeń staje się jeszcze gorszy, gdy weźmiesz pod uwagę obsługę klientów niższego poziomu Windows, jak np. Windows 9x albo Win3.1x. Starsze wersje systemu operacyjnego korzystają z szyfrowania kompatybilnego z LAN Manager, który używa standardu szyfrowania danych DES (U.S. Data Encrypted Standard). Nie tylko sposób szyfrowania nie jest tak bezpieczny jak MD4, lecz również hasła LAN Manager są same w sobie prostszą kombinacją znaków, jako że nie uwzględniają różnicy pomiędzy dużymi i małymi literami oraz używają tylko znaków ANSI. W ostatnim czasie bardzo wzrosła liczba narzędzi umożliwiających skanowanie klasycznej bazy danych SAM, przechwytywanie haseł LAN Manager i używanie ich do otwierania systemów. Począwszy od Windows NT4 SP3, a skończywszy na Windows 2000 baza danych SAM może być zabezpieczana specjalnym sposobem szyfrowania. Do szyfrowania potrzebny jest jedynie określony klucz systemowy. Do tej pory (do momentu napisania tej książki) nikt nie zdołał jeszcze w pełni rozszyfrować bazy SAM albo Active Directory w komputerze Windows 2000. Nie oznacza to jednak, że możesz przestać niepokoić się o swoje zasoby, gdyż w każdej chwili jakiś czternastoletni geniusz może wymyślić sposób złamania dostępu do bazy danych. Właśnie w tym celu ciągle korzysta się z narzędzi, takich jak RDISK albo REGBACK, które tworzą kopie zapasowe rejestru. Dostęp sieciowy do serwera nie naraża na niebezpieczeństwo bazy SAM albo katalogów, gdyż są one zablokowane. Potencjalnie istnieje jednak pewne tylne wejście, gdyż RDISK zapisuje nie zablokowane kopie bazy danych SAM w katalogu WINNT\Repair.

Hasła LAN Manager posiadają również inne niedociągnięcie, gdyż są przesyłane przez magistrale podczas procesu uwierzytelniania. Nawet jeżeli nie posiadasz klientów niższego poziomu Windows, istnieje możliwość przechwytywania haseł DES przez niepowołane osoby. Możesz oczywiście zapobiec takiej sytuacji, uniemożliwiając klientom niższego poziomu przesyłanie haseł. Rozwiązanie to jest dobre, o ile w Twojej sieci nie znajdują się klienci Windows 3.1x i 9x. Jeżeli jednak zdecydujesz się na takie rozwiązanie, wykonaj następujące zmiany w rejestrze:

Klucz:         HKLM|System|CurrentControlSet|Control|LSA

Wartość:       LMComatibilityLevel

Dane:          2 (REG_DWORD)

Kody Identyfikatora Zabezpieczeń

Wszystkie komputery Windows 2000 i NT, zaró...

Zgłoś jeśli naruszono regulamin