ایمن سازی برنامه ها با استفاده از ماژول .Net Trust Level در IIS 7.5
سطح اعتماد (.Net Trust Level) در برنامه هایی که تحت زبان ASP.NET نوشته می شوند با استفاده از فایل های policy اعمال می گردد.این اعتماد سازی مشخص می کند که برنامه های تحت ASP. Net تا چه میزان می توانند از منابع سرور استفاده نمایند. برنامه ها بطور کلی در دو سطح کامل (full) و جزئی (Partial) می توانند از منابع سرور بهره مند شوند. این اجازه دسترسی ها توسط برنامه نویس و با هماهنگی مدیریت IIS به برنامه ها داده می شود. استفاده بیش از حد از منابع سرور باعث پایین آمدن سرعت و از کار افتادن آن می شود.
تنظیمات .Net Trust Level در داخل فایل های Policy ثبت می گردند . این تنظیمات باید طوری تعریف شوند که هم در سطح زبان ماشین و هم در سطح برنامه و فایل web.config شناخته شده باشند. با افزودن نام سطح اعتماد و فایل Policy ، می توانید سطوح اعتماد سفارشی را در قسمت Configuration ایجاد و یا حذف نمایید.
فایلهای .Net Trust Level پیشفرض در دایرکتوری پیکره بندی ، داخل پوشه ای که شامل فایل Aspnet_isapi.dll است قرار می گیرد.این مسیر برای فایل پیکره بندی Machine.config و فایل های run-time نیز استفاده می گردد. در صفحه Feature ماژول .NET Trust Levels ، با تغییر مقادیر .Net Trust Level سطح دسترسی کد برنامه (CAS) به منابع سرور را می توانید تنظیم نمایید. این تنظیمات مستقیما در فایل web.config ذخیره می شوند.
برنامه های ASP.NET که از ورژن ۱.۱و۲.۰و۱ .NET Framework استفاده می نمایند ، همیشه در سطح اعتماد کامل (Full Trust ) اجرا میشوند ، با اینحال شما می توانید این تنظیمات را بر حسب نیاز تغییر دهید.
سطح اعتماد جزئی (Partial Trust) نیز به سطحی اطلاق می گردد که پایین تر از سطح اعتماد کلی باشد. برنامه هایی که در این سطح هستند دارای دسترسی های متفاوتی می باشند . بعنوان مثال برنامه ایی که تحت شبکه اجرا میشود دسترسی پایین تری نسبت به برنامه ای که مستقیما داخل سرور اجرا میشود، به منابع سرور دارد.
برای تنظیم .Net Trust Level از سه روش می توان اقدام نمود :
۱- استفاده از رابط کاربری (UI) : در صفحه قسمت Feature view برروی گزینه .Net Trust Level کلیک نمایید. در این صفحه از لیست کشویی Trust Level یکی را انتخاب کنید و برروی گزینه Apply از قاب Action کلیک نمایید.
۲- نوشتن دستور در قسمت Command Line :
appcmd set config /commit:WEBROOT /section:trust /level: Full | High | Medium | Low | Minimal
۳- نوشتن اسکریپت در قسمت در (.WMI (Windows Management Instrumentation {ابزاری در IIS می باشد که اجازه مدیریت شبکه را از طریق خط فرمان[command line] و کد نویسی به مدیران شبکه میدهد} : با استفاده از متد ها و تنظیمات کلاس TrustSection.Level می توانید Trust Level را تغییر دهید.
در صفحه Feature گزینهTrust Level نشان دهنده نام سطح اعتماد است ، این قسمت شامل سطوح زیر است :
Full (internal) : مشخص کننده مجوز کامل است . مجوزهای برنامه ASP.NET برای دسترسی به هر منبعی که مربوط به سیستم عامل میشود را اعطا می کند. با استفاده از این مجوز تمام عملیات های ممتاز (privileged) پشتیبانی می شوند.
High (web_hightrust.config) : هنگامیکه برنامه ها در این سطح از امنیت کار می کنند ، بطور پیشفرض دسترسی کد آنها ، از یکی از موارد زیر گرفته می شود :
– Call unmanaged code :فراخوانی کد مدیریت نشده.
– Call serviced components :فراخوانی اجزاء سرویس دهنده.
– Write to the event log :نوشتن در گزارش وقایع.
– Access Message Queuing service queues :دسترسی به پیام صف بندی خدمات.
– دسترسی به دیتابیس های اوراکل ، OleDb و ODBC
Medium(web_mediumtrust.config) : امنیت دسترسی به کد در برنامه های ASP.Net در سطح متوسط ، توانایی انجام موارد زیر را بطور پیشفرض ندارند :
– دسترسی به فایل هایی که خارج از دایرکتوری برنامه هستند.
– دسترسی به Registry
– ساختن فراخوانی شبکه و یا خدمات وب.
Low ( web_lowtrust.config) : مانند موارد بالا ، در این سطح امنیت نیز برنامه ها دارای محدودیت های زیر می باشند :
– توانایی نوشتن بر روی فایل های سیستم.
– فراخوانی Assert Method
Minimal (web_minimaltrust.config) : کمترین سطح دسترسی در این بخش به برنامه ها داده می شود ، به این ترتیب که فقط اجازه اجرا به آنها داده میشود.