محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

Cookieless چیست؟ جلوگیری از Session Hijacking در ASP.NET

Cookieless چیست؟ چگونه از بروز حملات Session Hijacking در ASP.NET جلوگیری کنیم؟ اگر شما برنامه نویس وب باشید حتما با مفهوم Session و Cookie آشنایی دارید. یک مهاجم در صورتیکه شما در کدنویسی خودتان اشتباه کرده باشید ، می تواند اطلاعات Session شما را Exploit کند. در برنامه نویسی ASP.NET و بعضا در زبان های برنامه نویسی مختلف شما قابلیتی به نام Cookieless Authentication دارید که برای کاربر تعریف می کند که آیا در شرایط به وجود آمده باید از Cookie ها استفاده کند یا خیر ، اگر این قابلیت به درستی در موارد مورد نیاز پیکربندی نشود ممکن است باعث Hijack شدن Session ارتباطی و احراز هویتی کاربر و در نهایت افشا شدن رمز عبور و Token احراز هویتی کاربر شود.

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

در Cookieless authentication شما می توانید دو حالت تعریف کنید که یکی بصورت UseUri و یکی بصورت UseCookies استفاده می شود که از نامشان هم پیداست ، زمانیکه از UseUri استفاده می کنید در شرایط به وجود آمده کاربر سعی می کند که اطلاعات احراز هویتی خودش به همراه Token امنیتی را در قالب URL در درخواستی که توسط Browser ارسال می شود به سرور ارسال کند ، اگر از UseCookies استفاده کنید به جای اینکه درخواست مجددا به سرور از طریق Browser ارسال شود از طریق Cookie های موجود بر روی سیستم احراز هویت انجام می شود. به قطعه کد زیر دقت کنید :

<configuration>
<system.Web>
<authentication mode="Forms">
<forms cookieless="UseUri"> 

به قطع کد بالا دقت کنید ، زمانیکه توسط کد بالا Authentication Token یا توکن احراز هویت در آدرس URL به جای استفاده از Cookie ها به سمت سرور ارسال می شود ، یک مهاجم می تواند با استفاده از یک ابزار مانیتورینگ یا شنود شبکه این Session ارتباطی را شنود و آن را Hijack کرده و خودش را به جای کاربر اصلی جا بزند. اما این فقط مشکل اصلی نیست ، بعد از اینکه فرآیند Session Hijacking انجام شد تازه مشکلات بعدی بعد از احراز هویت و استفاده از کاربر اصلی صورت می گیرد.

برای مثال توجه کنید که سرویس ها و فروشگاه های آنلاینی که ویترینی برای فروش دارند به کاربران اجازه می دهند بدون اینکه نیاز به Login به وب سایت داشته باشند صفحات فروشگاه را مرور کنند و هیچ ID یا Password ای نیز برای اینکار درخواست نمی کنند. اما زمانیکه کاربران می خواهند سفارش خودشان را ثبت کنند بایستی ابتدا به سیستم Login کنند و احراز هویت شوند تا بتوانند سفارش ها را ثبت کنند. بعد از اینکه کاربر به وب سایت مورد نظر Login کردن می تواند سفارش های خودش را ببیند و آدرس خودش را به همراه اطلاعات کارت اعتباری وارد کند و خرید را انجام دهد.

خوب حالا همینجا صبر کنید ، اگر هکر قبل از اینکه کاربر در وب سایت مورد نظر Login کردن باشد بتواند Session آن را Hijack کند اطلاعات چندانی به دست نیاورده است اما اگر بعد از انجام شدن فرآیند احراز هویت Session را هکر Hijack کند تمامی اطلاعات مربوط به کاربر در اختیار هکر خواهد بود. در چنین مواردی است که استفاده کردن از کوکی ها توصیه می شود در مثال بالا UseUri باعث می شود که برای احراز هویت از Cookie ها استفاده نشود و هر بار اطلاعات احراز هویتی به سمت سرور ارسال شود ، حالا به قطعه کد زیر توجه کنید :

<configuration>
<system.Web>
<authentication mode="Forms">
<forms cookieless="UseCookies">

همانطور که در قطعه کد بالا مشاهده می کنید به جای استفاده از UseUri ازUseCookies استفاده شده است به معنی اینکه برای مراحل بعدی احراز هویت نیازی نیست هر بار یک Session به سمت سرور ایجاد شود و کاربر می تواند از Cookie هایی که بر روی سیستم خودش ذخیره شده اند برای احراز هویت استفاده کند که درجه امنیت را به طبع بالا می برد و احتمال Session Hijacking را به شدت کاهش می دهد. در واقع ما با استفاده از قطعه کد بالا کاربر را ملزم به استفاده از Cookie کرده ایم و در اصطلاح فنی تر Cookieless Authentication را غیرفعال یا Disable کرده ایم. از این به بعد برای احراز هویت کاربر از Authentication Token هایی که در Cookie ها ذخیره شده اند برای احراز هویت استفاده می کند. توسینسو باشید


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات