Ce nu știi despre Windows Vista – User Account Control

Publicat: 15 iulie 2008

Toată lumea îl urăște și absolut toți vrem să îl oprim. User Account Control (UAC) este una dintre cele mai criticate componente din Windows Vista pentru faptul că ne obligă să dăm câteva click-uri în plus.

*
Pe această pagină
Schimbări în procesul de logonSchimbări în procesul de logon
Standard user sau Administrator?Standard user sau Administrator?
Secure desktop și Application Information ServiceSecure desktop și Application Information Service

Schimbări în procesul de logon

Există o schimbare fundamentală în procesul de logon, ce diferențiază sistemele de operare anterioare de Vista. Astfel, în Windows XP, după ce erau introduse username-ul și parola, Local Security Authority (LSA) verifica grupurile din care făcea parte acel user și acorda acelui user un access token. Astfel, unui utilizator limitat îi era acordat un access token restrictiv iar unui administrator îi era acordat un access token cu putere deplină. În Windows Vista acest lucru se schimbă. Unui administrator îi sunt atribuite doua token-uri: unul de administrator și altul de utilizator standard. Token-ul standard o să fie folosit pentru a lansa sesiunea, iar cel de administrator va fi folosit numai după ce user-ul și-a dat acordul la acele prompt-uri pe care le vedem noi. Dacă am reușit să vă pierd pe parcursul explicației, am făcut mai jos o schemă pentru a înțelege mai bine sistemul.

User Account Control

Așadar, avem un administrator care își desfașoară activitățile în contextul unui utilizator standard. Procesele pornite de acesta nu vor putea obține privilegii de administrator (de exemplu SeLoadDriverPrivilege) decât după ce au primit acordul utilizatorului.

Mulți au criticat această alegere făcută de Microsoft. Unii se rezumă la a spune pur și simplu că este inutil să lași utilizatorul să decidă, pentru ca el nu are cunoștințele necesare. Alții elaborează pe tema iritării pe care o provoacă acele prompt-uri. Cred ca ne aflăm în situația de a alege "răul cel mai bun". Decizia finală va aparține întotdeauna utilizatorului; oricate programe și sisteme de securitate am inventa, decizia finală o să o aibe tot timpul utilizatorul. Lucrurile se schimbă în cazul sistemelor administrate central, însă și aici, utilizatorul este numai limitat în deciziile pe care poate/trebuie să le ia. Astfel, cel mai eficient lucru pe care poți să îl faci la nivel de sistem de operare este să previi execuția arbitrară și să dai utilizatorului informații suficiente pentru a lua decizia.

Începutul paginiiÎnceputul paginii

Standard user sau Administrator?

Una dintre marile probleme în XP, era aceea ca utilizatorul limitat era aproape imposibil de folosit. În Windows Vista, utilizatorul limitat a fost redenumit în utilizator standard și i-au fost sesizabil crescute puterile. Astfel, utilizatorul standard poate să faca urmatoarele actiuni fara acordul unui administrator:

1.

să modifice time-zone;

2.

să modifice setările "Power Saving";

3.

să instaleze ActiveX aprobate de administrator (ActiveX Installer Service care permite definirii locale și prin Group Policy a host-urilor de pe care se pot descarca script-uri);

4.

să defragmenteze;

5.

să creeze noi conexiuni (VPN, LAN sau Wireless);

6.

să instaleze update-urile critice.

Pentru actiunile care necesita drepturi de administrator, utilizatorul standard va trebui să introduca username-ul și parola unui administrator. Acest procedeu se cheama “Over the shoulder” elevation (OTS). În cazul în care utilizatorul este membru al grupului de Administrators atunci el va fi numai informat ca acea aplicatie cere drepturi administrative și va avea posibilitatea să permita sau să refuze aceasta cerere. Aceasta se cheama “Administrator Approval Mode”.

User Account Control

User Account Control

Recomandarea oficiala este rulam cu user standard, și orice operatiune care necesita drepturi administrative să fie facuta centralizat și controlat. Bineinteles, toti ne-am dori asa ceva, insa alegerea trebuie facuta în functie de politica de securitate generala pe care o sustineti. Orice alegere a-ti face, trebuie să tineti minte ca o garantie a securitatii nu exista decat în contextul utilizatorului standard. Odata ce ati acordat privilegii de administrator unui proces “all bets are off”.

Începutul paginiiÎnceputul paginii

Secure desktop și Application Information Service

Într-o sesiune avem 3 desktop-uri:

Winlogon (numit și Secure Desktop);

Screen-saver (care va fi folosit pentru afișarea screen-saver-ului);

Default (care este afișat după autentificarea și pornirea explorer-ului).

Secure desktop este folosit pentru diverse faze în care se află sistemul de operare. Cel mai frecvent apare după folosirea secvenței de securitate (CTRL+ALT+DEL) în momentul introducerii username-ului și a parolei. În Windows Vista, acest desktop este folosit și de UAC, prompt-ul generat fiind afișat pe Secure desktop. Astfel, este evitat un eventual vector de atac, pentru că Winlogon desktop nu primește informații decât de la servicii de sistem. Astfel, a fost introdus un nou serviciu, numit Application Information Service (AIS) care, atunci când o aplicație cere drepturi administrative, declanșează consent.exe pe Secure Desktop și după ce userul a aprobat aplicația, AIS pornește procesul cu privilegii de administrator.

User Account Control

User Account Control își dorește să forțeze dezvoltatorii de software să folosească privilegiile de administrator numai atunci când acestea sunt necesare și pe end-user să folosească utilizatorul standard. Așa cum a punctat foarte bine Mark Russinovich în prezentarea "Security Boundaries", UAC nu a fost conceput ca un element de securitate, ci mai degrabă, un element de funcționalitate, care să permită utilizatorului standard să beneficieze de drepturi de administrator atunci când are nevoie, în context, fără să trebuiască să se logheze ca administrator.

Voi oferi o carte despre Windows Vista aceluia care împărtășește cu mine cele mai interesante experiențe avute cu UAC. Cum? Ca deobicei va astept pe blog-ul meu de pe Itboard.


Începutul paginiiÎnceputul paginii