حفظ امنیت در محیط کوبرنتیز جدای از اینکه ممکن است سخت و چالشبرانگیز باشد، بسیار ضروری است. در نتیجه آشنایی با ساختار و وضعیت امنیتی کوبرنتیز و آشنایی با ابزارهای امنیتی آن بسیار مهم بوده و نیاز است که در اولویت قرار بگیرد.
عمده کاری که ابزارهای امنیتی در کوبرنتیز انجام میدهند، بررسی آسیبپذیریهای کلاستر، پیکربندیهای اشتباه و مشکلات دیگر مربوط به پیادهسازی کوبرنتیز است. با در نظر گرفتن این موضوع، در این مطلب قصد داریم شما را ابتدا با لایههای مختلف امنیتی کوبرنتیز آشنا کنیم و سپس سراغ ابزارهایی برویم که در پیادهسازی و نگهداری امنتر کوبرنتیز به ما کمک میکنند.
لایههای امنیت در کوبرنتیز
مبحث امنیت در کوبرنتیز به چهار لایه تقسیم میشود این چهار لایه با عنوان 4Cs of Kubernetes security شناخته شده و شامل لایههای زیر میشود:
- لایه ابری
- لایه کلاستر
- لایه کانتینر
- لایه کُد
هر کدام از این لایهها در واقع سطوحی هستند که باید امنیت کوبرنتیز در آنها تضمین شود. اما هر کدام از این لایهها به چه صورتی روی موضوع امنیت دلالت میکنند و چگونه میتوان امنیت را برای آنها پیادهسازی کرد؟
لایه ابری
لایه ابری اصلیترین لایهای است که در ساختار امنیتی کوبرنتیز در نظر گرفته میشود. در نتیجه اگر امنیت این لایه پایین باشد، امنیت تمام لایههای دیگر پایین خواهد بود. با در نظر گرفتن این موضوع میتوان نتیجه گرفت که اولین لایه برای نگرانیهای امنیتی باید همین لایه ابری باشد. در هر نوع پلتفرم ابری، رعایت یکسری موارد امنیتی و رویکردهای پیشنهادی ضروری بوده و باید آنها را جدی بگیرید.
لایه کلاستر
لایه بعدی لایه کلاستر است. در این لایه عمده نگرانیهای امنیتی به دو بخش تقسیم میشوند: کامپوننتهای کلاستر و اپلیکیشنهای در حال اجرا روی کلاستر. در ادامه چند رویکرد کلی برای برقراری امنیت در لایه کلاستر را معرفی خواهیم کرد اما همواره باید یک قدم پیشتر رفت و موارد دیگری را نیز در نظر داشت:
- تمام ترافیکهای ورودی به کلاستر از طریق APIها باید رمزنگاری (TLS) شده باشند.
- جداسازی namespaceها براساس کارکردی که دارند.
- تعداد کاربرانی که بهصورت همزمان میتوانند به یک منبع دسترسی داشته باشند را محدود کنید.
- برقراری نهایت امنیت برای دسترسی به kubectl.
- اضافه کردن role base access control یا کنترل دسترسی براساس نقش.
- جلوگیری از اجرای غیرضروری ماژولهای کرنل توسط کانتینرها.
- مسدود کردن هرگونه دسترسی به متاداده مربوط به Cloud API.
لایه کانتینر
لایه سوم امنیت کوبرنتیز مربوط به کانتینرها میشود. در زیر چند مورد از بهترین رویکردها برای امنسازی این لایه عنوان شده است:
- پایهایترین رویکرد برای حل مشکلات امنیتی لایه کانتینر استفاده از ایمیجهای رسمی و معتبر است. از ایمیجهایی که شناخته شده نیستند و یا ممکن است مشکلات امنیتی داشته باشند دوری کنید.
- رجیستری را با اسکن ایمیجها و بررسی دسترسیهای کنترل امن نگهدارید.
- ایزولهسازی را جدی گرفته و از runtimeهای درست برای این موضوع استفاده کنید.
- از Docker Scout استفاده کنید، Docker Scout ابزاری برای بررسی لایههای مختلف یک کانتینر ایمیج برای بررسی آسیبپذیریهاست.
لایه کُد
کد آخرین لایه از امنیت کوبرنتیز است که بسیاری از حملات در آن صورت میگیرد. در ادامه برخی از مهمترین رویکردهای امنیتی برای حفظ امنیت لایه کد آورده شده است:
- سطح دسترسی به کدها را بهصورت مداوم بررسی کنید و تمام دسترسیها را از پروتکل TLS عبور دهید.
- استانداردهای امنیتی در حوزه کدنویسی را رعایت کرده و مطمئن شوید که در ساختار کدهایتان مشکلات عمده امنیتی وجود ندارند.
- حملات مختلف این لایه را شبیهسازی کرده و کُدهایتان را در بهترین وضعیت برای مقابله با این گونه از حملات نگهدارید.
- پیادهسازی Audit Logging بهعنوان یکی از کارهای مهم در سازمانهای بزرگ در نظر گرفته میشود. Audit Logging به فرایند مستندسازی تمام فعالیتها در یک سیستم نرمافزاری گفته میشود. در این ساختار تمام رخدادها به همراه زمان اتفاق افتادن ثبت میشود.
بهترین ابزارهای امنیتی کوبرنتیز
حال که با اصلیترین لایههای امنیتی در کوبرنتیز آشنا شدیم نوبت آن است که سراغ برخی از مهمترین ابزارهای امنیتی کوبرنتیز رفته و آنها را بررسی کنیم.
Cillium
تمرکز اصلی ابزار Cillium روی بخش Networking است. عمده استفاده از این ابزار برای مانیتورینگ و مشاهدهپذیری شبکه در محیط کلاستر کوبرنتیز است. با استفاده از این ابزار میتوان حملات را رهگیری کرد و همچنین سیاستهای دقیقی را روی شبکه اعمال نمود.
Falco
تمرکز اصلی ابزار Falco روی امنسازی محیط اجرایی یا Runtime است. این ابزار قابلیت رهگیری و مانیتور فعالیتها را به شما داده و همچنین در تشخیص خطاها به شما کمک خواهد کرد. با ارسال هشدارها بهصورت Real-time این ابزار کمک میکند تا بتوانید در سریعترین زمان ممکن به مشکلات پاسخ داده و آنها را حل کنید.
Checkov
تمرکز اصلی ابزار Checkov روی برقراری امنیت IaC است. این ابزار پیکربندیهای شما را اسکن کرده و هرگونه خطای پیکربندی را اطلاع میدهد.
Kong
تمرکز اصلی ابزار Kong روی حفظ امنیت API Server در کلاستر کوبرنتیز است. با استفاده از این ابزار میتوانید برای APIهای در حال اجرا روی کلاستر قابلیتهای احرازهویت، اعتبارسنجی و کنترل دسترسی را فراهم کرد. همچنین این ابزار در رمزنگاری ارتباط میان سرویسها نقش ایفا میکند.
Hubble
Hubble ابزار مشاهدهپذیری شبکه، امنیت و سرویسها در کوبرنتیز است. بخشی از کار اصلی این ابزار alerting یا همان هشداردهی در سطح کوبرنتیز است. به این معنا که اگر در فرایندهای Networking و Security مشکلی وجود داشته باشد این ابزار میتواند به شما alert بدهد. این ابزار بر پایه Cillium ایجاد شده است.
در پایان
برقراری امنیت برای کوبرنتیز از جمله مهمترین کارهاییست که در جهت ایمنسازی زیرساخت باید انجام داد. در این مطلب ابتدا با ۴ لایه اصلی امنیت کوبرنتیز آشنا شدیم و سپس ۴ ابزار کاربردی برای برقراری امنیت در کوبرنتیز را معرفی کردیم.