صفحه اصلی مقالات

حملات علیه نشست

10369 بازدید 25 فروردين 1399 12:29:00
مکانیزم مدیریت نشست یکی از اجزای پایه ای در ایجاد امنیت در برنامه های تحت وب است. در واقع از طریق مدیریت نشست این امکان برای برنامه تحت وب به وجود می‎آید که کاربر مورد نظر را در حین ارسال درخواستهای مختلف به برنامه شناسایی کند. در صورتی که نفوذگری بتواند در مکانیزم مدیریت نشست در یک برنامه تحت وب اختلال ایجاد کند، می تواند مکانیزم کنترل احراز هویت کاربر را از کار انداخته و خود را به جای یک کاربر احراز هویت شده جا بزند.

مدیریت نشست[1]

مکانیزم مدیریت نشست یکی از اجزای پایه ای در ایجاد امنیت در برنامه های تحت وب است. در واقع از طریق مدیریت نشست این امکان برای برنامه تحت وب به وجود می‎آید که کاربر مورد نظر را در حین ارسال درخواستهای مختلف به برنامه شناسایی کند. به این ترتیب برنامه می تواند وضعیت مربوط به آن کاربر را در هر مرحله از برنامه در اختیار داشته باشد و بر اساس وضعیت جاری به کاربر پاسخ دهد بدون اینکه لازم باشد در هر صفحه اعتبارنامه کاربر مجدداً درخواست شود. به طور مثال زمانی که کاربر از یک وب سایت خرید اینترنتی بازدید می کند، در هر صفحه میتواند کالایی را به لیست سبد خرید خود اضافه کند که این لیست، تا زمانی که نشست کاربر منقضی شود، در تمام صفحات برای آن کاربر مشخص حفظ خواهد شد.

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

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

حملات علیه مکانیزم مدیریت نشست

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

·        ربودن نشست

·        تثبیت نشست

ربودن نشست

ربودن نشست پروس های است که در آن یک کاربر بداندیش، یک شناسه نشست معتبر را شناسایی کرده و از آن برای جا زدن خود در نقش کاربر معتبر آن نشست استفاده می کند. معمولاً ربودن نشست می تواند به سه روش مختلف صورت گیرد:

·        پیش بینی شناسه نشست[2]

·        جستجوی کامل در تمام دامنه[3]

·        ره گیری نشست[4]

پیش بینی شناسه نشست

پیش بینی شناسه نشست به این ترتیب صورت می گیرد که نفوذگر بتواند یک الگو برای نحوه ساخت شناسه نشست به دست آورد. به طور مثال برخی از برنام ههای تحت وب آخرین شناسه نشست تولید شده را افزایش می دهند تا شناسه نشست جدیدی ایجاد کنند. برخی از شناس هها نیز قابل پی شبینی هستند مثلاً ممکن است فرم درهم[5] یک عبارت باشند و یا دارای اطلاعاتی نظیر آدرس IP و یا برچسب زمانی[6] باشند. اگرچه پیش بینی شناسه نشست کار چندان ساده ای نیست اما غیرممکن نیز نیست.

جستجوی کامل در تمام دامنه

این روش یکی از رو شهای همچنان مؤثر در تعیین یک شناسه نشست معتبر است. این حمله زمانی اتفاق می افتد که نفوذگر به طور مکرر سعی در امتحان تمام شناسه های نشست ممکن کند تا زمانی که یک شناسه نشست معتبر را بیابد.

البته این روش در صورتی مؤثر است که سیستم های مبتنی بر وب طوری طراحی نشده باشند که در برابر این نوع حمله مقاومت کنند.

تشخیص حملات جستجوی شناسه نشست از طریق brute force

وقتی یک حمله کننده تلاش می کند تا شناسه نشست را از طریق جستجوی تمام شناسه های نشست ممکن ( روش Brute force) و یا حدس آن بدست آورد، نیاز دارد تا از سیستم خود یا مجموعه سیستم های خود (یعنی یک آدرس خاص و یا مجموعه ای از آدرس ها) چندین درخواست متوالی با شناسه های نشست متفاوت را به برنامه وب ارسال نماید. برنامه وب باید قادر باشد تا این حمله را بر اساس تعداد تلاش های حمله کننده برای جمع آوری شناسه های نشست مختلف تشخیص داده و آدرس های مربوطه را بلاک کند.

 

رهگیری نشست

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

تثبیت نشست

نوع دیگری از حملات علیه نشست کاربر، حمله تثبیت نشست است. این حمله زمانی اتفاق می افتد که یک نفوذگر بتواند شناسه نشست را برای یک کاربر معتبر تعیین کند. برنامه های تحت وب آسانگیر[7] ، در صورتی که کلاینت یک شناسه نشست تعیین شده داشته باشد، شناسه جدیدی را به آن اختصاص نم یدهند بلکه از همان شناسه موجود برای کاربر استفاده می کنند بالعکس برنامه های تحت وب سخت گیر[8] ، اغلب حتی در صورت وجود شناسه نشست پیشنهادی، شناسه جدیدی برای کاربر تعریف می کنند. برنامه هایی که با شناسه تعیین شده توسط کاربر خود را تطبیق می دهند، معمولاً آسیب پذیر هستند زیرا نمی توانند مطمئن باشند که هیچ کس به جز کاربر مورد نظر از شناسه تخصیص داده شده باخبر نیست و در واقع در برابر حمله تثبیت نشست آسیب پذیرند.

در این حمله نفوذگر یک شناسه را از قبل تعیین کرده و از طریق پست الکترونیکی و یا روش دیگر به همراه لینک وب سایت مورد نظر برای قربانی ارسال می کند. سپس قربانی پس از کلیک بر روی لینک اقدام به ورود به برنامه می کند و برنامه تحت وب همان شناسه تعیین شده در URL توسط نفوذگر را از کاربر پذیرفته و کاربر را احراز هویت می کند. به این ترتیب نفوذگر شناسه نشست کاربر قربانی را در اختیار خواهد داشت.

این حمله شامل مراحل زیر است:

1-     نفوذگر لینکی به وب سایت WebApp. net را همراه با شناسه کاربری دلخواه برای قربانی ارسال می کند.

2-     کاربر بر روی این لینک کلیک می کند و سپس در داخل برنامه login می کند.

3-     پس از یک احراز هویت موفق، سرور شناسه نشستی را برابر با مقدار تعیین شده توسط نفوذگر، به کاربر اختصاص میدهد.

4-     نفوذگر نیز با استفاده از شناسه نشست مورد نظر خود به سرور متصل شده و سرور به نفوذگر نیز دسترسی داده شده به قربانی را خواهد داد.

 

[1] Session Management

[2] Prediction

[3] Brute force

[4] Interception

[5] Hash

[6] Time stamp

[7] Permissive web applications

نظرات کاربران

Parameter:160!model&342 -LayoutId:342 LayoutNameالگوی متنی نمایش مطالب