Felhasználói fiókok felügyelete

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ő.
  • 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