خبرهای مهم:

تاریخ امروز برابر است با [ شنبه ۲۵ آذر ۱۳۹۶ ]

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

 

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

تشخیص

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

 

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

 

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

 

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

 

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

 

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

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

 

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

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

 

در خطوط ۸۵-۸۶ سایز مورد نیاز برای ذخیره host_addr و h_addr_ptrs و name را محاسبه می کند. خطوط ۸۸-۱۱۷ برای اطمینان از به اندازه بودن سایز بافر هستند. خطوط ۸۸-۹۷ کمبود بافر و خطوط ۹۸-۱۱۷ وجود بافر به اندازه کافی را بر عهده دارند. حال خطوط ۱۲۱-۱۲۵ وظیفه ذخیره  host_addr و h_addr_ptrs و h_alias_ptr و hostname را برعهده دارند که در آن سایز h_alias_ptr از قبل در نظر گرفته نشده است. حال تابع strcpy() در خط ۱۵۷ به مهاجم امکان نوشتن خارج از بافر را می دهد.

 

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

در نهایت در صورتی که مدیر یک سرور لینوکس هستید سریعا 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 کنید.

 

 

نویسنده: علی رحمتی

:: نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.

*