یک آسیب پذیری بحرانی در Kubernetes با شناسه CVE-2024-9042 شناسایی شده است که به مهاجمان امکان اجرای کد از راه دور (RCE) با سطح دسترسی سیستمی (SYSTEM) بر روی تمام nodeهای ویندوز در کلاستر Kubernetes را می دهد.
کلاستر Kubernetes مجموعهای از ماشینها یا nodeها است که توسط Kubernetes مدیریت میشوند و برای اجرای برنامههای کاربردی بهصورت خودکار و مقیاسپذیر طراحی شده است.
این آسیب پذیری که توسط تومر پلد، محقق امنیتی Akamai شناسایی شده است، به طور خاص بر ویژگی جدید beta logging که “Log Query” نام دارد و به عنوان بخشی از ثبت لاگ در Kubernetes معرفی شده است، تأثیر میگذارد.
آسیب پذیری CVE-2024-9042 با یک درخواست ساده HTTP GET مورد سوءاستفاده قرار میگیرد و مهاجم میتواند به طور بالقوه کنترل کاملی بر روی تمام nodeهای ویندوز در کلاستر آسیب پذیر بدست آورد.
بررسی آسیب پذیری CVE-2024-9042 در کلاستر Kubernetes
ریشه این مشکل در عملکرد Log Query کلاستر Kubernetes قرار دارد که به کاربران اجازه میدهد تا از طریق Kubernetes API، لاگ های سیستم را در nodeهای راه دور جستجو کنند. این ویژگی که به منظور سهولت عملیات طراحی شده است، به طور ناخواسته منجر به آسیب پذیری Command Injection (تزریق فرمان) میشود.
مهاجمان میتوانند با ارسال درخواستهای مخرب از اعتبار سنجی ورودی (Input validation) ناکافی در پارامتر pattern در Log Query API سوءاستفاده کنند.
این آسیب پذیری دستورات دلخواه پاورشل را قادر به اجرا بر روی nodeهای ویندوز میسازد. به منظور سوءاستفاده از این آسیب پذیری میبایست:
- کلاستر، nodeهای ویندوزی را اجرا کند.
- ویژگی Log Query beta فعال باشد.
- نسخههای آسیب پذیر Kubernetes یعنی نسخههای 1.32.0 و قدیمیتر اجرا شوند.
تومر پلد نشان داد که چگونه یک دستور curl با دقت طراحی شده، میتواند دستورات مخرب را با استفاده از endpoint در API آسیب پذیر به سیستم تزریق کند.
curl "/api/v1/nodes//proxy/logs/?query=nssm&pattern=’$(Start-process cmd)’"
این حمله با سوء استفاده از عدم پاکسازی یا sanitization در پارامترهای خاص، اعتبارسنجی پیلودهای حمله را دور میزند. پیامدهای آسیب پذیری CVE-2024-9042 بسیار شدید می باشد از جمله:
- تصاحب و دسترسی کامل به Node: اکسپلویت موفق این آسیب پذیری برای مهاجمان، سطح دسترسی سیستمی (SYSTEM) را در تمام nodeهای ویندوز موجود در کلاستر فراهم میآورد.
- ریسک در سطح کلاستر: مهاجم میتواند هنگام نفوذ به یک node، به طوربالقوه به قسمتهای دیگر کلاستر دسترسی پیدا کند.
- افشای اطلاعات: امکان افشای دادههای حساس ذخیره شده یا پردازش شده روی nodeهای آسیب پذیر وجود دارد.
اگرچه این آسیب پذیری امتیاز CVSS:5.9 (شدت متوسط) را دریافت کرده است، اما تأثیر بالقوه آن به دلیل سادگی در بهرهبرداری و استفاده گسترده از Kubernetes در محیطهای شرکتی قابل توجه است.
نسخههای آسیب پذیر Kubernetes
آسیب پذیری CVE-2024-904، نسخههای زیر از Kubernetes را تحت تأثیر قرار میدهد:
- v1.32.0
- v1.31.0 تا v1.31.4
- v1.30.0 تا v1.30.8
- و نسخههای v1.29.12 و پایینتر
کلاسترهایی که از این نسخهها استفاده میکنند و دارای nodeهای ویندوزی و Log Query فعال میباشند، در معرض خطر قرار دارند.
پچ آسیب پذیری و راهکارهای امنیتی
Kubernetes به منظور رفع این مشکل، پچهایی را برای نسخههای آسیب پذیر منتشر کرده است که به شرح زیر میباشند:
Adminها میبایست هرچه سریع تر کلاسترهای خود را به این نسخههای پچ شده به روزرسانی کنند. علاوه براین، سازمانها میتوانند اقدامات زیر را به منظور کاهش ریسک دنبال کنند:
- غیرفعال سازی Log Query: در صورت عدم نیاز به این قابلیت، آن را به طور کامل غیرفعال کنید.
- محدود کردن دسترسی: از کنترل دسترسی مبتنی بر نقش (RBAC) برای محدود سازی دسترسی به APIهای حساس مانند /logs استفاده کنید.
- نظارت بر لاگ ها: لاگهای کلاستر را برای شناسایی درخواستهای مشکوک که endpointهای logs/ با ورودیهای غیرمنتظره را مورد هدف قرار میدهند، بررسی کنید.
adminها میبایست به منظور شناسایی سوء استفادههای احتمالی، audit logها را برای درخواستهای غیرعادی که به endpointهای logs/ ارسال شدهاند و یا دارای الگوها یا ورودیهای مشکوک هستند، مورد بررسی قرار دهند. Audit log به لاگهایی گفته میشود که تمامی فعالیتهای سیستم یا سرویس را ثبت میکنند، به ویژه فعالیتهایی که بر امنیت یا عملکرد سیستم تأثیر میگذارند.
اگرچه Kubernetes آسیب پذیری CVE-2024-9042 را پچ کرده است، اما سازمانها باید سریعاً برای محافظت از کلاسترهای خود اقدام کنند و بهروزرسانیها را اعمال کرده و تدابیر امنیتی اضافی را پیادهسازی نمایند.