جعل درخواست فرا وبگاهی یا بین سایتی (CSRF) که به عنوان session riding نیز شناخته میشود، نوعی حمله سایبری است که در آن کاربران احراز هویت شدهی یک برنامه وب، مجبور به ارسال درخواستهای مخرب و منجر به بروز تغییر وضعیتی میشوند که مهاجم ایجاد کرده است. حملات CSRF میتوانند:
- رکوردهایی که میخواهند را در یک برنامه تغییر دهند.
- یک معامله انجام دهند.
- محصولات را با استفاده از جزئیاتی که میخواهند خریداری کنند.
- پسووردها را تغییر دهند.
- آدرس ایمیل ثبتی را در یک برنامه وب تغییر دهند.
- با نامی که میخواهند پیام ارسال کنند.
- انتقال وجه انجام دهند.
در برخی موارد، یک حمله CSRF میتواند باعث دسترسی کامل هکرها به حسابهای هدف در برنامه وب شود. اگر فرد مورد نظر در برنامه وب دارای امتیاز یا قدرت کنترل باشد، میتواند از ایجاد آسیبپذیری بیشتر برای کنترل برنامه و دادههای آن استفاده کند. این به این معناست که دفاع در برابر CSRF بخش کلیدی امنیت سایبری برای یک تجارت است.
برای کسب و کارها، دفاع CSRF حوزهای از امنیت سایبری را تشکیل میدهد که شایسته توجه و سرمایه گذاری است. و این موضوع به این دلیل است که در این حمله مهاجمان با ارسال درخواستهای مخربی که در حساب کاربران ایجاد تغییر میکند، به حسابها و سرمایه شرکت دسترسی پیدا میکنند. به عنوان مثال، در ابتدای سال 2021، وردپرس متوجه شد که در یکی از افزونههایش یک آسیبپذیری CSRF وجود دارد. که بیش از 50.000 سایت تحت تأثیر آن قرار گرفتهاند. این آسیبپذیری به مهاجمان اجازه میداد تا کدهای جاوا اسکریپت مخرب را از طریق این افزونه به وب سایتها تزریق کنند. که مهاجمان در مرحله بعد از آن برای وادار کردن کاربران سایت به بازکردن پیوندهای مخرب یا پیوستهای تعبیه شده در سایتهای آسیبدیده استفاده کردند.
حملات جعل درخواست فرا وبگاهی (CSRF) چگونه کار میکنند؟
حملات CSRF اغلب متکی به روشهای مهندسی اجتماعی هستند تا اهداف خود را متقاعد کنند که بر روی یک URL مخرب کلیک کنند. هنگامی که کاربر بر روی پیوندی حاوی یک درخواست غیر مجاز برای یک برنامه وب خاص برای کاربری که احراز هویت شده کلیک میکند، مرورگر کاربر آن درخواست را به برنامه مورد نظر ارسال میکند.
از آنجایی که این درخواست شامل هرگونه اعتبار مربوطه، مانند کوکیهای session مربوط به کاربر نیز میشود، برنامه با درخواست جدید همانند یک درخواست مجاز کاربر برخورد میکند. بنابراین حمله CSRF به مجرمان سایبری اجازه میدهد تا با حمله به سایتهایی که نمیتوانند تفاوت درخواستهای معتبر و جعلی را تشخیص دهند، فرآیند احراز هویت یک برنامه وب را دور بزنند. تکنیکهای کاهش تأثیر CSRF نیز بر جلوگیری از دور زدن اقدامات احراز هویت توسط مهاجمان به این روش متکی است.
برای موفقیت یک حمله CSRF، سه شرط ضروری باید رعایت شود:
- عمل مطلوبی وجود دارد که مهاجم مایل به انجام آن است، مانند تغییر رمز عبور یا انتقال وجه.
- مدیریت sessionهای مبتنی بر کوکی برای شناسایی کاربر انجام گرفته است.
- هیچ پارامتر درخواستی غیر قابل پیشبینی وجود ندارد که مهاجم قادر به تعیین یا حدس زدن آن نباشد. مانند نیاز به دانستن رمز عبور موجود برای تعیین رمز عبور جدید.
اگر این سه شرط برآورده شوند، مهاجم میتواند با موفقیت یک درخواست مخرب را در یک URL یا پیوند جعلی ایجاد کند. و کاربر را متقاعد کند که در یک session فعال با برنامه وب هدف، پیوند را باز کند. جلوگیری از CSRF معمولاً شامل تغییر در شرط دوم یا سوم در لیست فوق است تا از استفاده از دادههای session کوکی برای دور زدن فرآیندهای احراز هویت جلوگیری شود. و یا پارمترهای درخواست غیر قابل پیشبینیای معرفی شوند که مهاجمان نتوانند آنها را حدس بزنند.
پیشگیری، کاهش و دفاع دربرابر جعل درخواست فرا وبگاهی
برای جلوگیری از حملات CSRF و از بین بردن آسیبپذیریها، سه رویکرد اساسی وجود دارد که میتوانید آنها را برای استراتژی برنامه خود در راستای کاهش CSRF اعمال کنید.
- استفاده از توکنهای CSRF در فرمهای HTML برای درخواستهای عملیات بحرانی در برنامهها
- اجتناب از استفاده از روش HTTP GET برای عملیاتهای بحرانی مانند ایجاد، به روز رسانی و حذف اقدامات.
- استفاده از ویژگی «Same Site» در هدر پاسخ «SetCoockie»
توکنهای جعل درخواست فرا وبگاهی
توکنهای CSRF یا نشانههای چالشی رایجترین روش برای کاهش CSRF هستند. این توکنها ابزاری را برای تمایز بین درخواستی که به طور قانونی از سمت رابط کاربری ایجاد می شود و درخواستی که ایجاد نشده است، مانند یک حمله CSRF ارائه میدهند.
توکنهای CSRF از مقادیر بزرگ و تصادفی منحصر به فرد برای هر session کاربر تشکیل شدهاند و در فرمهای HTML در سمت کاربر و سرور قرار میگیرند. هر درخواستی که توسط مرورگر کاربر ایجاد میشود، باید حاوی نشانه CSRF باشد. این به سرور برنامه اجازه میدهد تا درخواست را به عنوان یک درخواست واقعی تأیید کند. زیرا حمله CSRF نمیتواند به اطلاعات توکن در HTML دسترسی داشته باشد.
ویژگی کوکی SameSite
هدف ویژگی SameSite به عنوان هدر پاسخ HTML Set-Coockie، جلوگیری از حملات CSRF است. که با کمک به مرورگرها برای تصمیمگیری درباره زمان ارسال کوکیها با درخواستهای متقابل سایت صورت میگیرد. زیرا دادههای کوکی میتوانند به مهاجمان CSRF اجازه دهند فرآیندهای احراز هویت را دور بزنند. کاربران میتوانند بین مقادیر ویژگیهای «Lax» و «Strict» انتخاب کنند، که به ترتیب به کوکیهای session هنگامی که از سمت وب سایتهای خارجی میآیند یا زمانی که مرورگرها با روشهای درخواست مستعد CSRF مواجه میشوند، اجازه ورود میدهند و یا ورودشان را مسدود میکنند.
منبع: eccouncil رفرنسها در پینوشت متن انگلیسی
Leave feedback about this