یک مشکل امنیتی فوق العاده مهم که در کرنل لینوکس کشف شده باگ 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 استفاده کنید. برای اینکار ابتدا باید آن را دریافت کنید :
#wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh
و بعد از ان این دستورات را اجرا کنید
#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
تصویری از خطا
جهت شناسایی این مشکل بر روی سایر توزیع های دیگر می توانید ابتدا فایل زیر را دریافت کنید
$ wget https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c
حالا کافیست یک بار به کاربر root وارد شوید و یک رشته را درون یک فایل بنویسید :
$ sudo -s # echo this is not a test foo
اکنون کافیست تا با کاربر معمولی دستور را اجرا کنید
اکنون فایل ساخته شده را به صورت پایین اجرا کنید
$ gcc -lpthread dirtyc0w.c -o dirtyc0w
$ ./dirtyc0w foo m00000000000000000
$ cat foo
پس از اینکار در صورت وجود مشکل بر روی سیستم، متن مشاهده شده در فایل foo با مقدار اولیه متفاوت خواهد بود.
عکس زیر را برای درک بهتر مشاهده کنید
ایمن سازی و حل این مشکل :
جهت رفع این مشکل امنیتی بر روی CentOS و RHEL کافیست این دستورات را اجرا کنید:
#yum update #reboot
دستورات برای حل این مشکل در Debian و Ubuntu :
$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/