Kontrola konta użytkownika - User Account Control

Kontrola konta użytkownika w systemie Windows 10
Alerty kontroli konta użytkownika „Zabezpieczenia systemu Windows” w systemie Windows 10 w trybie światła. Od góry do dołu: zablokowana aplikacja , aplikacja od nieznanego wydawcy, aplikacja od znanego/zaufanego wydawcy.

Kontrola konta użytkownika ( UAC ) jest obowiązkowa kontrola dostępu funkcja egzekwowania wprowadzony Microsoft „s Windows Vista i 2008 Windows Server systemów operacyjnych , o bardziej swobodnej wersji również obecny w Windows 7 , Windows Server 2008 R2 , Windows 8 , Windows Server 2012 , Windows 8.1 , Windows Server 2012 R2 i Windows 10 . Ma on na celu poprawę bezpieczeństwa systemu Microsoft Windows poprzez ograniczenie oprogramowania aplikacji do standardowych uprawnień użytkownika, dopóki administrator nie zezwoli na zwiększenie lub podniesienie poziomu. W ten sposób tylko aplikacje zaufane przez użytkownika mogą otrzymać uprawnienia administracyjne, a złośliwe oprogramowanie powinno być chronione przed narażeniem systemu operacyjnego. Innymi słowy, konto użytkownika może mieć przypisane uprawnienia administratora, ale aplikacje uruchamiane przez użytkownika nie dziedziczą tych uprawnień, chyba że zostaną wcześniej zatwierdzone lub użytkownik wyraźnie je autoryzuje.

Kontrola konta użytkownika używa obowiązkowej kontroli integralności, aby izolować działające procesy z różnymi uprawnieniami. Aby zmniejszyć prawdopodobieństwo komunikacji aplikacji o niższych uprawnieniach z aplikacjami o wyższych uprawnieniach, w celu odizolowania tych procesów od siebie używana jest inna nowa technologia — izolacja uprawnień interfejsu użytkownika . Jednym z widocznych zastosowań tego jest „tryb chroniony” przeglądarki Internet Explorer 7 .

Systemy operacyjne na komputerach mainframe i na serwerach od dziesięcioleci rozróżniają superużytkowników i przestrzeń użytkownika . Miało to oczywisty komponent bezpieczeństwa, ale także komponent administracyjny, ponieważ zapobiegał przypadkowej zmianie ustawień systemu przez użytkowników.

Wczesne Microsoft domu operacyjne systemy (takich jak MS-DOS , Windows 95 - 98 i Windows Me ) nie miał pojęcia inny użytkownik kontach na tej samej maszynie. Kolejne wersje aplikacji Windows i Microsoft zachęcały do ​​korzystania z logowania użytkowników innych niż administrator, jednak niektóre aplikacje nadal wymagały uprawnień administratora. Firma Microsoft nie certyfikuje aplikacji jako zgodnych z systemem Windows, jeśli wymagają one uprawnień administratora; takie aplikacje nie mogą używać na opakowaniu logo zgodnego z systemem Windows.

  • MS-DOS i Windows wersje 1.0 do 3.11: wszystkie aplikacje miały uprawnienia równoważne systemowi operacyjnemu;
  • Windows 9x i Windows Me : wszystkie aplikacje korzystały z przywilejów ogólnosystemowych, rywalizując z przywilejami samego systemu operacyjnego;
  • Wszystkie wersje Windows NT aż do Windows XP : wprowadziły wiele kont użytkowników, ale w praktyce większość użytkowników nadal działała jako administrator w swoich normalnych operacjach. Ponadto niektóre aplikacje wymagają, aby użytkownik był administratorem, aby niektóre lub wszystkie ich funkcje działały.
  • Windows Vista : Microsoft opracował zabezpieczenia dla systemu Vista najpierw z ograniczonego konta użytkownika (LUA), a następnie zmienił nazwę na Ochrona konta użytkownika (UAP), zanim w końcuudostępniłkontrolę konta użytkownika (UAC). Wprowadzona w systemie Windows Vista funkcja Kontrola konta użytkownika (UAC) oferuje podejście zachęcające do „superużytkownika w razie potrzeby”. Kluczem do UAC jest możliwość podniesienia uprawnień bez zmiany kontekstu użytkownika (użytkownik „Bob” nadal jest użytkownikiem „Bob”). Jak zawsze, trudno jest wprowadzić nowe funkcje bezpieczeństwa bez zerwania kompatybilności z istniejącymi aplikacjami.
    • Gdy ktoś loguje się do Visty jako standardowy użytkownik, system uruchamia sesję logowania i przypisuje token zawierający tylko najbardziej podstawowe uprawnienia. W ten sposób nowa sesja logowania nie może wprowadzać zmian, które miałyby wpływ na cały system.
    • Gdy osoba loguje się jako użytkownik z członkostwem w grupie Administratorzy, system przypisuje dwa oddzielne tokeny: pierwszy token zawiera wszystkie uprawnienia zwykle przyznawane administratorowi, a drugi jest tokenem z ograniczeniami, podobnym do tego, jaki otrzymałby standardowy użytkownik.
      • Aplikacje użytkownika, w tym powłoka systemu Windows , uruchamiają się następnie z ograniczonym tokenem, co skutkuje środowiskiem o ograniczonych uprawnieniach — nawet w przypadku działania z kontem administratora.
      • Gdy aplikacja zażąda wyższych uprawnień lub gdy użytkownik wybierze opcję „Uruchom jako administrator”, Kontrola konta użytkownika poprosi standardowych użytkowników o wprowadzenie poświadczeń konta administratora i poprosi administratorów o potwierdzenie, a po uzyskaniu zgody kontynuowanie lub rozpoczęcie procesu za pomocą nieograniczony token.
  • Windows 7 : Microsoft dołączył interfejs użytkownika do zmiany ustawień Kontroli konta użytkownika i wprowadził jeden nowy tryb powiadomień:ustawienie domyślne . Domyślnie Kontrola konta użytkownika nie wyświetla monitu o zgodę, gdy użytkownicy wprowadzają zmiany w ustawieniach systemu Windows, które wymagają podwyższonych uprawnień za pomocą programów przechowywanych w %SystemRoot% i podpisanych cyfrowo przez firmę Microsoft. Programy, które wymagają pozwolenia na uruchomienie, nadal wywołują monit. Dostęp do innych ustawień Kontroli konta użytkownika, które można zmienić za pomocą nowego interfejsu użytkownika, można było uzyskać za pośrednictwem rejestru w systemie Windows Vista.
  • Windows 8 i 8.1 : dodaj zmianę projektu. Po uruchomieniu kontroli konta użytkownika wszystkie aplikacje i pasek zadań są ukryte, gdy pulpit jest przyciemniony.
  • Windows 10 : kopiuje ten sam układ, co Windows 8 i 8.1 , ale aktualizacja rocznicowa ma bardziej nowoczesny wygląd. Ponadto system Windows 10 dodaje obsługę funkcji Windows Hello w oknie dialogowym Kontrola konta użytkownika.

Zadania, które wywołują monit UAC

Zadania wymagające uprawnień administratora wywołają monit UAC (jeśli UAC jest włączony); są one zazwyczaj oznaczone ikoną tarczy bezpieczeństwa z 4 kolorami logo Windows (w systemie Vista i Windows Server 2008) lub dwoma panelami żółtymi i dwoma niebieskimi (Windows 7, Windows Server 2008 R2 i nowsze). W przypadku plików wykonywalnych ikona będzie miała nakładkę tarczy bezpieczeństwa. Następujące zadania wymagają uprawnień administratora:

  • Uruchamianie aplikacji jako administrator
  • Zmiany w ustawieniach ogólnosystemowych
  • Zmiany w plikach w folderach, do których zwykli użytkownicy nie mają uprawnień (np. w większości przypadków %SystemRoot% lub %ProgramFiles%)
  • Zmiany w liście kontroli dostępu (ACL) , powszechnie nazywanej uprawnieniami do plików lub folderów
  • Instalowanie i odinstalowywanie aplikacji poza:
    • % USERPROFILE% (na przykład C: \ Użytkownicy \ {rejestrowane w katalogu użytkownika}) i jego podkatalogów.
      • W większości przypadków jest to %APPDATA%. (np. C:\Users\{zalogowany użytkownik}\AppData), domyślnie jest to ukryty folder.
        • Instalatory przeglądarki Chrome i Firefox proszą o uprawnienia administratora podczas instalacji, jeśli zostaną podane, Chrome zainstaluje się w folderze Program Files i będzie dostępny dla wszystkich użytkowników, jeśli odmówiono, Chrome zainstaluje się w folderze %APPDATA% i będzie można z niego korzystać tylko przez bieżącego użytkownika.
    • Microsoft Store .
    • Folder instalatora i jego podfoldery.
      • Steam instaluje swoje gry w podfolderze /steamapps/, dzięki czemu nie wyświetla monitu UAC. Niektóre gry wymagają zainstalowania pewnych warunków wstępnych, co może powodować monit UAC.
  • Instalowanie sterowników urządzeń
  • Instalacja ActiveX kontroli
  • Zmiana ustawień Zapory systemu Windows
  • Zmiana ustawień UAC
  • Konfiguracja Windows Update
  • Dodawanie lub usuwanie kont użytkowników
  • Zmiana nazwy lub typu konta użytkownika
  • Tworzenie nowego konta lub usuwanie konta użytkownika
  • Włączanie konta Gość (Windows 7 do 8.1)
  • Włączanie wykrywania sieci, udostępniania plików i drukarek, udostępniania folderów publicznych, wyłączania udostępniania chronionego hasłem lub włączania strumieniowego przesyłania multimediów
  • Konfigurowanie kontroli rodzicielskiej (w Windows 7) lub bezpieczeństwa rodzinnego (Windows 8.1)
  • Uruchomiony Harmonogram zadań
  • Tworzenie kopii zapasowych i przywracanie folderów i plików
  • Scalanie i usuwanie lokalizacji sieciowych
  • Włączanie lub czyszczenie logowania w Preferencjach dostępu zdalnego
  • Uruchamianie kalibracji kolorów
  • Zmiana ustawień zdalnych, ochrony systemu lub zaawansowanych ustawień systemu
  • Przywracanie kopii zapasowych plików systemowych
  • Przeglądanie lub zmienianie folderów i plików innego użytkownika
  • Uruchamianie Defragmentatora dysków , Przywracania systemu lub Łatwy transfer w systemie Windows (Windows 7 do 8.1)
  • Uruchomiony edytor rejestru
  • Przeprowadzanie oceny indeksu wydajności systemu Windows
  • Rozwiązywanie problemów z nagrywaniem i odtwarzaniem dźwięku, sprzętem/urządzeniami i zużyciem energii
  • Zmień ustawienia zasilania, wyłącz funkcje systemu Windows, odinstaluj, zmień lub napraw program
  • Zmiana daty i godziny oraz synchronizacja z internetowym serwerem czasu
  • Instalowanie i odinstalowywanie języków wyświetlania
  • Zmień ustawienia administracyjne ułatwień dostępu

Typowe zadania, takie jak zmiana strefy czasowej, nie wymagają uprawnień administratora (chociaż sama zmiana czasu systemowego wymaga, ponieważ czas systemowy jest powszechnie używany w protokołach bezpieczeństwa, takich jak Kerberos ). Wiele zadań wymagających uprawnień administratora we wcześniejszych wersjach systemu Windows, takich jak instalowanie krytycznych aktualizacji systemu Windows, nie wymaga już uprawnień administratora w systemie Vista. Każdy program można uruchomić jako administrator, klikając prawym przyciskiem myszy jego ikonę i klikając „Uruchom jako administrator”, z wyjątkiem pakietów MSI lub MSU, ponieważ ze względu na ich charakter, jeśli wymagane będą uprawnienia administratora, zwykle zostanie wyświetlony monit. Jeśli to się nie powiedzie, jedynym obejściem jest uruchomienie wiersza polecenia jako administrator i uruchomienie pakietu MSI lub MSP z tego miejsca.

Cechy

Kontrola konta użytkownika prosi o poświadczenia w trybie bezpiecznego pulpitu , w którym cały ekran jest tymczasowo przyciemniony, Windows Aero jest wyłączony, a tylko okno autoryzacji z pełną jasnością, aby wyświetlić tylko interfejs użytkownika (UI) podniesienia uprawnień. Normalne aplikacje nie mogą wchodzić w interakcje z Bezpiecznym pulpitem. Pomaga to zapobiegać fałszowaniu, takim jak nakładanie innego tekstu lub grafiki na żądanie podniesienia uprawnień lub dostosowywanie wskaźnika myszy, aby kliknąć przycisk potwierdzenia, gdy nie jest to zamierzone przez użytkownika. Jeśli czynność administracyjna pochodzi ze zminimalizowanej aplikacji, żądanie bezpiecznego pulpitu również zostanie zminimalizowane, aby zapobiec utracie fokusu . Możliwe jest wyłączenie Bezpiecznego pulpitu , choć jest to niewskazane z punktu widzenia bezpieczeństwa.

We wcześniejszych wersjach systemu Windows aplikacje napisane z założeniem, że użytkownik będzie działał z uprawnieniami administratora, napotykały problemy podczas uruchamiania z ograniczonych kont użytkowników, często z powodu próby zapisu do katalogów systemowych lub systemowych (takich jak Program Files ) lub rejestru klucze (zwłaszcza HKLM ). Kontrola konta użytkownika próbuje złagodzić ten problem za pomocą wirtualizacji plików i rejestru , która przekierowuje zapisy (i kolejne odczyty) do lokalizacji użytkownika w profilu użytkownika. Na przykład, jeśli aplikacja podejmie próbę zapisu do katalogu takiego jak „C:\Program Files\appname\settings.ini”, do którego użytkownik nie ma uprawnień do zapisu, zapis zostanie przekierowany do „C:\Users\username \AppData\Local\VirtualStore\Program Files\appname\settings.ini". Funkcja przekierowania jest dostępna tylko w przypadku aplikacji 32-bitowych bez podwyższonych uprawnień i tylko wtedy, gdy nie zawierają manifestu żądającego określonych uprawnień.

Istnieje wiele konfigurowalnych ustawień UAC. Możliwe jest:

  • Wymagaj od administratorów ponownego wprowadzenia hasła w celu zwiększenia bezpieczeństwa,
  • Wymagaj od użytkownika naciśnięcia klawiszy Ctrl+Alt+Del w ramach procesu uwierzytelniania w celu zwiększenia bezpieczeństwa;
  • Wyłącz tylko wirtualizację plików i rejestru
  • Całkowicie wyłącz tryb zatwierdzania przez administratora (monity UAC dla administratorów); zauważ, że chociaż wyłącza to okna dialogowe potwierdzenia UAC, nie wyłącza wbudowanej funkcji LUA systemu Windows , co oznacza, że ​​użytkownicy, nawet ci oznaczeni jako administratorzy, są nadal ograniczonymi użytkownikami bez prawdziwego dostępu administracyjnego.

Okna wiersza polecenia z podwyższonymi uprawnieniami poprzedzą tytuł okna słowem „Administrator”, aby użytkownik mógł rozpoznać, które wystąpienia są uruchomione z podwyższonymi uprawnieniami.

Rozróżnia się żądania podniesienia uprawnień z podpisanego pliku wykonywalnego i niepodpisanego pliku wykonywalnego; a jeśli to pierwsze, czy wydawcą jest „Windows Vista”. Kolor, ikona i treść podpowiedzi są w każdym przypadku inne; na przykład próba przekazania większego sensu ostrzeżenia, jeśli plik wykonywalny jest niepodpisany, niż jeśli nie.

Funkcja „Trybu chronionego” programu Internet Explorer 7 używa kontroli konta użytkownika do uruchamiania z „niskim” poziomem integralności (token użytkownika standardowego ma poziom integralności „średni”, token z podwyższonym poziomem uprawnień (administratora) ma poziom integralności „wysoki”) . W związku z tym skutecznie działa w piaskownicy, nie mogąc pisać do większości systemu (poza folderem tymczasowych plików internetowych) bez podnoszenia przez UAC. Ponieważ paski narzędzi i kontrolki ActiveX działają w ramach procesu Internet Explorera, będą one również działać z niskimi uprawnieniami i będą mieć poważne ograniczenia w zakresie szkód, jakie mogą wyrządzić systemowi.

Prośba o podwyższenie

Program może żądać podniesienia na wiele różnych sposobów. Jednym ze sposobów dla programistów jest dodanie sekcji requestPrivileges do dokumentu XML, znanego jako manifest , który jest następnie osadzony w aplikacji. Manifest może określać zależności, style wizualne, a teraz odpowiedni kontekst zabezpieczeń:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
    <v3:security>
      <v3:requestedPrivileges>
        <v3:requestedExecutionLevel level="highestAvailable"/>
      </v3:requestedPrivileges>
    </v3:security>
  </v3:trustInfo>
</assembly>

Ustawienie atrybutu poziomu dla requestExecutionLevel na „asInvoker” spowoduje uruchomienie aplikacji z tokenem, który ją uruchomił, „highestAvailable” spowoduje wyświetlenie monitu UAC dla administratorów i uruchomienie ze zwykłymi ograniczonymi uprawnieniami dla standardowych użytkowników, a „requireAdministrator” będzie wymagał podniesienia uprawnień . W obu trybach najwyższy dostępny i wymagany administratora brak potwierdzenia powoduje, że program nie jest uruchamiany.

Pliku wykonywalnego oznaczonego jako „ requireAdministrator” w swoim manifeście nie można uruchomić z procesu niepodwyższonego przy użyciu CreateProcess(). Zamiast tego ERROR_ELEVATION_REQUIREDzostanie zwrócony. ShellExecute()lub ShellExecuteEx()musi być używany zamiast tego. Jeśli HWNDnie zostanie podany, okno dialogowe pojawi się jako migający element na pasku zadań.

Sprawdzanie manifestu pliku wykonywalnego w celu ustalenia, czy wymaga on podniesienia uprawnień, nie jest zalecane, ponieważ podniesienie uprawnień może być wymagane z innych powodów (pliki wykonywalne Instalatora, zgodność aplikacji). Jednak możliwe jest programowe wykrycie, czy plik wykonywalny będzie wymagał podniesienia CreateProcess()uprawnień, używając i ustawiając dwCreationFlagsparametr na CREATE_SUSPENDED. Jeśli wymagana jest podniesienie, ERROR_ELEVATION_REQUIREDzostanie zwrócona. Jeśli podniesienie nie jest wymagane, zostanie zwrócony kod powrotu sukcesu, w którym można go użyć TerminateProcess()w nowo utworzonym, zawieszonym procesie. Nie pozwoli to jednak wykryć, że plik wykonywalny wymaga podniesienia uprawnień, jeśli jest już wykonywany w podwyższonym procesie.

Nowy proces z podwyższonymi uprawnieniami może zostać uruchomiony z poziomu aplikacji .NET za pomocą runasczasownika „ ”. Przykład przy użyciu C# :

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "C:\\Windows\\system32\\notepad.exe";
proc.StartInfo.Verb = "runas"; // Elevate the application
proc.StartInfo.UseShellExecute = true;
proc.Start();

W natywnej aplikacji Win32 ten sam runasczasownik „ ” można dodać do ShellExecute()lub ShellExecuteEx()wywołać:

ShellExecute(hwnd, "runas", "C:\\Windows\\Notepad.exe", 0, 0, SW_SHOWNORMAL);

W przypadku braku konkretnej dyrektywy określającej, jakich uprawnień żąda aplikacja, UAC zastosuje heurystykę , aby określić, czy aplikacja potrzebuje uprawnień administratora. Na przykład, jeśli UAC wykryje, że aplikacja jest programem instalacyjnym, na podstawie wskazówek, takich jak nazwa pliku, pola wersji lub obecność pewnych sekwencji bajtów w pliku wykonywalnym, w przypadku braku manifestu założy, że aplikacja potrzebuje administratora przywileje.

Bezpieczeństwo

Kontrola konta użytkownika to wygodna funkcja; nie wprowadza granicy bezpieczeństwa ani nie zapobiega wykonaniu złośliwego oprogramowania .

Leo Davidson odkrył, że Microsoft osłabiony UAC w Windows 7 poprzez zwolnienie około 70 programów Windows z wyświetlając UAC szybka i przedstawił dowód koncepcji do przekroczenia uprawnień .

Stefan Kanthak przedstawił weryfikację koncepcji eskalacji uprawnień za pomocą wykrywania instalatorów UAC i instalatorów IExpress .

Stefan Kanthak przedstawił kolejny dowód koncepcji wykonania dowolnego kodu, a także eskalacji uprawnień poprzez automatyczne podnoszenie uprawnień i umieszczanie binarne w UAC.

Krytyka

Pojawiły się skargi, że powiadomienia UAC spowalniają różne zadania na komputerze, takie jak początkowa instalacja oprogramowania w systemie Windows Vista . Możliwe jest wyłączenie kontroli konta użytkownika podczas instalacji oprogramowania i ponowne włączenie go później. Nie jest to jednak zalecane, ponieważ wirtualizacja plików i rejestru jest aktywna tylko wtedy, gdy kontrola konta użytkownika jest włączona, ustawienia użytkownika i pliki konfiguracyjne mogą być instalowane w innym miejscu (katalog systemowy, a nie katalog specyficzny dla użytkownika), jeśli funkcja UAC jest włączona niż byłoby inaczej. Również „tryb chroniony” przeglądarki Internet Explorer 7 , w którym przeglądarka działa w piaskownicy z niższymi uprawnieniami niż standardowy użytkownik, opiera się na UAC; i nie będzie działać, jeśli kontrola konta użytkownika jest wyłączona.

Analityk Yankee Group , Andrew Jaquith, powiedział na sześć miesięcy przed premierą Visty, że „choć nowy system bezpieczeństwa jest obiecujący, jest zbyt rozmowny i denerwujący”. Do czasu wydania systemu Windows Vista w listopadzie 2006 r. firma Microsoft drastycznie zmniejszyła liczbę zadań systemu operacyjnego, które wyzwalały monity UAC, oraz dodała wirtualizację plików i rejestru, aby zmniejszyć liczbę starszych aplikacji, które wyzwalały monity UAC. Jednak David Cross, kierownik działu produktów w firmie Microsoft, stwierdził podczas konferencji RSA Conference 2008, że UAC został zaprojektowany w celu „irytowania użytkowników” i zmuszania niezależnych dostawców oprogramowania do zwiększania bezpieczeństwa ich programów, aby nie były uruchamiane monity UAC. Oprogramowanie napisane dla systemu Windows XP i wielu urządzeń peryferyjnych nie działałoby już w systemie Windows Vista lub 7 z powodu rozległych zmian wprowadzonych we wprowadzeniu UAC. Opcje kompatybilności również były niewystarczające. W odpowiedzi na tę krytykę firma Microsoft zmieniła aktywność UAC w systemie Windows 7 . Na przykład domyślnie użytkownicy nie są proszeni o potwierdzenie wielu akcji inicjowanych za pomocą samej myszy i klawiatury, takich jak obsługa apletów Panelu sterowania.

W kontrowersyjnym artykule Paul Boutin, pisarz New York Times Gadgetwise, powiedział: „Wyłącz nadmiernie ochronną kontrolę konta użytkownika w systemie Vista. Te wyskakujące okienka są jak trzymanie matki nad ramieniem podczas pracy”. Dziennikarz Computerworld, Preston Gralla, opisał artykuł w NYT jako „…jedną z najgorszych porad technicznych, jakie kiedykolwiek wydano”.

Zobacz też

Bibliografia

Linki zewnętrzne