Jedno z pytań najczęściej zadawanych przez klientów brzmi: "Dlaczego powinniśmy dokonać aktualizacji do systemu Windows Vista"? Za aktualizacją przemawia wiele argumentów, ale jednym z najważniejszych są nowe funkcje zabezpieczeń. Bezpieczeństwo stanowiło główny priorytet podczas rozwijania systemu Windows Vista i firma Microsoft wierzy, że nowy system operacyjny jest znacznie bezpieczniejszy niż poprzednie wersje systemu Windows®. W niniejszym artykule omówione zostaną pewne najważniejsze funkcje zabezpieczeń wprowadzone w wersji Windows Vista®.
Z perspektywy użytkownika Kontrola konta użytkownika (User Account Control - UAC) umożliwia automatyzację procesu żądania podniesienia uprawnień, powiadamiając użytkowników, gdy program lub działanie wymaga podniesionych (administratorskich) uprawnień. Rozwiązanie to jest dużo bardziej atrakcyjne niż model podnoszenia uprawnień "Uruchom jako" (Run As) stosowany w poprzednich wersjach systemu Windows, ponieważ nie wymaga, aby użytkownik wiedział z wyprzedzeniem, które akcje i programy wymagać będą podniesionych uprawnień do prawidłowego wykonania.
Funkcja UAC zapewnia dużo bezpieczniejsze środowisko, w którym uprzywilejowane i nieuprzywilejowane aplikacje dzielą tę samą sesję użytkownika i pulpit. Aby możliwe było osiągnięcie tego celu, funkcja UAC została zbudowana na bazie kluczowej technologii o nazwie Mandatory Integrity Control (MIC). Technologia MIC implementuje poziomy integralności, które zasadniczo nadpisują standardowy model swobodnego dostępu Windows NT®, uniemożliwiając procesom o niższej integralności (np. standardowego użytkownika) dokonywanie zapisu w obiektach i procesach o wyższej integralności (systemu lub administratora). To przynosi szereg korzyści:
• Uniemożliwia procesom o niższej integralności modyfikowanie obiektów systemowych i kluczy rejestru zastrzeżonych dla procesów o wyższej integralności.
• Zapewnia pierwszy poziom ochrony przed popularnymi atakami typu shatter, w których złośliwy kod usiłuje użyć komunikatów systemu Windows do sondowania, a następnie implementowania eskalacji uprawnień, przez co zaatakowane procesy o podniesionych uprawnieniach uruchamiają przypadkowy kod.
• Uniemożliwia procesom o niższej integralności wykorzystywanie komunikatów systemu Windows do sterowania interfejsem użytkownika procesu o podniesionych uprawnieniach.
Funkcja UAC wykorzystuje tę funkcjonalność to realizowania kluczowego scenariusza o nazwie tryb zatwierdzenie administratora (Admin Approval Mode - AAM). W przypadku użytkowników domowych i pracowników technicznych AAM to najczęściej stosowany tryb UAC, w którym użytkownik loguje się w sposób interaktywny przy użyciu konta użytkownika będącego członkiem lokalnej grupy administratorów.
Podsystem Logon Security Authentication, w odróżnieniu od poprzedniej wersji systemu Windows, tworzy jedynie token zabezpieczeń standardowego użytkownika dla podstawowej sesji interaktywnej, gdy funkcja UAC jest włączona. Gdy użytkownik musi uruchomić proces lub wykonać akcję, która wymaga tokena dostępu administratora, zanim zainicjowany zostanie nowy proces, użytkownik jest monitowany o token pełnego dostępu administratora poprzez okno dialogowe wyświetlone na pulpicie (patrz Rysunek 1).

Rysunek 1: Użytkownik jest monitowany o poświadczenia administratora, gdy jest to konieczne.
Bez technologii MIC, funkcja UAC nie mogłaby włączyć trybu AAM i nic nie powstrzymałoby procesu uruchomionego ze standardowymi uprawnieniami użytkownika przed interakcją z procesem o podniesionych uprawnieniach w celu uzyskania większych uprawnień, ponieważ oba procesy działałyby w kontekście tego samego konta użytkownika. W ten sposób dowolny proces, taki jak złośliwy program przypadkowo uruchomiony przez użytkownika, mógłby atakować uprzywilejowane procesy.
Nawet w scenariuszach, w których użytkownik jest skonfigurowany tak, aby logować się jako użytkownik o standardowych uprawnieniach, technologia MIC zapewnia efektywną barierę przeciwko atakom typu "shatter" i innym atakom interfejsu użytkownika procesów o podniesionych uprawnieniach, które dzielą sesję i pulpit z nieuprzywilejowanymi procesami. W systemie Windows XP, w odróżnieniu od systemu Windows Vista, procesy działające w kontekście standardowego konta użytkownika mogą sondować i atakować uprzywilejowane procesy, które zostały uruchomione przy użyciu podniesionych uprawnień administratora z wykorzystaniem funkcji Uruchom jako (Run As).
Jednak warto zauważyć, że mimo całej misterności mechanizmu działania funkcji UAC, nie stanowi ona prawdziwego zabezpieczenia. Można obejść funkcję UAC, korzystając z kilku dobrze znanych metod (choć gdy funkcja UAC jest skonfigurowana przy pomocy najbardziej rygorystycznych ustawień, atakowanie jej nie jest trywialnym zadaniem). Funkcja UAC jedynie utrudnia przeprowadzanie najpopularniejszych ataków mechanizmu podnoszenia uprawnień.
A co najważniejsze po wprowadzeniu trybu AAM wszystkie aplikacje Windows są domyślnie uruchamiane przy użyciu standardowych uprawień użytkownika (o ile nie zostały oznaczone jako wymagające podnoszenia uprawnień), niezależnie od członkowstwa w grupie administratorów oraz bezpośrednio przyznanych uprawnień. Jest to największe osiągnięcie funkcji UAC, która zmusza ekosystem aplikacji Windows do dostarczania aplikacji działających poprawnie z wykorzystaniem standardowych uprawnieniach użytkownika.
Inna technologia zabezpieczania wykorzystuje kontrolę MIC w trybie chronionym programu Internet Explorer® 7 (Internet Explorer® 7 Protected Mode) dostępnym w systemie Windows Vista. Funkcjonalność ta jest implementowana poprzez uruchomienie przeglądarki Internet Explorer, gdy włączona jest funkcja UAC, z poziomem integralności niższym niż poziom standardowego użytkownika, co znacząco redukuje możliwości programu Internet Explorer w zakresie modyfikowania danych bądź instalowania aplikacji.
Jak pokazuje Rysunek 2, tryb chroniony ogranicza lokalizacje, w których program Internet Explorer może dokonywać zapisu. Zastosowanie technologii MIC do efektywnego izolowania programu Internet Explorer zapobiega atakom polegającym na złośliwym wstawianiu profili oraz nielegalnym przejmowaniu kontroli, nawet w przypadku złamania zabezpieczeń programu Internet Explorer.

Rysunek 2: Dwa procesy pośredniczące umożliwiają programowi Internet Explorer realizowanie operacji o podniesionych uprawnieniach, gdy użytkownik wyraża na to zgodę.
Aby umożliwić programowi Internet Explorer normalne funkcjonowanie, warstwa kompatybilności przekierowuje pewne aplikacje do tymczasowych lokalizacji plików Internet Explorer, w których ustawiony jest niski poziom integralności. Każda próba zapisu plików lub innej interakcji z plikami i procesami działającymi na "normalnym" poziomie integralności jest implementowana za pośrednictwem procesu pośredniczącego o nazwie IEUSER.EXE. Tryb chroniony programu Internet Explorer w połączeniu z wykorzystaniem standardowych uprawnień użytkownika zapewnia znaczącą ochronę przeciwko najnowszym formom złośliwych ataków.
Konfiguracja kontekstu konta standardowego użytkownika w systemie Windows stanowiła niegdyś spore wyzwanie dla klientów korporacyjnych ze względu na problem zgodności aplikacji oraz liczbę akcji, które wymagały podwyższonych uprawnień. Aby lepiej wspierać wykorzystanie kont standardowych użytkowników, system Windows Vista implementuje dwa nowe zestawy funkcjonalności: wirtualizację rejestru i systemu plików służącą do lepszego wspierania dawnych aplikacji oraz nowe funkcje przywilejów i zarządzania.
Ponieważ domyślnie wszystkie aplikacje są uruchomione w kontekście standardowego użytkownika, system Windows Vista będzie próbował automatycznie wspomagać aplikacje, które usiłują dokonać zapisu w obszarach systemu operacyjnego zastrzeżonych dla administratora/systemu, takich jak systemowa część rejestru oraz katalogi systemu operacyjnego. Cel ten jest realizowany poprzez przekierowanie operacji odczytu i zapisu tych obszarów do specjalnych zwirtualizowanych lokalizacji w lokalnym profilu użytkownika. Zasadniczo mechanizm ten działa w ten sposób, że aplikacja wierzy, iż zapisuje w zastrzeżonych lokalizacjach, podczas gdy w rzeczywistości dokonuje zapisu w profilu użytkownika. Dzięki temu większość starszych aplikacji może być z powodzeniem uruchamiana w systemie Windows Vista bez konieczności dokonywania modyfikacji.
W celu zwiększenia wsparcia dla scenariuszy związanych ze standardowymi użytkownikami system Windows Vista implementuje kilka dodatkowych, kluczowych funkcji. Standardowi użytkownicy mogą obecnie:
• Modyfikować wyświetlany czas (ale nie rzeczywisty zegar systemu) przy użyciu przywileju Zmień strefę czasową (Change the time zone) (patrz Rysunek 3).
• Konfigurować ustawienia technologii Wired Equivalent Privacy/Wi-Fi Protected Access (WEP/WPA) w przypadku połączenia z siecią bezprzewodową (profile dla sieci bezprzewodowej mogą być również zarządzane w sposób centralny przy pomocy Zasad grupy).
• Zmieniać ustawienia zarządzania zasilaniem.
• Instalować krytyczne aktualizacje systemu Windows (mogą być one także wymuszane przez administratorów).
• Instalować drukarki lub inne sterowniki urządzeń zatwierdzone przez administratorów IT, jak również formanty ActiveX® z witryn zatwierdzonych przez administratorów, jeśli opcja ta jest włączona poprzez ustawienia Zasad grupy.

Rysunek 3: Standardowi użytkownicy mogą zmieniać strefę czasową.
BitLocker™ to stworzona przez firmę Microsoft technologia pełnego szyfrowania woluminu dyskowego, która jest dostępna w edycjach Windows Vista Enterprise oraz Ultimate. Wraz z wprowadzeniem dodatku SP1 technologia ta umożliwiła szyfrowanie wielu woluminów na komputerze przy użyciu jednego lub więcej składników uwierzytelniania, jak widać na Rysunku 4.

Rysunek 4: Przy użyciu funkcji BitLocker można szyfrować wiele woluminów.
Jeśli system wspiera moduł TPM (Trusted Platform Module) w wersji 1.2, komponent ten może działać jako składnik uwierzytelniania, podobnie jak moduł pamięci USB lub PIN. Gdyby użytkownik zgubił kiedyś moduł pamięci USB lub zapomniał numer PIN, bądź też gdyby członek działu IT potrzebował dostępu do maszyny, 48-cyfrowe hasło odzyskiwania może posłużyć do uzyskania dostępu do woluminów. Hasło to można automatycznie umieścić w usłudze Active Directory® podczas włączania funkcji BitLocker dla komputerów należących do domeny.
Jeśli dostępny jest chip TPM, BitLocker sprawdzi również integralność danych konfiguracji rozruchowej, aby upewnić się, że dane te nie zostały zmodyfikowane oraz że napęd nie został usunięty z maszyny i zainstalowany na innej. Szyfrowanie BitLocker jest bardzo bezpieczne, domyślne jego ustawienie to "AES 128 bitów z rozpraszaniem" (AES 128 bit with Diffuser). Funkcja BitLocker może również zostać skonfigurowana przy pomocy Zasad grupy tak, aby stosowana była metoda AES 128, AES 256 lub AES 256 z rozpraszaniem.
Ochrona zasobów systemu Windows (WRP) to technologia, która ogranicza dostęp do określonych systemowych plików, folderów i kluczy rejestru, które stanowią część instalacji Windows Vista. WRP zapobiega modyfikowaniu i zastępowaniu plików z rozszerzeniami .dll, .exe, .ocx oraz .sys.
Ochrona tych kluczowych zasobów jest ważna dla ogólnej stabilności systemu i w związku z tym zasoby te mogą być modyfikowane jedynie przez usługę Instalator modułów systemu Windows (TrustedInstaller.exe). Jeśli osoba z uprawnieniami administratora usiłuje zmodyfikować lub zastąpić plik, który jest chroniony przez technologię WRP, zobaczy okno z komunikatem zaprezentowanym na Rysunku 5.

Rysunek 5: Dostęp do zasobów jest w systemie Windows Vista.
Usługi od lat są kluczowym aspektem systemów operacyjnych z rodziny Windows NT. Chociaż model usług dostarcza ważną funkcjonalność, usługi stały się celem ataków złośliwego oprogramowania ze względu na to, że duża część z nich ma styczność z siecią oraz dawniej była uruchamiana z wykorzystaniem konta o wyższych uprawnieniach "LocalSystem". Czynniki te, w połączeniu z faktem, iż usługi mają skłonności do stałego działania od momentu uruchomienia do zamknięcia systemu, czynią usługi popularnymi celami ataków.
Z myślą o podwyższeniu bezpieczeństwa usług firma Microsoft zdecydowała się na dokonanie znaczących zmian w sposobie ich działania. Przede wszystkim usługi mogą być obecnie uruchamiane przy użyciu "najniższych uprawnień". Zamiast konieczności wybierania konta z wysokimi uprawnieniami, takiego jak LocalSystem, bądź niskimi uprawnieniami, takiego jak LocalService oraz NetworkService, które nie zawsze zapewnia odpowiednią funkcjonalność, programiści mogą obecnie wykorzystywać dowolne konto (także domenowe lub lokalne), a Menedżer sterowania usługami (Service Control Manager) usunie niepotrzebne przywileje, określając wymagane uprawnienia.
Co więcej, system Windows Vista dodaje wiele nowych, wbudowanych kont usług służących do przyznawania usługom określonych uprawnień. Te wbudowane konta likwidują w większości przypadków potrzebę stosowania kont usług obejmujących całą domenę, a mechanizm zarządzania wbudowanymi kontami jest automatycznie kontrolowany przez system operacyjny.
W celu odizolowania usługi programista może stworzyć unikatowy identyfikator usługi (SID). Po stworzeniu identyfikatora SID może skonfigurować listę kontroli dostępu (ACL) dla obiektu tak, aby zezwolić usłudze na uzyskiwanie dostępu do obiektu.
A co czyni identyfikator SID jeszcze atrakcyjniejszym, programiści mogą dodatkowo zabezpieczać usługi, wykorzystując tokeny ograniczania zapisu do określania, że usługa może dokonywać zapisu jedynie w lokalizacjach, do których uzyskała bezpośredni dostęp. Na przykład, jeśli usługa wykorzystuje konto LocalService i unikalny identyfikator SID do uzyskania dostępu do "HKLM\Windows\Application X", usługa ta ma dostęp do danego klucza rejestru oraz do wszystkich pozostałych obiektów, do których dostęp ma usługa LocalService. Jednak jeśli dodany zostanie token ograniczania zapisu, usługa uzyskuje jedynie dostęp do klucza rejestru Application X, a nie do pozostałych lokalizacji dostępnych dla usługi LocalService.
Ostatnia zasadnicza zmiana modelu usług w systemie Windows Vista powoduje, że wszystkie usługi są obecnie uruchomione w izolowanej sesji 0. Dawniej sesja 0 była dzielona z pierwszym lokalnie zalogowanym użytkownikiem i z tego względu stanowiła wektor ataku na usługi. W systemie Windows Vista wszystkie interaktywne sesje są uruchomione jako sesja 1 lub wyższa, co prowadzi w efekcie do odizolowania usług od procesów interaktywnych.
Jedną z najważniejszych nowych funkcji korporacyjnych systemu Windows Vista jest nowy stos sieciowy z wieloma zaawansowanymi funkcjami zabezpieczeń. Funkcje Zapory (Firewall) oraz IPsec są zbudowane na podstawie nowego systemu o nazwie Windows Filtering Platform (WFP), który zapewnia podstawową funkcjonalność zapory, a także umożliwia kompleksowe rozszerzanie przez firmy zewnętrzne poprzez dobrze udokumentowaną, przejrzystą infrastrukturę. Dzięki temu firmy zewnętrzne mogą dostarczać na przykład funkcję filtrowania warstwy aplikacji, stanowiącą dodatek do istniejącej zapory z pamięcią stanu, bez konieczności wykorzystywania niewspieranych "haków" (ang. hooking).
Rysunek 6 prezentuje wybrane, zaawansowane zabezpieczenia, które dostarczane są przez nową zaporę systemu Windows. Podstawowe funkcje oferowane przez nową Zaporę systemu Windows to zaawansowane opcje konfiguracji połączeń przychodzących i wychodzących, w tym ograniczenia oparte na ścieżkach aplikacji i plikach wykonywalnych, jak również kontach i grupach usług. Ponadto połączenia mogą być ograniczane per profil i mogą stanowić obiekt zasad połączeń dotyczących zabezpieczeń protokołu internetowego (IPsec). Dodatkowo istnieje możliwość zarządzania całą wbudowaną funkcjonalnością za pośrednictwem Zasad grupy.

Rysunek 6: Zapora systemu Windows z zaawansowanymi zabezpieczeniami.
Jak mogliśmy się przekonać, system Windows Vista oferuje nowe funkcje zabezpieczeń, które nie tylko chronią przed atakami, ale również ograniczają zniszczenia, jakich mogą dokonać atakujące osoby, gdy uda im się uzyskać dostęp do komputera. Czytelnicy, którzy zastanawiali się dlaczego warto dokonać aktualizacji do systemu Windows Vista, znają już odpowiedź na to pytanie.
Anthony (A.J.) Smith piastuje stanowisko Windows Client Technology Solution Professional w dziale Microsoft Enterprise and Partner Group (EPG) i specjalizuje się we wdrożeniach i dostrajaniu systemu Windows Vista na terenie Nowego Jorku. Przed dołączeniem do firmy Microsoft rozwijał swoją karierę w obszarze technologii typu desktop i pełnił różne role związane z wsparciem, planowaniem i rozmieszczaniem stacji roboczych. Anthony regularnie udziela się na blogu TechNet NY Metro Core Infrastructure Specialist Team o adresie blogs.technet.com/nymciblog.
Ned Gnichtel piastuje stanowisko Account Technology Specialist w dziale Microsoft Enterprise and Partner Group i wspiera dostosowywanie technologii nowej generacji do potrzeb kilku strategicznych klientów firmy Microsoft z listy Fortune 500. Przed dołączeniem do firmy Microsoft Ned pracował jako Chief Technologist specjalizujący się w systemach rozproszonych, świadcząc konsultingowe usługi IT na terenie USA. Kariera Neda obejmuje wiele obszarów technologicznych, w tym wewnętrzne składniki systemów operacyjnych i rozwijanie sterowników dla urządzeń, rozwijanie infrastruktury IT oraz infrastruktury usług katalogowych. Ewentualne pytania do Neda można kierować pod adres edwingn@microsoft.com.