صفحه اول > مقالات

 

حمله به برنامه های وبی (5):

حمله به نشست[1]

 

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

 

 

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

 

·         افزایش افقی اختیارات

در این نوع حملات کاربر قادر است به گونه ای نشانه[2] نشست را مورد استفاده قرار دهد که اطلاعات و قابلیت های کاربر دیگری در دسترسش قرار گیرد. برای انجام این نوع حملات هکر باید در گروه کاربر قربانی عضو باشد. در صورت وقوع این نوع حملات اطلاعات افشا می شود، ولی ساختار دسترسی مبتنی بر نقش[3] در سیستم حفظ می شود.

 

·         افزایش عمودی اختیارات

هکر با استفاده از نشانه نشست به اطلاعات و مجوزهای کاربری با حقوق بالاتر دسترسی می یابد. قربانی در این نوع حملات حقوقی بالاتر از فرد حمله کننده دارد و بنابراین علاوه بر امکان دسترسی هکر به اطلاعات کاربر امکان تغییر آن ها و انجام اعمالی که مجوز مدیریتی لازم دارند نیز فراهم می آید.

در نتیجه این نوع حمله اطلاعات شخصی کاربران فاش شده، امکان دزدی خدمات، اطلاعات کارت های اعتباری، ارسال هرزنامه و رد سرویس[4] بوجود می آید.

 

 

حمله به مدیریت نشست فرایندی ۴ مرحله ای است:

 

·         یافتن حامل حالت[5]

در این مرحله باید محل ذخیره سازی نشانه ها شناسایی شود. برای این کار کوکی های Stateful، کوکی های نشست، پارامتر های URL  و فیلد های مخفی بررسی شوند.

 

·         رمزگشایی اطلاعات حالت

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

 

·         استفاده مجدد از اطلاعات حالت

بدون توجه به امکان رمزگشایی حامل حالت، باید اطلاعات حالت چند کاربر را گرفت. با جایگذاری نشانه های سایر کاربران می توان محدودیت هایی را که سیستم در برابر نشست های غیرمعتبر ایجاد می کند شناسایی نمود.

 

·         تغییر اطلاعات حالت

در صورتی که امکان رمزگشایی حامل باشد می توان با تغییر آن نشست کاربر دیگر را ربوده و یا استراق سمع نمود. با تغییر اطلاعات حالت می توان حقوق بیشتری به دست آورد.

 

نشانه

شرح

حمله خاص

مقدار افزایشی

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

متنوع

برچسب زمان یا تاریخ

این برچسب نوع خاصی از برچسب های با مقدار افزایشی است که بدون توجه به نوع کاربر و نشست همواره افزایشی است. در بیشتر موارد این برچسب شامل یک رشته طولانی عددی یا یک عدد ۱۰ رقمی است.

اعتباردهی مجدد به شناسه نشست و تغییر زمان انقضاء نشست.

مقدار ایستا

مقداری که بدون توجه به نشست، زمان و کاربر ثابت است. این نشانه می تواند شناسه یک زبان (به عنوان مثال ۱۲۵۶ برای عربی) و یا پرچمی خاص باشد که توسط برنامه استفاده شده است.

اعتبارسنجی ورودی

مقدار شبه تصادفی

در بیشتر موارد این مقدار نشانه نشست است.

ربودن نشست

اطلاعات profile

مقادیری که برنامه ها در رابطه با هویت کاربران خود درخواست می کنند، شامل نام، نام خانوادگی، آدرس
 
e-mail، آدرس پستی، شماره تلفن، سن، تاریخ تولد و ....

جعل هویت. دسترسی به اطلاعات فردی دیگر (افزایش افقی اختیارات)

آدرس IP  سرور

سرور آدرس IP خود را در کوکی قرار می دهد.

لو رفتن اطلاعات شبکه

آدرس IP  سرویس گیرنده

سرویس گیرنده آدرس IP  خود را در کوکی قرار می دهد.

ربودن نشست

اعداد دو بایتی

اعداد دو بایتی در کوکی ممکن است شماره یک پورت باشند. برای کشف این مسئله باید مقادیر را مورد ارزیابی قرار داد.

لو رفتن اطلاعات شبکه

 

 


 


[1]- Session

[2]- Token

[3]- Role-based

[4]- Denial of service

[5]- State