
مقدمه
گروه OWASP ایران در تازهترین هشدار امنیتی خود که در اردیبهشت ماه ۱۴۰۵ منتشر شد، از روش نوین و هوشمندانهای برای اجرای حملات جعل درخواست بین سایتی (Cross‑Site Request Forgery یا CSRF) خبر داد. در این روش، مهاجمان از فایلهای تصویری با فرمت SVG (Scalable Vector Graphics) به عنوان بستری برای تزریق کدهای مخرب استفاده میکنند. آنچه این تهدید را جدی میکند، ماهیت مبتنی بر XML فرمت SVG است که به مهاجم اجازه میدهد اسکریپتها، فرمهای پنهان و دستورات تغییر وضعیت را درون یک فایل تصویری به ظاهر بیآزار جاسازی کند. بسیاری از وبسایتهای ایرانی به دلیل اعتماد بیش از حد به پسوند فایل و عدم بررسی محتوای واقعی، در برابر این آسیبپذیری کاملاً بی دفاع هستند.
مکانیزم حمله: چگونه یک تصویر ساده میتواند قربانی بگیرد!
در یک حمله CSRF کلاسیک، مهاجم کاربر قربانی را فریب میدهد تا روی یک لینک یا دکمه جعلی کلیک کند. اما در روش جدید مبتنی بر SVG، حتی نیاز به کلیک نیست. فرآیند حمله شامل گامهای زیر است.
گام اول، تزریق فایل SVG آلوده به سایت هدف است. مهاجم سعی میکند فایل SVG مخرب خود را از طریق فرمهای آپلود تصویر، بخش نظرات، یا پروفایل کاربری در سایت آپلود کند. بسیاری از وباپلیکیشنها فقط پسوند فایل را بررسی میکنند و محتوای واقعی آن را پردازش نمیکنند. در نتیجه فایل با پسوند svg به راحتی پذیرفته میشود.
گام دوم، سوءاستفاده از قابلیتهای XML در SVG است. فایل SVG میتواند شامل تگهایی مانند meta refresh باشد که مرورگر را مجبور میکند بدون اطلاع کاربر به آدرس دیگری هدایت شود. همچنین میتواند فرمهای HTML پنهانی داشته باشد که به طور خودکار توسط جاوااسکریپت ارسال میشوند. یا از قابلیت external entity references برای بارگذاری کدهای مخرب از سرور خارجی استفاده کند.
گام سوم، اجرای خودکار درخواست جعلی است. هنگامی که قربانی صفحه حاوی تصویر SVG را در مرورگر خود باز میکند، مرورگر بدون هیچ اخطاری، فایل را به عنوان یک سند XML پردازش کرده و دستورات جاسازی شده را اجرا میکند. به عنوان مثال، یک فرم پنهان حاوی درخواست تغییر ایمیل یا رمز عبور به سرور هدف ارسال میشود. از آنجا که مرورگر کوکی احراز هویت قربانی را به همراه این درخواست ارسال میکند، سرور آن را معتبر تشخیص داده و تغییرات را اعمال میکند.
بر اساس گزارش OWASP ایران، در شش ماهه اول سال ۱۴۰۵ بیش از ۳۷ درصد وبسایتهای دولتی و ۴۲ درصد پلتفرمهای تجاری داخلی به درستی در مقابل این نوع حملات محافظت نشدهاند. نکته نگرانکننده این است که بسیاری از فایروالهای وب (WAF) سنتی قادر به شناسایی این حملات نیستند، زیرا تزریق درون یک فایل تصویری انجام میشود و الگوی حمله در ترافیک سطح HTTP به راحتی قابل تشخیص نیست.
روشهای تشخیص و شناسایی:
تیمهای فناوری اطلاعات میتوانند حملات CSRF مبتنی بر SVG را با روشهای زیر کشف کنند. بررسی محتوای واقعی فایلهای SVG آپلود شده به جای اعتماد به پسوند. جستجوی الگوهای مشکوک مانند وجود تگهای form، meta refresh، script و entity درون فایلهای SVG. نظارت بر لاگهای آپلود فایل و بررسی ناگهانی حجم بالای درخواستهای تغییر وضعیت از یک صفحه خاص. همچنین استفاده از ابزارهای خودکار اسکن آسیبپذیری که قابلیت تحلیل فایلهای XML را دارند میتواند مفید باشد.
راهکارهای پیشگیری و ایمنسازی:
برای مقابله با این تهدید، تیمهای فنی باید اقدامات زیر را به صورت ترکیبی پیادهسازی کنند. الف) اعتبارسنجی دقیق نوع MIME فایلهای آپلودی و باز کردن فایل در محیط ایزوله (Sandbox) پیش از ذخیره نهایی. ب) استفاده از توکنهای یکبار مصرف anti‑CSRF در تمام فرمهایی که وضعیت کاربر را تغییر میدهند. ج) فعال کردن سیاست امنیت محتوایی (CSP) با دستورالعمل upgrade‑insecure‑requests و مسدود کردن اجرای فرمهای خودکار. د) غیرفعال کردن پردازش موجودیتهای خارجی در XML هنگام نمایش تصاویر SVG. ه) در موارد حساس، تبدیل خودکار تصاویر SVG آپلودی به فرمت شطرنجی مانند PNG در سمت سرور و حذف فایل اصلی.
نتیجهگیری
حملات جعل درخواست بین سایتی با استفاده از تصاویر SVG یک تهدید رو به رشد در امنیت وباپلیکیشنهای ایران است. سادگی اجرا، عبور از فیلترهای سنتی و تأثیر مخرب بالا این روش را به یکی از داغترین موضوعات امنیتی سال ۲۰۲۶ تبدیل کرده است.
تنها راه مقابله مؤثر، پیادهسازی دفاع لایهای و بهروزرسانی مداوم سیاستهای امنیتی بر اساس آخرین هشدارهای مراجع معتبری مانند OWASP ایران است. غفلت از این موضوع میتواند منجر به سرقت حسابهای کاربری، تغییر اطلاعات حیاتی و حتی خسارت مالی جبرانناپذیر شود.
OWASP Foundatioم۱۴۲/۱۴۰۵.