وقتی sudo به سلاحی علیه امنیت تبدیل میشود
باگی در دستور sudo لینوکس وجود دارد که با کمک آن میتوان محدودیت دسترسی به root را دور زد. با بهروزرسانی لینوکس این مشکل برطرف میشود.
باگی در دستور sudo لینوکس وجود دارد که با کمک آن میتوان محدودیت دسترسی به root را دور زد. با بهروزرسانی لینوکس این مشکل برطرف میشود. این نقص امنیتی که شناسه CVE-2019-14287 را به خود اختصاص داده است تنها در شرایط خاصی مشکلساز میشود: اگر به برخی کاربران امکان اجرای دستور به جای کاربران دیگر را داده باشید؛ اما نه به جای کاربر root. ماشینهای لینوکس با پیکربندی پیشفرض، در معرض این آسیبپذیری نیستند. اما اگر sudo به شیوه خاصی تنظیم شود که چندان هم رایج نیست (کاربران اجازه اجرای دستور به عنوان کاربر دیگر به جز root را داشته باشند)، آنگاه باید این باگ را جدی گرفت، زیرا میتوان به کمک آن محدودیت «به جز root» را دور زد. این کار با فرستادن آرگومان 1-#u- امکانپذیر است. بیایید با یک مثال ماجرا را توضیح دهیم. فرض کنید کاربری با شناسه bob داریم که به وی اجازه دادهایم تا به عنوان کاربران دیگر (به جز root) در سرور mybox ویرایشگر vi را اجرا کند. شاید به باب اطمینان دارید که محتوای فایل کاربران دیگر را ببیند، اما نه آنقدر که اجازه دهید فایلها را تغییر دهد. به این منظور، فایل sudoer ما باید حاوی چنین خطی باشد:
بدین ترتیب، باب میتواند دستور vi را به عنوان کاربران غیر root دیگر اجرا کند، اما با دستور زیر…
میتواند محدودیت فوق را دور بزند و دستور را به عنوان root اجرا کند. اکنون او میتواند فایل باز شده با vi را ویرایش کند! گزینه u- برای مشخص کردن شناسه کاربری استفاده میشود که قصد داریم دستور را به جایش اجرا کنیم. مقدار این گزینه به فراخوانیهای سیستمی setresuid و setreuid ارسال میشود. اما مقدار 1- برای این دو دستور به این معنی است که «شناسه کاربری را تغییر نده». در این مورد خاص، دستور با sudo اجرا شده بنابراین شناسه منفی یک بدین شکل تعبیر میشود که شناسه را برابر کاربر root در نظر بگیر. در ضمن، به جای 1- میتوانید از 4294967295 استفاده کنید که در سیستم 32 بیتی علامتدار معادل است با 1-. این باگ در sudo نسخه 1.8.28 برطرف شده است. برای رفع آسیبپذیری، لینوکس خود را بهروز کنید. |