باگ GHOST یک آسیبپذیری مهم در کتابخانه گنو سی (glibc) است که جزء کلیدی بسیاری از سیستمعاملهای مبتنی بر لینوکس است. در اوایل سال 2015 کشف شد و به دلیل پتانسیل آن برای اجرای کد از راه دور در سیستم های آسیب دیده، به سرعت مورد توجه قرار گرفت. این باگ نام خود را از بهره برداری از توابع GetHOST (از این رو GHOST) به دست آورده است، که مشخص شد دارای نقص سرریز بافر است.
تاریخچه پیدایش باگ GHOST و اولین اشاره به آن
باگ GHOST اولین بار در 27 ژانویه 2015 توسط محققان شرکت امنیتی Qualys شناسایی شد. تیم Qualys قبل از اعلام عمومی آن در 27 ژانویه 2015، به طور مسئولانه آسیبپذیری را برای نگهبانان glibc و مرکز ملی امنیت سایبری و ارتباطات (NCCIC) افشا کرد.
اطلاعات دقیق در مورد اشکال GHOST. گسترش موضوع اشکال GHOST
اشکال GHOST در درجه اول یک آسیبپذیری سرریز بافر است که در تابع __nss_hostname_digits_dots() کتابخانه glibc وجود دارد. هنگامی که یک برنامه یک درخواست DNS می دهد، این تابع مسئول پردازش فرآیند حل نام میزبان است. با این حال، به دلیل اعتبار سنجی ورودی نامناسب، یک مهاجم از راه دور می تواند یک نام میزبان ساخته شده خاص را ارائه دهد که منجر به سرریز بافر می شود. این سرریز ممکن است منجر به اجرای کد دلخواه شود و به مهاجم اجازه دسترسی غیرمجاز به سیستم آسیب دیده را بدهد.
این آسیبپذیری بهویژه خطرناک بود، زیرا طیف وسیعی از سیستمهای لینوکس را تحت تأثیر قرار داد، از جمله سیستمهایی که سرورهای وب، سرورهای ایمیل و سایر سرویسهای حیاتی را اجرا میکنند. از آنجایی که glibc یک کتابخانه ضروری است که توسط برنامه های کاربردی متعدد مورد استفاده قرار می گیرد، تأثیر بالقوه این اشکال بسیار زیاد بود.
ساختار داخلی اشکال GHOST. اشکال GHOST چگونه کار می کند
برای درک ساختار داخلی اشکال GHOST، مهم است که به جزئیات فنی بپردازیم. هنگامی که یک برنامه تابع آسیب پذیر __nss_hostname_digits_dots() را برای حل یک نام میزبان فراخوانی می کند، تابع به صورت داخلی تابع gethostbyname*() را فراخوانی می کند. این تابع بخشی از خانواده getaddrinfo() است که برای تفکیک آدرس هاست به آدرس IP استفاده می شود.
این آسیب پذیری در نحوه پردازش مقادیر عددی درون نام میزبان توسط تابع نهفته است. اگر نام میزبان حاوی یک مقدار عددی به دنبال یک نقطه باشد، تابع به اشتباه آن را به عنوان آدرس IPv4 تفسیر می کند. هنگامی که تابع سعی می کند آدرس IPv4 را در بافری ذخیره کند که به اندازه کافی بزرگ نیست، منجر به سرریز بافر می شود.
در نتیجه، یک مهاجم میتواند یک نام میزبان مخرب ایجاد کند، و باعث میشود که عملکرد آسیبپذیر مکانهای حافظه مجاور را بازنویسی کند، و به طور بالقوه به آنها اجازه میدهد کد دلخواه را اجرا کنند یا برنامه را خراب کنند.
تجزیه و تحلیل ویژگی های کلیدی باگ GHOST
ویژگی های کلیدی باگ GHOST عبارتند از:
-
آسیب پذیری سرریز بافر: مشکل اصلی اشکال GHOST در سرریز بافر در تابع __nss_hostname_digits_dots() نهفته است که اجرای کد غیرمجاز را امکانپذیر میکند.
-
اجرای کد از راه دور: این اشکال را می توان از راه دور مورد سوء استفاده قرار داد و آن را به یک تهدید امنیتی شدید تبدیل می کند زیرا مهاجمان می توانند از راه دور بر روی سیستم های آسیب دیده کنترل داشته باشند.
-
طیف گسترده ای از سیستم های تحت تأثیر: این آسیبپذیری بر توزیعها و برنامههای مختلف لینوکس که از کتابخانه آسیبپذیر glibc استفاده میکردند، تأثیر گذاشت.
-
خدمات حیاتی در معرض خطر: بسیاری از سرورهایی که سرویسهای ضروری را اجرا میکنند، آسیبپذیر بوده و خطر قابلتوجهی برای زیرساختهای آنلاین ایجاد میکنند.
انواع باگ GHOST
اشکال GHOST تغییرات مشخصی ندارد. با این حال، تأثیر آن بسته به سیستم آسیبدیده و اهداف مهاجم میتواند متفاوت باشد. به طور کلی، تنها یک نسخه از اشکال GHOST وجود دارد که با سرریز بافر در تابع __nss_hostname_digits_dots() مشخص می شود.
باگ GHOST عمدتاً از طریق دستکاری درخواستهای DNS، استفاده از سرریز بافر تابع __nss_hostname_digits_dots () مورد سوء استفاده قرار گرفت. هنگامی که مهاجمان سیستمهای آسیبپذیر را شناسایی کردند، میتوانستند نامهای میزبان مخرب بسازند و از آنها برای ایجاد آسیبپذیری استفاده کنند.
حل اشکال GHOST نیازمند بهروزرسانیهای سریع از سوی فروشندگان سیستمعامل و توسعهدهندگان برنامه بود. آنها باید نسخه های وصله شده glibc را برای رفع این آسیب پذیری ترکیب کنند. مدیران سیستم نیز با به روز رسانی سیستم های خود و اجرای اقدامات امنیتی مناسب نقش مهمی ایفا کردند.
مشخصات اصلی و سایر مقایسه ها با اصطلاحات مشابه در قالب جداول و فهرست
مشخصه | اشکال GHOST | خون دل | شل شوک |
---|---|---|---|
نوع آسیب پذیری | سرریز بافر | نشت اطلاعات (حافظه بیش از حد خوانده شده) | تزریق فرمان |
سال کشف | 2015 | 2014 | 2014 |
نرم افزار تحت تاثیر | کتابخانه glibc | OpenSSL | پوسته بش |
دامنه تاثیر | سیستم های مبتنی بر لینوکس | وب سرورها، VPN ها، دستگاه های اینترنت اشیا | سیستم های مبتنی بر یونیکس |
پیچیدگی بهره برداری | نسبتا پیچیده | نسبتا ساده | نسبتا ساده |
از زمان کشف، باگ GHOST درسی برای توسعه دهندگان و مدیران سیستم بوده است تا اقدامات امنیتی را در اولویت قرار دهند و بهروزرسانیهای سریع نرمافزار را انجام دهند. این حادثه منجر به بررسی بیشتر کتابخانههای اصلی و افزایش تلاشها برای بهبود امنیت کد شده است.
با نگاهی به آینده، میتوانیم انتظار تمرکز بیشتر روی اقدامات امنیتی قوی، ممیزی کد منظم و ارزیابی آسیبپذیری را داشته باشیم. چشم انداز امنیت سایبری به تکامل خود ادامه خواهد داد و سازمان ها باید هوشیار و فعال باشند تا در برابر تهدیدات نوظهور دفاع کنند.
چگونه می توان از سرورهای پروکسی استفاده کرد یا با باگ GHOST مرتبط شد
سرورهای پروکسی، مانند سرورهای ارائه شده توسط OneProxy، می توانند در کاهش تأثیر اشکال GHOST نقش داشته باشند. با مسیریابی ترافیک وب از طریق یک سرور پراکسی، سیستم مشتری میتواند از قرار گرفتن مستقیم در معرض کتابخانههای آسیبپذیر glibc محافظت شود. پروکسی ها به عنوان واسطه بین کلاینت ها و سرورها عمل می کنند و با فیلتر کردن درخواست های مخرب، یک لایه امنیتی اضافی را فراهم می کنند.
با این حال، مهم است که به یاد داشته باشید که پراکسی ها راه حل مستقیمی برای رفع آسیب پذیری خود نیستند. آنها باید همراه با سایر اقدامات امنیتی و به روز رسانی های نرم افزاری منظم استفاده شوند تا از محافظت جامع در برابر تهدیدات احتمالی مانند اشکال GHOST اطمینان حاصل شود.
لینک های مربوطه
برای اطلاعات بیشتر در مورد باگ GHOST و تاثیر آن می توانید به منابع زیر مراجعه کنید:
- مشاوره امنیتی Qualys: https://www.qualys.com/2015/01/27/cve-2015-0235-ghost/
- ورودی پایگاه ملی آسیب پذیری (NVD): https://nvd.nist.gov/vuln/detail/CVE-2015-0235
- وبلاگ امنیتی لینوکس: https://www.linuxsecurity.com/features/features/ghost-cve-2015-0235-the-linux-implementation-of-the-secure-hypertext-transfer-protocol-7252
به یاد داشته باشید که مطلع ماندن و بهروزرسانی سریع سیستمهای شما، گامهای مهمی در حفظ حضور آنلاین امن در مواجهه با آسیبپذیریهای احتمالی مانند باگ GHOST است.