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

فهم هندسة دوكر

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

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

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

سطح الهجوم

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

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

اقرأ أيضاً :  كيفية فتح أو تحويل أو فتح الملفات بامتداد DM

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

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

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

وضع الجذور

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

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

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

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

أمان واجهة برمجة تطبيقات REST

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

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

اقرأ أيضاً :  كيف أضع علامة القوس مع لوحة مفاتيح جهاز الكمبيوتر الخاص بي؟ - أوامر مفيدة

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

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

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

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

قم بتشغيل Docker daemon مع --icc=falseالعلم لتعطيل الاتصال عبر docker0الجسر.

تقييد قدرات Conainer

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

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

docker run --cap-drop all --cap-add SYSLOG example-image: latest

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

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

اقرأ أيضاً :  تسريع أداء جهاز الكمبيوتر الخاص بك

تمكين ميزات Kernel المضمنة

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

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

أساسيات

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

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

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

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

اترك تعليقاً

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