Белешка. трансл.: Тема Доцкер безбедности је можда једна од вечних у савременом ИТ свету. Стога, без додатног објашњења, представљамо превод следећег избора релевантних препорука. Ако сте већ били заинтересовани за ово питање, многи од њих ће вам бити познати. Саму збирку смо допунили списком корисних услужних програма и неколико ресурса за даље проучавање проблема.

Представљам вам водич за обезбеђивање Доцкер безбедности. Повратне информације су добродошле, јер је ово више збирка извода из различитих извора, а нису сви детаљно прегледани. Препоруке су подељене у три категорије:
- Неопходне мере унутар оперативног система домаћина при раду са Доцкер-ом;
- Упутства у вези са конфигурационим фајлом изградње и креирањем контејнера;
- Безбедносни алати који се могу интегрисати са специфичним функцијама Доцкер Ентерприсе-а.
Водич је заснован на различитим ресурсима, од којих су многи наведени у наставку. Није свеобухватан, али покрива све основе. Додатне информације се могу наћи у опису ЦИС тестова (повезан на крају овог водича), као иу Доцкер документацији.
Доцкер Сецурити Бенцхмарк
аутоматски проверава ваш Доцкер у односу на најчешће најбоље праксе. Скрипта је добар хеуристички тест безбедности, али је не треба сматрати свеобухватним алатом за анализу.
Хост ОС
Очигледно, Доцкер контејнер не може бити безбедан осим ако сам хост систем није безбедан. Због тога је неопходно пратити најбоље праксе у безбедности оперативног система. Поред тога, било би мудро спровести анализу рањивости поред следећих препорука.
Правила ревизије
Креирајте и користите правила ревизије за датотеке повезане са Доцкером auditctl. На пример, можете додати -w /usr/bin/dockerd -k docker к /etc/audit.rules и поново покрените услугу ревизије.
ФИПС режим
Омогућавање режима ФИПС присиљава криптографске алате да се пребаце на алгоритме са листе ФИПС (Американац — прибл. превод), чиме је у складу са савезним и индустријским прописима и захтевима. Ако ОС домаћин подржава режим ФИПС, можете га омогућити покретањем следећих команди:
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="fips=1 /g' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg && rebootТакође морате да омогућите ФИПС у Доцкер Енгине-у:
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За више информација погледајте документацију и .
Доцкер Сецретс
Поверљиви подаци морају се чувати као тајна. Можете покренути одговарајућу услугу користећи команду за креирање доцкер услуге:
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За детаље погледајте .
Доцкер конфигурациона датотека
Следећа подешавања се могу додати у конфигурациони фајл /etc/docker/daemon.json:
-
"icc":false— онемогућава комуникацију између контејнера како би се избегло непотребно цурење информација. -
log-level: "info"— снима све евиденције осим оних за отклањање грешака. { "log-driver": "syslog", "log-opts": { "syslog-address": "udp://1.2.3.4:1111" } }— омогућава даљинско евидентирање и прослеђује их на наведену адресу. Ради само ако је сислог даемон покренут. ТЦП и УДП су прихваћени као опције. Такође је могуће повезати за сваки конкретан контејнер. У ту сврху се поставља посебна заставица када се Доцкер покрене (
--log-opt syslog-address=ADDRESS).-
"userns-remap": "Your_User"— спречава ескалацију привилегија изоловањем простора имена за одређеног корисника.
Сигурност транспортног слоја
Само корисници са приступом ТЛС клијентским акредитивима би требало да буду у могућности да се повежу са Доцкер демоном (ако је потребан даљински приступ).
Додаци за ауторизацију
Одлучите којим корисницима је дозвољено да извршавају које команде и креирајте одговарајући додатак за ауторизацију за Доцкер. Затим покрените Доцкер демон и додајте му додатак:
dockerd --authorization-plugin=PLUGIN_IDДа бисте сазнали више о прављењу додатака за овлашћење, погледајте .
Даемон опције
Доцкер демон ради са подразумеваним скупом параметара.
-
--live-restore— овај параметар помаже у смањењу времена застоја контејнера када се систем искључи или поново покрене. Постаје лакше да их закрпите или ажурирате уз минимално време застоја; -
--userland-proxy=false— када су укосни НАТ-ови доступни или коришћени, прокси у корисничком простору постаје редундантна услуга, што само повећава број могућих вектора напада; -
--no-new-privileges— спречава контејнере да стекну додатне привилегије користећи суид или сгуид; -
--seccomp-profile /path/to/profile- ако имате свој сеццомп профил, можете га применити користећи ову заставицу. Можете сазнати више о Сеццомпу и Доцкеру .
Конфигурација контејнера и датотеке за изградњу
Креирање корисника
Уверите се да је корисник креиран за контејнер и покрените га под тим корисником (НЕ покрећете контејнер као роот).
Даљински приступ
Онемогућите даљински приступ демону. Ако вам је и даље потребан, заштитите га сертификатима.
Изолујте кориснички простор имена
Посебно је важно осигурати да је кориснички простор имена у Доцкер-у изолован, пошто се подразумевано дели са простором имена хоста. У неким случајевима, ово се може користити за ескалацију привилегија или чак бекство изван контејнера. Можете изоловати кориснички простор имена тако што ћете уредити конфигурациону датотеку (као што је горе описано у одељку Доцкер Цонфигуратион Филе). Додатно помињање овог питања овде је због његове важности.
Здравствени преглед
Хеалтхцхецк је моћан алат који вам омогућава да проверите интегритет контејнера. Конфигурише се у Доцкерфиле-у користећи упутства HEALTHCHECK. Здравствени прегледи вам омогућавају да се уверите да контејнер ради исправно. У примеру у наставку, провера здравља враћа 0 ако сервер ради и 1 ако не ради:
HEALTHCHECK CMD curl --fail http://localhost || exit 1СЕЛинук
Ако оперативни систем домаћина подржава СЕЛинук, креирајте или увезите СЕЛинук политику и покрените Доцкер у демонском режиму са омогућеним СЕЛинуком:
docker daemon --selinux-enableУ овом случају, Доцкер контејнери се могу покренути са безбедносним поставкама, на пример:
docker run --interactive --tty --security-opt label=level:TopSecret centos /bin/bashМрежни интерфејси
Доцкер подразумевано слуша све мрежне интерфејсе. Пошто се у већини случајева саобраћај очекује само на једном од њих, овај приступ непотребно повећава ризик од напада. Стога, када покрећете контејнер, можете да повежете његове портове са одређеним интерфејсима на хосту:
docker run --detach --publish 10.2.3.4:49153:80 nginxКеширане верзије слика
Када преузимате слике, уверите се да се локални кеш поклапа са садржајем спремишта. У супротном, можете добити застарелу верзију слике или слику која садржи рањивости.
Мрежни мост
Подразумевани мрежни модел docker0, је рањив на нападе као што су АРП-споофинг и МАЦ-флоодинг. Да бисте решили овај проблем, креирајте мрежни мост према вашим спецификацијама како је описано .
Упозорење на Доцкер соцкет
Никада немојте прослеђивати Доцкер утичницу унутар контејнера. У супротном, контејнер ће моћи да извршава Доцкер команде и стога комуницира са оперативним системом домаћина и контролише га. Не ради то.
Конфигурисање Доцкер Ентерприсе-а
Доцкер Труст
Доцкер Труст вам омогућава да генеришете кључеве који се могу користити за проверу криптографског интегритета слика. Доцкер Труст кључеви се могу користити за потписивање Доцкер слика приватним кључевима, који су верификовани јавним кључевима на Нотари серверу. Додатне Информације - . Омогућавање Доцкер Труст-а у Ентерприсе Енгине-у је детаљно описано у .
Скенирање рањивости
Доцкер Ентерприсе има уграђени скенер рањивости који вам омогућава да преузмете ЦВЕ базу података за офлајн скенирање рањивости слика. Редовно скенирање слика помаже да буду безбедније: корисник одмах добија упозорења о пронађеним рањивостима. За више информација о томе како се то може урадити, погледајте .
Белешка. трансл.: Постоје и скенери отвореног кода за пропусте у Доцкер сликама, чији примери се могу наћи на крају материјала.
ЛДАП и УЦП интеграција
Универзални контролни план се може интегрисати са ЛДАП-ом. Резултат ће бити поједностављен систем аутентификације који избегава непотребно дуплирање. Више о томе можете прочитати у чланку .
Остали материјали
Више информација о најбољим праксама Доцкер безбедности можете пронаћи на . Такође препоручујемо преузимање .
Преводилац бонус
Као логичан додатак овом чланку, објављујемо листу 10 популарних услужних програма отвореног кода за Доцкер Сецурити. Позајмљено је од (од Билла Доеррфелда из Доеррфелд.ио).
NB: Више о многим пројектима поменутим овде прочитајте у чланку „'.
- је скрипта која је већ поменута на самом почетку чланка која проверава Доцкер контејнере да ли су у складу са уобичајеним безбедносним праксама.

- је вероватно најпопуларнији услужни програм за статичку анализу рањивости у контејнеру. У ту сврху користи бројне базе података о рањивости ЦВЕ (укључујући трагаче водећих Линук дистрибуција као што су Ред Хат, Дебиан, Убунту). Нуди АПИ за програмере и једноставан начин за проширење функционалности (додавањем „драјвера“). Користи се у популарном контејнеру регистра јавних слика (аналогно Доцкер Хуб-у) - Куаи.ио.
- је решење за обезбеђење мрежне безбедности на нивоу кернела, засновано на БПФ технологији филтрирања мрежних пакета.
- — услужни програм за анализу садржаја слика на присуство безбедносних пропуста заснованих на ЦВЕ. Поред тога, омогућава вам да примените прилагођене смернице (засноване на различитим подацима укључујући беле/црне листе, садржај датотека итд.) да бисте проценили безбедност контејнера.
- — цео екосистем за креирање и одржавање безбедносних политика на различитим платформама. Нуди услужни програм за проверу контејнера
oscap-docker. - — услужни програм за скенирање Доцкер контејнера на рањивости, тројанце, вирусе и малвер. ЦВЕ базе података обухватају провере зависности од ОВАСП-а, Ред Хат Овал базе података и Екплоит Датабасе експлоатског спремишта.
- је оквир за потписивање Доцкер слика, првобитно креиран у Доцкер Инц (а затим пренет за развој у ЦНЦФ). Његова употреба вам омогућава да делегирате улоге и расподелите одговорности међу контејнерима, као и да проверите криптографски интегритет слика.
- — АПИ за метаподатке, дизајниран за управљање интерним безбедносним политикама. На пример, омогућава вам да побољшате перформансе скенера безбедности контејнера. Схопифи користи овај АПИ за управљање метаподацима на својих 500 слика.
- — услужни програм за Кубернетес који прати понашање система: активност у контејнерима, на хостовима, на мрежи. Омогућава вам да конфигуришете сталне провере у инфраструктури, откривате аномалије и шаљете упозорења за било које Линук системске позиве.
- - још један алат за статичку анализу слика Доцкер контејнера. Омогућава вам да „прегледате“ датотеке слика, прикупите потребне податке, примените неопходне смернице итд.
Још једна добра збирка практичних препорука о томе како учинити Доцкер сигурнијим можете пронаћи у Компанија Акуа Сецурити. Многи њени савети се преклапају са онима који су већ поменути, али постоје и други. На пример, аутори предлажу организовање праћења активности у контејнерима и указују на шта треба обратити пажњу када користите Доцкер Сварм.
За оне који желе детаљније да зароне у ову тему, објављена је прошле године. књига "», чији су фрагменти слободно доступни .
Коначно, за практично упознавање са неким аспектима Доцкер безбедности: Сеццомп профили и коришћење могућности Линук кернела у контејнерима, можете проћи кроз одговарајуће лабораторијски рад на * - погледајте одељак „Безбедност“.

* О самом овом ресурсу ми пре две године, а у новембру 2018. догодила му се веома занимљива (са безбедносног становишта) прича. Укратко, стручњаци из ЦиберАрк Софтваре Лтд. успео да га хакује: да постигне могућност извршавања команди ван контејнера, тј. на систему домаћина. Савршена илустрација безбедносног проблема у Доцкер-у, зар не? Прочитајте о свим детаљима онога што се догодило .
ПС од преводиоца
Прочитајте и на нашем блогу:
- «";
- «";
- «";
- «";
- «";
- «'.
Извор: ввв.хабр.цом

