آسیب پذیری جدیدی در سرورهای لینوکس با عنوان GHOST کشف شده است. این آسیب پذیری در Linux GNU C Library – glibc وجود دارد که به کمک آن مهاجمین و هکرها می توانند به صورت Remote کترل کامل سرور را بدست بگیرند. نکته مهم در این آسیب پذیری این است که مهاجمین نیازی به دانستن نام های کاربری و رمزعبور در سرور نخواهند داشت.

Ghost Vulnerability

Ghost Vulnerability

GHOST

این آسیب پذیری در هر نسخه لینوکس که از glibc-2.2 استفاده کرده باشد، وجود دارد. در این کتابخانه تابعی با نام getHostByName وجود دارد. این تابع در زمان ارتباط با کامپیوترهای دیگر در شبکه فراخوانی می شود. مهاجم با ارسال یک Host Name نامعتبر برای این تابع می تواند ایجاد Buffer Overflow کند. در این هنگام مهاجم دسترسی ای شبیه به کاربری که DNS resolution را اجرا می کند خواهد داشت و می تواند کنترل سرور را بدست بگیرد.

تشخیص

برای فهمیدن نسخه glibc در حال استفاده خود دستور زیر را اجرا کنید:

نتیجه آن در Debian به صورت زیر خواهد بود:

و در Ubuntu به صورت زیر:

و در CentOs و RHEL به صورت زیر خواهد بود:

برای تست سرور خود در مقابل این آسیب پذیری می توانید از کد زیر استفاده کنید:

برای اجرای کد نیز از دستور زیر استفاده کنید:

نتیجه اجرای کد فوق vulnerable و یا not vulnerable خواهد بود.

نحوه بوجود آمدن حفره GHOST

کد داخل glibc به صورت زیر است:

در خطوط 85-86 سایز مورد نیاز برای ذخیره host_addr و h_addr_ptrs و name را محاسبه می کند. خطوط 88-117 برای اطمینان از به اندازه بودن سایز بافر هستند. خطوط 88-97 کمبود بافر و خطوط 98-117 وجود بافر به اندازه کافی را بر عهده دارند. حال خطوط 121-125 وظیفه ذخیره  host_addr و h_addr_ptrs و h_alias_ptr و hostname را برعهده دارند که در آن سایز h_alias_ptr از قبل در نظر گرفته نشده است. حال تابع strcpy() در خط 157 به مهاجم امکان نوشتن خارج از بافر را می دهد.

نسخه های آسیب پذیر لینوکس و نحوه رفع آسیب پذیری

در نهایت در صورتی که مدیر یک سرور لینوکس هستید سریعا Patchهای این آسیب پذیری را نصب نمایید. سرورهای Debian 7 (Wheezy)، RHEL 5-6-7، CentOS 6-7 و Ubuntu 12.04  در مقابل این حفره آسیب پذیرند. برای Ubuntu این Patchها آماده شده اند. برای Debian و CentOs به زودی Patchها آماده می شوند. RedHat نیز Patchها را آماده کرده است که می توانید از آنها استفاده نمایید.

در سرورهای Ubuntu و Debian دستور زیر را اجرا کنید:

و برای CentOs و RHEL دستور زیر را اجرا کنید:

و در Suse Linux

پس از نصب به روزرسانی ها، سرورها را Reboot کنید.

منابع:

  1. zdnet.com
  2. openwall.com
  3. computerworld.com
  4. CVE-2015-0235
  5. digitalocean.com
  6. cyberciti.biz

علی رحمتی

زکات علم آموزش آن است.

Latest posts by علی رحمتی (see all)

facebooktwittergoogle_pluslinkedin

یک نظر در رابطه با “مشکل امنیتی GHOST در سرورهای لینوکس

دیدگاه

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

*

*