Felhasználói fiókok felügyelete
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
A felhasználói fiókok felügyelete (User Account Control [UAC]) egy, a Microsoft által a Windows Vista, ill. a Windows Server 2008 operációs rendszerekkel bevezetett technológia és biztonsági infrastruktúra, aminek egy enyhített verziója megtalálható a Windows 7-ben, a Windows Server 2008 R2-ben, a Windows 8-ban, a Windows Server 2012-ben és a Windows 10-ben is. A célja, hogy a Microsoft Windowst biztonságosabbá tegye azáltal, hogy a szoftveralkalmazások hozzáférését az általános felhasználói jogosultságokra korlátozza, amíg egy rendszergazda több hozzáférést nem ad. Így csak a felhasználó által megbízhatónak tartott alkalmazások kaphatnak rendszergazdai jogokat, és a rosszindulatú szoftverektől védve marad az operációs rendszer. Más szavakkal, a felhasználói fióknak lehetnek rendszergazdai jogai, de a felhasználó által futtatott alkalmazások nem öröklik ezeket, kivéve ha ez már előre jóvá lett hagyva vagy a felhasználó kifejezetten engedélyezi.
Az UAC Meghatalmazottintegritás-ellenőrzéssel (Mandatory Integrity Control) választja szét a különböző jogokkal futó folyamatokat. Hogy csökkentsék az alacsonyabb hozzáféréssel rendelkező alkalmazások magasabb hozzáféréssel rendelkezőkkel való kommunikációját, egy másik új technológiát, a Felhasználói Felület Jogelszigetelését (User Interface Privilege Isolation) használják a Felhasználói Fiókok Felügyelete mellett, hogy ezeket a folyamatokat elválasszák egymástól. Erre kiváló példa az Internet Explorer 7 „Védett Módja”.
Története
[szerkesztés]A nagyszámítógépek és szerverek operációs rendszereiben évtizedek óta különbséget tettek kiemelt felhasználók és a többi felhasználó között. Ez nyilvánvalóan biztonsági és adminisztrációs elem egyszerre, védte a rendszerbeállításokat attól, hogy a felhasználók véletlenül megváltoztassák.
A korai otthoni Microsoft operációs rendszerekben (mint az MS-DOS, a Windows 95, a Windows 98 és a Windows Me) nem volt meg az ugyanazon a gépen különböző felhasználói fiókok koncepciója. A Windows 95-ben, a Windows 98-ban, és a Windows Me-ben minden alkalmazásnak magával az operációs rendszerével egyenrangú jogai voltak; az MS-DOS-ban és a Windowsban az 1.0-tól a 3.11-es verzióig minden alkalmazásnak annyi joga volt, mint az operációs rendszernek. A több felhasználói fiókot a Windows NT-vel vezették be, de a gyakorlatban a legtöbb felhasználó mint rendszergazda folytatta a normál tevékenységét. Emellett néhány alkalmazásnak szüksége volt arra, hogy a felhasználó rendszergazda legyen ahhoz, hogy néhány vagy az összes funkciója működjön. A Windows és a Microsoft-alkalmazások későbbi verziói ösztönözték a nem-rendszergazdai fiókkal való bejelentkezést, bár néhány alkalmazás továbbra is csak rendszergazdai jogokkal működött. A Microsoft nem tartja Windows-megfelelőségre alkalmasnak azokat az alkalmazásokat, amik rendszergazdai jogokkal működnek; ezeknek a csomagolásán nem használható a Windows-megfelelőség logó.
A Microsoft a Vista biztonsági rendszerét először a Korlátozott Felhasználói Fiókból (Limited User Account) [LUA]) fejlesztette ki, majd a koncepciót átnevezte Felhasználói Fiókvédelemmé (User Account Protection [UAP]), míg végül Felhasználói Fiókok Felügyelete néven került a termékekbe. A Windows Vistával kezdődően a Felhasználói Fiókok Felügyelete egy integrált, kiegyensúlyozott megközelítését kínálja a „felhasználó kiemelése szükség esetén” ösztönzésének. Az UAC kulcsa, hogy úgy lehet felhasználók jogosultsági szintjét emelni, hogy közben a felhasználó kontextusa nem változik (a „Béla” felhasználó továbbra is „Béla”). Mint mindig, nehéz úgy új biztonsági funkciókat bevezetni, hogy közben ne sérüljön a kompatibilitás meglevő alkalmazásokkal.
Ha valaki általános jogú felhasználóként jelentkezik be a Vistába, a rendszer egy belépési munkamenetet indít és egy legalacsonyabb szintű jogokból álló jogosultságot rendel hozzá. Ezáltal az új belépési munkamenet nem hajthat végre a teljes rendszert érintő változtatásokat. Amikor valaki olyan felhasználóként jelentkezik be, amelyik tagja a Rendszergazdák csoportnak, a rendszer két külön jogosultságot rendel a munkamenethez. Az első tartalmaz minden jogot ami tipikusan egy rendszergazdához tartozik, a második pedig egy korlátozott jogosultság amit egy általános jogú felhasználó kapna. A felhasználói alkalmazások, beleértve a Windows Shellt, a korlátozott jogosultsággal indulnak, így egy korlátozott hozzáférésű környezetben futnak – még akkor is, amikor rendszergazdai fiókból futtatják. Amikor az alkalmazás magasabb szintű hozzáférést kér vagy a felhasználó a „Futtatás rendszergazdaként” opciót választja, az UAC az általános jogú felhasználóktól bekéri a rendszergazdai fiók hitelesítő adatait ill. rendszergazdáktól jóváhagyást kér, és ha megerősítést kap, akkor egy korlátozás nélküli jogosultsággal folytatja vagy kezdi el a folyamatot.
A Windows 7-et a Microsoft egy olyan felhasználói felülettel bővítette, amivel változtatni lehet a Felhasználói Fiókok Felügyelete beállításait, és egy új értesítési móddal: az alapértelmezett beállítással. Alapértelmezettként az UAC nem kér hozzájárulást a Windows olyan beállításainak megváltoztatásakor, amihez emelt szintű jogosultság szükséges, ha a felhasználó ezt egy olyan programmal csinálja, ami a %SystemRoot%-ban van tárolva és amit a Microsoft digitálisan aláírt. Azok a programok, amiknek a futtatásához jóváhagyás szükséges, továbbra is értesítést aktiválnak. A többi Felhasználói Fiókok Felügyelete beállítás, ami az új felhasználói felületről módosítható, a Windows Vista-ban a rendszerleíró adatbázison keresztül volt elérhető.
A Windows 8-ban és a 8.1-ben változott ennek a kivitelezése. Amikor valami UAC-t aktivál, sem az alkalmazások, sem a tálca nem látható amikor az asztal elhalványul.
A Windows 10-nek ugyanolyan az elrendezése, mint a Windows 8-nak és a 8.1-nek, de az Évfordulós frissítéssel modernebb kinézetet kapott. Ezenkívül a Windows 10 már támogatja a Windows Hellót is a Felhasználói Fiókok Felügyelete párbeszédpanelen.
UAC-értesítést aktiváló feladatok
[szerkesztés]Olyan feladatok, amikhez rendszergazdai jogosultság szükséges, UAC-értesítést aktiválnak (amennyiben az UAC engedélyezve van); ezeket jellemzően egy pajzs ikon jelöli, rajta a 4 mező 4 színű mint a Windows logón (a Vistánál és a Windows Server 2008-nál), vagy 2 sárga – 2 kék (Windows 7, Windows Server 2008 R2 vagy újabb). Futtatható állományok ikonján egy ilyen pajzs jelenik meg. Az alábbi feladatokhoz van szükség rendszergazdai jogosultságra:
- Az alkalmazás rendszergazdaként való futtatása
- Egész rendszert érintő módosítás
- Olyan mappákban levő fájlok módosítása, amikhez az általános jogú felhasználónak nincs hozzáférése (mint a %SystemRoot% vagy legtöbb esetben a %ProgramFiles%)
- Egy hozzáférést szabályozó lista (access control list [ACL]) – vagy ahogy általában nevezik, fájl- vagy mappa-hozzáférés – módosítása
- Alkalmazások telepítése és eltávolítása az alábbi helyeken kívülre/-ről:
- A %USERPROFILE% (pl.: C:\Users\{bejelentkezett felhasználó}) mappa és almappái
- Legtöbbször ez itt található: %APPDATA%. (pl.: C:\Users\{ bejelentkezett felhasználó }\AppData). Alapértelmezettként ez egy rejtett mappa.
- A Chrome telepítéskor rendszergazdai jogot kér a felhasználótól, ha megkapja, akkor a Program Files mappába települ és minden felhasználó számára elérhető lesz, ha nem kapja meg, akkor az %APPDATA% mappába települ és csak az aktuális felhasználó számára lesz elérhető.
- Legtöbbször ez itt található: %APPDATA%. (pl.: C:\Users\{ bejelentkezett felhasználó }\AppData). Alapértelmezettként ez egy rejtett mappa.
- A %USERPROFILE% (pl.: C:\Users\{bejelentkezett felhasználó}) mappa és almappái
- A Microsoft Store.
- A telepítő mappája és almappái.
- A Steam a játékait a /steamapps/ almappába telepíti, így nem jelez az UAC felé. Viszont néhány játék előfeltételeihez is telepítés szükséges, ezek jelezhetnek az UAC felé.
- Eszközök illesztőprogramjainak a telepítése
- AciveX vezérlők telepítése
- A Windows tűzfal beállításainak a módosítása
- Az UAC beállításainak a módosítása
- A Windows Update konfigurálása
- Felhasználói fiókok hozzáadása/eltávolítása
- Felhasználói fiók típusának módosítása
- Vendég fiók bekapcsolása (Windows 7 és 8.1)
- Fájlmegosztás vagy médialetöltés bekapcsolása
- Szülői Felügyelet konfigurálása
- A Feladatütemező futtatása
- Rendszerfájlok biztonsági másolatának visszaállítása
- Másik felhasználó mappáinak és fájljainak megtekintése vagy módosítása
- A Lemeztöredezettség-mentesítő futtatása
- A Beállításszerkesztő futtatása
- Megjelenítési nyelv telepítése/eltávolítása (Windows 7)
- A Windows élményindex-értékelés futtatása
- Hangrögzítés és -lejátszás, hardver / eszközök és energiafogyasztás hibaelhárítása
- Az energiagazdálkodási beállítások módosítása, Windows funkciók kikapcsolása, programok eltávolítása, módosítása ill. helyreállítása
- Dátum és idő ill. Internetes időkiszolgálóval való szinkronizálás módosítása
- Megjelenítési nyelv telepítése/eltávolítása
- A Könnyű elérhetőség rendszergazdai beállításainak módosítása
Átlagos feladatok, mint az időzóna módosítása, nem igényelnek rendszergazdai jogosultságot (bár magának a rendszeridőnek a módosítása igen, mert ezt általában a biztonsági protokollok is használják, mint a Kerberos). Jónéhány feladat, amihez rendszergazdai jogosultság kellett a Windows korábbi verzióiban, mint a kritikus Windows-frissítések telepítése, a Vistában már nem szükséges. Bármilyen program futtatható rendszergazdaként, az ikonjára jobb gombbal kattintva és a „Futtatás rendszergazdaként” opciót választva, kivéve az MSI/MSU csomagok, természetüknél fogva, amikor rendszergazdai jogosultságra van szükség, általában értesítés jelenik meg. Ha ez nem működik, az egyetlen kerülő megoldás a Parancssor megnyitása rendszergazdaként, és az MSI/MSP csomag elindítása innen.
Jellemzői
[szerkesztés]A Felhasználói Fiókok Felügyelete Biztonságos Asztal módban kéri be a hitelesítő adatokat, ilyenkor a Windows Aero kikapcsol, az egész képernyő elhalványul a bejelentkező ablakot kivéve, ami a csak a jogosultságszint-emelő felhasználói felületet mutatja. Egy átlagos alkalmazás nem kommunikálhat a Biztonságos Asztallal. Ez segít megelőzni a csalásokat, mint az emelési kérelmen különböző szöveg vagy kép megjelenítése, vagy az egérmutató manipulálása, hogy a felhasználó, szándéka ellenére, a jóváhagyás gombra kattintson. Amikor a jóváhagyási kérelmet egy kis méretű ablakban futó alkalmazás váltja ki, a Biztonságos Asztal is kis méretű ablakban fut, hogy az aktuális fókuszt ne változtassa meg. A Biztonságos Asztal kikapcsolható, de biztonsági okokból nem tanácsos.
Azok az alkalmazások, amiket azzal a feltételezéssel írtak, hogy a felhasználó rendszergazdai jogosultsággal fogja futtatni, a Windows korábbi verzióiban problémába ütköztek, amikor Korlátozott Felhasználói Fiókból futottak, mert gyakran az egész gép, rendszermappák (mint a Program Files), vagy a rendszerleíró adatbázis kulcsoknak (nevesül a HKLM) a beállításait akarták módosítani. Ezt az UAC a Fájlrendszer és Rendszerleíró adatbázis Virtualizációval próbálja orvosolni, ami a módosításokat (és az ezeket követő olvasásokat) egy felhasználónként létrehozott helyre, a felhasználói profilba irányítja. Például ha egy alkalmazás megpróbál egy olyan mappába írni, mint a "C:\Program Files\appname\settings.ini", amihez a felhasználónak nincs írási joga, a módosítás a "C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini"-be lesz irányítva. Az átirányítás csak a nem emelt jogosultsági szintű 32-bites alkalmazásokra működik, és csak akkor, ha nincs egy jegyzékfájljuk, ami konkrét jogosultságot kér.
Jónéhány UAC-beállítás konfigurálható. Lehetséges:
- Rendszergazdáktól újra bekérni a jelszót a még nagyobb biztonság érdekében;
- Felhasználóktól Ctrl+Alt+Del lenyomását kérni a bejelentkezés részeként a még nagyobb biztonság érdekében;
- Csak a Fájlrendszer és Rendszerleíró adatbázis Virtualizáció kikapcsolása
- A Rendszergazdai engedélyezéses mód (az UAC rendszergazdai értesítései) teljes kikapcsolása; megjegyzendő, hogy amíg ez kikapcsolja a jóváhagyási párbeszédpaneleket, addig a Windows-ba épített LUA-t nem, így még a rendszergazdának megjelölt felhasználók is korlátozott felhasználók tényleges rendszergazdai hozzáférés nélkül.
Az emelt jogosultsági szintű Parancssor ablakainak a címe a „Rendszergazda” szóval kezdődik, így a felhasználó által megkülönböztethető, melyik példány ilyen.
Különbség van aláírt és nem aláírt futtatható állományok emelési kérelme között; és ezenkívül, ha az előbbi kiadója a „Windows Vista”. Az értesítések színezése, ikonjai, és szövegezése minden esetben más és más; például látványosabban próbál figyelmeztetni, amikor a futtatható állomány nem aláírt, mint amikor igen.
Az Internet Explorer 7 „Védett Mód” funkció az UAC „alacsony” integritási szintjén fut (az általános jogú felhasználók integritási szintje „közepes”; egy emelt szintű (Rendszergazda) szintje „magas”). Ily módon tulajdonképpen egy homokozóban fut, nem végezhet módosításokat sehol a rendszerben (a Temporary Internet Files mappát leszámítva) UAC-n keresztül való jogosultságszint-emelés nélkül. Mivel az eszköztárak és az AciveX vezérlők az Internet Explorer folyamatán belül futnak, nekik is alacsony a jogosultságuk, így nagyon korlátozott mértékben tehetnek kárt a rendszerben.
Jogosultságszint-emelési kérelem
[szerkesztés]Egy program többféleképpen kérhet jogosultságszint-emelést. Egyik módja, hogy a program fejlesztője egy requestedPrivileges
szekciót ad a jegyzékfájlként ismert XML-dokumentumhoz, amit aztán az alkalmazásba ágyaz. A jegyzékfájl meghatározhat függőségeket, megjelenítési stílusokat, és itt a megfelelő biztonsági környezetet:
<?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>
A requestedExecutionLevel
attribútum szintjét „asInvoker
”-re állítva az alkalmazás olyan jogosultsággal fog futni, mint ami elindította, „highestAvailable
”-nél egy értesítés jelenik meg rendszergazdáknak ill. általános jogú felhasználóknál a szokásos korlátozott jogosultsággal fog futni, „requireAdministrator
”-nál pedig jogosultságszint-emelést fog kérni. highestAvailable
és requireAdministrator
módban jóváhagyás hiányában a program nem indul el.
Egy futtatható állomány a jegyzékfájljában „requireAdministrator
”-ral megjelölve egy nem emelt jogosultsági szintű folyamatból nem indítható CreateProcess()
-szel. Ehelyett ERROR_ELEVATION_REQUIRED
-et kapunk. Helyette a ShellExecute()
-öt vagy a ShellExecuteEx()
-et kell használni. Ha nem kapunk HWND
-t, akkor a párbeszédpanel a tálcán egy villogó elemként jelenik meg.
A futtatható állományok jegyzékfájlját vizsgálni, hogy emelt jogosultságszint kell-e hozzájuk nem ajánlott, mert a jogosultságszint-emelés más okokból is szükséges lehet (telepítők, alkalmazás-kompatibilitás). Viszont programozással megállapítani lehetséges, hogy egy futtatható állomány kér-e jogosultságszint-emelést, CreateProcess()
-szel a dwCreationFlags
paramétert CREATE_SUSPENDED
-re állítva. Emelési kérelem esetén ERROR_ELEVATION_REQUIRED
-et kapunk. Ha nincs emelési kérelem, sikert jelző visszatérési kódot kapunk, és ilyenkor használható a TerminateProcess()
az újonnan létrejött, felfüggesztett folyamaton.
Viszont ha már emelt jogosultságszintű folyamatból futtatjuk a futtatható állományt, akkor nem lehet megállapítani, hogy emelésre lenne-e szüksége.
Emelt jogosultságszintű folyamatot úgy hozhatunk létre egy .NET alkalmazásból, hogy a Verb
-nek „runas”-t adunk meg. Egy C# példa:
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();
Egy natív Win32 alkalmazásban Verb
-nek „runas”-t a ShellExecute() vagy a ShellExecuteEx() hívásánál adhatunk meg:
ShellExecute(hwnd, "runas", "C:\\Windows\\Notepad.exe", 0, 0, SW_SHOWNORMAL);
Konkrét iránymutatás hiányában, ami megmondaná milyen jogosultságot kér az alkalmazás, az UAC heurisztikus módszereket használ, hogy meghatározza, az alkalmazásnak szüksége van-e rendszergazdai jogosultságra. Például ha az UAC megállapítja, hogy az alkalmazás egy telepítő, következtetve a fájlnévből, a verziómezőkből, vagy a futtatható állományban levő adott bájtsorozatból, jegyzékfájl hiányában azt fogja feltételezni, hogy az alkalmazásnak rendszergazdai jogosultságra van szüksége.
Biztonság
[szerkesztés]Az UAC egy kényelmi funkció; sem biztonsági korlátot nem vezet be, sem rosszindulatú szoftver futtatását nem akadályozza meg.
Leo Davidson fedezte fel, hogy a Microsoft gyengítette az UAC-t a Windows 7-ben, kb. 70 Windows program mentesült az UAC-s értesítésektől, ezzel bizonyítva a jogosultságszint-emelést.
Stefan Kanthak bizonyította a jogosultságszint-emelést az UAC Alkalmazástelepítések észlelése funkcióval és az IExpress telepítőkkel.
Stefan Kanthak bizonyította a véletlenszerű kód-futtatást és jogosultságszint-emelést az UAC automatikus jogosultságszint-emelési funkciójával és bináris állomány-elültetéssel (binary planting).
Kritikák
[szerkesztés]Panaszok érkeztek azzal kapcsolatban, hogy az UAC-értesítések lelassítanak különböző feladatokat a számítógépen, például szoftver kezdeti telepítését a Windows Vista-ra. Az UAC kikapcsolható szoftver-telepítés idejére és utána újra engedélyezhető. Viszont ez nem ajánlott, mert a Fájlrendszer és Rendszerleíró adatbázis Virtualizáció csak akkor aktív, amikor az UAC be van kapcsolva, a felhasználói beállítások és konfigurációs fájlok máshová lehetnek telepítve (rendszermappákba a felhasználó mappája helyett) amikor az UAC ki van kapcsolva, mint egyébként. Az Internet Explorer 7 „Védett Módja” – ami miatt a böngésző egy homokozóban fut az általános jogú felhasználónál alacsonyabb jogosultságszinten – is függ az UAC-tól; nem használható, amikor az UAC ki van kapcsolva.
Andrew Jaquith, a Yankee Group elemzője a Vista kiadása előtt 6 hónappal azt mondta, hogy „bár az új biztonsági rendszer ígéretes, túlságosan sokat üzenget és zavaró”. Mire a Windows Vista a piacra került 2006 novemberében, a Microsoft jelentősen lecsökkentette az UAC-értesítést aktiváló operációs rendszer feladatok számát, és a Fájlrendszer és Rendszerleíró adatbázis Virtualizáció hozzáadásával csökkentette az ilyen értesítést generáló korábbi alkalmazások számát. Viszont David Cross, a Microsoft termékegység menedzsere a 2008-as RSA konferencián azt mondta az UAC-ról, hogy valójában azzal a céllal készült, hogy „zavarja a felhasználókat”, és a független szoftver-beszállítókat arra kényszerítse, hogy a programjaikat biztonságosabbá tegyék és így ne aktiváljanak UAC-értesítéseket. Windows XP-re és sok perifériára írt szoftver Windows Vista-ban vagy 7-ben már nem működött az UAC bevezetésével bekövetkező széleskörű változások miatt. Ezt a kompatibilitási opciók sem oldották meg. A kritikákra válaszul a Microsoft módosított az UAC működésén a Windows 7-ben. Például alapértelmezettként a felhasználó nem kap jóváhagyási kérelmet sok, csak egérrel és billentyűzettel végzett műveletnél, mint amilyen a Vezérlőpult applet-eivel való munka.
Egy nagy port kavaró cikkben a New York Times Gadgetwise szerzője, Paul Boutin azt írta: „Kapcsolja ki a Vista túlzott biztonságot adó Felhasználói Fiókok Felügyeletét. Azok a felugró ablakok olyanok mintha anyukád ott állna mögötted mikor dolgozol.” A Computerworld újságírója, Preston Gralla így jellemezte a cikket: „…a valaha adott egyik legrosszabb szakmai tanács”.
Fordítás
[szerkesztés]- Ez a szócikk részben vagy egészben a User Account Control című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Kapcsolódó szócikkek
[szerkesztés]- A Windows Vista újdonságai
- sudo - Egy hasonló funkció UNIX-szerű operációs rendszerekben