یک مشکل امنیتی بسیار مهم که در کرنل لینوکس کشف شده باگ 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
سپس مجوز اجرایی به فایل دهید :
#chmo +x
rh-cve-2016-5195_1.sh
سپس فایل را اجرا کنید :
#./
rh-cve-2016-5195_1.sh
یک نمونه خروجی از اجرای اسکریپت را در پایین مشاهده می کنید که آسیب پذیری سیستم را تشخیص داده است :
جهت شناسایی این مشکل بر روی سایر توزیع های دیگر می توانید ابتدا فایل زیر را دریافت کنید :
$ 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
اکنون کافیست تا محتوای فایل foo را که ابتدا با کاربر root نوشته شده بود را مشاهده کنید :
$ 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/