كيفية تعزيز صور Docker لتحقيق أقصى قدر من الأمان

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




ما هو تقوية الصورة؟

يشير “تقوية” الصورة إلى تحليل حالة الأمان الحالية ثم إجراء تحسينات لمعالجة أي مخاوف. اختيار صورة أساسية مبنية مسبقًا مثل

ubuntu:latest 

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

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

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

مسح صورتك

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


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

لقطة شاشة لتقرير تريفي

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


لقطة شاشة لـ "مسح الحاوية" الناتج

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

راجع تحليلك

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


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

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

تنفيذ طبقات التخفيف الخاصة بك

الآن بعد أن حددت ما ستعالجه، حان الوقت لتطبيق الحماية على ملف Dockerfile. أنشئ ملف Dockerfile وسيطًا جديدًا يقع بين الصورة الأساسية التي تقوم بتقويتها وصورة التطبيق التي تليها:

FROM insecure-base-image:latest 

RUN apt update -y && apt install -y unpatched-package

docker build -t secure-base-image:latest . 




docker push example.com/secure-base-image:latest

قم الآن بتعديل ملف Dockerfile الخاص بتطبيقك للإشارة إلى الإصدار المعزز من الصورة:

--- FROM insecure-base-image:latest 

+++ FROM secure-base-image:latest

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

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


معالجة نقاط الضعف التي لا يمكن لعمليات المسح اكتشافها

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

يمكن أن يتسلل الكود الضار أثناء تنزيل الملفات الثنائية في ملف Dockerfile الخاص بك. تعد تبعيات الكود المصدري المضافة عبر مدير الحزم ناقل هجوم آخر قابل للتطبيق.

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

استخدام الصور المقواة مسبقًا

تتوفر بعض الصور المجهزة مسبقًا عندما لا ترغب في صياغة صورك الخاصة. وتأتي المجموعة الأكثر شهرة من مركز أمن الإنترنت (CIS) ويتضمن خيارات Debian وUbuntu وCentOS وRHEL وSUSE وNGINX وPostgreSQL وWindows Server، وغيرها. كل صورة جاهزة للنشر لدى موفري الخدمات السحابية المشهورين.


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

هناك المزيد للتفكير فيه

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

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


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

خاتمة

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

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


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

أضف تعليق