LINUX.ORG.RU

Почему бытует мнение, что docker добавляет безопасности?

 , , , ,


0

2

Доброго здоровья!

Недавно пришлось изучать проект, где по модному все загнано в докер контейнеры: webroot на Worpress отдельно, веб-сервер в своем контейнере и еще один контейнер для MySQL.

Тот хипстер, который это делал аргументировал такой подход тем, что так безопасней.

Но вот мне интересно, действительно ли docker добавляет безопасности веб-приложениям? Как и чем?

Я вот, например, очень плохо себе представляю как он может заменить или сделать не нужным тот же WAF.

Перемещено leave из web-development

★★★★★

Я вот, например, очень плохо себе представляю

почему люди с проблемами воображения приходят к ЛОРу? иди кури что такое docker и как из него «сбежать».

Deleted
()

При уязвимости одного компонента системы будет взломан только один контейнер. Мелкий контейнер проще бэкапить, ресторить, апдейтить, мигрировать, расследовать инциденты.
Если все компоненты кучкой в одном месте, то вероятность взлома пропорциональна сумме вероятностей всех компонент. И при этом страдает вся система и в том числе безопасные компоненты. Да и разгребать потом после взлома все места где начудили тоже сложнее.

imul ★★★★★
()

webroot на Worpress отдельно, веб-сервер в своем контейнере и еще один контейнер для MySQL.

Для этого есть права доступа в ФС :)

goingUp ★★★★★
()

Some people, when confronted with a problem, think «I know, I'll use regular expressions docker.» Now they have two problems. (c)

beastie ★★★★★
()
Ответ на: комментарий от Shtsh

Где? В конейнере? В общем случае (с оговорками) не страшно.

Старашно другое. Потеря данных и т.п. А ещё контейнеры — это старое, непонятно кем собранное дырявое и не патченное гуано, обновлять которые в общем случае от невозможно до PITA.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 2)
Ответ на: комментарий от imul

Мелкий контейнер проще бэкапить,

Нет.

ресторить,

Нет.

апдейтить,

Нет.

мигрировать,

Вот разве что один плюс.

расследовать инциденты.

Спорно.

Deleted
()
Ответ на: комментарий от Deleted

+1 Лорчую. Под миграцию самое то, во остальном жили и без этого.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Вообще, я бы сказал, что единственный существенный плюс докера (и других подобных штук) - это возможность держать несколько существенно разных версий ПО, либ и так далее не мешающих друг другу. Но, во-первых, это скорее не преимущество докера, а косяк разработчиков софта, который требует такое. И, во-вторых, сам факт разведения зоопарка из кучи разных версий порождает проблемы, которые докер успешно прячет, но при этом никак не решает.

Deleted
()
Ответ на: комментарий от Deleted

Так же можно и никсос какой-нибудь заиспользовать.

slaykovsky ★★★
()
Ответ на: комментарий от Twissel

С чем проще разобраться, с каким нибудь овиртом или кубернетес?

Просто я не думаю, шо ты голый докер будешь использовать, или голый либвирт.

slaykovsky ★★★
()
Последнее исправление: slaykovsky (всего исправлений: 1)
Ответ на: комментарий от Deleted

Докер уже готов для продакшена?

Скажу по секрету всему свету, один чувак из киевского подразделения Ciklum уже заюзал. После перезагрузки сервака, правда, все падает, т.к. делалось, видимо, за бесплатно и на коленке но... то такое.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Ну а кроме того возможность положить приложение в свой неймспейс - user, pid, network, дать ему совсем другой рут, ограничить его по ресурсам - и всё это дело положить на полку, потом сверху добавить конфигурации и смонтировать volume. А так да, только прячет, гадина такая /s

vrutkovs ★★
()
Ответ на: комментарий от slaykovsky

Я там был как фрилансер, т.к. у верстальщика начались проблемы с админкой.

Верстальщик такой: —Я слышал там докер.

Я: —Ну давайте я вам покажу как сохранять изменения в контейнере.

Потом,думаю, перезагружу-ка я сервак.

Вжух! И все легло.

Оказывается там надо было правила iptables подгружать отдельно и ручками запускать docker-compose.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Twissel

Я: —Ну давайте я вам покажу как сохранять изменения в контейнере.

Ох лол, а потом «трудно обновлять», может ты еще взведенный револьвер за пояс затыкаешь?

Deleted
()
Ответ на: комментарий от vrutkovs

Ну а кроме того возможность положить приложение в свой неймспейс - user, pid, network, дать ему совсем другой рут, ограничить его по ресурсам - и всё это дело положить на полку, потом сверху добавить конфигурации и смонтировать volume. А так да, только прячет, гадина такая /s

Да, именно прячет. Потому что рекламируется упрощение повседневного обслуживания приложений, а по факту всё ровно наоборот.

Вот представь что у тебя куча разных приложений в контейнерах и некоторые из них неким образом обрабатывают графику. И тут ты узнаешь о свеженайденной адовой уязвимости в каком-нибудь libpng. Решение ровно одно - обновлять libpng во всех контейнерах, которые affected. И проблемы начинаются уже на уровне «понять какая версия libpng в таком то образе и на основе какого болгеноса девопс этот образ сделал».

Нет, если делать все образы самостоятельно с нуля, унифицированным способом и пользоваться только приватным registry, то всё будет нормально и понятно. Это на самом деле единственный верный способ использования докера в продакшене, но он нифига не простой. И далеко не все докероюзеры это понимают.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от slaykovsky

Мож он volume зааттачил.

Именно.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Deleted

То, что кто-то не осилил инструмент, это не значит, что инструмент говно.

slaykovsky ★★★
()
Ответ на: комментарий от Deleted

А потом эти чудики, не осилившие даже прочитать про инструмент, обзывают других людей хипстерами.

Deleted
()
Ответ на: комментарий от Deleted

Решение ровно одно - обновлять libpng во всех контейнерах, которые affected.

Решение — обновлять образ и пересобирать все контейнеры, которые его используют.

понять какая версия libpng в таком то образе

Одна команда.

и на основе какого болгеноса девопс этот образ сделал

Написано в Dockerfile твоего приложения.

Deleted
()
Ответ на: комментарий от Twissel

Я думаю, что это разные по назначению интструменты. Откуда взялся твой вывод про виртуалки — фиг пойми.

Deleted
()
Ответ на: комментарий от slaykovsky

Хм,таки да Различие виртуалок и контейнеров

Упрощенно говоря с докером мы, кроме всего прочего, изолируем отдельные сервисы под общим ядром ОС вместо гипервизора ВМ.

А с ВМ мы имеем аппаратную виртуализацию, где за изоляцию отвечает гипервизор.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Контейнеризация это часть виртуализации, просто уровень абстракции другой. Т.е. нельзя заменить виртуализацию виртуализацией, я к этому. Контейнер это просто виртуализация уровня операционной системы. cgroups неймспейсы же.

slaykovsky ★★★
()
Ответ на: комментарий от Deleted

И проблемы начинаются уже на уровне «понять какая версия libpng в таком то образе и на основе какого болгеноса девопс этот образ сделал».

Для этого есть сканнеры уязвимости для контейнеров, например openscap, как и для виртуалок.

И далеко не все докероюзеры это понимают.

Как всегда - докер виноват в том что процесс не налажен, а потому «прячет» проблему.

vrutkovs ★★
()
Ответ на: комментарий от Twissel

У всех все смешалось из-за маркетинга этого :) docker просто сделали шибко удобно интерфейс для вот этого всего. А так это уже 100 лет было все, те же jails во фряхе или тупо chroot.

slaykovsky ★★★
()
Последнее исправление: slaykovsky (всего исправлений: 2)
Ответ на: комментарий от slaykovsky

тупо chroot.

Понятно, что внук чрута, но т.к. все это дело подают под соусом «Это революция!» грешным делом думаешь, может действительно изобрели убер-технологию «Серебрянная пуля» DevOps.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Любой хайп подают под соусом «Это революция!»

beastie ★★★★★
()

Найди презентацию от Dan Walsh по контейнерам, он там популярно объясняет почему контейнер это не механизм безопасности.

Из контейнера очень легко выйти наружу рутом на хост системе. RedHat в своем openshift оборачивает контейнеризацию в пять слоев политик SELinux. GCE говорят вообще каждый контейнер в отдельной виртуалке гоняет.

Без дополнительных мер, и достаточной квалификации, никакой безопасности в контейнерах в принципе нет.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от Twissel

Это революция в плане организации иерархии слоев для образов и workflow для работы с ними. Все остальное там костыли.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Приветствую!

Спасибо за отклик.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Я это гуглил, когда делал.

И что там это так и называлось сохранить состояние (а не данные) контейнера? 8)

Deleted
()
Ответ на: комментарий от alpha

Из контейнера очень легко выйти наружу рутом на хост системе.

как? я уже спрашивал но мне тогда лишь сказали что «теоретически можно», практических примеров не привели, может щас?

Deleted
()
Ответ на: комментарий от Deleted

Ну вот теперь подловил, согласен.

Там и причина всех бед была в том, что данные сохранялись не в контейнер, а, натурально, хрен его знает куда. Но, потом таки подключили того «спейца», который все это делал, он хвосты убрал)

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.