نگاهی بر آسیب پذیری ImageTragick در فیسبوک

احتمالا شما هم با نرم افزار ImageMagick آشنا هستید. نرم افزاری که بعنوان پردازشگر تصاویر آپلود شده ی کاربران در بسیاری از وب سرورها استفاده می شود.

اواخر آپریل سال 2016 آسیب پذیری جدیدی در این نرم افزار که به هکرها امکان اجرای کدهای مخرب بر روی وب سرورهایی که از این نرم افزار استفاده می کردند را میداد، کشف گردید. این آسیب پذیری توسط محققان امنیت، ImageTragick نامیده شد. نکته ی قابل توجه آن است که تنها 5 ماه بعد از کشف این آسیب پذیری، شرکت فیسبوک مجبور گردید تا بابت کشف این آسیب پذیری مبلغ 40 هزار دلار پاداش پرداخت نماید!

آندرو لئونوف در اکتبر سال 2017 عنوان نمود که توانسته با استفاده از این آسیب پذیری و با استفاده از تکنیک DNS Tunneling فایروال های شرکت فیسبوک را فریب داده  و به سرورهای آن نفوذ کند. آقای لئونوف بعد از تماس با مسئولان امنیتی شرکت فیسبوک برای اثبات آن که اکسپلویت مربوط به آسیب پذیری، به نام ImageTragick باعث نفوذ به سرورهای فیسبوک شده است، محتویات فایلی که نشان دهنده ی نوع ورژن کرنل سرور لینوکسی و نوع gcc که برای کامپایل کرنل بکار می رود را برای آنها ارسال نمود. محتویات فایل با دستور: cat /proc/version بدست می آید.

  • تجزیه و تحلیل آسیب پذیری

نحوه ی اکسپلویت شدن این آسیب پذیری به این صورت است که، فایل بدافزاری که خود را بصورت تصویری جعلی به برنامه ImageMagick معرفی می کند می تواند یک فایل پایتون مخرب بر روی وب سرور آپلود نماید. بمحض آپلود فایل پایتون بر روی وب سرور، وب سرور این آسیب پذیری را اجرا کرده و باعث می شود هکر بصورت Reverse Shell به سیستم مورد نظر خود دسترسی یابد. این نوع شل به هکر دسترسی کامل داده و هکر می تواند همانند یه مدیر سیستم بر روی سرور کنترل کامل داشته باشد. شایان ذکر است برنامه پایتون در Payload این اکسپلویت وجود دارد و هکر هیچ نیازی به برنامه پایتون جهت اجرای فایل مخرب پیدا نمی کند. در واقع با اجرای کد مخرب، پایتون هم بر روی سرور نصب می شود. تمام این Payload ها به گونه ای برنامه ریزی شده اند که به هکر دسترسی کامل به وب سرور آسیب پذیر را می دهند. همانطور که در تصویر زیر مشاهده می کنید، آدرس فایل مخرب بجای تصویر به عنوان پارامتر، به برنامه ImageMagick فرستاده می شود.

اگر بخواهیم جزئیات را بصورت دقیق تر بررسی کنیم باید اشاره نماییم که نرم افزار ImageMagick از تعدادی Library برای پردازش فایل های تصویری کاربران استفاده می کند. این قابلیت، نرم افزار Delegate نامیده می شود. این Library ها از فایلی با نام delegates.xml جهت پردازش ورودی های کاربر استفاده می کنند. وظیفه ی این فایل خواندن و پشتیبانی از انواع فرمت های فایل های تصویری برای تبدیل به یکدیگر می باشد. به بیان دیگر وظیفه ی همخوانی فایل ورودی کاربر با فرمت خروجی، بر عهده ی این فایل است. فیلترینگ نامناسب بعضی از پارامترهای ورودی به این فایل، این امکان را برای هکر فراهم می کند که بتواند براحتی دستورات مخرب را به برنامه ی ImageMagick تزریق کند.

  • راه حل

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

سیستم عامل های Ubunto 14.04 و OS-X، آخرین پکیج های ImageMagick شامل نسخه های 6.9.3-7 Q17 x86_64 2016-04-27 و 6.8.6-10 2016-04-29 Q16 آسیب پذیر هستند. در صورت تمایل به کسب اطلاعات دقیق تر در مورد این آسیب پذیری، خواندن مطالب لینک های زیر می تواند مفید باشد 😉

  1. http://arstechnica.com/security/2016/05/exploits-gone-wild-hackers-target-critical-image-processing-bug
  2. http://arstechnica.com/security/2017/01/that-critical-imagetragick-bug-ars-warned-you-about-it-cost-facebook-40k
  3. https://imagetragick.com
  4. http://4lemon.ru/2017-01-17_facebook_imagetragick_remote_code_execution.html

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.