جلسه 18: تاثیر CSRF در تست امنیت (Security Testing)

جلسه 18: تاثیر CSRF در تست امنیت (Security Testing)
نگهداری امن و محرمانه اطلاعات مشتریان از اولویت بالایی در تمامی سازمان ها و شرکت ها برخوردار است. متأسفانه، روزانه آسیب پذیری های جدیدی کشف شده و همگامی نگهداشت امن سازمان در برابر آن ها، تقریباً به امری محال تبدیل شده است. این آسیب پذیری ها در تار و پود زیرساخت IT قرار گرفته و گاهاً به مدت بسیار طولانی کشف نشده باقی می مانند. اگرچه راه های بسیاری برای امن سازی سیستم ها و اپلیکیشن ها در برابر آسیب پذیری ها وجود دارد، اما تنها راه کسب اطمینان واقعی از آن، تست امنیتی بستر IT سازمان به منظور یافتن این حفره های امنیتی است.
داده ها و اطلاعات کاربران و البته وبسایت ها ممکن است به سرقت برده شوند؛ مورد سوء استفاده گرفته و یا در فضای عمومی و بدون خواست صاحبان آن عرضه شوند. تست امنیت Security Testing امروزه مبحث داغ امنیت است تا آسودگی خیال افراد را در بستر اینترنت فراهم کند. راهکار “تست امنیتی” امکان تکرار حملات بر روی سیستم ها، دستگاه ها و اپلیکیشن ها را به منظور آشکارسازی زنجیره ای از مسیرهای باز و آسیب پذیر بر روی سیستم ها و داده های حساس و حیاتی سازمان، فراهم می آورد.
خلاصه جلسه قبل:
در جلسه گذشته در این جلسه به بررسی سطوح دسترسی کاربران و تاثیر آن در تست امنیت پرداختیم؛ بیشتر برنامه های اینترنتی، برنامه های تحت وب و وبسایت ها قبل از اعطای هر گونه دسترسی به کاربران، یک سری حقوق و شرایط و ضوابط را به او ارائه می کنند که به آن، حقوق دسترسی به سطح عملکرد یا Function Level Access گفته می شود که نیازمند بررسی، کنترل و دقت بیشتری است زیرا در صورت غفلت از آن هکرها می توانند بدون مجوز مناسب وارد برنامه شوند و دست به سوء استفاده بزنند. در این جلسه می خواهیم تاثیر CSRF در تست امنیت را بررسی نماییم.
تاثیر CSRF در تست امنیت
یک حمله Cross-Site Request Forgery که به اختصار CSRF نامیده می شود حمله ای است که کاربر معتبر (قربانی) را مجبور می کند درخواست HTTP جعلی از جمله کوکی جلسه را به یک برنامه وب آسیب پذیر بفرستد، که به مهاجم اجازه می دهد تا مرورگر قربانی را وادار به تولید درخواست کند به گونه ای که برنامه آسیب پذیر متوجه درخواست های قانونی از طرف قربانی نشود. اجازه دهید با کمک نمودار ساده، عوامل تهدید، وکتورهای حمله، ضعف امنیتی، تأثیر فنی و تأثیرات تجاری این نقص را بهتر درک کنیم.

مثال:
بیایید با یکی از رایج ترین نمونه های حمله CSRF آشنا شویم.
مرحله اول: در این مثال فرض می کنیم که برنامه آسیب پذیر یک درخواست تغییر حالت را به عنوان یک متن ساده و بدون هیچ گونه رمزگذاری ارسال می کند. مثال:
http://bankx.com/app?action=transferFund&amount=3500&destinationAccount=4673243243
مرحله دوم: اکنون هکر با جاسازی درخواست در تصویری که در سایت های مختلف تحت کنترل مهاجم ذخیره می شود، درخواستی را مبنی بر انتقال پول از حساب قربانی به حساب خودش ایجاد می کند. مثال:
<img src = "http://bankx.com/app?action=transferFunds&amount=14000&destinationAccount=attackersAcct#" width = "0" height = "0" />
Hands ON
مرحله 1) بگذارید با تعبیه اسکریپت جاوا در یک تصویر، جعل CSRF را انجام دهیم. تصویر زیر این سناریو را نمایش می دهد.

مرحله 2) اکنون باید کار انتقال نمونه شبیه سازی شده را به یک تصویر ۱×۱ انجام دهیم و قربانی را دعوت به کلیک روی آن نماییم.

مرحله 3) به محض ارسال پیام، پیام مطابق تصویر زیر به شما نمایش داده می شود.

مرحله 4) اکنون اگر قربانی روی URL زیر کلیک کند، انتقال انجام می شود. می توان با استفاده از مجموعه burp ، عملکرد کاربر را متوقف کرد.

مکانیسم های پیشگیرانه
- CSRF را می توان با ایجاد یک نشانه منحصر به فرد در یک قسمت پنهان که در بدنه درخواست HTTP ارسال می شود قرار داد تا در URL، که بیشتر مستعد قرار گرفتن در معرض دید است در امان بماند.
- مجبور کردن کاربر برای تأیید اعتبار مجدد یا اثبات اینکه کاربران در جهت محافظت از CSRF هستند. به عنوان مثال از طریق استفاده از CAPTCHA.
سخن پایانی
در این جلسه آموختیم که CSRF چه تاثیری بر تست امنیت دارد؛ یک حمله Cross-Site Request Forgery که به اختصار CSRF نامیده می شود حمله ای است که کاربر معتبر (قربانی) را مجبور می کند درخواست HTTP جعلی از جمله کوکی جلسه را به یک برنامه وب آسیب پذیر بفرستد.
در جلسه بعدی قرار است با مولفه های آسیب پذیر در تست امنیت آشنا شویم. لطفا نظرات خود در رابطه با این مقاله را با ما به اشتراک بگذارید.
شاد و سر سبز باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.