wait لطفا صبر کنید
صفحه اصلی  » مقالات
1393/11/13
7364
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

تماس با ما

ایمـیل : I N F O @ D E P N A . C O M
 دفتر تهران : خیابان کارگر شمالی - بعد از مسجد النبی - خیابان ابراهیمی (17) - پلاک 140
تلفن:88019001-021
 دفتر قم : خیابان 45 متری صدوقی - 20 متری فجر - خیابان دانش - کوی 14 - پلاک 10
تلفن:32906868-025