Akademia Windows 7 - Część 2: Group Policy     Artykuły ekspertów TechNet: Windows 7     Akademia Windows 7 – Część 4: Bezpieczeństwo – User Account Control

Akademia Windows 7 - Część 4: Bezpieczeństwo - User Account Control

Autor: Łukasz Foks

Opublikowano: 22 maja 2009

Zawartość strony
 Jak było, jak jest i jak będzie  Jak było, jak jest i jak będzie
 Jak to działa, czyli UAC w pigułce  Jak to działa, czyli UAC w pigułce
 Rodzaje użytkowników – w kontekście mechanizmu UAC  Rodzaje użytkowników – w kontekście mechanizmu UAC
 Konfiguracja UAC w Windows 7  Konfiguracja UAC w Windows 7
 Konfiguracja poprzez Panel sterowania (suwak UAC)  Konfiguracja poprzez Panel sterowania (suwak UAC)
 Konfiguracja poprzez Zasady grupy  Konfiguracja poprzez Zasady grupy
 Podsumowanie  Podsumowanie

 

User Account Control (Kontrola Konta Użytkownika) to mechanizm, który znany jest już administratorom systemów od czasu premiery i wejścia na rynek Windows Vista. Wraz z Windows 7, gdzie mechanizm ten jest również zaimplementowany, temat UAC wraca niczym bumerang.

I to bardzo dobra wiadomość, bo po raz kolejny można zachęcić specjalistę IT do poznania tej technologii, wyjaśniając jakie elementy się na nią składają , oraz co najważniejsze – jak istotną rolę pełni w zestawie rozwiązań zabezpieczeń systemu.

Niniejsza publikacja ma przedstawić czytelnikowi mechanizm User Account Control w kontekście architektury rozwiązania, jak również z perspektywy wprowadzonych nowości w Windows 7.

Jak było, jak jest i jak będzie

Windows XP

Aby zrozumieć sens wprowadzenia mechanizmu User Account Control należy powrócić do czasów Windows XP. Każdy pamięta – niestety - , że aby efektywnie wykonywać pracę działając w oparciu o Windows XP jako podstawowego systemu operacyjnego, zdecydowana większość osób używała kont o uprawnieniach najwyższych, mimo, że doskonale rozumiało jakie powoduje to zagrożenie dla bezpieczeństwa systemu.

Po pierwsze, co szczególnie bliskie specjalistom IT, wiele z codziennych, częstych zadań konfiguracyjnych wymagało konta o podwyższonych uprawnieniach (inaczej zadanie było niewykonalne), a dostęp do nich z poziomu konta ograniczonego owszem był możliwy, ale nie było to łatwe i wymagało nakładu czasu.

Po drugie – znakomita większość aplikacji wymagała podwyższonych uprawnień, co już nie tak łatwo dało się ominąć i sprowadzało się ostatecznie do pracy na koncie administratora. Nietrudno sformułować jakie zagrożenia to powodowało – najwyższe uprawnienia konta = praktycznie nieograniczony dostęp do zasobów systemowych np. przez złośliwego oprogramowania, które wtargnie do systemu w jakiś niepożądany sposób.

Windows Vista

Wraz z Windows Vista pojawił się User Account Control, mechanizm systemowy który miał rozwiązać wcześniej wymienione problemy i zachęcić nawet najbardziej wymagającego użytkownika, aby sięgnął po konto standardowe (bo taka konwencja nazewnicza pojawiła się w Vista).

Po pierwsze, UAC daje łatwy dostęp do uprawnień na zasadzie „tylko w wymaganym czasie” i to na koncie o niższych uprawnieniach, po drugie – lista codziennych zadań konfiguracyjnych, które wymagają wyższych uprawnień została przeanalizowana i skrócona, aby faktycznie „było wygodniej”, po trzecie – zachęcić (wymusić na) programistów do tworzenia aplikacji, które swobodnie działają bez najwyższych uprawnień (najczęściej ich po prostu nie potrzebowały), po czwarte – zapewnić wsteczną kompatybilność, to znaczy udostępnić takie rozwiązania w ramach UAC, aby również starsze programy mogły być użytkowane w nowym środowisku. I po piąte – dać użytkownikowi możliwość wyboru – tak, można ten mechanizm wyłączyć (co pociąga za sobą pewne zagrożenia). Po szóste, użytkownik wie co wymaga wyższych uprawnień – te zadania opatrzone są ikoną tarczy.

Wniosek, a właściwie cel wprowadzenia UAC – użytkownik musi działać w kontekście uprawnień standardowych, jego aplikacje nie muszą posiadać wysokich uprawnień, co powoduje, że faktyczne ograniczenie poziomu uprawnień znacznie wpływa na zmniejszenie poziomu strat jakie złośliwie oprogramowanie może wyrządzić. UAC nie ma „odcinać” użytkownika od uprawnień, UAC ma za zadanie dawać najwyższe (stosowne) uprawnienia tylko w wymaganej chwili i na wyraźne zezwolenie użytkownika.

Czy to się sprawdziło? Każdy powinien na to pytanie odpowiedzieć samodzielnie, gdyż system Windows Vista z rozwiązaniem UAC jest już na rynku pewien czas, i każdy miał okazję się z nim zapoznać. Główne zarzuty, które były kierowane wobec technologii User Account Control to ilość monitów, jakie UAC wyświetlał – i tu przychodzi zmiana w systemie Windows 7. Użytkownik-administrator może dostosować sytuację, w której UAC zaprezentuje monit, wskazując jeden z czterech dostępnych poziomów, o czym bardziej szczegółowo w dalszej części artykułu.

 Do początku strony

 

Jak to działa, czyli UAC w pigułce

Nim przejdziemy do dokładniejszego przeglądu elementów składających się na UAC, warto wskazać jak firma Microsoft zrealizowała swoje założenia, czyli omówić istotę działania mechanizmu.

Co należy sobie zdać sprawę, mimo, że nazwa rodzaju konta użytkownika sugeruje poziom posiadanych jego uprawnień, to w kontekście UAC każdy użytkownik działa z ograniczonymi prawami (domyślnie; pomijając wbudowane konto Administrator)– inny jest tylko model, w jakim uzyskuje się dostęp do najwyższych uprawnień.

Administrator logując się do systemu Windows Vista/Windows 7 otrzymuje dwa żetony (tokeny) dostępu: użytkownika standardowego, w kontekście którego uruchamiany jest proces Explorer.exe i wszystkie procesy potomne (tak, wszystko działa będąc ograniczonym) oraz żeton pełnego dostępu administratora.

Ten drugi jest używany, gdy użytkownik potwierdzi w monicie UAC, że zezwala na podniesienie uprawnień (usługa Apllication Information używa żetonu pełnego administratora, aby wykonać zadanie bądź uruchomić aplikację z wyższymi uprawnieniami).

Rysunek 1: Przykładowy monit UAC.

Aby zapobiec podszywaniu się pod monity UAC przez złośliwe oprogramowanie, wszystkie wyświetlane są na tzw. bezpiecznym pulpicie (ang. Secure Dekstop), którego idea działania jest bardzo prosta – interakcja może zajść tylko pomiędzy monitem wygenerowanym przez UAC. Bezpieczny pulpit to w rzeczywistości przyciemniony zrzut ekranu, który wykonuje system operacyjny przed podniesieniem uprawnień. Administrator może dostosować, w jakich sytuacjach zasada bezpiecznego pulpitu ma być stosowana, ale o tym później.

Istotnym punktem na liście wymagań, które UAC musi spełniać to zapewnienie wstecznej kompatybilności dla aplikacji. Po pierwsze będzie to wirtualizacja, i nie chodzi tu o produkty Virtual PC czy Hyper-V. Mechanizm UAC „wirtualizacje” żądania do tzw. bezpiecznych lokalizacji: %ProgramFiles%; %Windir%; %Windir%\System32; HKEY_LOCAL_MACHINE\Software.

Jeżeli aplikacja będzie chciała zapisać informację (plik) w jednym z tychże miejsc - żądanie zostanie przeniesione do lokalizacji \AppData\Local\VirtualStore\ w profilu użytkownika. Gdy użytkownik będzie próbował uzyskać dostęp do tego pliku z poziomu programu, będzie on widoczny w „standardowym” miejscu, gdzie aplikacja chciała dokonać zapisu, zaś jeżeli będzie wyszukiwał danych z poziomu Eksploratora Windows, będą dostępne we wcześniej opisanej lokalizacji w profilu. Jest to funkcjonalność, która działa dla 32-bitowych programów (64-bitowe aplikacje muszą być „świadome” konieczności zapisu w poprawnym miejscu).

Drugą sytuacją, w której wirtualizacja jest wyłączana, jest przypadek, gdy aplikacja posiada tzw. manifest żądanego poziomu wykonywania (ang. requested execution level manifest ), który jest jednym z trzech elementów, który determinuje, w którym czasie użytkownik zobaczy monit Kontroli Konta Użytkownika.

Monit UAC jest prezentowany, gdy system stwierdzi, że dana aplikacja bądź czynność wymaga większych uprawnień, niż te w których kontekście działa obecnie użytkownik. W przypadku aplikacji wyróżnia się trzy elementy, które wpływają na to czy użytkownik zobaczy monit z pytaniem o podniesienie uprawnień. Będą to: wcześniej opisany manifest żądanego poziomu wykonywania, informacje z właściwości aplikacji bądź rozpoznawanie (heurystyka). Manifest żądanego poziomu wykonywania musi zostać dodany przez twórcę aplikacji i tak naprawdę jest odpowiednio opracowanym kodem. Manifest określa, na jakim poziomie uprawnień aplikacja ma działać:

  • RunAsInvoker (asInvoker) – uprawnienia standardowe, monit nie jest potrzebny i nie jest wyświetlany.
  • RunAsHighest (highestAvailable) – uprawnienia wyższe niż standardowe, monit jest wyświetlany, ale w przypadku jego anulowania, aplikacja mimo wszystko rozpoczyna swoje działanie (pewne elementy mogą być niedostępne).
  • RunAsAdmin (requireAdministrator) – uprawnienia administratora są wymagane, monit jest wymagany i jest prezentowany.

Drugą sytuacją, którą analizuje system w kontekście decydowania czy aplikacja wymaga innych uprawnień niż standardowe są informacje z jej właściwości.

Trzeci element to heurystyka aplikacji, UAC potrafi ocenić, czy dana aplikacja, które nie zawiera manifestu jednak wymaga wyższych uprawnień – wykonywana jest analiza nazwy i meta danych w celu identyfikacji. Jest to funkcja używana przy 32-bitowych aplikacjach, która tak naprawdę dedykowana jest plikom instalatorów, które wymagają wyższego poziomu dostępu.

Rysunek 2: Zakładka "Kompatybilność".

Administrator może zaznaczyć, że dana aplikacja ma działać w kontekście najwyższych uprawnień, zarówno dla siebie (zaznaczając pole wyboru) bądź dla wszystkich użytkowników, korzystając z opcji Change settings for All users. Administrator/użytkownik na podobnej zasadzie działania może uruchomić program z uprawnieniami podwyższonymi w tej żądanej chwili , wybierając z menu kontekstowego opcję Run As Administrator, co jest szczególnie przydatne dla linii komend (CMD.exe).

 Do początku strony

 

Rodzaje użytkowników – w kontekście mechanizmu UAC

Nim przejdziemy do opisu procesu konfiguracji mechanizmu User Account Control, warto przyjrzeć się rodzajom użytkowników, jakich można wyróżnić patrząc z punktu widzenia tejże technologii.

Każdy z poziomów-rodzajów charakteryzuje trzy elementy:

  • po pierwsze, w jaki sposób będą wyświetlane monitu UAC (i czy w ogóle będą),
  • po drugie - rodzaj uprawnień jakim użytkownik dysponuje (standardowe/administratorskie) oraz
  • po trzecie - w jaki sposób użytkownik otrzymuje dostęp do żądanych, podwyższonych uprawnień.

Poniższy podział jest wynikiem dostępnych opcji w Windows 7, i konsekwencją ewolucji zasady „jak najniższe uprawnienia”.

  • Administrator – wbudowane konto administratora, w Windows 7 domyślnie wyłączone. W Windows 2008 R2 konto administratora jest tworzone jako pierwsze i nie działa w trybie Admin Aproval.
  • Ten Administrator – konto użytkownika z uprawnieniami administratora (z przypisaną własną nazwą). Ten rodzaj konta najczęściej był używany w Windows XP.
  • Ten Administrator w trybie Admin Aproval – konto użytkownika z przypisaną nazwą z łatwym dostępem do uprawnień administratora. Domyślny rodzaj konta w Windows Vista i 7. Tryb Admin Aproval został wprowadzony, aby podnieść poziom bezpieczeństwa tych użytkowników, którzy jednak zdecydowali się pracować na stworzonym koncie administratora. UAC daje takiemu użytkownikowi pełen dostęp na zasadzie „per zadanie” i podnosi poziom uprawnień tylko jeżeli jest taka potrzeba po kliknięciu przycisku zezwolenia.
  • Użytkownik standardowy – konto użytkownika z przypisaną własną nazwą z uprawnieniami standardowymi, z możliwością wykonania zadań administratorskich, ale tylko w sytuacji gdy administrator wprowadzi swoje poświadczenia w monicie UAC. Najbardziej bezpieczny, a przez to zalecany rodzaj konta.
 Do początku strony

 

Konfiguracja UAC w Windows 7

 Do początku strony

 

Konfiguracja poprzez Panel sterowania (suwak UAC)

Jednym z celów jakie postawiła sobie firma Microsoft udoskonalając mechanizm User Account Control w Windows 7 to możliwość wygodnego dostosowania sytuacji, w której monit z pytaniem o podniesienie uprawnień jest prezentowany.

W Windows Vista dużego wyboru nie było, UAC działał, wyświetlał monity, a jednym sposobem jego dostosowania jest działanie na konkretnych politykach w Zasadach grupy.

W Windows 7 udostępniono tzw. suwak UAC, który służy do konfiguracji tego mechanizmu. Okno konfiguracji jest dostępne z poziomu Action Center, po kliknięciu opcji User Account Control settings.

Rysunek 3: Suwak UAC dla administratora.

Użytkownik, w tym przypadku administrator może wybrać jedną z czterech opcji:

  • Always notify me when: Programs try to install software Or make changes to my computer, I make changes to Windows settings – jest to opcja, która funkcjonalnie odpowiada sytuacji z systemu Windows Vista. Gdy dokonywane są zmiany, zarówno w ustawieniach systemowych, jak I instalowane bądź używane są aplikacje, które wymagają wyższych uprawnień, to prezentowany jest monit UAC z prośbą o potwierdzenie bądź odrzucenie żądania.
  • Default - Notify me only when programs try to make changes to my computer – domyślne ustawienie w Windows 7. Jeżeli administrator zmienia ustawienia systemowe, monit UAC nie jest wyświetlany. Firma Microsoft podpisała elementy i aplikacje systemowe w taki sposób, aby nie wyświetlały monitu (tylko dla tej opcji). Jeżeli zmiana jest dokonywana przez element zewnętrzny (np. aplikację) monit jest wyświetlany na bezpiecznym pulpicie .
  • Notify me only when programs try to make changes to my computer (do not dim my desktop) – bardzo zbliżone do poprzedniego, aczkolwiek w przypadku zastosowania, nie jest stosowany wcześniej opisany bezpieczny pulpit.
  • Never notify me when: Programs try to install software Or make changes to my computer, I make changes to Windows settings – ustawienie wyłącza cały mechanizm User Account Control (nie tylko monity!).

Rysunek 4: Suwak UAC dla użytkownika standardowego.

Dostępne ustawienia prezentują się w sposób następujący:

  • Default – Always notify me when: Programs try to install software or make changes to my computer, I make changes to Windows settings - domyślne ustawienie, wyjaśnienie wcześniej.
  • Always notify me (and do not dim my desktop) when : Programs try to install software or make changes to my computer, I make changes to Windows setting – jak powyżej, lecz z zastosowaniem bezpieczengo pulpitu.

Pozostałe dwa poziomy są identyczne, ale aby je zastosować należy zalogować się na konto o uprawnieniach administratora. Dwa pierwsze są dostępne, ale ich wprowadzenie wymaga wprowadzenia poświadczeń administratorskich w monicie UAC.

 Do początku strony

 

Konfiguracja poprzez Zasady grupy

Każdy kto próbował dostosować ustawienia User Account Control w Windows Vista musiał sięgnąć po Zasady grupy. Poniższa część publikacji poświęcona będzie konfiguracji mechanizmu UAC poprzez dostępne polityki Zasad grupy i jest cennym fragmentem dla administratorów wykorzystujących tę technologię w środowisku usługi katalogowej Active Directory.

Rysunek 5: Przystawka Local Security Policy z widocznymi politykami związanymi z UAC.

Dla User Account Control dostępnych jest dziewięć polityk, które zostały opisane w poniższej tabeli.

Nazwa polityki Dostępne opcje* Wyjaśnienie
User Account Control: Admin ApprovalMode for the Built-in Administratoraccount Enabled; Disabled Ustawienie stosuje się tylko do wbudowanego konta Administrator, określa, czy to konto ma pracować w trybie Admin Aproval (zatwierdzania). Domyślnie jest wyłączone, I wbudowane konto zachowuje się jak w systemie Windows XP, gdzie wszystkie procesy działają z najwyższymi uprawnianiami. Warto podkreślić, że domyślne konto Administrator jest wyłączone.
User Account Control: Allow UIAccessapplications to prompt for elevationwithout using the secure desktop Enabled; Disabled Ustawienie pozwala aplikacjom UIAccess na automatyczne wyłączenie bezpiecznego pulpit przy prośbie o podniesienie uprawnień.
User Account Control: Behavior of theelevation prompt for administrators inAdmin Approval Mode Elevate without prompting; Prompt for credentials on the secure desktop; Prompt for consent on the secure desktop; Prompt for credentials; Prompt for consent; Prompt for consent for non-Windows binaries Ustawienie definiuje, w jaki sposób użytkownicy-administratorzy działający w trybie Admin Aproval są pytani o zgodę na podniesienie uprawnień w monicie UAC. Domyślnie, taki użytkownik-administrator musi tylko zatwierdzić poniesienie uprawnień. W systemie Windows 7 domyślnie monit UAC będzie wyświetlany dla nie-systemowych komponentów (np. zewnętrznych aplikacji).
User Account Control: Behavior of theelevation prompt for standard users Automatically deny elevation requests; Prompt for credentials on the secure desktop; Prompt for credentials Ustawienie determinuje w jaki sposób użytkownicy mają dostęp do możliwości wprowadzania poświadczeń administrator. Domyśle ustawienie powoduje, że użytkownik w monicie UAC jest proszony o podanie hasła do konta administratora.
User Account Control: Detectapplication installations and prompt forelevation Enabled; Disabled Ustawienie pozwala określić czy ma działać heurystyka UAC, i stosowane jest, gdy użytkownik uruchamia instalację aplikacji (wyświetlany jest monit z prośbą o podanie poświadczeń bądź zezwolenia na operację).
User Account Control: Only elevateexecutables that are signed andvalidated Enabled; Disabled Ustawienie pozwala określić, że uruchamianie mogą być tylko aplikacje podpisane zaufanym certyfikatem. Domyślnie włączona opcja (Disabled) umożliwia wyświetlanie monitów UAC zarówno dla zaufanych, jak i niezaufanych programów.
User Account Control: Only elevateUIAccess applications that are installedin secure locations Enabled; Disabled Ustawienie określa, że tylko aplikacje uruchamianie z bezpiecznych lokalizacji mają dostęp do interakcji z interfejsem użytkownika (UIAccess).
User Account Control: Run alladministrators in Admin Approval Mode Enabled; Disabled Ustawienie pozwala określić, czy każdy użytkownik o uprawnieniach administratora (z wyłączeniem wbudowanego konta Administrator) ma działać w trybie zatwierdzania (Admin Aproval).
User Account Control: Virtualizes fileand registry write failures to per-userlocations Enabled; Disabled Ustawienie pozwala określić, czy żądania zapisu do bezpiecznych aplikacji mają być wirtualizowane (w celu zapewnienia kompatybilności). Domyślnie jest włączone, każde żądanie zapisu jest przenoszone do folderu w profilu użytkownika.

* Ustawienie wyróżnione pogrubioną czcionką jest domyślne w lokalnych zasadach zabezpieczeń.

 

 Do początku strony

 

Podsumowanie

Mechanizm User Account Control dostępny w Windows Vista i Windows 7 to kluczowa technologia zabezpieczeń, realnie wpływająca na poziom zabezpieczenia komputera.

Firma Microsoft projektując system Windows 7 wzięła pod uwagę opinie klientów i społeczności, wprowadzając nowy sposób konfiguracji sytuacji, w której monity mechanizmu UAC są prezentowane użytkownikowi. Zmiany objęły również Zasady grupy, gdzie rozszerzono kilka z polityk.

Co istotne, User Account Control to nie tylko monity, ale szereg funkcji składających się na całą technologię. Dlatego warto podkreślić, że wyłączenie UAC to nie tylko „pozbycie się” monitów i okien, ale również wyłączenie kilku naprawdę kluczowych z punktu bezpieczeństwa systemu składników.

 


 

  Łukasz Foks (MCTS, MCITP)
Pasjonat technologii Microsoft. W swoim portfolio posiada kilkadziesiąt artykułów i porad technicznych związanych z systemami Microsoft Windows. Zastępca redaktora naczelnego największego portalu technicznego o serwerowych rozwiązaniach Microsoft - http://wss.pl, z którym związany jest już od kilku lat. Aktywnie udziela się również prowadząc liczne prezentacje oraz wspierając Warszawską Grupę Użytkowników i Specjalistów Windows od początku jej istnienia, będąc współtwórcą tej grupy. Szczególnie preferowanymi obszarami tematycznymi są Windows Desktop Experience oraz Windows Deployment.
 Do początku strony

Akademia Windows 7 - Część 2: Group Policy     Artykuły ekspertów TechNet: Windows 7     Akademia Windows 7 – Część 4: Bezpieczeństwo – User Account Control