تكنولوجيا

كيفية تقييم أمان محرك Docker – CloudSavvy IT

يمكّن Docker مطوري البرامج ومهندسي DevOps من حزم التطبيقات بسرعة للإنتاج. تعمل حاوية Docker بشكل مستقل عن مضيفها ، لكنها لن تتأثر بالتهديدات الأمنية. هذه طريقة لتدقيق تثبيت Docker Engine لضمان أقصى قدر من الأمان للمضيف وعبء العمل.

افهم بنية Docker

تتمثل الخطوة الأولى في تقييم مخاطر Docker في فهم كيفية عمل التكنولوجيا بالفعل. يتم دعم Docker بثلاثة مكونات مختلفة:

  • Docker Motor daemon – خدمات Back again-stop ، تُستخدم لإدارة العمليات خلف الكواليس للحاويات والصور.
  • Relaxation API – يوفر Docker Engine واجهة برمجة تطبيقات Relaxation ترسل أوامر إلى Docker daemon. يتم توفير واجهة برمجة التطبيقات (API) عادةً عبر مقبس Rest ، ولكن قد يتم كشفها أيضًا عبر HTTP.
  • عميل سطر أوامر Docker يعمل Docker CLI عند استخدامه docker في محطة. يرسل أوامر إلى Docker daemon. قم بمعالجة الأمر لتحديد الإجراء المطلوب اتخاذه.

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

هجوم السطح

يقدم Docker daemon أكبر سطح هجوم. من خلال التحكم في البرنامج الخفي ، يمكنك الوصول إلى المضيف وجميع الحاويات.يبدأ البرنامج الخفي عادةً بـ root، لذلك يمكن أن يمنح التسلل الناجح وصولاً غير مقيد إلى الكمبيوتر المادي.

يجب عليك التأكد من أن مقبس Docker daemon (/var/operate/docker.sockلا أحد باستثناء) يمكنه الوصول root المستعمل. نظرًا لأن البرنامج الخفي يمكنه الوصول إلى المضيف ، فإن توفير الوصول إلى المقبس يمكن أن ينقل بشكل فعال التحكم في الكمبيوتر.

يدعم Docker daemon مآخذ TCP ، والتي يمكنها تحقيق التحكم عن بعد في الشبكة. إذا تم تمكين هذه الميزة ، يمكن توفير الاتصال غير المشفر بدون أي مصادقة.

ما لم تكن في بيئة شبكة تم تكوينها خصيصًا لتكون آمنة ، تجنب استخدام اتصالات TCP. يجب عليك إعداد TLS والتأكد من أنه لا يُسمح إلا للعملاء المصرح لهم بالاتصال.

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

وضع الجذور

يدعم Docker الآن الوضع بدون جذر ، والذي يسمح لك بتشغيل Docker بدون root حق الاستخدام. يساعد هذا في تحسين الأمان ، ولكنه يقدم تعقيدًا إضافيًا عند الإعداد.

استخدم وضع الجذور لتشغيل Docker وحاويتك في مساحة اسم المستخدم. على الرغم من بعض القيود ، يمكن استخدام معظم ميزات Docker.

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

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

أمان Rest API

عادة ما يتم الوصول إلى Docker Relaxation API من خلال مآخذ UNIX. استخدم آليات UNIX القياسية لفحص الأذونات.

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

يجب عليك مراجعة سياسة جدار الحماية لديك لتجنب تجاهل الأجهزة التي قد تتفاعل مع Docker API.تذكر تقييد الاتصال بـ localhost لا يكفي – سيظل هذا يسمح بالوصول من حاوية Docker التي تعمل على جهاز الكمبيوتر الخاص بك ، مما قد يؤدي إلى تصعيد الامتياز بشكل غير متوقع.

تقييد الاتصال بين الحاويات

يسمح Docker لجميع الحاويات بالتواصل مع بعضها البعض افتراضيًا docker0 شبكة موصولة. قد تتطفل الحاوية المخترقة على الشبكة لفهم بيئتها. يمكنه استخدام شبكة الجسر كميزة لبدء اختراق أوسع لأعباء عملك.

يمكن أن يؤدي تعطيل الاتصال بين الحاويات إلى تحسين الأمان من خلال تعزيز عزل الحاوية.تحتاج إلى استخدام لربط الحاويات معًا بشكل صريح --website link=ContainerName الشعار أو شبكة Docker الخاصة بك.

قم بتشغيل Docker daemon باستخدام الأمر التالي --icc=phony ضع علامة لتعطيل التمرير docker0 كوبري.

تقييد القدرة على الاتصال

تحدد وظائف Linux kernel العمليات التي يمكن للمستخدمين استخدامها root حق الاستخدام.تساعد الميزة في تأمين العمليات التي تعمل بالطريقة التالية root، مثل حاوية Docker. يجب أن توفر كل عملية الحد الأدنى من مجموعة الوظائف المطلوبة.

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

docker run --cap-fall all --cap-include SYSLOG illustration-image:hottest

سيتم تشغيل الأمر أعلاه فقط في الحاوية SYSLOG قدرة.هذا --cap-fall تتجاهل العلامة قائمة الوظائف الافتراضية.ثم أضف الوظيفة مرة أخرى --cap-includeلإنشاء قائمة بيضاء.

يجدر تقييم الحاوية الخاصة بك بناءً على قائمة ميزات النواة. قم بإزالة جميع الميزات غير المستخدمة من الحاويات قيد الإنتاج. هذا يساعد في تقليل الضرر المحتمل من الحاويات التالفة.

تمكين وظائف kernel المضمنة

لا تتجاهل ميزات الأمان المضمنة في النواة. يمكن استخدام Docker مع التقنيات الحالية مثل AppArmor و SELinux.

تأتي بعض التوزيعات (مثل RedHat Linux) مع سياسات نظام SELinux المحددة مسبقًا لتعزيز أمان Docker.يمكنك إضافة دعم SELinux يدويًا عن طريق تشغيل Docker daemon مع Docker daemon --selinux-enabled لافتة. سيؤدي هذا إلى تنشيط سياسة Docker لتعيين علامات SELinux على حاوياتك. يوفر SELinux عزلًا أفضل بين عملية الحاوية وعملية المضيف ، وبالتالي تحسين حالة الأمان الخاصة بك.

معرفة أساسية

يمكن حل الجوانب المعقدة لأمان Docker بسهولة: الوضع الخالي من الجذر ، والوصول الخفي ، واتصالات الحاوية. ومع ذلك ، يرجى عدم تجاهل ممارسات الأمان القياسية الأساسية التي لا تزال سارية.

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

من الأفضل تخصيص جهاز مادي معين أو جهاز افتراضي لتشغيل Docker. لا تقم بتشغيل أي خدمات أخرى مباشرة على المضيف. يمكنك تشغيلها كحاويات لتقليل تأثير تدمير المضيف بنجاح.

بمجرد تكوينه بشكل صحيح ، يمكن لـ Docker تحسين الأمان عن طريق عزل التطبيقات. سيساعدك تخصيص الوقت لتقييم موقعك على تحديد المخاطر المحتملة وفهم كيفية بدء الهجوم. سيساعدك تأمين امتيازات الحاوية وحماية Docker daemon والحفاظ على تحديث المضيف على تقوية الحاوية.

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى