Snpad

Ubuntu و برخی دیگر از توزیع‌های لینوکس از یک آسیب‌پذیری حیاتی تشدید امتیاز رنج می‌برند که می‌تواند به یک مهاجم محلی یا یک برنامه موذی اجازه دهد تا اختیاراتی در حد ریشه را به دست آورد و کنترل کامل سیستم هدف را در اختیار قرار گیرد.

این آسیب‌پذیری که Dirty_Sock نام‌گذاری شده و به نام CVE-2019-7304 شناخته شده است در اواخر ماه گذشته توسط Chris Moberly که یک محقق امنیتی است کشف شده است و به‌طور خصوصی به Canonical یعنی سازنده Ubuntu گزارش‌شده است.

این آسیب‌پذیری در API REST برای سرویس snapd قرار دارد که یک سیستم بسته‌بندی لینوکس جهانی(۱) است که برنامه‌ها را بدون نیاز به هیچ تغییری برای توزیع‌های مختلف لینوکس سازگار می‌کند.

Snapd که توسط Canonical ساخته شده است به‌طور پیش‌فرض روی تمام نسخه‌های Ubuntu نصب می‌شود و همچنین توسط توزیع‌های دیگر لینوکس ازجمله Debian، OpenSUSE، Arch Linux، Solus و Fedora نیز مورداستفاده قرار می‌گیرد.

بسته‌های Snap اساساً برنامه‌ها را با یکدیگر به همراه وابستگی‌هایشان فشرده کرده که همچنین شامل دستورالعمل‌هایی در مورد چگونگی اجرا و ارتباط با نرم‌افزارهای دیگر در توزیع‌های مختلف لینوکس برای دسکتاپ، cloud و اینترنت اشیاء می‌باشد.

Snap به‌صورت محلی میزبان یک سرور وب (سوکت  UNIX_AF) برای ارائه یک لیست از API های RESTful است که به این سرویس کمک می‌کند تا اقدامات مختلفی در سیستم‌عامل انجام دهد. این API های REST دارای کنترل دسترسی برای تعریف سطح دسترسی کاربر برای وظایف خاص هستند. برخی از API های قدرتمند فقط برای کاربران دارای دسترسی ریشه در دسترس هستند درحالی‌که بقیه توسط کاربران دارای سطح دسترسی پایین مورداستفاده قرار می‌گیرند.

طبق گفته Moberly، یک نقص در روش مکانیزم کنترل دسترسی(۲) برای بررسی UID مربوط به هر درخواست که به یک سرور ارسال شده است، اجازه می‌دهد تا مهاجمان متغیر UID را بازنویسی کرده و به هر تابع API دسترسی داشته باشند که شامل مواردی می‌شود که فقط برای کاربران با دسترسی ریشه محدودشده‌اند.

Ubuntu در گزارش خود این‌گونه توضیح می‌دهد: “نسخه‌های ۲٫۲۸ تا ۲٫۳۷ از Snapd هنگام اجرای کنترل‌های دسترسی در سوکت UNIX خود، به‌صورت اشتباه آدرس سوکت راه دور را تجزیه‌وتحلیل می‌کنند. یک مهاجم محلی می‌تواند از این برای دسترسی به API های سوکت مجاز استفاده کند و امتیازاتی در حد مدیر را به دست آورد.”

بااین‌حال، لازم به ذکر است که ازآنجایی‌که بهره‌بردار Dirty Sock از نقص تشدید امتیازات محلی برخوردار است، به هکرها اجازه نمی‌دهد تا سیستم لینوکس آسیب‌پذیر را از راه دور به خطر بیندازند.

Moberly همچنین دو بهره‌بردار اثبات ادعا (PoC) را در GitHub در تاریخ ۱۳ فوریه ۲۰۱۹ منتشر کرد، که یکی از آن‌ها نیاز به یک اتصال SSH دارد، درحالی‌که دیگری قادر به سوءاستفاده از این API می‌باشد.

Canonical در این هفته نسخه ۲٫۳۷٫۱ از Snapd را منتشر کرده است تا این آسیب‌پذیری را برطرف کند و Ubuntu و دیگر توزیع‌های لینوکس نیز نسخه‌های وصله شده‌ی خود را منتشر کرده‌اند.

به کاربران لینوکس به‌شدت توصیه می‌شود تا در اسرع وقت سیستم‌های خود را به‌روزرسانی کنند.

منابع

[۱] https://thehackernews.com/2019/02/snapd-linux-privilege-escalation.html


(۱) universal Linux packaging system
(۲) access control mechanism