در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

روش های جلوگیری از Session Hijacking قسمت 10 : بخش 2

سلام به دوستان عزیز ITPro ای و علاقه‌مندان به مباحث امنیت شبکه. در قسمت پیش راه های پیشگیری از session hijacking در سطح Network بیان شد و در این بخش به عنوان ادامه ماجرا، موضوع را در سطح Application پیگیری میکنیم. پس بی مقدمه اضافه، با ادامه مطلب همراه باشید:


همانطور که در بخش پیش دیدید، پیشگیری از session hijacking در سطح Network عمدتا منحصر به امن کردن پکت ها بود، بهمین ترتیب در سطح Application پیشگیری از این حمله شامل محافظت و مراقبت از session id در برابر سرقت و یا حدس زدن میباشد. همانطور که قبلا هم گفتیم، در بحث http session ها، session id یعنی کلید دستیابی به session ای خاص.

Session ID قدرتمند

نکته کلیدی در محافظت از وب اپلیکیشن در برابر تهدید ربایندگان session، پیاده سازی یک ساختار و الگوریتم قدرتمند در ایجاد session id است. مدیریت session چه بصورت client side باشد و چه بصورت server side، این موضوع هیچ فرقی نمیکند و در هر دو حالت صادق است. در ادامه تکنیک هایی بیان خواهد شد که به هر چه قوی تر شدن session Id در وب اپلیکیشن ها کمک شایانی خواهند کرد:


1. افزایش طول کوکی یا session id

طول session id باید به اندازه‌ای باشد که آن را در برابر حملات brute-force که صرفا به منظور حدس زدن و بدست آوردن session id معتبر است، محافظت کند. این افزایش طول باید طوری باشد که مهاجم تا زمانی که session منقضی (expire) نشده، نتواند حتی رنج و محدوده ای که session id ها بر اساس آن تولید میشوند را حدس بزند. بر اساس نوع پردازنده و میزان پهنای باندی که وجود دارد طول session id تعیین میشود. اما توصیه شده است که طول آن کمتر از 50 کاراکتر نباشد.


2. تخصیص Session ID ها را رندوم‌تر کنید

ممکن است که ایجاد session id ها بصورت ترتیبی باشد و یا آن که عدد شاخصی (index) برای یک یوزر به عنوان session id در نظر گرفته شود که با تغییر کاربر، آن نیز تغییر کند. در این صورت براحتی میتوان session id های معتبر را حدس زد. بنابراین توصیه میشود که ایجاد و تخصیص session id معتبر کاملا بصورت تصادفی و رندوم باشد. در این صورت مقدار بعدی session id را که توسط الگوریتم رندوم تولید میشود را بسختی میتوان حدس زد.


3. از یکپارچگی Session ID محافظت کنید

به انتهای session id یک کد اصالت (هویتی) اضافه کنید تا بوسیله آن مطمئن شوید که session id دستکاری نشده است. در این روش درستی کد هویتی در هر درخواستی که سمت سرور میرود، چک خواهد شد. با انجام این کار دستکاری در کوکی ها و session id توسط مهاجم سخت تر خواهد شد. برای نمونه، این کدهای هویتی که میتواند مورد استفاده قرار گیرد شامل مقدار هش شده ی جمع مقادیر session token های معتبر ( که توسط سرور ارسال میشوند)، آدرس IP کلاینت و یک برچسب زمانی کد شده از زمان استارت شدن session، هستند.


4. استفاده از Session ID هایی که توسط سرور تامین می‌شوند

بجای آنکه وب اپلیکیشن را مجبور به ایجاد session id های مخصوص به خودش کنید، میتوانید برای این کار از application server ای استفاده کنید که کارش بطور خاص تولید session id است. نمونه های چنین session id هایی، ASPSESSIONID و JSESSIONID هستند. این session id ها عموما session id هایی هستند که نحوه تولیدشان طوری است که کمترین آسیب پذیری را در برابر session hijacking دارند.


5. از Session ID ها رمز شده استفاده کنید

با رمز کردن session id ها میتوان امنیت بیشتری را در قبال آن ها فراهم کرد. شما میتوانید کدی را بنویسید که هر session token ای را رمز کند و یا آن که کل session را با استفاده از ssl رمزنگاری کنید.

امنیت وب اپلیکیشن

خوب در بالا روش هایی را که منجر به تولید session id قدرتمند میشدند را بیان کردم. حال میخواهیم از جنبه دیگر قضیه کنع بروز session hijacking شویم. در زیر به روش هایی اشاره شده است که بوسیله آن ها مهاجم را هر چه بیشتر برای اجرای حمله تحت فشار قرار میدهیم. روش های زیر برای تامین بیشتر امنیت وب اپلیکیشن در برابر هایجکرها بیان میشوند:


1. اعتبارسنجی پارامترهای ورودی

سرور باید اعتبارسنجی نسبتا دقیقی را از تمام پارامترهای ورودی اش که از طرف کلاینت‌ها میایند، انجام دهد.تمام دیتای موجود در درخواست های GET و POST، باید بطور دقیق مانیتور شوند تا به این وسیله شانس های موفق حملات HTML Injection و XSS کاهش یابد.


2. بازه زمانی منقضی شدن Session

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


3. تولید مجدد توکن

راه دیگری که برای محدود کردن بازه زمانی که مهاجم حمله brute force را قبل از منقضی شدن session انجام میدهد، وجود دارد، تولید مجدد session token در بازه های کوتاهی از زمان است. HTTP Server میتواند بطور یکپارچه، توکن ها را منقضی و مجددا تولید کند تا بدین وسیله مهاجم بازه زمانی بسیار کمی را برای اکسپلویت (سوء استفاده) کردن هر توکن معتبر داشته باشد.


4. احرازهویت مجدد

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


5. تشخیص Brute Force: تله های انفجاری

تلاش برای شناسایی brute force session hijacking، قطعا راه خوبی برای محافظت از session ها میباشد. OWASP پیشنهاد میکند از session token هایی که مانند تله های انفجاری هستند، استفاده کنید؛ این توکن ها هرگز تولید نشده اند اما اگر مهاجمی سعی در brute force بازه ای از توکن ها را داشته باشد، به عنوان توکنی معتبر خود را به مهاجم نشان خواهند داد. وقتی که شما با کمک این توکن های قلابی، تلاش برای session hijacking را شناسایی کردید، میتوانید IP سورس را بلاک کرده و یا اکانت مورد نظر را لاک کنید.


پایان بخش نهم
مانا باشید.

نویسنده : احسان امجدی
منبع : جزیره امنیت اطلاعات و ارتباطات وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
#session_چیست؟ #آموزش_امنیت_اطلاعات #session_token_چیست؟ #آموزش_امنیت_شبکه #tcp_session_چیست؟ #session_id_چیست؟
عنوان
1 Session چیست و چگونه کار می کند ؟ قسمت 1 رایگان
2 Session چیست و چگونه کار می کند ؟ قسمت 2 رایگان
3 Session Hijacking چگونه انجام می شود ؟ قسمت 3 : نقش پروتکل TCP رایگان
4 Session Hijacking چگونه انجام می شود ؟ قسمت 4 : Session چیست ؟ رایگان
5 Session Hijacking چگونه انجام می شود ؟ قسمت 5 : لایه 7 و 3 شبکه رایگان
6 Session Hijacking چگونه انجام می شود ؟ قسمت 6 : Desync Attacks رایگان
7 Session Hijacking چگونه انجام می شود ؟ قسمت 7 : WebApp Hijack رایگان
8 Session Hijacking چگونه انجام می شود ؟ قسمت 8 : ابزارهای Hijack رایگان
9 روش های جلوگیری از Session Hijacking قسمت 9 : بخش 1 رایگان
10 روش های جلوگیری از Session Hijacking قسمت 10 : بخش 2 رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

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