حملات CSRF چیست و چگونه کار می کند

حملات CSRF چیست و چگونه کار می کند

علی مرادی

CSRF ، XSRF یا Cross Site Reference Forgery نوعی حمله است که یک وب سایت مخرب درخواست خود را به یک وب سایت یا برنامه وب دیگر که دارای یک کاربر معتبر است ، می فرستد. در این نوع حمله ، با استفاده از مرورگر معتبر قربانی ، یک مهاجم می تواند به طور کامل یا جزئی به وب سایت دسترسی پیدا کند.

حملات CSRF چیست:

چگونه کار می کند؟

  • این تنها در صورت احراز هویت قربانی بالقوه کار می کند.
  • یک مهاجم می تواند با دور زدن فرایند احراز هویت با استفاده از حمله CSRF وارد یک وب سایت شود.
  • حملات CSRF در سناریوهایی که یک قربانی دارای حقوق اضافی انجام برخی اقدامات را انجام می دهد ، و دیگران نمی توانند به این اقدامات دسترسی یا انجام دهند. به عنوان مثال ، بانکداری آنلاین.

CSRF Attack در دو بخش اصلی اجرا می شود:

  • اولین قدم جذب کاربر / قربانی برای کلیک بر روی لینک یا بارگیری صفحه ای که دارای سوء استفاده است می باشد. مهندسی اجتماعی توسط مهاجم برای فریب قربانی استفاده می شود.
  • مرحله دوم فریب دادن قربانی با ارسال درخواست جعلی به مرورگر قربانی است. با استفاده از این لینک ، درخواستهای مشروع به وب سایت هدایت می شود. مهاجم مقادیر یا جزئیاتی را از قربانی که باید به دنبال آن باشد ، خواهد داشت ، یک قربانی آن را پر کرده است که فکر می کند درخواست قانونی است. مهاجم همچنین جزئیات کوکی های مرتبط با مرورگر قربانی را در اختیار خواهد داشت.

مفاهیم کلیدی CSRF:

  • یک مهاجمان درخواست های مخرب را به سایتی می فرستد که در آن کاربر از یک مهاجم بازدید می کند معتقد است که قربانی در برابر آن سایت خاص تأیید شده است.
  • مرورگر قربانی در برابر سایت هدف تأیید می شود و برای انتقال درخواست های مخرب به سایت هدف استفاده می شود.
  • در اینجا ، مرورگر یک قربانی یا سایتی با روش های پیشگیری CSRF که روی آن اعمال شده است ، آسیب پذیر نیستند ، یک وب سایت آسیب دیده اصلی آسیب پذیری است.

چگونه می توان از جعل درخواست متقابل (CSRF) جلوگیری کرد؟

تعدادی روش پیشگیری CSRF وجود دارد که تعداد کمی از آنها عبارتند از:

  • برنامه های وب را در حالی که روی آن کار نمی کنید ، از سیستم خارج کنید.
  • نام کاربری و کلمه عبور خود را ایمن کنید.
  • اجازه ندهید مرورگرها رمز را به خاطر بسپارند.
  • در حالی که شما در حال کار کردن در یک برنامه هستید و به سیستم وارد شده اید ، از مرور خودداری کنید.

توکن های ضد CSRF:

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

۱- توکن CSRF به شرح زیر است:

  • مشتری درخواست یک صفحه HTML می کند که دارای یک فرم است.
  • در پاسخ به این درخواست ، سرور دو نشانه اضافه می کند. یکی را به عنوان کوکی می فرستد و نشانه های دیگر را در یک قسمت فرم پنهان نگه می دارد. این نشانه ها بصورت تصادفی تولید می شوند.
  • مشتری پس از ارسال فرم ، هر دو نشان را به سرور ارسال می کند. توکن کوکی به صورت توکن ارسال می شود و نشانه فرم در داخل داده های فرم ارسال می شود
  • اگر درخواست هر دو درخواست را نداشته باشد ، سرور پاسخ نمی دهد یا آن درخواست را رد می کند.

اکنون یک مهاجمی که قصد جعل این درخواست را دارد ، باید رمزهای ضد CSRF را به همراه رمزهای تأیید هویت کاربر حدس بزند. این علائم پس از مدتی بی اعتبار می شوند.

۲- کوکی های سایت مشابه:

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

۳- همان ویژگی کوکی سایت:

  • برای جلوگیری از حملات CSRF ، از همین ویژگی کوکی سایت استفاده می شود. استفاده شخص ثالث را برای یک کوکی خاص غیرفعال می کند.
  • در هنگام تنظیم کوکی توسط سرور انجام می شود. سپس از مرورگر درخواست می کند کوکی را فقط هنگامی که کاربر مستقیماً از برنامه وب استفاده می کند ، کوکی ارسال کند.
  • حال اگر کسی سعی کند از برنامه وب درخواست چیزی کند ، مرورگر کوکی را ارسال نمی کند.
  • با این حال ، از حمله CSRF جلوگیری می کند.

این یک محدودیت است ، کوکی های مشابه سایت در مرورگرهای مدرن پشتیبانی نمی شوند ، در حالی که برنامه های وب که از کوکی های همان سایت استفاده می کنند در مرورگرهای قدیمی پشتیبانی نمی شوند.

نمونه هایی از CSRF:

در زیر ما چند نمونه از CSRF را توضیح داده ایم:

۱- با استفاده از درخواست های GET:

فرض کنید شما یک وب سایت ، banking.com را پیاده سازی و طراحی کرده اید تا با استفاده از درخواست GET اقداماتی مانند معاملات آنلاین را انجام دهید. اکنون ، یک مهاجم هوشمند که می داند چگونه URL خرب ایجاد کند ، می تواند از عنصر <img> استفاده کند تا مرورگر را ساکت کند و صفحه را بارگیری کند.

نمونه ای از عنصر تصویر HTML که حاوی URL مخرب است:

<img src=”http://banking.com/app/transferFunds?amount=2500&destination=56789″>

۲- برای انجام همین کار می توان از روشهای زیر استفاده کرد:

  • با ارسال ایمیلی که دارای محتوای HTML باشد.
  • با کاشتن یک اسکریپت یا یک URL مخرب در صفحاتی که احتمال دارد کاربر هنگام انجام معاملات آنلاین از آنها بازدید کند.

۳- استفاده از درخواستهای POST:

یک تصور غلط کلی درباره درخواست های HTTP POST وجود دارد که می گوید با اجازه دادن به درخواست های HTTP POST می توان از حملات CSRF جلوگیری کرد ، که در واقع درست نیست. مهاجم می تواند با استفاده از HTML یا JavaScript یک فرم ایجاد کند و از قابلیت ارسال خودکار برای ارسال درخواست POST بدون نیاز به کاربر برای کلیک بر روی دکمه ارسال استفاده کند.

امیدواریم از این مقاله بهره لازم را برده و برای شما مفید بوده باشد. نظرات خود را با ما به اشتراک بگذارید.

ما را در شتابان هاست دنبال کنید.

برچسب ها: CSRF CSRF چیست