UAC jest w pełni konfigurowalnym mechanizmem wbudowanym w system Windows, który pozwala na kontrolę oraz ograniczanie możliwości instalacji oraz dokonywania istotnych zmian w systemie – zarówno przez użytkowników nie posiadających odpowiednich uprawnień, jak i przez oprogramowanie, które mogłoby próbować wprowadzać zmiany w systemie bez wiedzy użytkownika. Prawdopodobnie każdy użytkownik systemu Windows miał styczność z tym mechanizmem, nawet jeżeli nie do końca był on świadomy czym właściwie jest i w jaki sposób działa. W wielu miejscach, przy okazji chęci wprowadzania zmian w systemie możemy zaobserwować charakterystyczną żółto-niebieską tarczę:
Taki symbol znajdujący się obok dostępnej do kliknięcia opcji oznacza, że dostęp tam jest ograniczany właśnie przez UAC i zależnie od jego konfiguracji będziemy musieli lub nie musieli podejmować określonych działań (potwierdzenie wykonywania danej operacji, uwierzytelnienie się jako administrator itp.), aby móc dostać się w chronione miejsce czy wprowadzić jakieś zmiany. Kontrolę UAC-a możemy również zaobserwować przy okazji wielu instalatorów różnych programów, które będą próbowały zainstalować oprogramowania w domyślnych katalogach Program Files lub Program Files (x86):
W domyślnej konfiguracji administrator dokonujący zmian w systemie nie będzie otrzymywał powiadomień z prośbą o potwierdzenie wykonywanych czynności. W przypadku, gdy oprogramowanie będzie próbowało dokonać instalacji czy zmian w systemie administrator zobaczy następujący (przykładowy) komunikat:
Z punktu widzenia zwykłego użytkownika chęć wykonania czynności chronionej przez UAC w domyślnej konfiguracji spowoduje komunikat o uwierzytelnieniu się do konta posiadającego uprawnienia administratora (lokalnego lub domenowego):
Jak widać mechanizm domyślnie chroni przed dokonaniem jakichkolwiek zmian w systemie przez nieuprawnionego użytkownika – dostęp do chronionych elementów systemu mają jedynie jego administratorzy.
Konfiguracja poziomu restrykcji
Tak jak wspominałem na początku, UAC jest mechanizmem w pełni konfigurowalnym. Omawianie możliwości jego konfiguracji można zacząć od ustawienia odpowiedniego poziomu restrykcji wyskakujących komunikatów. W tym celu wyszukujemy na komputerze Change User Account Control settings:
Widzimy tutaj suwak, za pomocą którego jesteśmy w stanie ustawić 4 poziomy restrykcji:
- Always Notify, czyli najbardziej restrykcyjne ustawienie powodujące konieczność potwierdzania wszelkich zmian wprowadzanych przez administratora bądź oprogramowanie. Na tym etapie, od momentu pojawienia się komunikatu kontrolnego do odpowiedzi na niego przez administratora wszystkie inne procesy są „zamrożane” (tymczasowo zatrzymane):
- Notify only when apps try to make changes to my computer, czyli ustawienie wymagające potwierdzenia każdej zmiany lub instalacji dokonywanej przez oprogramowanie, lecz nie wymagające potwierdzania w przypadku wprowadzania zmian w systemie przez administratora. Podobnie jak wcześniejsze, powoduje zamrożenie wszystkich innych procesów do momentu odpowiedzi na pokazany komunikat:
- Notify me only when apps try to make changes to my computer (do not dim my desktop) – ustawienie działające bardzo podobnie do poprzedniego. Jedyną zmianą jest brak zamrażania innych procesów podczas wyświetlania komunikatu o potwierdzenie wykonywanej czynności:
- Never notify – najmniej restrykcyjna opcja, która nie wyświetla komunikatów ani dla zmian w systemie czy instalacji wykonywanych przez oprogramowanie ani przez administratora. Dodatkowo nie zatrzymuje ona również działających procesów:
Naturalnie z punktu widzenia bezpieczeństwa im wyższy poziom ustawiony na suwaku tym lepiej. W internecie można spotkać się z opiniami, że UAC jest bardzo „denerwującym” mechanizmem – stąd też opcja numer 2 zdaje się być idealnym kompromisem – wymaga potwierdzenia przy wszelkich zmianach wprowadzanych przez oprogramowanie dając nam zabezpieczenie przed niepożądanym częścią działania np. złośliwego oprogramowania, jak również nie wymaga, irytującego wiele osób, potwierdzania każdej zmiany wprowadzonej w systemie przez administratora.
Konfiguracja UAC poprzez GPO
Wiele ciekawych ustawień pozwalających na dokładniejszą konfigurację mechanizmu UAC, zgodnie z naszymi potrzebami, można znaleźć w GPO. Ustawienia ta znajdują się, czy to w lokalnym czy domenowym GPO, w lokalizacji przedstawionej na zrzucie ekranu poniżej:
Na samym dole możemy zauważyć szereg opcji dotyczących UAC:
Krótko omówmy znajdujące się tutaj opcje:
- Admin Approval Mode for the Build-in Administrator account – ta opcja pozwala na wymuszenie działania konta wbudowanego administratora w Admin Approval Mode. Domyślnie, wbudowane konto administratora w systemie Windows 10 nie jest aktywne (odwrotnie jest w przypadku np. Windows Serwera). Upraszczając – to konto to „główny administrator”, na którego chociażby w przypadku omawianego mechanizmu nie działają inne ustawienia, które dotyczą kont administratorów. Domyślnie konto administratora, na które logujemy się do komputera jest tylko „zwykłym kontem” dodawanym przez system do grupy administratorów, czyli zyskującym tym samym uprawnienia administratora w systemie. Domyślnie opcja ta nie jest skonfigurowana, ze względu na jej istotny wpływ na system – konto wbudowanego administratora z racji wyższych uprawnień niż te aplikowane na inne konta administratorów pozwoli nam np. na odzyskanie systemu w krytycznych sytuacjach. Aplikowanie tych samych ustawień na to konto jest dość ryzykowne i zdecydowanie musi być świadomą decyzją osoby, która liczy się z potencjalnymi konsekwencjami tej decyzji.
- User Account Control: Allow UIAccess application to prompt for elevation without using the secure desktop – ta opcja powoduje, że aplikacje znajdujące się w zaufanych ścieżkach (C:\Windows\System32; C:\Program Files oraz C:\Program Files (x86) wraz ze wszystkimi podfolderami w dwóch ostatnich ścieżkach – bez uprawnień Administratora użytkownik przy domyślnych zabezpieczeniach systemowych nie ma możliwości przekopiowania tam żadnych plików, więc są one uznawane za zaufane) nie wymagają wywołania przez UAC tzw. Secure Desktop podczas wyświetlania komunikatu. Secure Desktop łatwo rozpoznać po zaciemnionym tle wokół komunikatu oraz zamrożeniu innych procesów do czasu podjęcia decyzji co do wyświetlonego komunikatu przez administratora
- User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode – jedna z częściej wykorzystywanych opcji, określająca „zachowanie” komunikatu, który jest pokazywany przez UAC przy instalacji lub wprowadzeniu zmian w ustawieniach systemowych. To ustawienie pozwala na określenie takiego zachowania dla kont administratorów działających w trybie Admin Approval Mode, czyli domyślnie wszystkich kont z uprawnieniami administratora oprócz tego wbudowanego. Dostępny jest tutaj do ustawienia szereg opcji:
- całkowity brak wyświetlania komunikatów,
- wyświetlanie komunikatu wymagającego jedynie potwierdzenia w trybie Secure Desktop lub nie,
- wyświetlanie komunikatu wymagającego podania hasła przez administratora w trybie Secure Desktop lub nie,
- wyświetlanie komunikatów dla oprogramowania nie pochodzącego od Microsoftu:
- User Account Control: Behavior of the elevation prompt for standard users – Opcja działająca analogicznie do poprzedniej, dotycząca jednak nie administratorów, a kont zwykłych użytkowników. Dostępne opcje w tym przypadku to:
- Prośba o uwierzytelnienie się za pomocą konta z uprawnieniami administratora
- Automatyczne odrzucanie prób instalacji lub dokonania zmian w ustawieniach systemu przez użytkownika, bez wyświetlania żadnego komunikatu ani możliwości uwierzytelnienia się za pomocą konta z wyższymi uprawnieniami
- Prośba o uwierzytelnienie się za pomocą konta z uprawnieniami administratora w trybie Secure Desktop
- User Account Control: Detect application installations and prompt for elevation – ustawienie pozwalające określić, czy w przypadku instalacji użytkownik powinien otrzymywać komunikat o konieczności podania loginu oraz hasła do konta administratora, aby móc przeprowadzić tą operację. Ustawienie Disabled jest preferowane przede wszystkim wtedy, gdy jest to np. komputer w domenie należący do danej organizacji i kwestia instalacji zarządzana jest w inny sposób
- User Account Control: Only elevate executable files that are signed and validated – opcja pozwalająca na uruchamianie tylko tych plików, które są podpisane zaufanym certyfikatem (certyfikatem dodanym przez administratora do Trusted Publishers)
- User Account Control: Only elevate UIAccess applications that are installed in secure locations – opcja określająca wyświetlanie powiadomień tylko dla aplikacji operujących w zaufanych lokalizacjach (wspomnianych wcześniej katalogach – System32, Program Files, Program Files (x86))
- User Account Control: Run all administrators in Admin Approval Mode – opcja opdowiadająca za wymuszanie działania wszystkich kont administratorów w Admin Approval Mode
- User Account Control: Switch to the secure desktop when prompting for elevation – opcja zezwalająca na przełączenie się w tryb Secure Desktop podczas wyświetlania komunikatów, zgodnie z innymi ustawieniami
- User Account Control: Virtualize file and registry write failures to per-user locations – Opcja sama w sobie bardzo ciekawa w swoim działaniu. Pozwala na wirtualizację ścieżek do plików lub kluczy w rejestrze. W sytuacji, gdy aplikacja odwołuje się do elementów znajdujących się w chronionych lokalizacjach (np. w C:\System32) może nastąpić problem ze względu na jej brak dostępu do wskazanego katalogu. Wirtualizacja ścieżek do plików pozwala obejść ten problem.
Temat wirtualizacji ścieżek wypadało by przy tej okazji nieco rozwinąć. Aby lepiej zobrazować temat posłużę się przykładem działania wirtualizacji na przykładzie zwykłego pliku tekstowego oraz aplikacji notepad. Dla konkretnej aplikacji lub pliku możemy włączyć wirtualizację za pomocą Task Manager-a (warto pamiętać, że po zamknięciu aplikacji, proces jest kończony a po jego ponownym uruchomieniu wirtualizacja znowu będzie domyślnie ustawiona na Disabled):
W ten sposób, plik zapisany przez notepad, który ma aktualnie włączoną wirtualizację może zostać wirtualnie zapisany oraz odczytany z lokalizacji, do której nie ma uprawnień. Fizycznie plik będzie znajdował się w katalogu użytkownika:
Dzięki temu z punktu widzenia notepada z uruchomioną wirtualizacją będzie on odczytywał plik znajdujący się w katalogu C:\Windows\System32 mimo, iż fizycznie ten plik wcale się tam nie znajduje:
Słowo końcowe
Mimo, że w internecie bardzo łatwo natknąć się na opinię, że UAC jest denerwującym mechanizmem przeszkadzającym w użytkowaniu komputera, jak również znaleźć masę poradników w jaki sposób go wyłączyć, ja stanowczo nie rekomenduję takiego podejścia. UAC jest istotnym mechanizmem zabezpieczeń, który nie dość że jest elastyczny, to jest jeszcze stosunkowo łatwy do skonfigurowania (nawet wyłącznie poprzez ustawienie restrykcji powiadomień suwakiem).
Dla świadomych swych poczynań użytkowników domyślny poziom restrykcji oraz domyślna konfiguracja UAC-a jest stanowczo wystarczająca. Nie napotkamy denerwujących powiadomień świadomie wprowadzając zmiany w systemie, a jednocześnie zostawimy sobie włączony mechanizm zabezpieczający nas przed wprowadzaniem nieautoryzowanych zmian przez oprogramowania – każda taka próba skończy się koniecznością potwierdzenia otrzymanego przez nas powiadomienia i udzielenia zgody danemu oprogramowaniu na jego aktywność we wskazanym zakresie.
Dla osób zwyczajnie korzystających z komputera i nie posiadających wiedzy na temat ustawień systemu warto podnieść ten poziom do najwyższego. Złudną nadzieją jest zarówno to, że taki użytkownik zwróci uwagę na tarczę informującą o wchodzeniu w miejsca, gdzie dokonywane są istotne dla systemu zmiany i zaniecha swoich działań, jak i nadzieja, że komunikat z potwierdzeniem wykonywanych działań coś tutaj zmienia – ale zawsze to dodatkowa warstwa zabezpieczenia, która być może powstrzyma choćby niewielki % osób przed potocznie mówiąc namieszaniem w swoim środowisku. Tutaj idealnym rozwiązaniem jest odebranie takiej osobie dostępu do konta administratora i ustawienie w GPO domyślnego odrzucania wszystkich prób wprowadzania zmian z poziomu zwykłego użytkownika za pomocą wcześniej przedstawionych ustawień w GPO.
Popularnego w sieci wyłączania UAC-a stanowczo nie zalecam – w znaczący sposób pozbawiamy się kontroli nad czynnościami wykonywanymi przez oprogramowanie, które chciałoby dokonać zmian w systemie istotnie zmniejszając poziom bezpieczeństwa na swoim komputerze.
Coś jest dla Ciebie niezrozumiałe? Chciałbyś wyrazić opinię na temat artykułu? Znalazłeś jakiś błąd? Koniecznie daj mi o tym znać wysyłając maila lub wypełniając formularz!
Pingback: Jak wirusy radzą sobie z mechanizmem UAC? - PAYLOAD