اطمینان از تنظیم application pool identity برای تمامی application pool ها (Scored)
Profile Applicability
• Level 1- IIS 10
Description
Application Pool Identity ها Users/authorities واقعی هستند که worker process های w3wp.exe را اجرا میکنند.
اختصاص صحیح User Authority به اطمینان از عملکرد صحیح برنامهها کمک میکند، در عین حال دسترسیهای بیش از حد مجاز را به سیستم اختصاص نمیدهد. این Identity ها بیشتر میتواند در ACL ها برای محافظت از محتوای سیستم قرار بگیرد. توصیه میشود هر Application Pool تحت یک Identity منحصر به فرد اجرا شود.
IIS دارای Identityهای از پیش تعیین شده (Built-in) با حداقل سطح دسترسی برای استفاده توسط Application Pool ها میباشد.
توصیه میشود که Application Pool Identity پیش فرض به حداقل سطح دسترسی نسبت به سایر سرویسهای شبکه تغییر یابد. علاوه بر این، توصیه میشود تمامی application pool identity ها به یک حداقل سطح دسترسی اصلی assign شوند.
برای ایزوله کردن IIS، application pool ها میتوانند به صورت identity های مجزا اجرا شوند. IIS میتواند به گونهای تنظیم شود که به صورت خودکار از application pool identity استفاده کند در صورتی که هیچ anonymous user account ای برای یک وب سایت تعریف نشده باشد. این میتواند به طور چشم گیری تعداد اکانتهای مورد نیاز برای وب سایتها را کاهش دهد و مدیریت اکانتها را ساده تر نماید.
توصیه میشود که application pool identity بر اساس anonymous user identity تنظیم گردد.
کتابچه کامل راهنمای امن سازی وب سرور IIS 10
نام اکانت application pool با نام application pool مطابقت دارد. Application pool identity ها در ویندوز سرور 2008 سرویس پک 2 معرفی شدند. توصیه میشود که application pool ها به گونهای تنظیم شوند که به صورت ApplicationPoolIdentity اجرا شوند مگر اینکه یک دلیل اساسی وجود داشته باشد که application pool نیاز داشته باشد که به عنوان یک end user مشخص اجرا شود. یک مثال در این مورد برای web farm هایی است که از متد احراز هویت Kerberos استفاده میکنند.
Rationale
تنظیم application pool ها برای استفاده منحصر به فرد با حداقل دسترسی identity ها مانند ApplicationPoolIdentity میتواند باعث کاهش ضرر احتمالی identity در صورت به خطر افتادن application شود.
علاوه بر این باعث سادهتر شدن تنطیم application pool ها و مدیریت اکانت میشود.
Audit
برای اینکه application pool ها به گونهای تنظیم شوند تا تحت ApplicationPoolIdentity اجرا شوند از طریق IIS Manager مراحل زیر را انجام دهید:
- IIS Manager را باز کنید.
- application pools را که در زیر گزینه Machine قرار دارد را باز کنید؛ application pool را انتخاب کنید.
- روی application pool راست کلیک کنید و سپس Advanced Settings را انتخاب کنید.
- زیر بخش Process Model، Option با نام Identity را انتخاب کنید و اطمینان حاصل کنید که ApplicationPoolIdentity تنظیم شده باشد.
این تنظیمات در همان فایل applicationHost.config ای ذخیره میشود که برای وبسایتها و application/virtual دایرکتوری میباشد، که در پایین فایل با تگهای احاطه شده است.
برای اینکه تعیین کنید application pool های جدید از ApplicationPoolIdentity استفاده نمایند، دستور زیر را اجرا کنید تا مشخص کنید application pool پیش فرض به ApplicationPoolIdentity تغییر پیدا کرده است:
از طریق AppCmd.exe دستور زیر را اجرا کنید:
%systemroot%\system32\inetsrv\appcmd list config /section:applicationPools
یا
از طریق PowerShell دستور زیر را اجرا کنید:
Remediation
پیش فرض application pool identity میتواند برای یک اپلیکیشن از طریق IIS Manager GUI، با استفاده از دستورات AppCmd.exe در یک پنجره command-line، با ویرایش مستقیم فایلهای Config یا از طریق نوشتن اسکریپت ها WMI تنظیم شود.
امن سازی وب سرور IIS 10 – بخش سوم
از طریق مراحل گفته شده در محیط گرافیکی IIS Manager، default identity را به ApplicationPoolIdentit، built-in تغییر دهید:
- IIS منیجر GUI را باز کنید
- در صفحه conections گزینه ی Server را باز کنید و روی Application Pool کلیک کنید.
- در صفحه Application Pool، DefaultAppPool را انتخاب و سپس در صفحه Actions روی Advanced Settings کلیک کنید.
- برای ویژگی Identity روی دکمه ‘…’ کلیک کنید تا پنجره Application Pool Identity باز شود.
- گزینه Built-in account را انتخاب نموده و ApplicationPoolIdentity را از لیست انتخاب یا یک کاربر منحصر به فرد را در اینجا وارد کنید که برای این هدف ایجاد شده است.
- IIS را مجدداً راه اندازی کنید.
برای تغییر Application Pool Identity به ApplicationPoolIdentity، built-in از AppCmd.exe دستور زیر را از یک command prompt اجرا کنید:
دستور زیر را در AppCmd.exe برای انجام تنظیمات وارد نمایید:
یا
برای تغییر Application Pool Identity به ApplicationPoolIdentity، built-in از طریق PowerShell از دستور زیر استفاده نمایید:
در نمونه کد بالا فقط DefaultAppPool را تنظیم خواهد شد. این دستور را برای هر Application Pool تنظیم شده، اجرا کنید. بعلاوه، ApplicactionPoolIdentity را میتوان به وسیله تنظیم نمودن Application Pool default actions در قسمت application pools به عنوان پیش فرض تمامی Application pool ها قرار داد.
اگر میخواهید یک کاربر ویندوز به عنوان یک کاربر با دسترسی بالا برای اکانت سرویسهای اختصاصی تعریف نمایید، این کاربر نیاز به این خواهد داشت که عضو گروه IIS-IUSRS باشد. گروه IIS-IUSRS به تمامی فایلهای مهم و حیاتی و منابع سیستم دسترسی دارد پس زمانی که یک اکانت در این گروه add شود میتواند به صورت یکپارچه به عنوان یک Application pool identity رفتار کند.
Default Value
به صورت پیش فرض DefaultAppPool در IIS برای استفاده از اکانت ApplicationPoolIdentity تنظیم شده است.
منابع:
http://technet.microsoft.com/en-us/library/cc771170%28WS.10%29.aspx
http://learn.iis.net/page.aspx/140/understanding-built-in-user-and-group-accounts-in-iis-7/
http://learn.iis.net/page.aspx/624/application-pool-identities/
http://blogs.iis.net/tomwoolums/archive/2008/12/17/iis-7-0-application-pools.aspx
مطالب این بخش برگرفته از مستند امن سازی وب سرور IIS مربوط به وب سایت CIS می باشد.
مطالب این بخش توسط جناب آقای نوربخش تهیه شده است.