The Docker Bench For Security - سيناريو يكتشف لعشرات من أفضل الممارسات الشائعة حول نشر حاويات عمال الإنتاج في الإنتاج




إن Docker Bench for Security هو برنامج نصي يقوم بالتحقق من العشرات من أفضل الممارسات الشائعة حول نشر حاويات Docker في الإنتاج. جميع الاختبارات تلقائية ، وهي مستوحاة من معيار CIS Docker Community Edition Benchmark v1.1.0 . نحن نعلن عن هذا كمتابعة لمدونة " التفاهم حول الأمن وأفضل الممارسات" .
نحن نجعل ذلك متاحًا كأداة مساعدة مفتوحة المصدر ، لذا يمكن لمجتمع Docker أن يكون لديه طريقة سهلة لتقييم ذاتي لمضيفيه وحاويات عمال الشحن مقابل هذا المعيار.

Running Docker Bench for Security
نحن حزم مقاعد البدلاء عامل ميناء حاوية صغيرة لراحتك. لاحظ أنه يتم تشغيل هذه الحاوية مع الكثير من الامتيازات - مشاركة نظام الملفات الخاص بالمضيف ، ومساحات أسماء pid و network ، بسبب أجزاء من المعيار المطبق على المضيف الجاري تشغيله. لا تنسَ تعديل وحدات التخزين المشتركة وفقًا لنظام التشغيل لديك ، على سبيل المثال قد لا تستخدم systemd. 
أسهل طريقة لتشغيل مضيفيك مقابل Docker Bench for Security هي تشغيل الحاوية سابقة التركيب:
docker run -it --net host --pid host --userns host --cap-add audit_control \
     -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \
     -v /var/lib:/var/lib \
     -v /var/run/docker.sock:/var/run/docker.sock \
     -v /usr/lib/systemd:/usr/lib/systemd \
     -v /etc:/etc --label docker_bench_security \
     docker/docker-bench-security
يتطلب مقعد Docker Docker 1.13.0 أو ما بعده لكي يعمل. 
لاحظ أنه عندما لا يحتوي التوزيعات auditctl، و مراجعة الاختبارات سوف تحقق /etc/audit/audit.rulesلمعرفة ما اذا كان الحكم موجودا بدلا من ذلك. 
يتوفر Dockerfiles محددة التوزيع التي تعمل على إصلاح هذه المشكلة في الدليل distros . 
و Dockerfiles محددة التوزيع قد يساعد أيضا إذا كان التوزيع الذي تستخدمه لم يتم شحنها بعد عامل الميناء النسخة 1.13.0 أو في وقت لاحق. 

عامل الميناء عامل للحصول على خيارات الأمان
  -b           optional  Do not print colors
   -h           optional  Print this help message
   -l FILE      optional  Log output in FILE
   -c CHECK     optional  Comma delimited list of specific check(s)
   -e CHECK     optional  Comma delimited list of specific check(s) to exclude
   -i INCLUDE   optional  Comma delimited list of patterns within a container name to check
   -x EXCLUDE   optional  Comma delimited list of patterns within a container name to exclude from check
بشكل افتراضي ، سيقوم برنامج Docker Bench for Security بتشغيل جميع اختبارات CIS المتوفرة وإنشاء سجلات في الدليل الحالي المسمى docker-bench-security.sh.log.jsonو docker-bench-security.sh.log. يتم تسمية الشيكات القائمة على CIS check_
_
، على سبيل المثال check_2_6ويتم تسمية الشيكات المساهمة المجتمعية check_c_. قائمة كاملة من الشيكات موجودة في functions_lib.sh . 
sh docker-bench-security.sh -l /tmp/docker-bench-security.sh.log -c check_2_2سيتم تشغيل الاختيار فقط 2.2 Ensure the logging level is set to 'info'. 
sh docker-bench-security.sh -l /tmp/docker-bench-security.sh.log -e check_2_2سيدير ​​جميع الشيكات المتاحة باستثناء 2.2 Ensure the logging level is set to 'info'. 
لاحظ أنه عند تقديم الشيكات ، قدم معلومات عن سبب إجراء اختبار معقول لإضافتها ، ويرجى تضمين نوع من الوثائق الرسمية التي تتحقق من تلك المعلومات. 

بناء مقعد Docker للأمن
إذا كنت ترغب في بناء وتشغيل هذه الحاوية بنفسك ، يمكنك اتباع الخطوات التالية:
git clone https://github.com/docker/docker-bench-security.git
 cd docker-bench-security
 docker build --no-cache -t docker-bench-security .
 docker run -it --net host --pid host --cap-add audit_control \
     -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \
     -v /var/lib:/var/lib \
     -v /var/run/docker.sock:/var/run/docker.sock \
     -v /usr/lib/systemd:/usr/lib/systemd \
     -v /etc:/etc --label docker_bench_security \
     docker-bench-security
أو استخدام Docker يؤلف :
git clone https://github.com/docker/docker-bench-security.git
 cd docker-bench-security
 docker-compose run --rm docker-bench-security
أيضًا ، يمكن أيضًا تشغيل هذا البرنامج النصي ببساطة من مضيفك الأساسي عن طريق تشغيل:
git clone https://github.com/docker/docker-bench-security.git
 cd docker-bench-security
 sudo sh docker-bench-security.sh
تم إنشاء هذا البرنامج النصي ليكون متوافقًا مع POSIX 2004 ، لذلك يجب أن يكون محمولًا عبر أي نظام أساسي لنظام Unix.


تعليقات

المشاركات الشائعة من هذه المدونة