Understanding and Configuring User Account Control in Windows Vista (PART1)
 
Why UAC?

در WINDOWS XP بصورت پیش فرض هر User که ساخته می شود عضو گروه  Local Administrator  می باشد .

این User قدرت نصب برنامه ها و اجرای کلیه برنامه ها و نیز Update کردن سیستم را دارد .

زمانی که یک Admin Account ایجاد می کنید کلیه Privilege های موجود بر روی سیستم به آن داده می شود .

Privilege در واقع دادن اختیارات مختلف به یک فرد می باشد برای مثال اگر فردی اختیار گرفتن Backup از سیستم را داشته باشد به وی

SeBackupPrivilege  داده شده . Privilege را نباید با Permission اشتباه کرد .اگرچه Permission زمانی داده می شود که آن فرد Privilege به آن Object

را داشته باشد .Privilege جمع آوری و نگهداری می شود در Users Access Token .در Access Token برای هر User مشخص شده که اختیار دسترسی

به کدام اطلاعات با Resource ها را دارد .بر روی Resource های سیستم در Windows شما Access Control List ACL دارید که دارای یکسری Record

می باشد که مشخص می کند که کدام User ها و یا Service ها اجازه دسترسی به Resource ها را دارند و نوع دسترسی را نیز مشخص می کند .

در WINDOWS سیستم از Access Token استفاده می کند که تصمیم بگیرد آیا  User اجازه کار با آن اطلاعات را دارد سپس به ACL نگاه می کند  .

 
  1. Administrative users automatically have:
    • Read/Write/Execute permissions to all resources
    • All Windows privileges
Windows Resource Protection (WRP)

در Windows Vista شما می توانید به Systemroot دسترسی داشته باشید و اطلاعات را Read کنید اما امکان Write ندارید این امکان را فقط

SYSTEM Service دارد درواقع Administrator Account توانایی Write بر روی File /Folder های موجود در این آدرس را ندارند بلکه این دسترسی Full

را فقط System Service دارد .در اینجا روش کار در Vista با Windows XP  ,2003  ,2000 متفاوت می باشد.و امنیت بسیار بهتر شده .

بدلیل اینکه در حالت پیشفرض سیستم Administrator را دارای Standard Access Token قرار می دهد تا زمانی نیاز به Full Access داشته باشد

می تون این مورد را چک کرد که در VISTA براحتی نمی توان بر روی آدرسهای WINDOWS و Program Files حتی توسط Administrator User نیز

اطلاعاتی را Write کرد . برای نمونه به Example 1 نگاه کنید .

  

    Example 1: WRP in VISTA

برای مثال مشاهده می کنید که در این دو آدرس نمیتوان به راحتی اطلاعات Write کرد.

 
The following are some reasons why enterprises run as administrator today:
Application installation (members of the Users group cannot install or uninstall applications): Many enterprises have no centralized method for deploying applications to their users, such as Microsoft Systems Management Server® (SMS), Group Policy software installation (GPSI), or another similar application deployment technology. Enterprises that do utilize software deployment technologies allow users to run as administrator because of ad hoc application installations for specialized applications for specific departments (a custom spreadsheet application for the Marketing department, for instance).
Custom Web applications (ActiveX controls): With the growth of the independent software vendor (ISV) community, many companies are opting to have custom applications designed for their specific business requirements. Many of these custom applications include a Web browser front-end, which requires an ActiveX control to be installed. Because ActiveX controls are executable files and can contain malware, Windows prevents members of the Users group from installing them.
Perceived lower TCO (reduced help desk calls versus reduced attack surface): Many enterprises believe that allowing users to install their own applications will help limit the number and cost of Help Desk calls. Unfortunately, running your enterprise workstations as administrator also makes your network vulnerable to “malware”—the overarching term for all malicious software, including viruses, Trojan horses, spyware, and some adware. Malware can exploit a local administrator account’s system-level access to damage files, change system configurations, and even transmit confidential data outside of the network.

Ensuring that all users run as standard users is the primary way to help mitigate the impact of malware. A standard user account is a user account that has the least amount of user rights and privileges required to perform basic desktop tasks. However, while a standard user account does exist by default in Windows XP, many routine tasks, including changing the Windows time zone and installing a printer, require that a user have administrative privileges. Many applications also require users to be administrators by default, as they check group administrator group membership before running. No user security model existed for Windows 95 and Windows 98. As a result, application developers designed their applications assuming that they would be installed and run as an administrator. A user security model was created for Windows NT, but all users were created as administrators by default. In addition, a standard user on a Windows XP computer must use Run as or log on with an administrator account in order to install applications and perform other administrative tasks.

Until the development of Windows Vista, there was no built-in method within the Windows operating system for a user to “elevate” in flow from a standard user account to an administrator account without logging off, switching users, or using Run as. As a result, most people continue to browse the Web and read e-mail as an administrator.

Reducing the Total Cost of Ownership "TCO"

Because UAC enables users to easily run as standard users, IT departments can have more confidence in the integrity of their environments, including system files, audit logs, and system-wide settings. In addition, administrators no longer need to devote large blocks of time to authorizing tasks on individual computers. This saves the IT staff time that can be redirected to overall system maintenance, reducing an organization’s TCO for its enterprise software platform. Furthermore, IT administrators gain better control over software licensing because they can ensure that only authorized applications are installed. As a result, they will no longer have to worry about unlicensed or malicious software endangering their network, causing system downtime and data loss, or creating licensing liabilities.

How UAC Works

Microsoft برای استفاده صحیح از Run as برای Application آن را Standard کرد و دو روش قرار داده برای استفاده

از آن اول اینکه خود برنامه ای که استفاده می شود

نیازی به استفاده از Administrator Level برای کار خود نداشته باشد .در واقع برنامه ها جوری نوشته شود

که به دسترسی Admin level به Resource  ها نداشته باشد .

دوم استفاده از Policy بنام User Control که جدید می باشد و بر روی Windows VISTA , Longhorn Server وجود دارد .

Refining User Modes

بر روی VISTA ما دو نوع یا Type برای User Account ها داریم  یا Standard Accounts و یا Administrator Accounts.

Standard Accounts در حکم همان User معمولی که در Windows های قبلی داشتیم می باشد اجازه Install , Uninstall را ندارند و

ویا Change Setting و همچنین توانیایی های انجام  Administrative task را نیز ندارند .ولی یا استفاده از Policy  UAC می توانند با وارد کردن

PWD مربوط به ADMIN Account ها این توانایی هارا داشته باشند .

Administrator Local نیز همانند Standard Account دارای همان Access token می باشند وقتی این گروه موافقت کند

با حالت Full Access Token می توانند از حالت Access Token که توانایی Full دارد استفاده کنند .این قانون اصلی در حالت Admin Approval Mode

می باشد .

The following table details some of the tasks a standard user can perform and what tasks require elevation to an administrator account.
Standard Users Administrators

Establish a Local Area Network connection

Install and uninstall applications

Establish and configure a wireless connection

Install a driver for a device (E.G. a digital camera driver)

Modify Display Settings

Install Windows updates

Users cannot defragment the hard drive, but a service does this on their behalf

Configure Parental Controls

Play CD/DVD media (configurable with Group Policy)

Install an ActiveX control

Burn CD/DVD media (configurable with Group Policy)

Open the Windows Firewall Control Panel

Change the desktop background for the current user

Change a user's account type

Open the Date and Time Control Panel and change the time zone

Modify UAC settings in the Security Policy Editor snap-in (secpol.msc)

Use Remote Desktop to connect to another computer

Configure Remote Desktop access

Change user's own account password

Add or remove a user account

Configure battery power options

Copy or move files into the Program Files or Windows directory

Configure Accessibility options

Schedule Automated Tasks

Restore user's backed-up files

Restore system backed-up files

Set-up computer synchronization with a mobile device (smart phone, laptop, or PDA)

Configure Automatic Updates

Connect and configure a Bluetooth device

Browse to another user's directory

 
Migrating from the Power Users Group

در WINDOWS XP این نوع گروه استفاده می شد برای استفاده نا این نوع User ها بتوانند System Tasks مانند Installation App و را انجام دهند

بدون آن که Full Administration Permission را دارا باشند در Windows VISTA این نوع گروه دیگر وجود ندارد برای UAC فقط همان دو نوع Type User

که در بالا شرح داده شد وجود دارد .

برای استفاده از Power Users  بر روی VISTA باید یک Security Template را بر روی VISTA نصب کنید .

Admin Approval Mode

Enabling Admin Approval Mode for an administrator account makes it safer for a user to perform administrative tasks by making a distinction between a standard user task and an administrative task. For example, modifying the system registry should always be an administrative task browsing the Internet should always be a standard user task. The UAC access token model makes this distinction even clearer. An administrator account in Admin Approval Mode is prompted for consent by the application or component that is requesting permission to use the user’s full administrative access token.

در شکل زیر می توانید تمامی UAC Policy های موجود بر روی Vista را مشاهده کنید .

 

    Figure 1: UAC Policy (GPEDIT.MSC)

UAC Architecture

در شکل زیر می توانید مشاهده کنید که بر روی Windows Vista روش کار برای Logon شدن در حالتهای متفاوت UAC چگونه می باشد .

    Figure 2: Windows Vista Logon Process

در Windows Vista سیستم بدین صورت عمل می کند که برای دسترسی به منابع سیستم و ابزار ها سیستم هم Administrator Account ها و

هم Standard User های را دارای Standard Access Token می کند و در زمانی که شما با برنامه ای که نیاز به Full Administrative Access Token

دارد سیستم بصورت خود کار هم از Standard Users و هم Administrator Account سوال میکند نیاز به دسترسی از این نوع می باشد و باید PWD

مریوط به Admin Account سیستم را وارد کند تا اجازه کار داده شود این نوع حالت همان Admin Approval Mode Logon می باشد .

در شکل 1 می توانید دو Policy زیر را مشاهده کنید که اگر در حالت Prompt for Credential باشند در زمان نیاز به دسترسی Full Admin Access Token

باشد از فرد  Admin Password سوال می شود .

  • UAC: Behavior of the elevation prompt for administrator in admin Approval Mode

  • UAC: Behavior of the elevation prompt for Standard Users

اگر سیستم از آنها سوال نکند برای وارد کردن PWD یکی از این دو Policy در حالت بالا مانند شکل 1 نمی باشد .

امنیت برای سیستم سما بسیار بالا رفته حتی Administrator Account نیز بصورت Standard User Access Token فعالیت می کنند و این

موجب می شود که سیستم به راحتی اجازه کار با دسترسی Full Access Token نداشته باشد و این حود موجب کاهش Attack به سیستم شما

از طریق Virus , Trojan و Hacker ها می شود .حتی اگر شما با Admin Logon کنید به سیستم و کسی بخواهد بر روی Desktop شما مشکلی

برای سیستم ایجاد کند و یا برنامه ای را Install کند و یا پاک کند نیاز دارد که Password وارد کند .چون برای این کار ها نیاز به Full Access Token دارد.

هر برنامه ای که بر روی سیستم شما می خواهد نصب شود و یا اجرا شود اگر نیاز به Full Access Token داشته باشد سیستم از هر دو نوع User

سوال می کند و Password را در خواست می کند Password مربوط به Admin سیستم را .

زمانی که یک Standard User می خواهد یک Application که نیاز به Administrator Access Token دارد را اجرا کند  UAC  از وی توسط یک Prompt

سوال می کند و Password یک Admin User را از وی درخواست می کند مراحل کار را می توانید در شکل زیر مشاهده کنید .

 

    Figure 3: UAC architecture and Process flow

Application Information Service

این سرویس IAS وظیفه اش دادن Privilege های مورد نیاز برای یک Application می باشد همانند شکل 3 مشاهده می کنید که در مرحله

دوم این سرویس سروع به کار می کند زمانی که جواب Prompt را دادید برای شما یک Process جدید از آن Application ایجاد می کند با دسترسی

مد نظر که همان Administrator Privilege می باشد که دارای Full Administrative Access Token می باشد .

این سرویس IAS سرویس جدیدی می باشد که در Windows Vista اضافه شده و در سیستم های قبلی وجود نداشته .

درشکل زیر می توانید Prompt که این سرویس ایجاد می کند برای گرفتن Password را مشاهده کنید .

  

    Figure 4: IAS Initiates the Elevation Prompt (Step2)

در Windows VISTA کلیه ICON هایی که دارای یک نشان مانند شکل 4 باشند برای نصب و یا اجرا Prompt شکل 4 را بعد از اجرا نمایش می دهند

و نمایان کنند این می باشد که نیاز به Full Access Token می باشند برای انجام کار خود همانند شکل 5 می توانید مشاهده کنید که فایل های

اجرایی مانند EXE و Setup این Icon را داردند . الیته فایلهای MSI نیز این Prompt را خواهند داشت معمولا.  به Icon های شکل 5 دقت کنید .

  

    Figure 5: Windows VISTA (New Icons)

Virtualization

بسیاری از برنامه هایی که برای Windows 2000 ,XP , 2003 نوشته شده اند بر روی Windows Vista نمی توانند و یا نباید و یا نیاز به این نمی باشد

که دارای Full Access Token باشند .برای مثال Games و برنامه هایی مانند آن زمان نصب و یا بعد از نصب می خواهند

که بر روی Program Files  اطلاعاتی را ذخیره کنند و

ما می دانیم در Vista از Program Files و Windows Directory محافظت می شود و Standard User و حتی Administrator توانایی Change کردن

اطلاعات را ندارند در این حالت Windows VISTA برای جلوگیری کردن از ایجاد مشکل از Virtualization استفاده می کند یعنی اینکه برای هر USER

یک  Profile ایجاد می کند در پارتیشنی که Windows نصب شده بنام یک Directory بنام Users و درآن برای هر User یک Profile ایجاد می کند از برنامه

که آن فرد نصب کرده برای مثال زمانی که شما یک Game نصب می کنید اطلاعاتی که Game می  خواهد بر روی Program files سیستم ذخیره

کند بر روی Profile آن User ذخیره می شود در آدرسی همانند C:\Users\%USERNAME%\Appdata\local\VirtualStore\Program Files

در این آدرس سیستم برای مثال اطلاعاتی که Game هر چند وقت یکبار تغییر می دهد را در آن ذخیره می کند .

برای برنامه هایی که دارای Manifest با کد requested execution level   باشند عملیات Virtualization اجرانمی شود برای اطلاعات بیشتر به شکل 7

مراجعه کنید .شما می توانید در Example 2 آدرس بالا را مشاهده کنید که اطلاعات مربوط به User در آن قرار دارد.

  

   Example 2: (C:\Users\%USERNAME%\Appdata\local\VirtualStore\Program Files)

Compatibility Tab

همانند شکل مشاهده می کنید که در Property هر فایل MSI, EXE می توانید مشخص کنید که اگر برنامه به درستی در VISTA کار نمی کند

سیستم با چه نوع Mode باید سازگاری داشته باشد تا برنامه بدرستی کار کند در زمان نصب یا اجرا .

 

  

    Figure 6: Windows VISTA - FileProperties (Compatibility Tab)

Requested Execution Levels

برای  برنامه های جدید مانند برنامه هایی که توسط VS نوشته می شوند شما به راحتی برای اینکه به UAC معرفی کنید که این برنامه

در VISTA می خواهد دارای چه جور Privilege باشد برای هر  Application خود با فرمت XML یک کد در Manifest آن برنامه اضافه کنید

همانند کدی که در شکل 7 انتخاب شده اگر این کد مانند شکل 7 باشد Icon فایل Exe شما دارای Icon مانند شکل 5 می باشد .

وجود این Icon یعنی اینکه Application شما نیاز دارد دارای Full Access Token مانند Administrator باشد .

در اینجا Level مساوی با ADMIN می باشد اگر AsInvoker استفاده شود یعنی اینکه دسترسی در حالت  Standard User باشد .

برای دیدن حالتهای متفاوت Request Privileges Level به PART2 این صفحه مراجعه کنید در

بخش Application Compatibility Database Marking and Application Launch Behavior می توانید ریز موارد را مشاهده کنید .

  

    Figure 7: VS.NET - Manifest File - RequestExecutionLevel

برای اطلاعات بیشتر در مورد این کد می توانید به MSDN Site مراجعه کنید .

Installer Detection Technology

Installation programs are applications designed to deploy software, and most write to system directories and registry keys. These protected system locations are typically writeable only by an administrator user, which means that standard users do not have sufficient access to install programs. Windows Vista heuristically detects installation programs and requests administrator credentials or approval from the administrator user in order to run with access privileges. Windows Vista also heuristically detects updater and uninstallation programs. Note that a design goal of UAC is to prevent installations from being executed without the user's knowledge and consent since they write to protected areas of the file system and registry.

Installer Detection only applies to:

1. 32 bit executables

2. Applications without a requestedExecutionLevel

3. Interactive processes running as a Standard User with LUA enabled

Before a 32 bit process is created, the following attributes are checked to determine whether it is an installer:

 
  • Filename includes keywords like "install," "setup," "update," etc.
  • Keywords in the following Versioning Resource fields: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name, and Export Name.
  • Keywords in the side-by-side manifest embedded in the executable.
  • Keywords in specific StringTable entries linked in the executable.
  • Key attributes in the RC data linked in the executable.
  • Targeted sequences of bytes within the executable.
 
  Note

The keywords and sequences of bytes were derived from common characteristics observed from various installer technologies.

Ensure that you thoroughly review the entirety of this document, including the "Step Five: Create and Embed an Application Manifest with Your Application" section.

  Note

The User Account Control: Detect application installations and prompt for elevation setting must be enabled for installer detection to detect installation programs. This setting is enabled by default and can be configured with the Security Policy Manager snap-in (secpol.msc) or with Group Policy (gpedit.msc).

General information and an overview of the Microsoft Windows Installer can be found at MSDN (http://go.microsoft.com/fwlink/?LinkId=30197).

 

بر روی Windows VISTA مواردی اضافه شده که در زیر مشاهده می کنید :

UAC is Enabled by Default

As a result, you might encounter some compatibility problems with different applications that have not yet been updated for the Windows Vista UAC component. If an application requires an administrator access token (this is indicative from an "access denied" error being returned when you attempt to run the application), you can run the program as an administrator by using the Run as administrator option on the context menu (right-click). How to do this is documented later in this document in the "Running Programs as an Administrator" section.

All Subsequent User Accounts are Created as Standard Users

Both standard user accounts and administrator user accounts can take advantage of the UAC enhanced security. On new installations, by default, the first user account created is a local administrator account in Admin Approval Mode (UAC enabled). All subsequent accounts are then created as standard users.

Built-in Administrator Account is Disabled by Default on New Installations

The built-in Administrator account is disabled by default in Windows Vista. If Windows Vista determines during an upgrade from Windows XP that the built-in Administrator is the only active local administrator account, Windows Vista leaves the account enabled and places the account in Admin Approval Mode. The built-in Administrator account, by default, cannot log on to the computer in safe mode. Please see the following sections for more information.

Non-Domain Joined

When there is at least one enabled local administrator account, safe mode will not allow logon with the disabled built-in Administrator account. Instead, any local administrator account can be used to logon. If the last local administrator account is inadvertently demoted, disabled or deleted, safe mode will allow the disabled built-in Administrator account to logon for disaster recovery.

Domain Joined

The disabled built-in Administrator account in all cases cannot logon in safe mode. A user account that is a member of the Domain Admins group can log on to the computer to create a local administrator if none exists.

  Important

If the domain administrative account had never logged on before, then you must start the computer in Safe Mode with Networking since the credentials will not have been cached.

  Note

Once the machine is disjoined, it will revert back to the non-domain joined behavior depicted previously

Elevation Prompts are Displayed on the Secure Desktop by Default

The consent and credential prompts are displayed on the secure desktop by default in Windows Vista.

New UAC Security Settings and Security Setting Name Changes

The "Configuring UAC Settings" section of this document details the UAC security policies.

Standard User Analyzer

از این ابزار Developer ها و IT Administrator ها می توانند استفاده کنند برای چک کردن برنامه ها که آیا بر روی VISTA آن برنامه با Standard User

می توانند بخوبی کارکنند و مشکلی دارند یا خیر . Microsoft این برنامه را برای این کار آماده کرد و بصورت Free قرار داده با نام SUAnalyzer.x86.msi

برای Download.

برای استفاده از این برنامه نیاز می باشد که برنامه ApplicationVerifier.x86.msi را قبل از استفاده SUA از Microsoft بگیرید آن نیز Free می باشد.

  

    Figure 8: Standard User Analyzer

در Windows VISTA از Audit Process Traking نیز می توانید استفاده کنید برای مشخص شدن Process هایی که دچار مشکل شده اند .

 

ادامه این صفحه در Part2 قراردارد برای مطالعه بر روی لینک آن در زیر کلیلک کنید

Last Updated: November 9, 2006

Winteacher.com
Expert Zone > Understanding and Configuring User Account Control in Windows Vista (PART1)

 © 2003-2006 Winteacher.com . All rights reserved