19 درصد از تصاویر برتر Docker رمز عبور root ندارند

شنبه گذشته، 18 می، جری گمبلین از Kenna Security بررسی شد 1000 تصویر محبوب از Docker Hub با رمز عبوری که برای کاربر اصلی استفاده می کنند. در 19٪ موارد معلوم شد که خالی است.

19 درصد از تصاویر برتر Docker رمز عبور root ندارند

پس زمینه با آلپاین

دلیل این مطالعه کوچک گزارش آسیب پذیری Talos بود که در اوایل این ماه ظاهر شد (TALOS-2019-0782نویسندگان آن - به لطف کشف پیتر ادکینز از Cisco Umbrella - گزارش دادند که تصاویر Docker با توزیع کانتینر محبوب Alpine رمز عبور ریشه ندارند:

«نسخه‌های رسمی تصاویر Alpine Linux Docker (از نسخه 3.3 شروع می‌شود) حاوی یک رمز عبور NULL برای کاربر اصلی است. این آسیب پذیری در نتیجه یک رگرسیون ارائه شده در دسامبر 2015 ظاهر شد. ماهیت آن به این واقعیت خلاصه می شود که سیستم هایی که با نسخه های مشکل ساز آلپاین لینوکس در یک ظرف مستقر شده اند و با استفاده از PAM لینوکس یا مکانیزم دیگری که از فایل سایه سیستم به عنوان پایگاه داده برای احراز هویت استفاده می کند، می توانند رمز عبور تهی (NULL) را برای کاربر ریشه بپذیرند.

نسخه‌های تصاویر Alpine Docker که برای این مشکل آزمایش شدند شامل 3.3-3.9 و همچنین آخرین نسخه edge بودند.

نویسندگان توصیه های زیر را به کاربران آسیب دیده ارائه کردند:

در تصاویر Docker که از نسخه های مشکل دار Alpine ساخته شده اند، اکانت ریشه باید به صراحت غیرفعال شود. بهره‌برداری احتمالی از آسیب‌پذیری به محیط بستگی دارد، زیرا موفقیت آن نیازمند یک سرویس یا برنامه کاربردی با استفاده از لینوکس PAM یا سایر مکانیسم‌های مشابه است.

مشکل این بود حذف شده است در نسخه‌های Alpine 3.6.5، 3.7.3، 3.8.4، 3.9.2 و edge (عکس فوری 20190228)، و از صاحبان تصاویر آسیب‌دیده خواسته شد تا خط را با root در نظر دهند. /etc/shadow یا مطمئن شوید که بسته وجود ندارد linux-pam.

ادامه از داکر هاب

جری گمبلین تصمیم گرفت در مورد اینکه "روش استفاده از گذرواژه های پوچ در کانتینرها چقدر رایج است" سوال کند. برای این کار، او یک کتاب کوچک نوشت اسکریپت bash، که ماهیت آن بسیار ساده است:

  • از طریق یک درخواست curl به API در Docker Hub، لیستی از تصاویر Docker که در آنجا میزبانی می شوند درخواست می شود.
  • از طریق jq بر اساس فیلد مرتب می شود popularityو از نتایج به دست آمده هزار اول باقی می ماند.
  • برای هر یک از آنها، docker pull;
  • برای هر تصویر دریافتی از داکر هاب، docker run خواندن خط اول از فایل /etc/shadow;
  • اگر مقدار رشته برابر باشد root:::0:::::، نام تصویر در یک فایل جداگانه ذخیره می شود.

چی شد؟ که در این فایل 194 خط با نام تصاویر محبوب Docker با سیستم‌های لینوکس وجود داشت که در آن کاربر اصلی رمز عبور ندارد:

از جمله معروف‌ترین نام‌های موجود در این فهرست می‌توان به govuk/governmentpaas، hashicorp، microsoft، monsanto و mesosphere اشاره کرد. و kylemanna/openvpn با بیش از 10 میلیون کشش، محبوب ترین کانتینر در این لیست است.

با این حال، شایان ذکر است که این پدیده به خودی خود به معنای آسیب‌پذیری مستقیم در امنیت سیستم‌هایی که از آنها استفاده می‌کنند نیست: همه چیز به نحوه استفاده دقیق از آنها بستگی دارد. (به نظر مربوط به پرونده Alpine در بالا مراجعه کنید). با این حال، ما قبلاً بارها "اخلاقی این داستان" را دیده‌ایم: سادگی ظاهری اغلب جنبه منفی دارد که باید همیشه آن را به خاطر بسپارید و عواقب آن را در سناریوهای خود برای استفاده از فناوری در نظر بگیرید.

PS

در وبلاگ ما نیز بخوانید:

منبع: www.habr.com

اضافه کردن نظر