ارزیابی امنیت کانتینر
ارزیابی جامع امنیت کانتینر برای Docker و اپلیکیشنهای کانتینری
ارزیابی امنیت کانتینر ما، imageهای کانتینر و محیط اجرای آنها را در برابر معیارهای شناختهشده میسنجد: CIS Docker Benchmark، بنچمارک CIS مربوط به container runtime، سند NIST SP 800-190 و فهرست OWASP Docker Top 10. هر دو نیمهی مسئله را میبینیم: آنچه درون یک image پخته شده است (لایهی پایهی آسیبپذیر، secretی که اشتباهی داخل image مانده، فرآیندی که با کاربر root اجرا میشود) و آنچه runtime اجازه میدهد (capabilityهای اضافی لینوکس، اتصال قابلنوشتن به میزبان، مسیری از درون کانتینر به میزبان). هر یافته تا یک اثبات عملی دنبال میشود، در کنار اثر واقعیاش با CVSS رتبه میگیرد و همراه با یک گام مشخص سختسازی نوشته میشود.
چه چیزی شامل میشود
اسکن آسیبپذیری image: لایهی پایه و بستههای نصبشده در برابر CVEهای شناختهشده
بازبینی Dockerfile و فرآیند ساخت: کاربر root، secretهای جامانده در لایهها، تگ پایهی بدون قفل نسخه و افشا در زمان ساخت
پیکربندی runtime: حالت privileged، capabilityهای افزودهی لینوکس، namespaceهای میزبان و فایلسیستم ریشهی فقطخواندنی
کنترلهای جداسازی: پروفایلهای seccomp و AppArmor یا SELinux و user namespaceها
فرار از کانتینر و دسترسی به میزبان از یک کانتینر بهخطرافتاده
نگهداری secret و اعتبارنامه در imageها، متغیرهای محیطی و mountها
افشای Docker daemon و socket، از جمله docker.sock متصلشده
امنیت registry: احراز هویت، امضا و اصالت image و سیاستهای pull
محدودیت منابع و در معرض بودن در برابر منع سرویس
سختسازی پیکربندی با سنجش در برابر CIS Docker Benchmark
چگونه کار میکند
- خلاصهی اجرایی با نمای کلی ریسک برای تصمیمگیرندگان
- گزارش فنی تفصیلی، هر یافته با اثبات مفهوم تکرارپذیر
- نتایج اسکن آسیبپذیری image همراه با بستههای متأثر و نسخههای رفعشده
- یافتههای Dockerfile و ساخت همراه با رفعهای مشخص
- بازبینی runtime و جداسازی با نگاشت به CIS Docker Benchmark
- شدت CVSS و اثر کسبوکار برای هر یافته
- نقشهی راه سختسازی کانتینر با اولویت
- تست مجدد پس از رفع
چرا وادی ایمن حافظ
سوالات متداول
ارزیابی امنیت کانتینر، imageهای کانتینر و محیط اجرای آنها را برای ضعفهای امنیتی میسنجد: لایههای آسیبپذیر image، گامهای ناامن ساخت، تنظیمات بیش از حد باز runtime، فرار از کانتینر و افشای secret؛ در برابر CIS Docker Benchmark، NIST SP 800-190 و OWASP Docker Top 10، و هر یافته اثبات و رتبهبندی میشود.
CIS Docker Benchmark و بنچمارک CIS مربوط به container runtime برای سختسازی پیکربندی، سند NIST SP 800-190 برای مدل تهدید کانتینرهای کاربردی، و OWASP Docker Top 10 برای دستههای رایج ریسک.
برای بازبینی imageها باید بتوانیم آنها را از registry شما pull کنیم یا فایلهای tar صادرشده را دریافت کنیم. برای تست runtime و فرار، به میزبانی که container runtime را اجرا میکند یا یک پایگاه فرضِنفوذ درون یک کانتینر نیاز داریم. پیش از شروع، دامنه و هر چیزی را که باید کنار گذاشته شود توافق میکنیم.
هر دو، و هرکدام به پرسشی متفاوت پاسخ میدهند. تحلیل image لایههای آسیبپذیر، secretها و انتخابهای ناامن ساخت را مییابد؛ تست runtime نشان میدهد آن imageها در عمل روی میزبان مجاز به چه کاری هستند. دامنه میتواند فقطimage باشد اگر همین کافی است، اما این دو با هم تصویر واقعی را میدهند.
فرار از کانتینر یعنی یک فرآیند از کانتینر خود به میزبان میگریزد؛ معمولاً از راه یک پرچم privileged، یک capability افزوده، یک mount میزبان یا socket متصلشدهی Docker. اهمیتش از اینجاست که یک کانتینر بهخطرافتاده را به تسلط بر میزبان و همهی کانتینرهای دیگر روی آن تبدیل میکند، و یک اسکن سادهی آسیبپذیری آن را نمیبیند.
بله. افشای daemon و socket را بررسی میکنیم (یک docker.sock متصلشده به کانتینر عملاً برابر با root میزبان است) و همچنین registry را: احراز هویت، اینکه imageها امضا شده و اصالتشان بررسی میشود یا نه، و اینکه سیاستهای pull اجازهی imageهای نامطمئن را میدهند یا خیر.
تحلیل image و بازبینی پیکربندی فقطخواندنی و ایمن است. آزمونهای فعال (تلاش برای فرار) از پیش توافق و با احتیاط اجرا میشوند؛ ترجیح ما یک محیط staging است که آینهی تولید باشد، و اگر ناچار روی تولید تست کنیم، محدودیت میگذاریم و یک نقطهی تماس در سمت شما نگه میداریم تا اگر چیزی نادرست به نظر رسید فوراً متوقف شویم.
هر یافته یک امتیاز CVSS برای یک مبنای مشترک میگیرد که با اثر واقعی در محیط شما تعدیل میشود: مهاجم به چه میرسد، چقدر آسان، و آیا به میزبان یا دادهی حساس میانجامد. به همین دلیل دو مسئله با CVSS یکسان ممکن است اولویت متفاوت بگیرند.
بله؛ پس از رفع، یافتههای گزارششده را دوباره تست میکنیم تا مطمئن شویم هر رفع پابرجاست و شکاف تازهای باز نکرده است. مدت زمان به تعداد imageها و پیچیدگی runtime بستگی دارد؛ یک ارزیابی معمول حدود یک تا سه هفته طول میکشد و پس از دامنهگذاری برآورد دقیق میدهیم.
سرویسهای مرتبط
خدمات تکمیلی که ممکن است برای شما مفید باشند