اطمینان از تنظیم httpcookie برای Session state (Scored)
Profile Applicability
• Level 2 – IIS 10
Description
یک session cookie، اطلاعات مربوط به session را با اطلاعات مربوط به client برای آن session مرتبط میکند که میتواند مدت زمان اتصال کاربر به یک سایت باشد. کوکی در یک هِدر HTTP به همراه همه درخواستهای بین مشتری و سرور منتقل میشود.
اطلاعات session همچنین میتوانند در URL ذخیره شوند.
با این حال، ذخیره اطلاعات session به این روش پیامدهای امنیتی دارد که میتواند مسیرهای حمله مانند session hi-jacking را باز کند. یک روش مؤثر که برای جلوگیری از حملات session hi-jacking استفاده میشود، مجبور کردن برنامههای وب برای استفاده از کوکیها برای ذخیره session token است. اینکار با تنظیم ویژگی cookieless مربوط به sessionState node به حالت UseCookies یا false انجام میشود که به نوبه خود دادههای وضعیت session را از URL دور نگه میدارد.
توصیه میشود که session state طوری پیکربندی شود که از UseCookies استفاده کند.
Rationale
کوکیهایی که به درستی پیکربندی شده اند، با جلوگیری از نیاز ASP.NET برای انتقال اطلاعات session به URL، میتوانند خطر حملاتی مانند session hi-jacking را به وسیله جلوگیری از ASP.NET برای منتقل کردن اطلاعات session به URL کاهش دهند؛ انتقال اطلاعات session در URL باعث میشود تا شناسه session در proxy log ها ظاهر شود و به وسیله client scripting از طریق document.location قابل دسترسی است.
Audit
فایل web.config مربوط به اپلیکیشن یا سایت مورد نظر را پیدا و باز کنید و تایید کنید تگ sessionState به use cookies تنظیم شده:
یا
برای تایید از طریق PowerShell دستور زیر را وارد کنید:
Remediation
با استفاده از IIS Manager GUI، با استفاده از دستورات AppCmd.exe در پنجره command-line، با edit کردن مستقیم فایلهای پیکربندی یا با نوشتن اسکریپتهای WMI میتوان sessionState را به Usecookies تنظیم کرد.
مستند امن سازی وب سرور IIS 10 – بخش نوزدهم
موارد زیر را برای تنظیم ویژگی cookieless مربوط بهnode sessionState به UseCookies در IIS Manager GUI انجام دهید:
1- رابط کاربری گرافیکی IIS Manager را باز کنید و به سرور، سایت یا برنامه مورد نظر خود بروید.
2- در Features View روی آیکون Session State دوبار کلیک کنید.
3- در بخش Cookie Settings از قسمت Mode، Use Cookies را انتخاب کنید.
4- در صفحه Actions روی Apply کلیک کنید.
دستورات استفاده از Appcmd.exe برای پیکربندی sessionState در سطح سرور شبیه زیر میباشد:
نکته:
وقتی از Appcmd.exe برای پیکربندی عنصر در سطح عمومی در IIS استفاده میشود، سوئیچ /commit: WEBROOT باید گنجانده شود تا تغییرات پیکربندی شده به جای فایل ApplicationHost.config در فایل Root، web.config ایجاد شود.
یا
دستور زیر را در PowerShell برای کانفیگ وارد کنید:
Default Value
به صورت پیشفرض IIS برای یک اپلیکیشن کد مدیریت شده session state data را در worker process جایی که اپلیکیشن برای مثال در آن اجرا می شود، نگه داری میکند.
منابع:
msdn.microsoft.com/en-us/library/h6bb9cz9%28VS.71%29.aspx
مطالب این بخش برگرفته از مستند امن سازی وب سرور IIS مربوط به وب سایت CIS می باشد.
مطالب این بخش توسط جناب آقای نوربخش تهیه شده است.