نقص sudo در سیستم های مبتنی بر لینوکس

sudo یکی از مهمترین، قدرتمندترین و رایج ترین برنامه های کاربردی که به عنوان یک فرمان اصلی نصب شده تقریباً در هر سیستم عامل یونیکس و مبتنی بر لینوکس وجود دارد.
آسیب پذیری مورد بحث، در خصوص مسئله دور زدن سیاست امنیتی sudo است که به یک مهاجم یا برنامه مخرب اجازه می‌دهد دستورات دلخواه را به عنوان root در سیستم قربانی که مبتنی بر لینوکس یا یونیکس است، اجرا کند.

Sudo چیست ؟
sudo، مخفف عبارت "superuser do"و یک فرمان سیستمی است که به کاربر امکان می دهد برنامه ها یا دستورهایی را با امتیازات کاربر root و بدون تعویض محیط، اجرا کند.
به طور پیش فرض در بیشتر توزیع‌های لینوکس، کلمه کلیدی ALL در مشخصات RunAs در پرونده  /etc/sudoers است، همانطور که در شکل 1 نشان داده شده است، نحوه پیکربندی به همه کاربران موجود در گروه های admin یا sudo  اجازه می دهد تا دستور را به عنوان هر کاربر معتبر روی سیستم اجرا کنند. با این حال، از آنجا که جداسازی امتیاز یکی از الگو های اساسی امنیتی در لینوکس است، مدیران می توانند یک پرونده sudoers را پیکربندی کنند تا مشخص شود که کاربران چه دستوراتی را به عنوان یک کاربر اجرا کنند.

به عنوان مثال، هنگامی که کاربری با سطح دسترسی‌ای به غیر از root، در حال اجرای دستورات مختلف است، می‌تواند با سوءاستفاده از این آسیب‌پذیری سطح دسترسی خود را در سیستم قربانی افزایش دهد و کنترل کامل سیستم هدف را به عنوان کاربر root بدست آورد.
توسعه دهندگان sudo می گویند: "این آسیب‌پذیری می تواند توسط کاربر دارای امتیازات sudo کافی، برای اجرای دستورات با سطح دسترسی root مورد استفاده قرار گیرد، حتی اگر مشخصات فایل Run as صریحاً دسترسی root را ممنوع کرده باشد."
این نقص توسط یک مهاجم برای اجرا کردن فرمان‌ها به عنوان root از طریق مشخص کردن شناسه کاربر "-1" یا "4294967295" مورد استفاده قرار می‌گیرد.
این امر به این دلیل است که عملکردی که شناسه کاربر را به نام کاربری تبدیل می کند، به طور نادرست با"-1 "یا معادل نامشخص آن"4294967295"، به صورت "0" رفتار می کند، که همیشه شناسه کاربر root است. جزئیات در شکل 2 نمایش داده شده است. 

علاوه بر این، چون شناسه کاربری مشخص شده از طریق گزینه u-، در پایگاه‌داده رمز ‌عبور وجود ندارد، هیچ نشست ماژول PAMای اجرا نخواهد شد.
این آسیب پذیری بر تمامی نسخه های Sudo، قبل از 1.8.28 که تا کنون منتشر شده است، تأثیر دارد و به زودی به عنوان یک به روزرسانی توسط توزیع‌های مختلف لینوکس به کاربران خود منتقل خواهدشد.
از آنجا که این حمله در سناریوهای خاص مورد استفاده قرار می‌گیرد، نباید بر تعداد زیادی از کاربران تأثیر بگذارد. با این حال، اگر از لینوکس استفاده می شود، باید بسته sudo را به‌روزرسانی کرد.
برای به روزرسانی می توانید از اجرای دستورات زیر در محیط خط فرمان استفاده کنید.

# sudo apt update
# sudo apt upgrade
 

راهبر