Qeyd: Bu Okta şirkətinin mükəmməl materialında OAuth və OIDC-nin (OpenID Connect) iş prinsipləri sadə və aydın şəkildə izah edilir.

Qeyd. tərc.: Docker təhlükəsizliyi mövzusu, müasir IT dünyasında əbədiyyət olanlardan biridir. Buna görə də, əlavə izah etmədən, müvafiq tövsiyələrdən ibarət yeni bir toplamanın tərcüməsini təqdim edirik. Əgər bu məsələ ilə maraqlanmışsınızsa, onlardan bir çoxu sizə tanış olacaq. Həmçinin, bu toplusu faydalı utilitələr və daha dərindən öyrənmək üçün bir neçə resurs siyahısı ilə tamamladıq.

Qeyd: Bu Okta şirkətinin mükəmməl materialında OAuth və OIDC-nin (OpenID Connect) iş prinsipləri sadə və aydın şəkildə izah edilir.

Daha diqqətə layiq olaraq, Docker təhlükəsizliyini təmin etməyə dair bir təlimat təqdim edirəm. Əks əlaqə yüksək qiymətləndirilir, çünki bu, müxtəlif resurslardan alınmış parçaların toplusudur və onların hamısı tam olaraq yoxlanılmamışdır. Tövsiyələr üç kateqoriyaya bölünüb:

  1. Docker ilə işləyərkən ev sahibi əməliyyat sisteminin içində lazımi tədbirlər;
  2. Yığılan faylın konfiqurasiyası və konteynerlərin yaradılması ilə bağlı təlimatlar;
  3. Docker Enterprise-ın spesifik funksiyaları ilə inteqrasiya edə bilən təhlükəsizlik alətləri.


Bu təlimatın əsası müxtəlif resurslar olub, bir çoxu aşağıda qeyd olunub. Onu tamamlamağa dair demək olmaz, lakin bütün əsasları əhatə edir. Əlavə məlumatı CIS testlərinin təsvirində (bu təlimatın sonunda link mövcuddur) və Docker-in sənədlərində tapa bilərsiniz.

Docker Təhlükəsizlik Standartı

Docker Təhlükəsizlik İbtidai Təhlili avtomatik olaraq Docker-inizin ən geniş yayılmış ən yaxşı təcrübələrə uyğunluğunu yoxlayır. Skript yaxşı bir heuristik təhlükəsizlik testi təqdim edir, lakin onu comprehensiv analizin aləti kimi qiymətləndirmək doğru olmaz.

Ev sahibi əməliyyat sistemi

Aydındır ki, Docker konteyneri qorunması mümkün deyil, əgər ev sahibi sistem özü qorunmursa. Buna görə də, əməliyyat sistemlərinin təhlükəsizliyini təmin etmək üçün ən yaxşı praktikalara riayət etmək vacibdir. Bununla yanaşı, aşağıdakı tövsiyələrə əlavə olaraq, zəifliklərin analizini aparmaq da müdrik olardı.

Auditoriya qaydaları

Docker ilə əlaqəli fayllar üçün auditoriya qaydaları yaradın və istifadə edin, istifadə edərək auditctl. Məsələn, əlavə edə bilərsiniz -w /usr/bin/dockerd -k docker üçün /etc/audit.rules və auditoriya xidmətini yenidən başladın.

FIPS rejimi

FIPS rejimini aktivləşdirmək, kriptoqrafik alətləri FIPS-ə daxil edilmiş alqoritmlərə keçməyə məcbur edir. (Amerika Federal İnformasiya Emalı Standartları — redakt. qeydi), beləliklə, federal və sektoral norma və tələblərə uyğun gəlir. Əgər ev sahibi əməliyyat sistemi FIPS rejimini dəstəkləyirsə, onu aktivləşdirmək üçün aşağıdakı komandaları icra edə bilərsiniz:

sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="fips=1 /g' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg && reboot

Docker Engine-də də FIPS-i aktivləşdirmək lazımdır:

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 restart docker

Əlavə məlumat üçün baxın DockerRed Hat.

Docker Secrets

Məxfi məlumatlar sirr olaraq saxlanmalıdır. Müvafiq xidməti işə salmaq üçün aşağıdakı komandadan istifadə edə bilərsiniz: docker service create:

docker service create --label com.docker.ucp.access.label=\/prod --name nginx --publish 443 --secret source=orcabank_prod_mobile.ca.pem.v1,target=ca.pem nginx

Ətraflı məlumat üçün baxın sənəd.

Docker konfiqurasiya faylı

Aşağıdakı parametrləri konfiqurasiya faylına əlavə edə bilərsiniz /etc/docker/daemon.json:

  • "icc":false — konteynerlər arasında məlumat mübadiləsini söndürür, beləliklə, lazımsız məlumat sızmasının qarşısını alır.
  • log-level: "info" — bütün loqları daxil etməklə, ancaq debuq loglarını istisna edir.
  • {
      "log-driver": "syslog",
      "log-opts": {
        "syslog-address": "udp:\/\/1.2.3.4:1111"
      }
    }

    — uzaq log tutmağı birləşdirir, onları göstərilən ünvana göndərir. Yalnız syslog demon işə salındıqda işləyir. TCP və UDP seçimləri qəbul edilir. Hər bir konkret konteyner üçün də bağlantı mümkündür. Bunun üçün Docker işə salındıqda xüsusi flag təyin edilir (--log-opt syslog-address=ADDRESS).

  • "userns-remap": "Your_User" — hüquqların artımını (privilege escalation) qarşısını alaraq, xüsusi bir istifadəçi üçün adlar məkanını izolyasiya edir.

Nəqliyyat səviyyəsinin təhlükəsizliyi

Docker demonuna qoşulma imkanı (əgər uzaq giriş lazımdırsa) yalnız TLS-client məlumatlarına giriş imkanı olan istifadəçilərdə olmalıdır.

Təhlükəsizlik pluginləri

Hansı istifadəçilərin hansı komandaları icra edə biləcəyini müəyyən edin və Docker üçün müvafiq bir təhlükəsizlik pluginini yaradın. Sonra Docker demonunu işə salın və ona plugin əlavə edin:

dockerd --authorization-plugin=PLUGIN_ID

Təhlükəsizlik plaginləri yaratmaq barədə daha çox məlumat üçün baxın sənəd.

Demon parametrləri

Docker demonu standart parametrlərlə işləyir.

  • --live-restore — bu parametr sistem söndürüldükdə və ya yenidən başladıldığında konteynerlərin dayanıqlılıq müddətini azaltmağa kömək edir. Onları minimum dayanaqlılıqla patch etmək və ya yeniləmək daha asan olur;
  • --userland-proxy=false — hairpin NAT’lar mövcud olduqda və ya istifadə olunduqda, istifadəçi məkanında proxy artıq olan bir xidmət halına gəlir ki, bu da mümkün hücum vektorlarının sayını artırır;
  • --no-new-privileges — konteynerlərin suid və ya sguid vasitəsilə əlavə hüquqlar əldə etməsinin qarşısını alır;
  • --seccomp-profile \/path\/to\/profile — əgər öz seccomp profiliniz varsa, bu flaq vasitəsilə onu tətbiq edə bilərsiniz. Seccomp və Docker haqqında daha çox məlumat əldə etmək üçün burada.

Konteynerlərin və yığma fayllarının konfiqurasiyası

İstifadəçi yaratma

Konteyner üçün istifadəçi yaradıldığından əmin olun və onu bu istifadəçi ilə işə salın (Konteyneri kök altında işə salmayın).

Uzaq giriş

Demonun uzaq girişini qadağan edin. Əgər lazım olarsa, sertifikatlarla qoruyun.

İstifadəçi adları məkanını izolyasiya edin

İstifadəçi adlandırma sahəsinin Docker-də ayrı olduğundan əmin olmaq xüsusilə vacibdir, çünki standart olaraq, bu, ev sahibi adlandırma sahəsi ilə paylaşılıb. Bəzi hallarda, bu, hüquqları artırmaq və ya hətta konteynerdən çıxmaq üçün istifadə oluna bilər. İstifadəçi adlandırma sahəsini izolyasiya etmək üçün konfiqurasiya faylını redaktə etməklə mümkündür (yuxarıda "Docker konfiqurasiya faylı" bölməsində izah edildiyi kimi). Bu problemin burada əlavə olaraq qeyd olunması onun əhəmiyyəti ilə əlaqədardır.

Healthcheck’lər

Healthcheck (işləkliyin yoxlanması) konteynerin bütövlüyünü yoxlamaq üçün güclü bir alətdir. Bu, Dockerfile-da HEALTHCHECKinstruksiyası vasitəsilə təyin edilir. Healthcheck’lər konteynerin düzgün işlədiyindən əmin olmağa kömək edir. Aşağıdakı nümunədə yoxlama 0 ilə bitir, əgər server işləyirsə, və 1 ilə, əgər "düşdüsə":

HEALTHCHECK CMD curl --fail http://localhost || exit 1

SELinux

Əgər SELinux ev sahibi əməliyyat sistemi tərəfindən dəstəklənirsə, SELinux siyasətini yaradın və ya idxal edin və Docker-i SELinux aktiv edilməsi ilə demon rejimində işlədin:

docker daemon --selinux-enable

Bu halda Docker konteynerlərini təhlükəsizlik parametrləri ilə işlətmək mümkündür, məsələn:

docker run --interactive --tty --security-opt label=level:TopSecret centos /bin/bash

Şəbəkə interfeysləri

Standart olaraq, Docker bütün şəbəkə interfeyslərini dinləyir. Çünki bir çox hallarda tıxacın yalnız birində gözlənildiyi üçün bu yanaşma lazımsız şəkildə hücum riskini artırır. Buna görə, konteyner başladarkən, onun portlarını ev sahibi üzərində konkret interfeyslərə bağlamaq mümkündür:

docker run --detach --publish 10.2.3.4:49153:80 nginx

Yerləşdirilmiş şəkil versiyaları

Şəkilləri yükləyəndə, yerli önbelleğin depo məzmununa uyğun olduğuna əmin olun. Əks halda, əldə edə biləcəyiniz versiya köhnə ola bilər və ya zəifliklərə malik ola bilər.

Şəbəkə körpüsü

Standart şəbəkə modeli, docker0, ARP-spoofing və MAC-flooding tipli hücumlara qarşı həssasdır. Bu problemi həll etmək üçün, spesifikasiyalarınıza uyğun bir şəbəkə körpüsü yaradın, necə ki aşağıda izah edilir. burada.

Docker’ın soketi haqqında xəbərdarlıq

Heç vaxt Docker’ın soketini konteynerin içinə keçirməyin. Aksinə, konteynerin Docker əmrlərini yerinə yetirmə imkanı olacaq və beləliklə, ev sahibi əməliyyat sisteminə daxil olmaq və onu idarə etmək imkanı olacaq. Bunu etməyin.

Docker Enterprise konfiqurasiyası

Docker Trust

Docker Trust, şəkillərin kriptoqrafik bütövlüyünü yoxlamaq üçün açarları istehsal etməyə imkan verir. Docker Trust açarları, Docker şəkillərini xüsusi açarlarla imza etməyə istifadə oluna bilər, bu da Notary Server-dəki açıq açarlar tərəfindən yoxlanılır. Əlavə məlumat üçün — burada. Docker Trust-ı Enterprise Engine-də aktivləşdirmək haqqında ətraflı məlumat bu sənədin bölümündə.

Zəifliklərin skan edilməsi

Docker Enterprise-də, image-lərdəki yanlızlıqların oflayn skan edilməsi üçün CVE bazasını yükləmə imkanı verən daxili yanlızlıq scanner var. Image-lərin müntəzəm skan edilməsi onların daha təhlükəsiz olmasına kömək edir: istifadəçi tapılan yanlızlıqlar barədə dərhal xəbərdarlıq alır. Bunun necə ediləcəyi haqqında daha çox məlumat üçün baxın. burada.

Qeyd. tərc.: Docker image-lərində yanlızlıqları skan etmək üçün Open Source scanner-lər də mövcuddur, nümunələrini materialın sonunda görə bilərsiniz.

LDAP və UCP-nin inteqrasiyası

Universal Control Plane LDAP ilə inteqrasiya edilə bilər. Nəticə olaraq, lazımsız təkrarı aradan qaldıran sadələşdirilmiş bir autentifikasiya sistemi yaranır. Bunun haqqında daha çox məlumatı bu məqalədə tapa bilərsiniz. LDAP kataloqu ilə inteqrasiya etmək.

Digər materiallar

Docker təhlükəsizliyi üçün ən yaxşı təcrübələr haqqında əlavə məlumatı docs.docker.com-da tapmaq mümkündür. Həmçinin, yükləməni tövsiyə edirik Docker üçün Center for Internet Security testləri.

Tərcüməçinin bonusu

Bu məqaləyə ləğv edici olaraq, aşağıdakı 10 populyar Open Source vasitəsini Docker təhlükəsizliyi üçün təqdim edirik.Bu, digər bir məqalədən (Bill Doerrfeld tərəfindən Doerrfeld.io-dan yazılmışdır).

Qeyd: Burada qeyd olunan layihələrin bir neçəsi haqqında daha çox məlumatı "Docker konteynerləri üçün təhlükəsizlik».

  1. Docker Təhlükəsizlik İbtidai Təhlili — məqalənin əvvəlində sadalanan Docker konteynerlərinin təhlükəsizlik təcrübələrinə uyğunluğunu yoxlayan skript.

    Qeyd: Bu Okta şirkətinin mükəmməl materialında OAuth və OIDC-nin (OpenID Connect) iş prinsipləri sadə və aydın şəkildə izah edilir.

  2. Clair — konteynerlərdə statik yanlızlıq analizinin ən populyar vasitəsidir. CVE yanlızlıqları üçün bir çox bazalardan istifadə edir (Red Hat, Debian, Ubuntu kimi başlıca Linux paylamalarının izleyiciləri də daxil olmaqla). İnkişafçılar üçün API təqdim edir və funksiyaların genişləndirilməsi üçün sadə imkanlar ("driver" əlavə etməklə) təqdim edir. Populyar açıq image registry-si — Quay.io-da istifadəyə verilir.
  3. Cilium — nüvədə şəbəkə təhlükəsizliyi təminatı üçün BPF-cü şəbəkə paketlərini filtrasiya edərək kömək edən bir həlldir.
  4. Anchore — CVE bazasına uyğun olaraq təhlükəsizlik yanlızlıqlarını təhlil edən image-lərin məzmununu analiz etmək üçün vasitədir. Həmçinin, konteynerlərin təhlükəsizliyini dəyərləndirmək üçün fərdi siyasətləri tətbiq etməyə imkan verir (müxtəlif məlumatlar əsasında, ağ/qara siyahılar, fayl məzmunu və s. daxil olmaqla).
  5. OpenSCAP Workbench — müxtəlifl platformalarda təhlükəsizlik siyasətlərinin yaradılması və qorunması üçün geniş bir ekosistemdir. Konteynerlərin yoxlanılması üçün oscap-docker.
  6. Dagda — yanlızlıqlar, trojanlar, viruslar və malware-lərin aşkar edilməsi üçün Docker konteynerlərini skan edən bir vasitədir. CVE bazasında OWASP-asılılıqları, Red Hat Oval bazası, Exploit Database repositarının yoxlamaları daxildir.
  7. Notary — Docker imiciləri imzalamaq üçün bir çərçivə, əvvəllər Docker Inc tərəfindən yaradılmışdır (sonra CNCF-in inkişafına verilib). Onun istifadəsi rolları delege etməyə və konteynerlər üzrə məsuliyyətləri bölməyə, eləcə də imicilərin kriptoqrafik bütövlüyünü təsdiqləməyə imkan tanıyır.
  8. Grafaes — daxili təhlükəsizlik siyasətlərini idarə etmək üçün nəzərdə tutulmuş metadata API-sidir. Məsələn, bu, konteynerlərin təhlükəsizlik skanerlərinin işini yaxşılaşdırmağa imkan verir. Shopify, 500 min imic istismar edərək bu API-dən istifadə edir.
  9. Sysdig Falco — konteynerlərdə, ev sahibi sistemlərdə, şəbəkədə sistem davranışını izləyən Kubernetes üçün bir utilitdir. İnfrastrukturda davamlı yoxlamalar, anomaliyalara aşkar etmə və Linux sistem çağırışları üzrə xəbərdarlıqlar göndərmək üçün konfiqurasiya etməyə imkan tanıyır.
  10. Banyanops Collector — bir daha bir Docker konteyner imiclərinin statik analizi üçün alətdir. İmicin fayllarını "göz atmağa" imkan verir, lazım olan məlumatları toplayaraq uyğun siyasətləri tətbiq edir və s.

Başqa bir yaxşı praktiki təkliflər toplamı Docker-i daha təhlükəsiz etmək üçün tapmaq olar bu makalede Aqua Security şirkətində. Onun bir çox məsləhətləri yuxarıda qeyd edilənlərlə üst-üstə düşür, lakin digər məsləhətlər də var. Məsələn, müəlliflər konteynerlərdə fəaliyyətin izlənməsini təşkil etməyi və Docker Swarm istifadə edərkən nələrə diqqət yetirmək lazım olduğunu qeyd edirlər.

Hələ də bu mövzuya daha dərindən dalmaq istəyənlər üçün keçən il "Docker Security: Quick Reference"kitabı dərc olunmuşdur, onun fraqmentləri açıq şəkildə mövcuddur.»Nəhayət, Docker təhlükəsizliyinin bəzi aspektləri ilə praktiki tanışlıq üçün: Seccomp profilləri və konteynerlərdə Linux nüvəsinin imkanlarının istifadəsi — müvafiq burada.

laboratoriya işlərini Play with Docker veb-saytında * — "Təhlükəsizlik" bölməsinə baxın.* Bu resursun özü haqqında biz

Qeyd: Bu Okta şirkətinin mükəmməl materialında OAuth və OIDC-nin (OpenID Connect) iş prinsipləri sadə və aydın şəkildə izah edilir.

iki il əvvəl yazmışdıq, noyabr 2018-də onunla çox maraqlı (təhlükəsizlik baxımından) bir hadisə baş verdi. Qısaca, CyberArk Software Ltd-dən mütəxəssislərə onun mühafizəsini sındırmaq, yəni konteynerlərin xaricində əmrləri icra etmək imkanı əldə etmək mümkün oldu. Bu, Docker-də təhlükəsizlik probleminin gözəl bir izahıdır, elə deyilmi? Baş vermiş hadisənin bütün təfərrüatlarını oxuyun Dəqiqlik, əhatəlilik və sürət Vulnerable Docker VM — Docker və pentesting haqqında bir problemi çözen virtual maşın burada.

Kubernetes-də təhlükəsizlik: identifikasiya, icazə, audit

Blogumuzda oxuyun:

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster