Security امنیت کانتینر داکر – میادین امنیت اطلاعات

من راهنمایی کردم که چگونه Docker را تأمین کنم.

من آن را به 3 دسته تقسیم کردم.

بازخورد همیشه استقبال می شود ، زیرا این بیشتر مجموعه ای از روش های منابع دیگر است ، و علاوه بر این ، من همه نیستم.

دسته بندی مقاله ها:

  • اقداماتی که باید در سیستم عامل میزبان هنگام تعامل با Docker انجام شود
  • دستورالعمل های خاص برای پرونده پیکربندی مونتاژ و ایجاد ظروف
  • عملکرد امنیتی که می تواند با کارکردهای خاص ادغام شود. Docker Enterprise. [19659008] این راهنما از منابع مختلفی تهیه شده است ، که بسیاری از آنها در زیر آورده شده است.

    مقاله جامع نیست ، اما باید کلیه اصول را در بر بگیرد.

    با توجه به اینکه پوشش داده نمی شود ، می توانید در آزمون CIS در پایان این کتابچه راهنمای کاربر ، و همچنین در اسناد Docker مشاهده کنید.

    Benchmark Security Docker

    پرونده مشخص شده در اینجا (https://github.com / docker / docker-bench-Security 72) ، یک اسکریپت خودکار است که بسیاری از توصیه های رایج داکر را بررسی می کند.

    اسکریپت آزمون باید به عنوان یک آزمایش اکتشافی خوب برای امنیت شما در نظر گرفته شود ، اما نه به عنوان یک ابزار جامع تجزیه و تحلیل.

    میزبان سیستم عامل [19659015] بدیهی است ، در صورت محافظت از میزبان ، نمی توان از ظرف Docker محافظت کرد سیستم عامل جدید .

    بنابراین ، شما باید دستورالعمل های امنیتی عادی سیستم عامل را رعایت کنید ، و عاقلانه است که علاوه بر اجرای پیشنهادات زیر ، برخی از بررسی های آسیب پذیری را نیز انجام دهید.

    قوانین حسابرسی

    قوانین حسابرسی را برای پرونده ها ایجاد و استفاده کنید ، [بااستفادهازaudctlباDocker

    به عنوان مثال ، می توانید "-w / usr / bin / dockerd -k docker" را به /etc/auditd/audit.rules اضافه کنید و سپس خدمات ممیزی را مجدداً راه اندازی کنید. [19659021] حالت FIPS

    فعال کردن حالت FIPS ابزار رمزنگاری را مجبور می کند الگوریتم های خود را مطابق با با استانداردهای فدرال و صنعت و مقررات ایمنی مطابقت دارد.

    اگر سیستم میزبان شما از حالت FIPS پشتیبانی می کند ، می توانید با دنبال کردن این مراحل آن را فعال کنید:

 sed -i  's / GRUB_CMDLINE_LINUX = "/ GRUB_CMDLINE_LINUX =" fips = 1 / g ' / etc /  پیش فرض  / grub
grub2-mkconfig -o /boot/grub2/grub.cfg&& reboot 

همچنین با استفاده از دستور زیر نشان دادن FIPS را روی موتور Docker فعال کنید:

 mkdir  -p /etc/systemd/system/docker.service .d  2 > &  1 ؛  echo  -e  "[Service]  n Environment = " DOCKER_FIPS = 1  "" > /etc/systemd/system/docker.service.d/fips-module.conf ؛  systemctl  daemon-reload؛  systemctl  docker restart 

برای اطلاعات بیشتر به https://docs.docker.com/compliance/nist/fips140_2/ 10 مراجعه کنید و https://access.redhat.com/documentation/en- us / red_hat_enterprise_linux / 7 / html / protection_guide / chap-federal_standards_and_regulations

اسرار داکر

اطلاعات محرمانه باید با استفاده از سرویس Docker [] [تنظیم

را ایجاد کنند.

تنظیمات زیر می تواند به پرونده پیکربندی ، واقع در /etc/docker/daemon.jsonociation19659033† Selficc--------:►19459038-03false►19659034-03 اضافه شود این ارتباطات درون کانتینر را برای جلوگیری از نشت اطلاعات غیر ضروری غیرفعال می کند. [19659035] " log -level:" info "

این تنظیم به شما امکان می دهد تا تمام سیاهههای مربوط به عدم اشکال زدایی را ضبط کنید


   "log-driver" :  "syslog"  ،
   "log-opts" : {
     "syslog-address" :  "udp: //1.2.3.4: 1111" 
  }
} 

این تنظیم امکان ورود به سیستم از راه دور و ارسال سیاهههای مربوط به آدرس مشخص را فراهم می کند.

فقط درصورتی که سیستمعامل syslog در حال اجرا باشد کار می کند.

TCP و UDP به عنوان گزینه پذیرفته شده اند.

همچنین می تواند به عنوان یک پارامتر اجرا شود. در حال اجرا Docker (–log-opt syslog-address = ADRESS)

 "userns-remap": "Your_User"  

این تنظیم مانع از تلاش برای افزایش امتیاز با جداسازی فضای نام برای یک کاربر خاص می شود

TLS

اتصالات را به daemon Docker محدود کنید (در صورت نیاز برای فعال کردن دسترسی از راه دور) برای کاربرانی که دسترسی به اطلاعات مشتری دارند

افزونه های مجوز

تعیین کنید که کدام دستورات باید به کاربران خاص ارائه شود و یک افزونه مجوز برای Docker ایجاد کنید.

سپس ، هنگامی که Daemon Demoner را راه اندازی کردید ، افزونه را به این روش اضافه کنید:

 dockerd  - مجاز -plugin = PLUGIN_ID 

برای کسب اطلاعات در مورد ایجاد افزونه های مجوز ، به اسناد مراجعه کنید: https://docs.docker.com/engine/extend/plugins_authorization/roulette19659051† پارامترهای Demon

Demon Demon با مجموعه ای از پارامترهای پیش فرض کار می کند

 - زنده بازگرداندن  

به شما امکان می دهد تا حداکثر تعداد کانتینرهای موجود پس از خاموش شدن سیستم یا راه اندازی مجدد سیستم را به حداکثر رسانید.

این امر باعث می شود با حداقل خرابی

 - userland-proxy  =  کاذب بیشتر شود. 19659030] 

هنگامی که از NAT استفاده می شود ، سرور پروکسی کاربر به یک سرویس پشتیبان تبدیل می شود که تنها سطح حمله شما را افزایش می دهد.

متوقف می شود که ظروف دریافتکننده ظروف دارای امتیازات اضافی از طریق suid یا sguid را دریافت می کند.

 - seccomp-profile / path / to / profile  

اگر مشخصات seccomp خود را دارید ، می توانید از آن با پرونده Docker استفاده کنید.

تنظیمات پرونده کانتینر و اسناد

ایجاد کاربر

اطمینان حاصل کنید که کاربر ایجاد شده است. برای کانتینر خود ، و ظرف را به نمایندگی از این کاربر اجرا کنید (نه با آن کانتینر را به صورت ریشه اجرا کنید.

دسترسی از راه دور

اجازه دسترسی از راه دور به Daemon را نمی دهید ، و اگر به هر صورت نیاز داشتید ، این دسترسی را با مجوزها تأمین کنید.

فضای نام کاربری را جدا کنید

اطمینان از این امر بسیار مهم است. که فضای نام کاربری در داکر جدا شده است ، زیرا به طور پیش فرض در رابطه با نام نام میزبان استفاده می شود.

در بعضی موارد ، این امر برای بدست آوردن امتیاز افزایش یا حتی خارج کردن ظرف از آن سوءاستفاده می شود.

با ویرایش پرونده پیکربندی همانطور که در قسمت "پرونده پیکربندی داکر" ذکر شد ، یک فضای نام کاربری ایجاد کنید.

برای تأکید بر اهمیت این نکته در اینجا ذکر شده است.

Healthchecks

Healthcheck ابزاری قدرتمند است که می توانید برای تأیید صحت ظرف استفاده کنید ، و می توان آن را در پرونده Docker تنظیم کرد.

شما باید بررسی های بهداشتی را انجام دهید تا اطمینان حاصل کنید که ظرف شما به درستی کار می کند.

مثال بررسی سلامتی زیر حزب محافظه کار به پایان می رسد با 0 اگر سرور در حال اجرا است، مقدار 1 و اگر آن کار نمی کند

 HEALTHCHECK  CMD حلقه --fail HTTP :. // localhost را || خروج  1  

SELinux

E اگر SELinux توسط سیستم عامل شما پشتیبانی می شود ، یک سیاست SELinux ایجاد یا وارد کنید و Docker را در حالت Daemon با SELinux فعال کنید.

 docker  daemon --selinux-activated [19659080] سپس می توانید ظروف Docker را با تنظیمات امنیتی خود شروع کنید ، به عنوان مثال: 

 docker  run --interactive --tty --security-opt label = سطح: TopSecret centos / bin / bash 

رابط های شبکه [19659032] به طور پیش فرض ، داکر در هر رابط شبکه گوش می دهد.

از آنجا كه در بیشتر موارد ترافیك فقط در یك رابط پیش بینی می شود ، این بیش از حد افزایش می یابد. بالای حمله.

بنابراین ، هنگامی که ظرف را شروع می کنید ، می توانید درگاه های کانتینر را به رابط های خاص روی میزبان متصل کنید ، مانند تصویر زیر:

 docker run --detach - انتشار 10.2.3.4:49153:80 nginx 

نسخه کش

هنگامی که تصاویر را استخراج می کنید ، اطمینان حاصل کنید که حافظه نهان محلی مطابق با مخزن است.

در غیر این صورت ، می توانید نسخه ذخیره شده قدیمی از تصویر را که شامل آسیب پذیری ها است ، دریافت کنید.

Bridge Network

Model network by به طور پیش فرض ، docker0 در برابر کلاهبرداری ARP و سرریز MAC آسیب پذیر است.

برای رفع این مشکل mu ، مطابق مشخصات خود ، مطابق با مشخصات خود ، یک شبکه دلخواه مانند Bridge ایجاد کنید: https://docs.docker.com/network/bridge/ 5

سوکت داکر

هرگز سوکت داکر را درون یک ظرف اجرا نکنید. [19659095] این به این ظرف اجازه می دهد تا دستورات Docker را اجرا کند و بنابراین با سیستم عامل میزبان ارتباط برقرار کرده و کنترل می کند.

بنابراین این کار را نکنید.

تنظیمات نسخه Enterprise

Docker Trust

از ابزار اعتماد Docker برای تولید استفاده کنید. کلیدهایی که می توانند برای تأیید صحت رمزنگاری تصاویر شما استفاده شوند.

این کلیدها از Docker می توان برای امضا کردن تصاویر Docker با کلیدهای خصوصی استفاده کرد ، که می توان با استفاده از کلیدهای عمومی روی سرور اسناد رسمی تأیید شد.

برای اطلاعات بیشتر ، به https://docs.docker.com/engine/security/trust/content_trust/ مراجعه کنید. [19659091] برای تمرکز بر فعال کردن اعتماد Docker در Enterprise Engine ، به این بخش بروید https://docs.docker.com/engine/security/trust/content_trust/#enabling-dct-within-the-docker-enterprise-

اسکن آسیب پذیری

Docker Enterprise یک عملکرد اسکن آسیب پذیری داخلی دارد ، که شامل قابلیت بارگذاری یک پایگاه داده CVE برای اجرای sc مستقل است. Docker vuln images.

اسکن تصاویر به طور منظم با هشدار دادن به شما در مورد آسیب پذیری هایی که دارند ، به آنها در امنیت بیشتری کمک می کند.

می توانید در مورد چگونگی انجام این کار در اینجا بیشتر بدانید: https: //docs.docker .com / ee / dtr / کاربر / مدیریت-تصاویر / اسکن-تصاویر-برای آسیب پذیری ها [

ادغام LDAP با UCP

هواپیمای کنترل جهانی می تواند با LDAP برای یک سیستم تأیید هویت ساده امکان پذیر شود. از افزونگی غیرضروری خودداری کنید.

درباره توصیه های امنیتی داکر و منبع docs.docker.com اطلاعات موجود در این راهنما را می توانید در لیست های چک لیست مرکز امنیت اینترنتی داکر مشاهده کنید ، که می توانید در اینجا بارگیری کنید: https://learn.cisecurance.org/benchmarks