انواع حملات CSRF یا جعل درخواست فرا وبگاهی در برنامه‌های کاربردی وب

انواع حملات CSRF یا جعل درخواست فرا وبگاهی در برنامه‌های کاربردی وب


حملات CSRF

آشنایی با حملات CSRF یا حملات جعل درخواست فرا وبگاهی

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

ازآنجایی‌که آسیب پذیری CSRF مخفف عبارت Cross-Site Request Forgery است و به‌عنوان یکی از شناخته‌شده‌ترین نوع حملات سایت در بین هکرها محسوب می‌شود؛ منابع و مقالات بسیار زیادی در این زمینه ارائه‌شده است و هدف ما از ارائه‌ی این مقاله آشنایی اصولی و پایه‌ای با مفاهیم و انواع این نوع حملات در سطح وب‌سایت‌ها می‌باشد.

دسته بندی حملات جعل درخواست فرا وبگاهی

انواع آسیب پذیری جعل درخواست فراوبگاهی

حملات جعل درخواست فرا وبگاهی یا همان باگ CSRF که گاهی Sea-Surf نیز تلفظ و بیان می‌گردد بانام‌هایی همچون One-Click Attack، Session Riding و یا XSRF نیز شناخته می‌شود. حملات جعل درخواست فرا وبگاهی از یک اعتماد اشتباه به وجود می‌آید. در این اعتماد اشتباه، یک وب‌سایت به کاربر خود و مرورگرش، اعتماد می‌نماید و کاربر، قربانی این حملات می‌گردد.

برای درک بهتر این نوع حملات به مثال زیر توجه کنید.

در این نوع حمله، کاربر در یک وب‌سایت مورد اعتماد، احراز هویت شده و سپس در آن وب‌سایت شروع به فعالیت می‌نماید. زمانی که کاربر در حال استفاده از وب‌سایت مورد اعتماد (مثلاً صفحه حساب کاربری گوگل) است، نشست‌های کوکی کاربر، در مرورگر کاربر ذخیره‌شده و تا زمانی که این کوکی‌ها ذخیره باشند، کاربر و مرورگرش برای آن وب‌سایت، شناخته‌شده و احراز هویت شده در نظر گرفته می‌شوند. در ادامه، کاربر سربرگ مرورگر یا همان Tab مربوط به وب‌سایت را بسته و از آن وب‌سایت خارج می‌شود، اما متأسفانه یا خوشبختانه، نشست‌های کوکی کاربر، در مرورگر کاربر ذخیره‌شده‌اند و کاربر از این موضوع اطلاعی ندارد. حال کاربر در همان مرورگر خود، Tab دیگری را باز می‌کند و به وب‌سایتی که به‌ظاهر مورد اعتماد است واردشده و اطلاعی نسبت به مخرب بودن آن ندارد و نمی‌داند که آن وب‌سایت مخرب جدید که بازکرده است، توسط هکر کنترل می‌شود. حال کاربر بر روی یکی از عکس‌های داخل وب‌سایت مخرب کلیک می‌نماید. در پشت پرده این ماجرا هکر لینکی را برای عکس تعبیه نموده است که با کلیک بر روی عکس، کاربر به سمت وب‌سایت مورد اعتماد (همان صفحه حساب کاربری گوگل که قبلاً نشست کوکی آن در مرورگر ذخیره‌شده بود) هدایت‌شده و سپس فعالیتی که موردنظر هکر است را انجام خواهد داد.

مثال حملات جعل درخواست فراوبگاهی

سناریوی حملات جعل درخواست فراوبگاهی

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

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

پیشگیری از آسیب پذیری CSRF

روش جلوگیری از باگ CSRF

توصیه‌های عمومی برای دفاع از حملات CSRF

به‌صورت کلی و عمومی برای دفاع استاندارد و خودکار در مقابل باگ CSRF که نیاز به مداخله کاربر در دفاع نباشد، دو بررسی جداگانه زیر پیشنهاد می‌گردد. در این بررسی‌ها به‌صورت عمدی و خودکار، درخواست مجوز متقابل یا Cross به‌صورت لحظه‌ای و آنی، رد خواهد شد.

  • بررسی هدرهای استاندارد برای تائید درخواست همان منبع
  • بررسی توکن های CSRF

برای دفاع از آسیب پذیری CSRF راه‌های گوناگونی وجود دارد که می‌توانید به‌طور خاص در برابر این حملات دفاع نمایید. در توصیه‌های استاندارد حداقل یکی از موارد زیر را برای دفاع در برابر این حملات استفاده نمایید.

  • همگام ساز توکن ها یا Synchronizer Tokens
  • دفاع کوکی‌های دوگانه یا Double Cookies Defense
  • رمزگذاری الگوهای توکن یا Encrypted Token Pattern
  • سربرگ سفارشی یا Custom Header

دیگر راهکارهای موجود برای جلوگیری از حملات جعل درخواست فرا وبگاهی در زیر بیان‌شده‌اند؛ که باید برنامه نویسان و طراحان وب‌سایت‌ها این موارد را در طراحی‌های خود در نظر داشته باشند.

  • استفاده از Captcha در فرم‌ها
  • استفاده از متد POST بجای متد GET
  • پرهیز استفاده از Register_Global در صفحات پردازشگر
  • گرفتن تائید مجدد پس از ارسال یک فرم از کاربر برای انجام فرآیندها
  • ایجاد متغیرهای تصادفی در سمت سرور و بازپس‌گیری آن از طرف کاربر در زمان ارسال هر فرم

انواع حملات CSRF یا حملات جعل درخواست فرا وبگاهی

در این قسمت قصد داریم تا با انواع آسیب پذیری های جعل درخواست فراوبگاهی که در سطح وب وجود دارند باهم آشنا شویم.

۱-حملات CSRF(Change Password)

حملات تغییر پسورد که شناخته‌شده‌ترین نوع از باگ CSRF است باعث می‌گردد که هکر بتواند پسورد کاربر را تغییر داده و به‌حساب کاربری قربانی دسترسی پیدا نماید. برای تشریح این حمله به مثال زیر توجه کنید.

در ابتدا هکر در وب‌سایت X ثبت‌نام کرده و المان‌ها و تگ‌هایی که برای تغییر پسورد نیاز دارد را یادداشت کرده و با استفاده از کد نویسی ساده HTML، یک صفحه را برای تغییر جهت یا Redirect دادن قربانی آماده می‌نماید. سپس هکر این صفحه را در قالب یک عکس یا لینک، پنهان نموده و در وب‌سایت مخرب Y خود، قرار می‌دهد. در طرف دیگر این ماجرا کاربر قربانی به وب‌سایت X لاگین کرده و کوکی‌های نشست او در مرورگر ذخیره می‌گردد. حال کاربر قربانی بدون Log Out کردن از وب‌سایت X آن را بسته و در Tab دیگر به وب‌سایت مخرب هکر به نشانی Y مراجعه می‌نماید. در ادامه این سناریو، کاربر قربانی بر روی عکس یا لینکی که هکر آن را آماده‌سازی کرده بود، کلیک می‌کند. با کلیک قربانی بر روی لینک مخرب، قربانی به سمت وب‌سایت X هدایت می‌گردد؛ ولی در این مرحله کدهایی که هکر نوشته است، مربوط به تغییر پسورد کاربر است. در انتها با ورود کاربر قربانی به وب‌سایت X، پسورد او تغییر کرده است؛ زیرا نشست کاربر قبلاً در مرورگر ذخیره‌شده است. این، یک سناریوی کاربردی درباره باگ CSRF برای تغییر پسورد است که می‌تواند به هکر اجازه تغییر پسورد را بدهد.

Change Password By CSRF

تغییر پسورد با استفاده از باگ CSRF

۲-حملات CSRF(Change Secret)

در این نوع حملات، سناریوی اجرایی همانند حملات تغییر پسورد است ولی با این تفاوت که Secret ها موردحمله قرار می‌گیرند و هکر می‌تواند Secret ها را تغییر دهد.

۳-حملات CSRF(Transfer Amount)

در این نوع حملات که سناریوی مشابه با دو حمله‌ی بالا دارد؛ هکر با استفاده از آسیب‌پذیری CSRF باعث می‌گردد که مبالغ و مقادیر انتقال وجه برای قربانی تغییر داده شود و آن را به‌حساب خود واریز نماید. این حملات باعث انتقال مقادیر در وب‌سایت‌ها می‌شود. مثلاً هکر با استفاده از این آسیب‌پذیری می‌تواند، پول کاربر قربانی را به‌حساب خود انتقال داده و یا حتی مقادیر انتقالی را تغییر دهد.

در انتها می‌تواند خاطرنشان کرد که این نوع حملات از خطرناک‌ترین نوع حملات سطح وب شناخته می‌شود و کاربران و وب‌سایت‌ها نسبت به اهمیت این موضوع دقت کافی داشته باشند تا قربانی آسیب پذیری CSRF نگردند.

آسیب پذیری CSRF هم دارای سناریوهای ساده و هم سناریوهای پیچیده هستند. اگر هکر بتواند حملات جعل درخواست فرا وبگاهی را با مهندسی اجتماعی ادغام نماید، می‌تواند خطرناک‌ترین نوع حملات در سطح وب را به وجود آورد.

امین کیانی

امین کیانی

متخصص و کارشناس امنیت صفحات وب با رویکردی پایه‌ای و هدفمند در جهت آموزش‌های مرتبط با امنیت سایت و انجام پروژه‌های تست نفوذ در سایت‌ها و کسب‌وکارهای آنلاین

تعداد علاقه‌مندانی که تاکنون عضو خبرنامه ما شده‌اند:

260 نفر

پاسخ دهید.

دیدگاه‌های این نوشته

  1. ندا حسنوند

    ندا حسنوند ۱۳۹۷/۰۲/۰۱ پاسخ

    بنظر بنده مقاله در حد خیلی عالی تهیه شده و مفهوم رو بصورت کامل بیان کردید.
    با تشکر از مطلب عالیتون

    • امین کیانی

      امین کیانی ۱۳۹۷/۰۲/۰۱ پاسخ

      با تشکر از نظر لطفتون

  2. سینا

    سینا ۱۳۹۸/۰۲/۰۶ پاسخ

    بسیار عالی … ممنون

    • امین کیانی

      امین کیانی ۱۳۹۸/۰۲/۰۶ پاسخ

      با تشکر از شما

  3. رجبی

    رجبی ۱۳۹۸/۰۶/۱۲ پاسخ

    سلام. خب چطور باید این حملات رو رفع کنیم؟ آموزشش رو ندارید؟

    • امین کیانی

      امین کیانی ۱۳۹۸/۰۶/۱۳ پاسخ

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

مطالب زیر را حتما بخوانید

دوره‌های آموزشی هک و امنیت