فحص الأمان (المفقود) لمنشآت Docker و Kubernetes النموذجية

فحص الأمان (المفقود) لمنشآت Docker و Kubernetes النموذجية
لقد عملت في مجال تكنولوجيا المعلومات لأكثر من 20 عامًا، ولكن لسبب ما لم أتمكن من الوصول إلى الحاويات مطلقًا. من الناحية النظرية، فهمت كيف تم تنظيمها وكيف عملت. لكن بما أنني لم أقابلهم عمليًا من قبل، لم أكن متأكدًا من مدى دقة دوران التروس الموجودة أسفل غطاء محرك السيارة.

علاوة على ذلك، لم يكن لدي أي فكرة عن مدى أمانهم. ولكن مرة أخرى، تبدو النظرية لطيفة، والأغنية القديمة "كلما زاد الأمان، انخفضت سهولة الاستخدام" ظلت عالقة في ذهني. لذلك اعتقدت أنه نظرًا لسهولة القيام بكل شيء باستخدام الحاويات، فإن مستوى الأمان هناك أقل من المستوى المطلوب. وكما تبين، كنت على حق.

للبدء بسرعة، قمت بالتسجيل في الدورات قبعة سوداء 2020 بعنوان "من الفقر إلى الثروات: اختراق وحماية بيئات Docker Swarm وKubernetes".

بدأت الدورة التدريبية، التي قام بتدريسها شيلا أ. بيرتا وسول أوزان، على الفور بوصف كيفية عمل حاويات Docker والرحلة التي تقوم بها عند نشرها في Kubernetes. كان هذا فصلًا دراسيًا عمليًا بالكامل - كان على الطلاب تثبيت Docker وmicrok8s على أجهزتهم قبل الفصل - وهي طريقة رائعة لمعرفة كيفية تفاعل الأدوات مع بعضها البعض، والعثور على نقاط الضعف، والأهم من ذلك، محاولة حظرها.

لسوء الحظ، على الرغم من أن الدورات وعدت بأن أصبح "أميرًا" بعد يومين، إلا أنني شعرت أن كل شيء بدأ للتو، ولا يزال لدي الكثير لأتعلمه.

فحص الأمان (المفقود) لمنشآت Docker و Kubernetes النموذجية

قبل الغوص في ملاحظاتي السامية، من المهم أن أشرح ما هي الحاوية. في عالم التطوير، يعتبر من الطبيعي أن تعمل التعليمات البرمجية المكتوبة على جهازك الشخصي بشكل مثالي، ولكن عندما تحاول تشغيلها على خادم في مكان ما، فإنها ببساطة لا تعمل. تحاول الحاويات التغلب على هذه المشكلة من خلال توفير أجهزة قائمة بذاتها يمكنك نقلها بسهولة من خادم إلى آخر، مع العلم أنها ستعمل دائمًا. وكما يوحي الاسم، فهي تحتوي على التعليمات البرمجية والمكتبات والبرامج الأخرى اللازمة لإنجاز المهمة. أما Kubernetes، من ناحية أخرى، فهو كذلك منصة تنسيق للحاويات. من حيث المبدأ، يمكن استخدامه لإدارة مئات أو آلاف الحاويات المختلفة بسلاسة.

فيما يلي بعض النتائج التي توصلت إليها من وجهة نظر الفريق الأحمر والأزرق.

الفريق الأحمر

تعمل معظم محتويات الحاوية كجذر: هذا يعني أنه في حالة اختراق الحاوية، سيكون لديك حق الوصول الكامل إلى الحاوية. وهذا يجعل الخطوات التالية أسهل بكثير.

يعد تركيب docker.sock داخل الحاوية أمرًا خطيرًا: إذا كان لديك جذر داخل حاوية وقمت أيضًا بتثبيت Docker داخل حاوية تحتوي على مقبس Docker (/var/run/docker.sock)، فلديك القدرة على استكشاف المجموعة بأكملها، بما في ذلك الوصول إلى أي حاوية أخرى. لا يمكن منع هذا الوصول عن طريق عزل الشبكة أو وسائل أخرى.

غالبًا ما تحتوي متغيرات البيئة على بيانات سرية: في معظم الحالات، يرسل الأشخاص كلمات مرور إلى الحاوية باستخدام متغيرات البيئة العادية. لذا، إذا كان لديك حق الوصول إلى الحساب، فيمكنك التجسس على متغيرات البيئة هذه من أجل توسيع صلاحياتك لاحقًا.

يمكن لـ Docker API تقديم الكثير من المعلومات: تعمل واجهة Docker API، عند تكوينها افتراضيًا، بدون ترخيص ويمكن أن تنتج قدرًا كبيرًا من المعلومات. باستخدام Shodan، يمكنك بسهولة العثور على قائمة بالمنافذ المفتوحة، ثم الحصول على معلومات مفصلة حول المجموعة - والمتابعة إلى التقاطها بالكامل. كتب TrendMicro عن هذا المادة الأكثر إثارة للاهتمام.

فريق أزرق

لا تقم بتشغيل محتويات الحاوية كجذر: على الرغم من أنه من الأسهل تشغيله كجذر، إلا أنه لا ينبغي عليك القيام بذلك. بدلاً من ذلك، قم بتشغيل التطبيقات مع أذونات إعادة التعيين عن طريق عرض المعرف الفريد (uid)، إما باستخدام خيار --user عند التشغيل من واجهة سطر الأوامر (CLI)، أو عن طريق تحديد USER في ملف Dockerfile.

لا تسمح بتثبيت البرامج في الحاويات: تقريبًا كل هجوم يبدأ بزراعة شيء ما. من nmap إلى ifconfig إلى Docker نفسه (داخل الحاوية)، أصبح تثبيت أي شيء في الحاوية أمرًا شائعًا. لنفس السبب، يجب عليك دائمًا حظر جميع المنافذ غير المستخدمة. ويساعد هذا أيضًا على منع إرسال أوامر التحكم عند إصابة جهازك. بالإضافة إلى منع تثبيت البرامج، يجدر التأكد من تثبيت الحد الأدنى لعدد التطبيقات المطلوبة لإكمال المهمة في الحاوية نفسها.

حماية docker.sock: يجب حمايته لأن الاتصال بين الحاوية والمجموعة تتم معالجته من خلال هذا المقبس. وبما أنني لا أريد الخوض في التفاصيل في هذا المقال، اقرأ ملاحظة من دوكروما يمكن أن يحدث، وكذلك كيفية منع كل شيء.

استخدم أسرار Docker بدلاً من متغيرات البيئة: هناك أسرار منذ عام 2017 تقريبًا. على الرغم من أن هذا غير آمن، إلا أنه لا يزال أفضل من متغيرات البيئة لتمرير البيانات السرية إلى الحاوية.

إذا أثارت المقالة اهتمامك بالحاويات، فيمكنك بسهولة تثبيت Docker أو microk8s (نسخة صغيرة من Kubernetes). ومن توجد تعليمات لتثبيت Docker لنظامي التشغيل Linux وMacOS، و هنا - تعليمات لتثبيت microk8s لأنظمة التشغيل Windows وLinux وMacOS.

بعد التثبيت يمكنك الذهاب هذا دليل البدء السريع من دوكر، خيار مماثل تقدم و لmicrok8s.

إذا كنت تريد أو تحتاج إلى الحصول على دورة تدريبية شاملة حول Docker، حيث يقوم متحدثون عمليون بفحص جميع أدواته: بدءًا من التجريدات الأساسية وحتى معلمات الشبكة والفروق الدقيقة في العمل مع أنظمة التشغيل ولغات البرمجة المختلفة، فحاول "دورة فيديو دوكر" سوف تتعرف على التكنولوجيا وتفهم أين وأفضل طريقة لاستخدام Docker. وفي الوقت نفسه، احصل على حالات أفضل الممارسات - من الأفضل أن تتعلم بأمان وبدعم من الممارسين من القصص المتعلقة بالمكابس بدلاً من التعلم شخصيًا من المكابس نفسها ذات المقابض المسننة.

المصدر: www.habr.com

إضافة تعليق