مشکل امنیتی لینوکس 0day linux dirty cow

مشکل امنیتی لینوکس 0day linux dirty cow
مشکل امنیتی لینوکس 0day linux dirty cow

یک مشکل امنیتی فوق العاده مهم که در کرنل لینوکس کشف شده باگ Zero Day از نوع Local Privilege Escalation (ارتقا سطح دسترسی) است. لازم به ذکر است که این باگ حدود ۱۱ سال پیش یعنی از سال ۲۰۰۵ وجود داشته

با استفاده از این باگ کاربران معمولی هاست که دسترسی با یوزر محدود به سیستم عامل لینوکس دارند. می توانند دسترسی root از سیستم بگیرند. این مشکل با کد CVE-2016-5195 و نام «گاو کثیف» یا همان ” Dirty COW” شناخته می شود.

توزیع های لینوکسی که باگ CVE-2016-5195 شامل حال آنها می شود به این شرح است:

Red Hat Enterprise Linux 7.x
Red Hat Enterprise Linux 6.x
Red Hat Enterprise Linux 5.x
CentOS Linux 7.x
CentOS Linux 6.x
CentOS Linux 5.x
Debian Linux wheezy
Debian Linux jessie
Debian Linux stretch
Debian Linux sid
Ubuntu Linux precise (LTS 12.04)
Ubuntu Linux trusty
Ubuntu Linux xenial (LTS 16.04)
Ubuntu Linux yakkety
Ubuntu Linux vivid/ubuntu-core
SUSE Linux Enterprise 11 and 12

نحوه تشخیص آسیب پذیری :

برای تشخیص این باگ شرکت ردهت اسکریپتی آماده کرده است که می توانید از آن برای توزیع های مبتنی بر RHEL استفاده کنید. برای اینکار ابتدا باید آن را دریافت کنید :
1

#wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh

و بعد از ان این دستورات را اجرا کنید
1
2

#chmod +x rh-cve-2016-5195_1.sh
#./rh-cve-2016-5195_1.sh

در صورتی که سیستم عامل آسیب پذیر باشد این خطا مشاهده می شود:

Your kernel is 2.6.32-642.3.1.el6.x86_64 which IS vulnerable.
Red Hat recommends that you update your kernel. Alternatively, you can apply partial

تصویری از خطا

رفع مشکل امنیتی لینوکس 0day linux dirty cow
رفع مشکل امنیتی لینوکس 0day linux dirty cow

جهت شناسایی این مشکل بر روی سایر توزیع های دیگر می توانید ابتدا فایل زیر را دریافت کنید
1

$ wget https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c

حالا کافیست یک بار به کاربر root وارد شوید و یک رشته را درون یک فایل بنویسید :
1
2

$ sudo -s
# echo this is not a test foo

اکنون کافیست تا با کاربر معمولی دستور را اجرا کنید
اکنون فایل ساخته شده را به صورت پایین اجرا کنید
1

$ gcc -lpthread dirtyc0w.c -o dirtyc0w
1

$ ./dirtyc0w foo m00000000000000000
1

$ cat foo

پس از اینکار در صورت وجود مشکل بر روی سیستم، متن مشاهده شده در فایل foo با مقدار اولیه متفاوت خواهد بود.

عکس زیر را برای درک بهتر مشاهده کنید

0day linux dirty cow
0day linux dirty cow

ایمن سازی و حل این مشکل :

جهت رفع این مشکل امنیتی بر روی CentOS و RHEL کافیست این دستورات را اجرا کنید:

1
2
3

#yum update

#reboot

دستورات برای حل این مشکل در Debian و Ubuntu :

1
2
3

$sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

$sudo reboot

برای کسب اطلاعات بیشتر در مورد این مشکل امنیتی می توانید به لینک های ذیل مراجعه نمایید

https://access.redhat.com/security/vulnerabilities/2706661

http://dirtycow.ninja