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

UAC چیست؟ معرفی User Account Control ویندوز و تنظیماتش

UAC ویندوز چیست و چگونه پیکربندی می شود؟ یکی از ابزار های امنیتی که شرکت مایکروسافت برای ویندوز خود پس از ویستا ایجاد کرد UAC یا User Account Control بود خیلی از شرکت های نرم افزاری میگویند قبل از نصب نرم افزار UAC را به پایین ترین سطح خود ببرند یا UAC ویندوز را غیر فعال کنند ، که باید بگوییم یکی از جالب ترین کارهایی که مایکروسافت برای ویندوز انجام داده است همین UAC است که امنیت کاربران استفاده کننده از ویندوز را تا حد قابل توجهی بهبود می بخشد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

به صورت Default تنظیمات UAC برای یوزر های عادی قابل تنظیم نیست و فقط مدیران ویندوز این قابلیت را دارنند که متناسب با سیاست سازمانشان UAC را تنظیم کنند، به گفته مایکروسافت در زمانی که کاربران در حال استفاده از ویندوز هستند دلیلی وجود ندارد تا با سطح دسترسی ادمین کارها صورت پذیرد این یعنی تمام یوزر ها حتی Administrator و تمام یوزر هایی که در گروه administrators قرار دارند موقع کار کردن با ویندوز در پایین ترین سطح دسترسی هستند و زمانی که قرار است یک عملیات مهم مثل باز کردن Device Manager یا Group Policy و حتی باز کردن تنظیمات UAC اتفاق بیوفتد.

آنگاه سطح دسترسی به اندازه موقعیت یوزر لاگین کرده بالا میرود تا یوزر مورد نظر وارد آن تنظیمات مدیریتی شود به هر حال اینکه چه اتفاقی بیوفتد کاملاً بستگی به تنظیمات UAC و تنظیمات گروپ پالیسی مخصوص uac می باشد ، اما اگر یوزر لاگین کرده بخواهد وارد تنظیمات مخصوص ادمین ها شود مانند تغییر تنظیمات کارت شبکه و یا باز کردن رجیستری و یا ... چه اتفاقی می افتد؟ اگر با یوزر ادمین در ویندوز باشیم چطور ؟ من با یک یوزری که عضو گروه Administrators هست لاگین کرده ام میخواهم وارد تنظیمات Registry شوم به تصاویر زیر دقت کنید:

وب سایت توسینسو

با اینکه یوزر سیستم ادمین هست ولی تنظیمات رجیستری باز نمیشود و صفحه تاریک یا dim شده بو پیغامی برای ما ایجاد میشود که میتوانیم با زدن گزینه YES رجیستری را باز کنیم تصویر زیر نمایانگر پیغام مربوطه است:

تنظیمات UAC

همانگونه که در تصویر بالا میبینید صفحه Background تیره میشود و سیستم از ما میخواهد حتماً اول تکلیف این پنجره مشخص کنید و تا جواب این پیام را ندید نمیتوانید کار دیگری را انجام دهید که به این نوع برخورد Secure desktop میگویند البته اینکه ابتدا باید ما تکلیف این پیام رو مشخص کنیم سپس ادامه کار رو انجام بدیم هم بستگی به تنظیماتی دارد که در گروپ پالیسی انجام میدهیم ، پس Secure شدن desctop نیز میتواند تغییر کند ، اما اگر یوزری که لاگین کرده Limite باشد دیگر پیغام Yes Or No نمی آید و از ما میخواد پسورد یوزر ادمین یا یوزر مدیر رو وارد کنیم که به این محیط prompting for credential نیز میگویند ، مانند تصویر زیر:

همه چیز در مورد UAC

البته باز هم لازم است تاکید کنم اینکه چه پیام هایی یا چه خطاهایی یا چه نوع برخوردی با کاربران انجام شود تماماً بستگی به تنظیمات UAC در ویندوز و گروپ پالیسی دارد که در ادامه ماجرا میخواهم این موضوع را روشن کنم. تا اینجا فهمیدیم که زمانی که یک عملیات

و یا ورود به محیط های مهم مدیرتی بخواهد اتفاق بیوفتد نیاز به سطح دسترسی بالاتری هست پس با یک پیغام ما را از این اتفاق آگاه میکند ، به عبارتی دیگر UAC دروازه‌ ای هست جهت ورود به سطح دسترسی بالاتر ، زمان خدا بیامرز XP برای اینکه برای هر کار مهم مدیریتی نخواهیم log off کنیم و سپس با یوزر administrator وارد سیستم شویم .

راحت ترین کار ممکنه را انجام میدادیم یعنی وارد شدن همیشگی با یوزر administrator و این یعنی خطر چون زمان XP سیستم UAC وجود نداشت که بخواهد سطح یوزر را در کف قرار دهد ، در ان زمان با بالاترین سطح وارد میشد و در همان سطح باقی میماند و این کار از نظر امنیتی خطر ساز است چون تمامی کارها و هر برنامه ای که کاربر اجرا می کند در بالاترین سطح دسترسی دارد.

یکی از خطر ها Malware ها هستند ، (Malware یعنی ویروس ها ، تروجان ها ، کرم ها ، بد افزار ها) زمانی که سطح یوزری که با آن وارد ویندوز شدید پایین باشد ویروس ها و بد افزار ها نمیتوانند کاری از پیش ببرند چون یوزری که لاگین کرده سطح دسترسی محدودی دارد پس امنیت برقرار میشود ، هدف از وجود UAC هم همین است که تمام کاربران حتی مدیران به صورت پیشفرض دسترسی کمی دارند و اگر نیاز شد دسترسی بالا برای آنان صادر میشود در ادامه به مفهوم های زیر توجه کنید تا بتوانیم در ادامه UAC را بیشتر مورد تحقیق قرار دهیم.

غیر فعال کردن UAC توسط دستورات Command Prompt

جهت غیر فعال کردن UAC :

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

جهت فعال کردن UAC :

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 1 /f

و البته پس از Enable و یا Disable کردن UAC نیاز به ریست سیستم داریم.

محل قرار گیری UAC در ویندوز

اگر میخواهید بدانید UAC در کدام محل قرار گرفته به آدرس زیر بروید تا این ابزار را مستقیماً RUN کنید.

C:\Windows\system32\UserAccountControlSettings.exe

آشنایی با مفاهیم UAC

  • Privilege elevation : زمانی اتفاق می افتد که کاربر مورد نظر نیاز به سطح دسترسی بالاتری داشته باشد، Elevator یعنی بالابر یا آسانسور پس میتوان گفت UAC به یوزر هایی که به نوعی ادمین هستند اجازه دسترسی در بالاترین سطح را میدهد ولی با این شرط که کاربر و همچنین عملیاتی که یوزر میخواهد انجام دهد مشخص است.
  • Admin Approval mode: این مفهوم یعنی Mode تایید کاربر مدیر یعنی admin و زمانی می آید که نیاز به تایید یوزر و پسورد admin است ، زمانی که پنجره yes or no می آید که به آن prompting for consent نیز می گویند و یا اگر نیاز به تایید یوزر و پسورد ادمین دارد به آن محیط prompting for credential می‌گویند و credential یعنی گواهی نامه که این گواهی از یک یوزر معتبر ارسال میشود یا یوزر administrator و یا یوزر هایی که در گروه administratos عضو هستند.
تنظیمات uac و آشنایی با آن

Secure Desktop: همانگونه که در بالا گفته شد بد افزار ها نیاز به سطح دسترسی بالاتر دارند تا بتوانند خرابکاری خود را کامل انجام دهند و Secure Desktop ما را مطمئن میکند که ویروس ها کاری جدی نمیتوانند از پیش ببرند ، تصاویر بالا نشان میدهد زمانی که Secure Desktop فعال میشود صفحه دسکتاپ دیگر در دسترس کاربر نیست تا زمانی که شما تکلیف پیام صادر شده سیستم را بدهید

ضمناً این را بدانید زمانی که Secure Desktop اتفاق می افتد علاوه بر تاریک یا dim شدن صفحه دسکتاپ تمامی فعالیت ها Puse میشود و این یعنی نگه داشتن تمام عملیات از جمله پخش ویدئو که آن ویدئو متوقف می‌شود ، اگر شما به این پیام پاسخ ندهید سیستم به صورت اتوماتیک پس از 150 ثانیه بعد درخواست کاربر جهت بالابردن سطح دسترسی را رد می کند و سیستم به حالت اولیه خود باز می‌گردد. در ادامه به بررسی تنظیمات UAC و همچنین UAC در Group Policy خواهیم پرداخت

در بخش قبلی مفصل در مورد UAC توضیح دادیم در این بخش میخواهم تنظیمات پیشرفته UAC را در 4 سطح دسترسی Default و همچنین Group Policy و رجیستری توضیح دهم پس با ما در itpro بمانید.

تنظیمات UAC در ویندوز

اما برای تنظیمات اولیه UAC شما باید به control panel بروید سپس Security and Maintenance را باز کنید و مطابق تصویر زیر گزینه change user account control setting را بزنید و یا در ویندوز 8 میتوانید مطابق تصویر زیر جستجو را در setting انجام دهید.

user account control چیست؟
تنظیمات امنیتی در ویندوز به نام uac

پس از اینکه uac را باز کردید ا تصویر زیر مواجه می شوید

تنظیمات UAC در ویندوز جهت امنیت بالاتر

همانطور که مشاهده میکنید این تنظیمات با یک Slider در خدمت شماست جهت تنظیمات مورد نظر من این تصویر را با چهار عدد نشانه گزاری کردم شماره 1 بالا ترین و شماره 4 پایین ترین لول امنیتی را برای شما دارد ، در ادامه این مراحل را به ترتیب توضیح خواهم داد :

  • حالت 1 Always Notify : سخت گیرانه ترین حالت امنیت در این گزینه ایت در این مرحله تمامی تغییرات سیستمی و عوض کردن تنظیمات سیستمی و حتی نصب انواع نرم افزار ها با UAC prompt روبرو خواهید شد ، در این لحظه Secure Desctop نیز برای این موارد فعال شده و Always Notify یعنی همیشه در همه حال از ما تایید میخواهد .
  • حالت 2 Notify me only when program try to make changes to my computer: همانگونه که میبینید شماره 2 کمی پر رنگ تر از حالت های دیگر است و این نشان دهنده این است که شماره دو به صورت By Default تنظیم شده است ، انتخاب شماره 2 بیانگر این است که نصب هر برنامه ای که باعث شود تنظیمات اصلی ویندوز تغییر کند با secure Desktop مواجه شوید و البته تغییر در Setting Windows فقط در مرحله یک پیش می آید.
  • حالت 3 (notify me only when program try to make change s to my computer(Do Not Dim Desktop: یادتان هست گفتیم موقع secure Desktop تصویر Background تاریک یا dim می شود ؟ شماره 3 این امکان را برا ما دارد که صفحه دسکتاپ dim نشود و ما بتوانیم با ویندوز کار کنیم و جواب پیام uac را ندهیم ، البته یک لول پایین تر از مرحله دو است و فقط dim نشدن برای مرحله سه تغییر میکند.
  • حالت 4 Never Notify: این سطح دسترسی برای یوزر های عادی میگوید هر تغییراتی که نیاز به افزایش سطح دسترسی داشته باشد آن در خواست رد می شود و برای مدیران اصلاً با UAC prompt مواجه نمی‌شوید. حالت Recommended در لول های 1 و 2 است ومراحل دیگر اصلاً پیشنهاد نمیشود.

تنظیمات UAC در Group Policy

تنظیمات UAC در همینجا ختم نمیشوند و تنظیمات پیشرفته تر در جایی به نام Group policy است برای این منظور در Run دستور gpedit.msc را وارد کنید تا به کنسول مدیریتی گروپ پالیسی وارد شوید سپس مطابق تصویر به آدرس Computer Configuration , Security Setting , Local policy , Security Options بروید ، در این پنجره 10 مورد آخر مربوط به تنظیمات پیشرفته UAC هست که مهمترین آنها را توضیح خواهم داد.

تنظیمات پیشرفته تر برای UAC
تنظیمات پیشرفته UAC در Group policy

ضمناً دیدن این تنظیمات علاوه بر Gpo یا Group policy در محیط دیگه ای هم قابل باز شدن هست و اونم توسط دستور secpol.msc که این دستور دقیقاً مشابه GPO رو باز میکنه با این تفاوت که فقط تنظیمات security Setting قابل نمایش هست و بسیاری از تنظیمات مهم امنیتی رو میتونید در این کنسول ببینید البته این کنسول فقط قسمتی از Group policy هست .

تنظیمات usc در GPO

البته بد نیست در اینجا نکته رو خدمت دوستان اضافه کنم اگر یادتون باشه قبلاً گفتیم که رجیستری قبل ویندوز هست و همه نوع عملیاتی رو میتونیم اونجا انجام بدیم ولی به علت سختی کار چیزی به نام Group Policy ایجاد شد که با ساختار منظمش به ما کمک میکنه برای تنظیمات دلخواهمون و در این قسمت میخوام بگم چطور تنظیمات UAC که در GPO هست رو در رجیستری تغییر بدیم ، برای این منظور ابتدا به RUN رفته و دستور regedit رو وارد کنید سپس به آدرس زیر در رجیستری برید:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies

در زیر منوی Policies قسمتی وجود دارد به نام system که اگر نبود میتوانید روی Policies راست کلیک کرده و New و Key را زده و یک پوشه به نام system ایجاد کنید ، البته معمولاً System وجود دارد ، پس از کلیک روی قسمت System به و سمت راست صفحه مطابق تصویر زیر راست کلیک کرده و New را بزنید و سپس نسبت به نوع 32 بیتی یا 64 بیتی بودن سیستم یک DWORD بسازید.

وب سایت توسینسو

و اگر میخواهید تنظیمات Admin Approval Mode for the Built-in Administrator account را انجام دهید میتوانید نام این DWORD را FilterAdministratorToken قرار دهید و برای Enable کردن این خصوصیت مقدارش را 1 و برای Disable کردن مقدار Value را 0 قرار دهید البته این در شرایطی است که در System این مقادیر وجود نداشته باشد البته همانند نام فایل ها در یک مسیر دو فایل نمیتواند هم نام قرار گیرد

اگر دقت کنید در تصویر زیر میبینید تمام تنظیمات UAC در این قسمت وجود دارد و نیازی به ساختن آنها نیست و فقط با 0 و 1 کردن مقادیر آنها میتماند اقدام به Disable و Enable کردن آن کنید تمام این تنظیمات مقدار 0 و 1 میپذیرند به جز Behavior of the elevation prompt for administrators in Admin Approval Mode که دارای سه مقدار هست که به ترتیب به این صورت عمل میکنه

Elevate without prompting - 0
Prompt for credentials - 1
Prompt for consent - 2
تنظیمات uac در رجیستری

در ادامه مهمترین تنظیمات UAC در گروپ پالیسی را با هم مرور میکنیم:

Run all administrators in Admin Approval Mode : تمام وضعیت UAC برای کامپیوتر را کنترل می کند و اگر تنظیمات آنرا تغییر دهیم سیستم باید یکبار Restart شود.

  • Enabled: این پالیسی باید فعال باشد و تنظیمات پالیسی مرتبط به UAC نیز باید مناسب تنظیم شود تا به کاربر built-in Administrator و کاربرانی که عضو گروه ادمین هستند اجازه دهد در حالت Admin Approval اجرا شوند.
  • Disabled: حالت Admin Approval و هر پالیسی مرتبط به UAC نیز غیر فعال می شوند.

Behavior of the elevation prompt for standard users : اگر خاطرتان باشد زمانی که یک یوزر limite که تنظیمات UAC آن بر روی Level دوم قرار گرقته و تنظیمات دیفالت روی حالتی است که اگر یوزر Limite بخواهد وارد جایی شود که نیاز به ادمین دارد ، در این صورت صفحه دسکتاپ dim میشه (Secure Desktop) و Admin Approval Mode ظاهر میشه که از شما میخواد پسورد یک یوزر ادمین رو وارد کنید

و شما میخوایید Admin Approval Mode برای کاربر نیاد و کلاً Error بده به کاربر ، برای غیر فعال کردن این مورد باید Behavior of the elevation prompt for standard users را که به سه حالت تغییر میکند را به صورت Automatically deny elevation requests تغییر دهیم تا کاربر موقع نیاز به دسترسی بالاتر با ارور مواجه شود حالت های این گزینه به صورت زیر است:

  • Automatically deny elevation requests : هنگامی که نیاز به سطح دسترسی بالاتری دارید با Error متوقف میشوید و پیغام عدم دسترسی نمایش داده می شود.
  • Prompt for credentials on the secure desktop : هنگامی که نیاز به سطح دسترسی بالاتری دارید ، صفحه secure Desktop یا (DIM) میشود و تا زمانی که تکلیف این پنجره مشخص نشود سیستم به کاری دیگر مشغول نمیشود البته در این مقاله قبلاً توضیحات این موارد را مفصلاً بررسی کردیم .
  • Prompt for credentials: زمانی که Admin Approval Mode اجرا می شود و از شما user و پسورد ادمین را میخواهد دیگر صفحه secure desktop نمیشود و شما میتوانید از سیستم استفاده کنید

Switch to the secure desktop when prompting for elevation : البته اجرا شدن مورد آخر تنظیمات قبلی یعنی Prompt for credentials مستلزم تغییر در Switch to the secure desktop when prompting for elevation است که باید بر روی Disable تنظیم شود این تنظیم فقط مختص این است که صفحه secure Desctop شود یا خیر که با enable و disable تکلیفش مشخص میشود.

Behavior of the elevation prompt for administrators in Admin Approval Mode : این گزینه که پشفرض آن روی Prompt for consent on the secure desktop قرار دارد مختص administrator است که 6 حالت را در خود می پذیرد

  • Elevate without prompting برای ادمین ها elevate : کن بدون اینکه پیغامی صادر شود
  • Prompt for credentials on the secure desktop : با اینکه یوزر ادمین هست این گزینه باعث میشود تا secure desktop ایجاد شود و مجدداً پسورد ادمین را میخواهد.
  • Prompt for consent on the secure desktop : صفحه secure desktop می آید و از شما میخواهد با yes و no تکلیف پنجره و دسترسی بالا تر را روشن کنید.
  • Prompt for credentials : از ادمین پسورد میخواهد ولی صفحه secure desktop نمیشود
  • Prompt for consent : از ادمین تاییده میخواهد و این yes و no در صفحه secure desktop نمی باشند.
  • Prompt for consent for non-Windows binaries : برای محصولاتی که windows ای نیستند هشدار صادر شود و با yes و no از شما سوال میپرسد.

Admin Approval Mode for the built-in Administrator account : این تنظیم فقط و فقط برای یوزر administrator هست و نه یوزر هایی که عضو گروه administrators هستند و وضعیت حالت تایید کاربران Administrator را برای کاربران Built - in Administrator کنترل می کند، که دو حالت بیشتر ندارد

  • Enabled: کاربران built-in Administrator از حالت تاییدیه مدیران استفاده می کنند یعنی یوزر administrator نیز باید از uac استفاده کند .
  • Disabled: کاربر built-in Administrator تمامی App ها را با دسترسی بالا اجرا می کند و تنظیمات uac روی این یوزر عملیاتی نمیشوند.

Detect application installations and prompt for elevation : زمانی که نرم افزاری میخواهد نصب شود elevation اجرا شود

  • Enabled: هنگامی که میخواهید نرم افزاری را نصب کنید در این حالت اگر نیاز به دسترسی بالا بود از شما یوزر و پسورد ادمین را میخواهد
  • Disabled: هنگامی که میخواهید نرم افزاری را نصب کنید در این حالت اگر نیاز به دسترسی بالا بود از شما یوزر و پسورد ادمین را نمیخواهد و از این حالت زمانی استفاده میشود که نصب و راه اندازی نرم افزار ها به Group Policy Software Installation و یا Systems Management Server واگذار شده باشد.

Only elevate executables that are signed and validated : زمانی elevation رخ میدهد که نرم افزار ها signe شده باشند یعنی مورد تایید مایکروسافت شده باشند و گواهینامه در Trusted Publishers certificate داشته باشند این تنظیم بر روی دو حالت Enable و Disable است که در صورتی elevation رخ میدهد که Enable ّاشد

  • نکته: دقت کنید پس از هر تغییر در تنظیمات گروپ پالیسی اگر میخواهید آن تنظیمات سریعاً اعمال شوند یا سیستم را ریست کنید و یا در CMD دستور gpupdate /foce حتماً اجرا شود

فرهاد خانلری
فرهاد خانلری

کارشناس ارشد شبکه مایکروسافت

فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...

نظرات