Амният барои контейнерҳои Docker

Шарҳ. тарҷума.: Мавзӯи амнияти Docker шояд яке аз мавзӯъҳои абадӣ дар ҷаҳони муосири IT бошад. Аз ин рӯ, мо бидуни шарҳи бештар тарҷумаи интихоби навбатии тавсияҳои мувофиқро пешкаш мекунем. Агар шумо аллакай ба ин масъала таваҷҷӯҳ дошта бошед, бисёре аз онҳо ба шумо шинос хоҳанд буд. Мо худи маҷмӯаро бо рӯйхати хидматҳои муфид ва якчанд захираҳо барои омӯзиши минбаъдаи масъала пурра кардем.

Амният барои контейнерҳои Docker

Ин аст дастур оид ба таъмини амнияти Docker. Фикру мулоҳизаҳо қобили қабул аст, зеро ин бештар маҷмӯаи иқтибосҳо аз захираҳои гуногун аст ва на ҳамаи онҳо ҳамаҷониба баррасӣ шудаанд. Тавсияҳо ба се категория тақсим мешаванд:

  1. Тадбирҳои зарурӣ дар дохили системаи оператсионии ҳост ҳангоми кор бо Docker;
  2. Дастурҳои марбут ба файли конфигуратсияи сохтмон ва сохтани контейнерҳо;
  3. Воситаҳои амниятӣ, ки метавонанд бо хусусиятҳои мушаххаси Docker Enterprise ҳамгиро шаванд.


Дастур ба захираҳои гуногун асос ёфтааст, ки бисёре аз онҳо дар зер оварда шудаанд. Ин ҳамаҷониба нест, аммо он ҳама асосҳоро фаро мегирад. Маълумоти иловагиро дар тавсифи санҷишҳои ИДМ пайдо кардан мумкин аст (пайванд дар охири ин дастур оварда шудааст), инчунин дар ҳуҷҷатҳои Docker.

Нишондиҳандаи амнияти Docker

Docker Bench барои амният ба таври худкор Docker-и худро бо таҷрибаҳои беҳтарини маъмултарин тафтиш мекунад. Скрипт як санҷиши хуби бехатарии эвристикӣ аст, аммо он набояд ҳамчун воситаи таҳлили ҳамаҷониба баррасӣ карда шавад.

Хост OS

Аён аст, ки контейнери Docker наметавонад бехатар бошад, агар худи системаи ҳост бехатар набошад. Аз ин рӯ, зарур аст, ки таҷрибаҳои беҳтарини амнияти системаи оператсионӣ риоя карда шаванд. Илова бар ин, дар баробари тавсияҳои зерин таҳлили осебпазирӣ гузаронидан оқилона мебуд.

Қоидаҳои аудит

Бо истифода аз қоидаҳои аудит барои файлҳои марбут ба Docker эҷод ва истифода баред auditctl. Масалан, шумо метавонед илова кунед -w /usr/bin/dockerd -k docker к /etc/audit.rules ва хадамоти аудитро аз нав оғоз кунед.

Ҳолати FIPS

Даргиронидани ҳолати FIPS асбобҳои криптографиро маҷбур мекунад, ки ба алгоритмҳои дар рӯйхат гирифташуда гузаред (Амрико Стандартҳои федералии коркарди иттилоот - тахминан. тарҷума.), ҳамин тавр ба қоидаҳо ва талаботҳои федералӣ ва саноатӣ мувофиқат мекунад. Агар ОС мизбон режими FIPS -ро дастгирӣ кунад, шумо метавонед онро тавассути иҷро кардани фармонҳои зерин фаъол созед:

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

Шумо инчунин бояд FIPS-ро дар Docker Engine фаъол созед:

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

Барои маълумоти иловагӣ, ба ҳуҷҷатҳо нигаред Доктор и Red Hat.

Сирри Docker

Маълумоти махфӣ бояд ҳамчун махфӣ нигоҳ дошта шавад. Шумо метавонед хидмати мувофиқро бо истифода аз фармони эҷоди docker service оғоз кунед:

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

Барои тафсилот, нигаред хуччатхо.

Файли конфигуратсияи Docker

Танзимоти зеринро метавон ба файли конфигуратсия илова кард /etc/docker/daemon.json:

  • "icc":false — мубодилаи маълумотро байни контейнерҳо барои пешгирӣ кардани ихроҷи иттилооти нолозим хомӯш мекунад.
  • log-level: "info" — ҳамаи гузоришҳоро, ба истиснои сабтҳои ислоҳкунӣ, сабт мекунад.
  • {
      "log-driver": "syslog",
      "log-opts": {
        "syslog-address": "udp://1.2.3.4:1111"
      }
    }

    — сабти дурдаст имкон медиҳад ва онҳоро ба суроғаи муқарраршуда равон мекунад. Танҳо дар сурате кор мекунад, ки демони syslog кор кунад. TCP ва UDP ҳамчун вариант қабул карда мешаванд. Инчунин барои ҳар як контейнери мушаххас пайваст шудан мумкин аст. Бо ин мақсад, вақте ки Docker ба кор андохта мешавад, парчами махсус гузошта мешавад (--log-opt syslog-address=ADDRESS).

  • "userns-remap": "Your_User" — аз афзоиши имтиёзҳо тавассути ҷудо кардани фазои ном барои корбари мушаххас пешгирӣ мекунад.

Амнияти қабати нақлиёт

Танҳо корбароне, ки ба маълумоти мизоҷ TLS дастрасӣ доранд, бояд ба демони Docker пайваст шаванд (агар дастрасии дурдаст лозим бошад).

Плагинҳои авторизатсия

Муайян кунед, ки ба кадом корбарон иҷозати иҷрои кадом фармонҳоро доранд ва плагини мувофиқро барои Docker эҷод кунед. Пас демони Docker-ро оғоз кунед ва плагинро ба он илова кунед:

dockerd --authorization-plugin=PLUGIN_ID

Барои гирифтани маълумоти бештар дар бораи эҷоди плагинҳои иҷозатдиҳӣ, нигаред хуччатхо.

Вариантҳои Демон

Демони Docker бо маҷмӯи пешфарз параметрҳо кор мекунад.

  • --live-restore — ин параметр ҳангоми хомӯш кардани система ё бозоғозӣ кам кардани вақти бекористии контейнер кӯмак мекунад. Ямоқи ё навсозии онҳо бо вақти ҳадди ақали бекорӣ осонтар мешавад;
  • --userland-proxy=false — вақте ки NAT-ҳои мӯй дастрас ё истифода мешаванд, прокси дар фазои корбар ба хидмати зиёдатӣ табдил меёбад, ки танҳо шумораи векторҳои эҳтимолии ҳамларо зиёд мекунад;
  • --no-new-privileges — бо истифода аз suid ё sguid имтиёзҳои иловагӣ ба даст овардани контейнерҳоро пешгирӣ мекунад;
  • --seccomp-profile /path/to/profile - агар шумо профили seccomp-и худро дошта бошед, шумо метавонед онро бо истифода аз ин парчам татбиқ кунед. Шумо метавонед дар бораи Seccomp ва Docker маълумоти бештар гиред дар ин ҷо.

Конфигуратсияи файли контейнер ва сохтани

Эҷоди корбар

Боварӣ ҳосил кунед, ки корбар барои контейнер сохта шудааст ва онро дар зери он корбар иҷро кунед (контейнерро ҳамчун реша иҷро накунед).

Дастрасии дурдаст

Дастрасии дурдаст ба демонро хомӯш кунед. Агар шумо ҳоло ҳам ба он ниёз доред, онро бо сертификатҳо муҳофизат кунед.

Фазои номи корбарро ҷудо кунед

Махсусан муҳим аст, ки фазои номи корбар дар Docker ҷудо карда шавад, зеро ба таври нобаёнӣ он бо фазои номи мизбон мубодила мешавад. Дар баъзе ҳолатҳо, ин метавонад барои баланд бардоштани имтиёзҳо ё ҳатто берун аз контейнер гурезад. Шумо метавонед фазои номи корбарро тавассути таҳрири файли конфигуратсия ҷудо кунед (тавре ки дар боло дар фасли файли конфигуратсияи Docker тавсиф шудааст). Дар ин ҷо зикри иловагии ин масъала аз аҳамияти он аст.

Санҷиши саломатӣ

Healthcheck як воситаи пурқувватест, ки ба шумо имкон медиҳад, ки тамомияти контейнерро тафтиш кунед. Он дар Dockerfile бо истифода аз дастурҳо танзим карда мешавад HEALTHCHECK. Санҷиши саломатӣ ба шумо имкон медиҳад, ки боварӣ ҳосил кунед, ки контейнер дуруст кор мекунад. Дар мисоли дар поён овардашуда, санҷиши саломатӣ 0-ро бармегардонад, агар сервер кор кунад ва 1 дар ҳолати корношоям:

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

SELinux

Агар SELinux аз ҷониби системаи оператсионии мизбон дастгирӣ карда мешавад, сиёсати SE-ро эҷод ё ворид мекунадLinux ва Docker-ро дар ҳолати демон бо фаъолсозии SE иҷро кунедLinux:

docker daemon --selinux-enable

Дар ин ҳолат, контейнерҳои Docker метавонанд бо танзимоти амниятӣ оғоз карда шаванд, масалан:

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

Интерфейсҳои шабакавӣ

Бо нобаёнӣ, Docker дар ҳама интерфейсҳои шабака гӯш мекунад. Азбаски дар аксари ҳолатҳо трафик танҳо дар яке аз онҳо интизор аст, ин равиш хатари ҳамларо беасос зиёд мекунад. Аз ин рӯ, ҳангоми оғоз кардани контейнер, шумо метавонед портҳои онро ба интерфейсҳои мушаххаси ҳост пайваст кунед:

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

Версияҳои кэшшудаи тасвирҳо

Ҳангоми зеркашии тасвирҳо, боварӣ ҳосил кунед, ки кэши маҳаллӣ ба мундариҷаи анбор мувофиқат мекунад. Дар акси ҳол, шумо метавонед бо версияи кӯҳнаи тасвир ё тасвире, ки осебпазириро дар бар мегирад, анҷом диҳед.

Пули шабакавӣ

Модели шабакавии пешфарз docker0, ба ҳамлаҳо ба монанди ARP-spoofing ва MAC-floding осебпазир аст. Барои ҳалли ин масъала, мувофиқи мушаххасоти худ, тавре ки тавсиф шудааст, пули шабакавӣ созед дар ин ҷо.

Огоҳии розеткаи Docker

Ҳеҷ гоҳ васлаки Docker дар дохили контейнер нафиристед. Дар акси ҳол, контейнер метавонад фармонҳои Docker-ро иҷро кунад ва аз ин рӯ бо системаи оператсионии ҳост муошират кунад ва онро идора кунад. Ин корро накунед.

Танзими Docker Enterprise

Trust Docker

Docker Trust ба шумо имкон медиҳад, ки калидҳоеро тавлид кунед, ки онҳоро барои тафтиши якпорчагии криптографии тасвирҳо истифода бурдан мумкин аст. Калидҳои боэътимоди Docker метавонанд барои имзо кардани тасвирҳои Docker бо калидҳои хусусӣ истифода шаванд, ки онҳо бо калидҳои ҷамъиятӣ дар сервери нотариус тасдиқ карда мешаванд. Маълумоти Иловагӣ - дар ин ҷо. Даргиронидани Docker Trust дар Enterprise Engine дар муфассал оварда шудааст ин қисми ҳуҷҷатҳо.

Сканкунии осебпазирӣ

Docker Enterprise дорои сканери дарунсохти осебпазирӣ мебошад, ки ба шумо имкон медиҳад, ки пойгоҳи додаҳои CVE-ро барои сканкунии офлайнии осебпазирӣ дар тасвирҳо зеркашӣ кунед. Сканкунии мунтазами тасвирҳо ба бехатарии онҳо кӯмак мекунад: корбар фавран дар бораи осебпазириҳои пайдошуда огоҳӣ мегирад. Барои маълумоти бештар дар бораи чӣ гуна ин корро кардан мумкин аст, нигаред дар ин ҷо.

Шарҳ. тарҷума.: Инчунин сканерҳои кушодаасос барои осебпазирӣ дар тасвирҳои Docker мавҷуданд, ки намунаҳои онҳоро дар охири мавод пайдо кардан мумкин аст.

Интегратсияи LDAP ва UCP

Ҳавопаймои идоракунии универсалиро бо LDAP муттаҳид кардан мумкин аст. Натиҷа системаи соддашудаи аутентификатсия хоҳад буд, ки такрори нолозимро пешгирӣ мекунад. Шумо метавонед дар ин бора бештар дар мақола бихонед Бо директорияи LDAP ҳамгироӣ кунед.

Маводҳои дигар

Маълумоти бештарро дар бораи таҷрибаҳои беҳтарини амнияти Docker метавонед дар ин ҷо пайдо кунед docs.docker.com. Мо инчунин тавсия медиҳем, ки зеркашӣ кунед Маркази санҷишҳои амнияти Интернет барои Docker.

Бонус барои тарҷумон

Ҳамчун иловаи мантиқӣ ба ин мақола, мо як рӯйхати нашр 10 Утилитаҳои маъмули кушодаасос барои амнияти Docker. Он аз қарз гирифта шудааст мақолаи дигар (аз ҷониби Билл Доерфельд аз Doerrfeld.io).

NB: Дар бораи бисёре аз лоиҳаҳое, ки дар ин ҷо дар мақолаи "33+ Воситаҳои амнияти Kubernetes".

  1. Docker Bench барои амният скриптест, ки аллакай дар аввали мақола зикр шудааст, ки контейнерҳои Docker-ро барои мувофиқат бо амалияҳои умумии амният тафтиш мекунад.

    Амният барои контейнерҳои Docker

  2. Clair — эҳтимолан маъмултарин утилита барои таҳлили статикии осебпазириҳо дар контейнер аст. Он аз пойгоҳи додаҳои зиёди осебпазирии CVE (аз ҷумла пайгирии пешсафон) истифода мебарад. Linux- паҳнкуниҳо ба монанди Red Hat, Debian, Ubuntu). Он барои таҳиягарон API ва васеъкунии осони функсионалӣ (бо илова кардани "драйверҳо") пешниҳод мекунад. Он дар феҳристи маъмули тасвирҳои контейнери оммавӣ (монанд ба Docker Hub) - Quay.io истифода мешавад.
  3. Силиум ҳалли таъмини амнияти шабака дар сатҳи ядро, дар асоси технологияи филтркунии бастаҳои шабакаи BPF мебошад.
  4. Лангар — утилита барои таҳлили мундариҷаи тасвирҳо барои мавҷудияти осебпазирии амниятӣ дар асоси CVE. Илова бар ин, он ба шумо имкон медиҳад, ки сиёсати фармоиширо (дар асоси маълумоти гуногун, аз ҷумла рӯйхатҳои сафед/сиёҳ, мундариҷаи файл ва ғ.) барои арзёбии амнияти контейнерҳо татбиқ кунед.
  5. OpenSCAP Workbench — як экосистемаи том барои эҷод ва нигоҳ доштани сиёсатҳои амниятӣ дар платформаҳои гуногун. Як хидматро барои тафтиши контейнерҳо пешниҳод мекунад oscap-docker.
  6. Дагда — утилита барои скан кардани контейнерҳои Docker барои осебпазирӣ, троянҳо, вирусҳо ва нармафзори зараровар. Ба пойгоҳи додаҳои CVE санҷишҳои вобастагӣ аз OWASP, махзани Red Hat Oval ва анбори истисморкунии Database дохил мешаванд.
  7. Нотариус чаҳорчӯба барои имзои тасвирҳои Docker аст, ки аслан дар Docker Inc сохта шудааст (ва сипас барои таҳия ба CNCF интиқол дода шудааст). Истифодаи он ба шумо имкон медиҳад, ки нақшҳоро тақсим кунед ва масъулиятҳоро дар байни контейнерҳо тақсим кунед, инчунин якпорчагии криптографии тасвирҳоро тафтиш кунед.
  8. Grafaes — API барои метамаълумот, ки барои идоракунии сиёсатҳои амнияти дохилӣ пешбинӣ шудааст. Ҳамчун мисол, он ба шумо имкон медиҳад, ки кори сканерҳои амнияти контейнериро беҳтар созед. Shopify ин API-ро барои идоракунии метамаълумот дар 500 тасвири худ истифода мебарад.
  9. Сидиг Фалько — як утилитаи Kubernetes, ки рафтори системаро назорат мекунад: фаъолият дар контейнерҳо, дар хостҳо ва дар шабака. Он ба шумо имкон медиҳад, ки санҷишҳои пайвастаи инфрасохтор, ошкор кардани аномалияҳо ва огоҳиҳоро барои ҳама гуна зангҳои система танзим кунед. Linux.
  10. Коллектори Banyanops - воситаи дигар барои таҳлили статикии тасвирҳои контейнерии Docker. Ба шумо имкон медиҳад, ки ба файлҳои тасвирӣ "нигаред", ҷамъоварии маълумоти зарурӣ, татбиқи сиёсатҳои зарурӣ ва ғайра.

Боз як маҷмӯи хуби тавсияҳои амалӣ дар бораи чӣ гуна бехатар кардани Docker мумкин аст дар ин мақола Ширкати Aqua Security. Бисёре аз маслиҳатҳои ӯ бо маслиҳатҳои дар боло зикршуда мувофиқат мекунанд, аммо дигарон ҳастанд. Масалан, муаллифон ташкили мониторинги фаъолият дар контейнерҳоро пешниҳод мекунанд ва нишон медиҳанд, ки ҳангоми истифодаи Docker Swarm ба чӣ диққат додан лозим аст.

Барои онҳое, ки мехоҳанд ба ин мавзӯъ муфассалтар ғарқ шаванд, он соли гузашта нашр шуда буд. китоб"Амнияти Docker: Маълумоти фаврӣ», ки порчахои онхо ба таври озод дастрас мебошанд дар ин ҷо.

Ниҳоят, барои муаррифии амалӣ ба баъзе ҷанбаҳои амнияти Docker: профилҳои Seccomp ва истифодаи имкониятҳо Linux- ядроҳо дар контейнерҳо - шумо метавонед аз мувофиқ гузаред корҳои лабораторӣ оид ба манбаи бозӣ бо Docker* - ба бахши "Амният" нигаред.

Амният барои контейнерҳои Docker

* Дар бораи худи ин захира мо гуфт ду сол пеш ва дар моҳи ноябри соли 2018 як қиссаи хеле ҷолиб (аз нигоҳи амният) бо ӯ рӯй дод. Хулоса, мутахассисони CyberArk Software Ltd. муяссар шуд, ки онро вайрон кунад: барои ноил шудан ба қобилияти иҷро кардани фармонҳо берун аз контейнерҳо, яъне. дар системаи ҳост. Намунаи комили мушкилоти амниятӣ дар Docker, ҳамин тавр не? Дар бораи ҳама тафсилоти ҳодисаи рухдода хонед дар ин ҷо.

PS аз тарҷумон

Инчунин дар блоги мо хонед:

Манбаъ: will.com

Хостинги боэътимодро барои сайтҳо бо муҳофизати DDoS, серверҳои VPS VDS харед 🔥 Харидани хостинги боэътимоди вебсайт бо муҳофизати DDoS, серверҳои VPS VDS | ProHoster