اطمینان از تنظیم global .NET trust level (Scored)
Profile Applicability
• Level 1 – IIS 10
Description
این فقط مربوط به .Net 2.0 است. نسخههای آینده، پشتیبانی از این ویژگی را متوقف کردهاند. سطح اطمینان یک اپلیکیشن، permission هایی که توسط پالیسی code access security (CAS) مربوط به ASP.NET مفروض است را تعیین میکند.
CAS 2 دسته trust را تعریف میکند: trust کامل و trust جزئی. برنامهای که دارای مجوزهای full trust است ممکن است به کلیه منابع موجود در سرور دسترسی داشته باشد و کارهای خاصی را انجام دهد، در حالی که برنامههایی که با partial trust اجرا میشوند دارای سطح مجوزها و دسترسیهای مختلف به منابع هستند.
مقادیر ممکن برای ویژگی سطح TrustSection به صورت زیر هستند:
• Full: مجوزهای نامحدود را مشخص کرده و مجوزهای برنامه ASP.NET را برای دسترسی به تمامی منابعی که تحت تأثیر امنیت سیستم عامل باشد ، اعطا میکند. تمامی عملیاتهای privilege را پشتیبانی میکند.
• High: سطح بالایی از امنیت دسترسی به کد (CAS) را مشخص میکند که برنامه را از انجام موارد زیر محدود می کند:
فراخوانی کد مدیریت نشده
فراخوانی serviced component
نوشتن در event log
دسترسی به Microsoft Windows Message Queuing queues
دسترسی به دیتا سورسهای ODBC ، OLD DB یا Oracle
• Medium: سطح متوسط امنیت دسترسی به کد (CAS) را مشخص میکند، به این معنی که علاوه بر محدودیتهای High، برنامه ASP.NET نمیتواند هیچ یک از موارد زیر را انجام دهد:
دسترسی به فایلهای خارج دایرکتوری اپلیکیشن
دسترسی به registry
• Low: سطح پایین امنیت دسترسی به کد (CAS) را مشخص میکند، به این معنی که علاوه بر محدودیتهای Medium، از اجرای هر یک از اقدامات زیر جلوگیری میشود:
نوشتن در فایل سیستم
فراخوانی System.Security.CodeAccessPermission.Assert method برای expand کردن
Permission دادن به resource ها
• Minimal: حداقل امنیت دسترسی به کد را مشخص میکند، به این معنی که برنامه فقط اجازه اجرا (execute) را دارد.
توصیه میشود سطح Global مربوط به .NET Trust روی سطح medium یا پایینتر تنظیم شود.
Rationale
CAS مجوزهای اعطا شده به برنامه را روی سرور تعیین میکند. تنظیم حداقل سطح trust که با اپلیکیشنها سازگار باشد آسیب احتمالی و پنهانی که یک اپلیکیشن میتواند درست کند را محدود میکند.
Audit
برای تایید global .Net Trust Level با استفاده از IIS Manager:
1- IIS Manager را باز کنید و به سطح پیکربندی شده بروید، در این مثال سرور
2- در Features View روی .NET Trust Level دوبار کلیک کنید.
3- در صفحه .NET Trust Level چک کنید در بخش Tust Level مورد Medium (web_mediumtrust.config) انتخاب شده باشد.
یا
برای تایید از طریق PowerShell دستور زیر را وارد کنید:
Remediation
Trust Level با استفاده از UI، اجرا کردن دستورات AppCmd.exe، با edit کردن مستقیم فایل های پیکربندی یا با نوشتن اسکریپتهای WMI تنظیم میشود. برای تنظیم .NET Trust Level به medium سطح سرور از دستور طریق appcmd.exe از دستور زیر استفاده نمایید:
وقتی از Appcmd.exe برای پیکربندی این عنصر در سطح Global در IIS استفاده میشود، سوئیچ /commit: WEBROOT باید گنجانده شود تا تغییرات پیکربندی شده به جای فایل ApplicationHost.config در فایل Root، web.config ایجاد شود.
یا
دستور زیر را در PowerShell برای پیکربندی وارد کنید:
Default Value
به صورت پیشفرض وب اپلیکیشنهای ASP.NET تحت تنظیمات full trust اجرا میشوند.
منابع:
technet.microsoft.com/en-us/library/cc772237(WS.10).aspx
msdn.microsoft.com/en-us/library/ms691448%28VS.90%29.aspx
Professional IIS 7 by Ken Schaefer, Jeff Cochran, Scott Forsyth, Rob Baugh,
Mike Everest, Dennis Glendenning
support.microsoft.com/kb/2698981
مطالب این بخش توسط جناب آقای نوربخش تهیه شده است.