حمله SSRF چیست و چگونه به شبکه سازمان شما آسیب می‌زند؟

حمله SSRF چیست و چگونه به شبکه سازمان شما آسیب می‌زند؟

(Server-side request forgery (SSRF چیست؟

SSRF (Server-Side Request Forgery) یا «جعل درخواست سمت سرور» نوعی آسیب‌پذیری امنیتی است که زمانی رخ می‌دهد که مهاجم بتواند یک برنامه‌ی وب یا API را وادار کند تا به‌صورت غیرمجاز به منابع داخلی شبکه درخواست ارسال کند. این مسئله ممکن است منجر به دسترسی غیرمجاز، افشای داده‌ها، نفوذ به سیستم و حتی اجرای کد از راه دور (RCE) شود.

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

آنچه در ادامه می‌خوانید:

حمله SSRF چیست و چگونه عمل می‌کند؟

نحوه عملکرد حمله  SSRF

نمونه‌ای از حمله SSRF

انواع حملات SSRF

روش‌های پیشگیری از حملات  SSRF

سناریوی دفاعی در برابر SSRF

سوالات متداول 

 

حمله SSRF چیست و چگونه عمل می‌کند؟

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

اگر منبع هدف دارای روابط اعتماد (Trust Relationships) با سایر سیستم‌ها باشد، مانند سرویس‌های متادیتای ابری یا APIهای پشتیبان، مهاجم می‌تواند از طریق SSRF به آن منابع نیز دسترسی یافته و داده‌های حساس را استخراج کرده یا دستورات غیرمجاز اجرا کند.

با توجه به اینکه برنامه‌های وب مدرن برای سهولت استفاده کاربران، قابلیت‌هایی مانند فراخوانی URLها را ارائه می‌دهند، وقوع حملات SSRF در حال افزایش است. با گسترش سرویس‌های ابری و ساختارهای غیرمتمرکز، شدت و پیچیدگی این نوع حملات نیز بیشتر شده است.

SSRF یکی از ده تهدید برتر امنیتی OWASP (OWASP Top 10) محسوب می‌شود و هم در برنامه‌های وب و هم درAPIها جزو آسیب‌پذیری‌های بحرانی طبقه‌بندی شده است.

 

نحوه عملکرد حمله  SSRF

۱. برنامه، ورودی کاربر را برای تعیین آدرس مقصد درخواست سمت سرور دریافت می‌کند مثلاً از طریق پارامتر URL یا فیلد فرم.

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

۳. سرور، ورودی مخرب را پردازش کرده و از دید خود (نه مرورگر کاربر) به URL هدف درخواست ارسال می‌کند.

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

۵. SSRF همچنین می‌تواند برای اسکن پورت‌های شبکه داخلی استفاده شود تا مهاجم بتواند آسیب‌پذیری‌های دیگر را شناسایی کند.

۶. در محیط‌های ابری، SSRF بسیار خطرناک‌تر است، زیرا ممکن است مهاجم بتواند به سرویس‌های متادیتای ابری (Cloud Metadata Services) دسترسی پیدا کند.

تأثیر حملات SSRF می‌تواند از دسترسی غیرمجاز به داده‌ها و سرویس‌ها تا نفوذ کامل به سیستم‌های داخلی و محیط‌های ابری متغیر باشد.

 

نمونه‌ای از حمله SSRF

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

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

 

انواع حملات SSRF

۱. حمله SSRF استاندارد

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

۲. حمله SSRF کور (Blind SSRF)

در حمله‌ی کور، مهاجم پاسخ مستقیم سرور را دریافت نمی‌کند. در عوض، با مشاهده‌ی تغییرات در رفتار برنامه  مانند خطاها، تأخیر در پاسخ یا تفاوت در وضعیت HTTP تشخیص می‌دهد که حمله موفق بوده است.

۳. حمله SSRF کور مبتنی بر زمان (Time-Based Blind SSRF)

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

 

روش‌های پیشگیری از حملات  SSRF

برای جلوگیری از SSRF، باید مجموعه‌ای از تدابیر امنیتی را در طراحی و پیاده‌سازی برنامه رعایت کرد:

۱. اعتبارسنجی ورودی‌ها (Input Validation)

تمامی داده‌های ورودی کاربران، به‌ویژه  URLها، باید به‌دقت اعتبارسنجی شوند.

  • تنها پروتکل‌های مجاز مانند http  و https مجاز باشند.
  • از لیست سفید (Allowlist) برای دامنه‌ها و  URLهای مورد اعتماد استفاده کنید.
  • از پذیرش پروتکل‌های خطرناک مانند file:// یا ftp://  خودداری کنید.

۲. لیست سفید میزبان‌ها و IPها

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

۳. محدودسازی دسترسی به منابع داخلی

  • شبکه را بخش‌بندی (Segmentation) کنید تا دسترسی سرورهای خارجی به منابع داخلی محدود شود.
  • از فایروال برنامه وب (WAF) برای مسدودسازی ترافیک غیرضروری خروجی استفاده کنید.
  • با استقرار Reverse Proxy بین برنامه و منابع خارجی، کنترل دقیقی بر ارتباطات خروجی داشته باشید.

 

سناریوی دفاعی در برابر SSRF

فرض کنید در یک سیستم مدیریت محتوا (CMS)، کاربران می‌توانند برای افزودن تصویر، آدرس URL وارد کنند. در نسخه‌ی اولیه، هیچ اعتبارسنجی روی URL انجام نمی‌شود و مهاجم با وارد کردن یک URL مخرب به یک منبع داخلی، سعی در نفوذ دارد.

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

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

 

سوالات متداول 

۱. SSRF چیست و چه کاربردی دارد؟

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

 

۲. SSRF چگونه کار می‌کند؟

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

 

۳. تفاوت SSRF با Blind SSRF چیست؟

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

 

۴. چرا SSRF یکی از خطرناک‌ترین آسیب‌پذیری‌ها محسوب می‌شود؟

زیرا SSRF می‌تواند به مهاجم اجازه دهد به منابع داخلی شبکه، پایگاه‌داده‌ها، متادیتای سرویس‌های ابری و APIهای محرمانه دسترسی پیدا کند. در محیط‌های ابری، این نوع حمله ممکن است حتی به تسخیر کامل سرور یا اجرای کد از راه دور (RCE) منجر شود.

 

۵. چه عواملی باعث بروز آسیب‌پذیری SSRF می‌شوند؟

  • عدم اعتبارسنجی یا پاک‌سازی ورودی‌های کاربر
  • اعتماد بیش از حد به داده‌های سمت کاربر
  • اجازه‌ی دسترسی مستقیم سرور به URL یا منابع خارجی بدون کنترل
  • نبود محدودیت در سطح شبکه یا فایروال

 

۶. چگونه می‌توان از SSRF جلوگیری کرد؟

  • اعتبارسنجی دقیق ورودی‌ها و استفاده از لیست سفید (Allowlist) برای دامنه‌ها
  • مسدود کردن پروتکل‌های ناامن مانند file ،//:ftp ،gopher://
  • محدود کردن دسترسی سرور به منابع داخلی
  • استفاده از Web Application Firewall (WAF) برای فیلترکردن درخواست‌ها
  • نظارت و ثبت دقیق درخواست‌های خروجی سرور

 

۷. آیا SSRF فقط در وب‌اپلیکیشن‌ها اتفاق می‌افتد؟

خیر، SSRF علاوه بر وب‌اپلیکیشن‌ها، می‌تواند در APIها، سرویس‌های ابری (Cloud Services) و حتی در زیرساخت‌های میکروسرویس (Microservices) نیز رخ دهد؛ هر جایی که سرور به‌طور خودکار درخواست‌هایی را بر اساس ورودی کاربر ارسال کند.

 

۸. نمونه‌ای از حمله SSRF چیست؟

فرض کنید یک برنامه‌ی وب به کاربر اجازه می‌دهد آدرس تصویر مورد نظرش را وارد کند تا آن تصویر را پردازش کند. مهاجم به جای وارد کردن URL واقعی تصویر، آدرس یک منبع داخلی (مثل http://localhost/admin) را وارد می‌کند. سرور به اشتباه به آن آدرس دسترسی پیدا می‌کند و داده‌های حساس را در اختیار مهاجم قرار می‌دهد.

 

۹. چرا SSRF در فهرست OWASP Top 10 قرار دارد؟

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

 

۱۰. آیا ابزارهایی برای شناسایی SSRF وجود دارد؟

بله، ابزارهایی مانند Burp Suite ،OWASP ZAP ،Nuclei ،SSRFmap و Metasploit می‌توانند برای شناسایی و تست آسیب‌پذیری SSRF در برنامه‌ها مورد استفاده قرار گیرند.

 

تاریخ انتشار: 1404/12/13
تاریخ بروزرسانی: 1404/12/19
user avatar
نویسنده: زینب ابراهیم‌پور کارشناس بازاریابی دیجیتال
زینب ابراهیم‌پور در سال 1403 در مقطع دکتری رشته ارتباطات از دانشگاه شانگهای فارغ التحصیل شد. در طول تحصیل با شرکت‌های بین المللی در زمینه دیجیتال مارکتینگ همکاری داشته و از سال 1400 به طور ثابت تخصص حرفه‌ای خود را با شرکت‌های بزرگ ایرانی شروع کرده است. ایشان در سال 1404 به مجموعه سایبرنو پیوست.
برچسب‌های مرتبط
این مطلب را با دوستان خود به اشتراک بگذارید
نظرات کاربران

برای دریافت خبرنامه و اخبار

آدرس پست الکترونیکی خود را وارد کنید

تمامی حقوق مادی و معنوی این سایت متعلق به شرکت مهندسی دنیای فناوری امن ویرا (سایبرنو) می‌باشد.