В инструментарии для управления изолированными Linux-контейнерами Docker выявлена (https://www.openwall.com/lists/oss-security/2019/05/28/1) уязвимость (CVE-2018-15664 (https://security-tracker.debian.org/tracker/CVE-2018-15664)), которая при определённом стечении обстоятельств позволяет получить доступ к хост-окружению из контейнера при наличии возможности запуска своих образов в системе или при доступе к выполняемому контейнеру. Проблема проявляется во всех версиях Docker и остаётся неисправленной (предложен, но пока не принят, патч (https://github.com/moby/moby/pull/39252), реализующий приостановку работы контейнера на время выполнения операций с ФС).Уязвимость позволяет извлечь файлы из контейнера в произвольную часть ФС хост-системы при выполнении команды "docker cp". Извлечение файлов выполняется с правами root, что даёт возможность прочитать или записать любые файлы в хост-окружении, чего достаточно для получения контроля за хост-системой (например, можно переписать /etc/shadow). Атака может быть совершена только в момент выполнения администратором команды "docker cp" для копирования файлов в контейнер или из него. Таким образом атакующему необходимо каким-то образом убедить администратора Docker в необходимости выполнения этой операции и предугадать используемый при копировании путь.
Проблема вызвана ошибкой в функции FollowSymlinkInScope (https://github.com/moby/moby/blob/master/pkg/symlink/fs.go#L... вычисляющей абсолютный путь в основной ФС на основании относительного пути, учитывающего размещение контейнера. В процессе выполнения команды "docker cp" возникает кратковременное состояние гонки (https://ru.wikipedia.org/wiki/%D0%A1%D0%... при котором путь уже проверен, но операция ещё не выполнена. Так как копирование производится в контексте основной ФС хост-системы в указанный промежуток времени можно успеть подменить ссылку на другой путь и инициировать копирование данных в произвольное место файловой системы вне контейнера.
Так как временное окно проявления состояния гонки сильно ограничено в подготовленном прототипе эксплоита (https://www.openwall.com/lists/oss-security/2019/05/28/1/1) при выполнении операций копирования из контейнера удалось добиться проведения успешной атаки в менее 1% случаев при цикличной подмене символической ссылки в пути, используемом в операции копирования (успешная атака была совершена после примерно 10 секунд попыток непрерывно в цикле скопировать файл командой "docker cp").
При выполнении операции копирования в контейнер можно добиться повторяемой атаки по перезаписи файла в хост-системе, для проведения которой достаточно всего нескольких итераций. Возможность атаки связана с тем, что при копировании в контейнер применяется концепция "chrootarchive", в соответствии с которой процесс archive.go извлекает архив не в chroot корня контейнера, а в chroot родительского каталога целевого пути, подконтрольного атакующему (chroot используется как признак для эксплуатации состояния гонки). С практической стороны атака может быть совершена, например, при предоставлении облачными сервисами средств для копирования файлов конфигурации в контейнер, построенных с использованием команды docker cp".
URL: https://www.openwall.com/lists/oss-security/2019/05/28/1
Новость: https://www.opennet.me/opennews/art.shtml?num=50765
Ждем комментаторов с искрометными шутками про "девляпсов" и "контейнеры нинужны".
Контейнеры нинужны, у меня на Windows 10 ничего не изолировано и работает.
И тебе нечего скрывать.
> у меня на Windows 10 ничего не изолированоНичего кроме тебя самого.
> Ждем комментаторов с искрометными шутками про "девляпсов" и "контейнеры нинужны"."" Дыркер -- он про сак-сцесс и искромётные комментарии! ""
++https://www.opennet.me/openforum/vsluhforumID3/117218.html#41
"" поставил тебе [-] ""
///"" -- первый -- безумный! -- Текст. ""
///второй безумный "Текст" -- ${вставить_еще_один_безумный_текст}
<///>
(с)
Митрофаныч, у тебя учетку на опеннетике угнали что ли?
Граждане, это поддельный Митрофанушко!
Почему это не нужны? Это хорошый способ предотвратить возможность какому-нибудь софтверному каловому монстру засрать твою систему кривыми либами зависимостей. А те кто пытается использовать решения, изначально не разрабатывавшиеся безопасными, для изоляции - сами себе злобные буратина.
>Это хорошый способ предотвратить возможность какому-нибудь софтверному каловому монстру засрать твою систему кривыми либами зависимостей.Этот кейс требует изоляции только на уровне файловой системы, что легко решается более легковесными средствами, чем контейнеры (если, конечно, софт скачивается из доверенного источника, однако новости показывают, что качать докер-образы откуда попало так себе идея - возможность эксплуатации уязвимостей в докере, пустые рутовые пароли, древние либы с уязвимостями внутри контейнера, и т.д.)
Вот если для запуска дерьмодемона нужна еще какая-то нетривиальная настройка системы, тогда без контейнера не обойтись.
> Этот кейс требует изоляции только на уровне файловой системы, что легко решается более легковесными средствами, чем контейнерыДа, но инфраструктура более легковесных в плане ресурсов решений оказывается более тяжеловесной в использовании. У докера, вон, большое сообщество, есть готовые базовые имиджи чуть ли не для всего на свете. А в случае schroot, например, мне надо дебутстрапить предварительно окружения самостоятельно, и это не делается одной командой, увы.
С учётом того, что продакшен нынче пошёл активно в контейнерах существовать, использовать докер для подобной изоляции становится более простым и удобным решением: всегда легче заюзать инструмент, который используешь на постоянной основе. И это хорошо и правильно.
Вопрос лишь о том, зачем под доскер подстилать большую юникс-подобную систему, причём искорёженную и переломанную ради этого самого доскера до полной потери черт юникса. Не проще ли было написать специальные мелкие пускали для доскера, не портя линукс и целую прорву ГНУтого софта? Более того — а не лучше ли было для задач, которые суют в доскер, писать отдельные специальные маленькие системки для виртуальных машин? И не ломать, опять же, линукс и целую кучу ГНУтого софта.
> Вопрос лишь о том, зачем под доскер подстилать большую юникс-подобную систему, причём
> искорёженную и переломанную ради этого самого доскера до полной потери черт
> юникса.Анонимаустус, а каким боком и что именно докер сломал-то? =/
Не доскер сломал, а те, кто из линукса делают корпоративную пускалку для доскеров-шмоскеров.
> не портя линукс и целую прорву ГНУтого софта
> корпоративную пускалкуНиксы нужны для того, чтобы ими пользоваться, причём - как _угодно_, так и пользоваться, в т.ч. и для корпоративных задач. А не для того, чтобы молиться на ГНУ.
>> не портя линукс и целую прорву ГНУтого софта
>> корпоративную пускалку
> Никсы нужны для того, чтобы ими пользоваться, причём - как _угодно_, так
> и пользоваться, в т.ч. и для корпоративных задач. А не для
> того, чтобы молиться на ГНУ.Здесь у нас, похоже, ещё один опоздавший родиться, не читавший ни Реймонда, ни Кернигана, ни других старейшин, причастных к Юниксу, и, следовательно, не понявший, что такое Юникс и в чём его _главное_ предназначение.
Такие вот специалисты и превратили линукс в «ваш новый стандарт», залитый свержу системдой полужидкой консистенции.
Ой, а в чём, расскажИте? А то вы может тоже похоже не читали.
Эти ссылки не для тебя, невежливый аноним, ты всё равно читать не будешь. Это для редких на опеннете искренне интересующихся знаниями молодых людей:https://www.opennet.me/openforum/vsluhforumID3/117471.html#58
https://www.opennet.me/openforum/vsluhforumID3/117471.html#59
> Эти ссылки не для тебя, невежливый аноним, ты всё равно читать не
> будешь. Это для редких на опеннете искренне интересующихся знаниями молодых людей:
> https://www.opennet.me/openforum/vsluhforumID3/117471.html#58
> https://www.opennet.me/openforum/vsluhforumID3/117471.html#59Про macOS и "Все те маленькие (sh, awk, sed, vi/vim и пр.) и не очень маленькие (Perl, Python, GCC, Emacs) средства" в нём -- сильно. Отдел Эппле горлится тобой. И не один!
https://www.opengroup.org/openbrand/registerЕсли бы ты пользовался Маком, ты бы знал, почему именно его, а не линукс, предпочитают большинство разработчиков для линукса по всему миру. Удивительное рядом, Андрюша, ты просто не стесняйся замечать.
...И не для того, чтобы молиться на священные книги предков и основателей. Предназначение операционной системы в том, в чём его видит пользователь операционной системы.Такие вот знатоки и пытаются сделать из практической полезняшки религию.
>линукс в «ваш новый стандарт», залитый свержу системдой полужидкой консистенции
А, ты нашёл Фатальный Недостаток? Иди и пили свой собственный тру-Юникс, IDE, сборочную машину и запускалку С-программ. Выкладывай на гитхаб, гитлаб или куда-нибудь ещё. Люди посмотрят, потыкают палочкой.
> ...И не для того, чтобы молиться на священные книги предков и основателей.
> Предназначение операционной системы в том, в чём его видит пользователь операционной
> системы.
> Такие вот знатоки и пытаются сделать из практической полезняшки религию.Ты книжки почитай по моим ссылкам, проникнись, _пойми_ наконец, _что такое_ Юникс и для чего он вообще был _таким_ создан — тогда возвращайся и продолжим дискуссию. Пока что на твоём нынешнем уровне ты пытаешься заколачивать гвозди микроскопом, то есть из совершенной системы сделать пускалку для тупых доскеров или десктопов. А если бы ты понимал философию Юникса, то тебя бы от этого извращения коробило.
>>линукс в «ваш новый стандарт», залитый свержу системдой полужидкой консистенции
> А, ты нашёл Фатальный Недостаток? Иди и пили свой собственный тру-Юникс, IDE,
> сборочную машину и запускалку С-программ. Выкладывай на гитхаб, гитлаб или куда-нибудь
> ещё. Люди посмотрят, потыкают палочкой.Нет, я просто знаю, чем закончили свой путь другие юникс-подобные системы, в которые вкорячили «системный менеджер». Корпорастам и любителям доскеров невдомёк, что если портить и ломать такую систему, то однажды она таки сломается и закончится, под неё перестанут писать программы, её не будут больше использовать, поскольку ценностью любого юникса является именно то, что он юникс. Это непреходящая и самодостаточная ценность, совершенная концепция и философия ОС и её средств.
Лучше бы вы FrеeDOS какой-нибудь для своих фантазий приспособили.
>книжки почитай
>тогда возвращайся и продолжим дискуссию
>то тебя бы от этого извращения коробило
>из совершенной системы сделатьКнижки-то интересные. И читанные. Но _дискуссия_ не имеет никакого реального смысла. Потому что все эти твои стенания про "извращения" - это архитектурная вкусовщина. Систему МОЖНО использовать как пускалку для десктопов и докеров? Можно. Точка. Дискутировать можно по ДРУГОМУ вопросу - насколько ЭФФЕКТИВНО решение по использованию этой системы для запуска десктопов и докеров. Эффективно для наилучшего функционирования этих самых десктопов и докеров, разумеется.
И, кстати, раз система совершенная - это подразумевает её универсальность, как одну из составляющих совершенности или нет? Если подразумевает - то не удивительно её широкое использование для РАЗНЫХ задач, а не сеансы фапания на её совершенство.
Так что возьми себя в руки, уймись и не забудь принять таблетки.
>FrеeDOS какой-нибудь для своих фантазий приспособили
DOS -> ... -> Windows. Тоже нормальный вариант для десктопа. Если религия позволяет.
> Здесь у нас, похоже, ещё один опоздавший родиться, не читавший ни Реймонда,
> ни Кернигана, ни других старейшин, причастных к Юниксу, и, следовательно, не
> понявший, что такое Юникс и в чём его _главное_ предназначение."Главное" было в рисёрче на авось продажникам AT&T прокатит.
Чего бы там академия с примкнувшим к ним реймондом ни говорили.
> Такие вот специалисты и превратили линукс в «ваш новый стандарт», залитый свержу
> системдой полужидкой консистенции.Да, названия ярлычков и корпораций поменялись с тех пор.
В маркетинге и манипуляциях толпой они поднаторели. Всё во славу Тельца.
>> Здесь у нас, похоже, ещё один опоздавший родиться, не читавший ни Реймонда,
>> ни Кернигана, ни других старейшин, причастных к Юниксу, и, следовательно, не
>> понявший, что такое Юникс и в чём его _главное_ предназначение.
> "Главное" было в рисёрче на авось продажникам AT&T прокатит.
> Чего бы там академия с примкнувшим к ним реймондом ни говорили.Юникс изначально делали не для продажи (для продажи там были другие товары и услуги), а для себя. Именно по этой причине он таким спроектирован — как IDE и ОС «два-в-одном». В те годы даже самой идеи такой не было — продавать софт.
Читайте правильные книжки, товарищи.
>> Такие вот специалисты и превратили линукс в «ваш новый стандарт», залитый свержу
>> системдой полужидкой консистенции.
> Да, названия ярлычков и корпораций поменялись с тех пор.
> В маркетинге и манипуляциях толпой они поднаторели. Всё во славу Тельца.Что говорить, если сам Столлман и его гоп-компания столько лет за мзду малую умышленно не разрабатывают ядро собственной ГНУ-системы. Корифеи.
> Никсы нужны для того, чтобы ими пользоваться, причём - как _угодно_, так
> и пользоваться, в т.ч. и для корпоративных задач.И где теперь все те никсы "для корпоративных задач" которыми пользовались? (Гусары, молчать!)
> И где теперь все те никсы "для корпоративных задач" которыми пользовались? (Гусары,
> молчать!)Самые распространенные в этом сегменте дистрибутивы линуксов / бсд - ну да ты ж и сам можешь названия поискать - вот прямо на этом сайте.
>> И где теперь все те никсы "для корпоративных задач" которыми пользовались? (Гусары,
>> молчать!)
> Самые распространенные в этом сегменте дистрибутивы линуксовИ это отвечает на какой вопрос?
Помимо того, что если даже забыть о "Linux is not Unix", то все равно - "дистрибутивы линуксов" это не "никсы", а один "никс", но в разных обертках.
И речь шла как бы о
> не ломать, опять же, линукси ваш же ответ
> Никсы нужны для того, чтобы ими пользоваться, причём - как _угодно_, так и пользоваться, в т.ч. и для корпоративных задач.А "все те никсы для корпоративных задач" - это про HP-UX, SunOS, Xenix, Irix.
Ими пользовались "для корпоративных задач", да. Интересно, где они теперь и не повторится ли та же история (тем более, то же System V было пропихнуто в качестве нового стандарта то ли перед, то ли во время Unix Wars - ничего не напоминает?)
>"Linux is not Unix" (...) один "никс", но в разных оберткахКакой-то уход разговора в сторону и кашеобразие. С чего началось? Началось с того, что тут товарища бомбит от того, что б-жественный Юникс используют типа неправильно и б-гохульно.
>это про HP-UX, SunOS, Xenix, Irix
>и не повторится ли та же историяВ корпоративном сегменте вовсю используют, OMG, Убунточку. И имеют с того ништяки и профит. Так что о чём ты? А то, что история юниксофорков древовидна и находится в динамике, где какие-то ветви растут и делятся, а какие-то отмирают - ну так это Кэп. Это ни плохо, ни хорошо. It's life.
Сделали уже.
Маленькая пускалка для docker
https://rancher.com/rancher-os/
>Да, но инфраструктура более легковесных в плане ресурсов решений оказывается более тяжеловесной в использовании. У докера, вон, большое сообщество, есть готовые базовые имиджи чуть ли не для всего на свете. А в случае schroot, например, мне надо дебутстрапить предварительно окружения самостоятельно, и это не делается одной командой, увы.Потому что это не правильный подход. Надо не систему бутстрапить, а сбандлить с приложением либы, которое оно использует, с помощью инструментов вроде linuxdeploy
> Почему это не нужны? Это хорошый способ предотвратить возможность какому-нибудь софтверному каловому монстру засрать твою систему кривыми либами зависимостей.Плюсую. А ещё деплой удобнее в разы становится.
деплой мусорных монстров "мы скачали пол-интернета себе в хомяк и еще вон там и вон там нагадили ошметками" - становится.
Деплой нормального софта - не становится, он и так удобный - zypper up -y, и всех дел.но нормальный софт уже десять лет как немоден в новых-стандартах.
я лучше виртуалку накачу
> я лучше виртуалку накачус виртуалкой - попадос, это полноценный сервер - добро пожаловать в мир регулярных апдейтов, бэкапов, автоматизации управления и т д (можно использовать ее и в режиме контейнера, но готовых рецептов для этой цели нет, все придется выстрогать самому из полена - вот прямо начиная с докерных volumes)
>> я лучше виртуалку накачу
> с виртуалкой - попадос, это полноценный сервер - добро пожаловать в мир
> регулярных апдейтов, бэкапов, автоматизации управления и т д (можно использовать ее
> и в режиме контейнера, но готовых рецептов для этой цели нет,
> все придется выстрогать самому из полена - вот прямо начиная с
> докерных volumes)а в контенерах что по-другому? или на виртуалках снапшотов нет?
>>> я лучше виртуалку накачу
>> с виртуалкой - попадос, это полноценный сервер - добро пожаловать в мир
>> регулярных апдейтов, бэкапов, автоматизации управления и т д (можно использовать ее
> а в контенерах что по-другому? или на виртуалках снапшотов нет?в контейнере у тебя (если все сделал по методичке и каким-то чудом это получилось) - ровно одна программа крутится, без всей остальной операционной системы - от той только дерево fs - да, в нем могут быть какие-нибудь чудеса, но ту программу они скорее всего не затрагивают. И (опять же если получилось,а не как в описываемом эксплойте) он по сути неперсистентный - при рестарте той программы весь контейнер пересоздается из образа заново.
А апдейтится/бэкапается и обслуживается у тебя - хост. Причем с хостовой точки зрения - это просто еще один процесс, с какими-то заморочками.
> А апдейтится/бэкапается и обслуживается у тебя - хост.А контейнер? Тот самый рантайм на котором крутится мое приложение? Кто его будет обновлять?
Обновление виртуалки заменяется обновлением образа?
Чем тогда лучше 1 хост + 10 контейнеров вместо 1 хост + 10 виртуалок?
Как по мне те же яйца в профиль, но только без нюансов вида: "сли все сделал по методичке и каким-то чудом это получилось"
Разве не так?
Если писать код абсолютно правильно, то контейнеры не особо то и нужны. Но с ними проще, на многое можно забить.
> Если писать код абсолютно правильно, то контейнеры не особо то и нужны. Но с ними проще, на многое можно забить.
> абсолютномаксималист детектед. Возвращайся в мир собственных фантазий
>Если писать код абсолютно правильно, то контейнеры не особо то и нужны.Контейнеры были придуманы для разделения ресурсов между сервисами, выполняющимися в облачной инфраструктуре. И в этой нише конкуренция идет в основном между различными типами этих самых контейнеров, так как виртуализация всегда имеет больше накладных расходов. А то, что некоторые макаки забивают гвозди микроскопами - это как бы совсем не означает, что микроскопы не нужны и их легко заменить молотками.
> Контейнеры были придуманы для разделения ресурсов между сервисами, выполняющимися в облачнойда ну нах? Я-то думал для разделения ресурсов были придуманы многозадачные операционные системы, где-то лет пятьдесят назад (и да, они умели э...как это..."облачную инфраструктуру". В смысле, можно было собрать "кластер" из двух EC1045)
> инфраструктуре. И в этой нише конкуренция идет в основном между различными
> типами этих самых контейнеров, так как виртуализация всегда имеет больше накладныхсерьезно? Вы где видите в продакшн какие-то еще "контейнеры"? Вообще контейнеры, я уж не уточняю "отличные от доскера", а не впопенштифт поверх къебенетеса.
виртуализация имеет помимо накладных расходов (которые хрен померяешь на фоне накладных расходов, ну,например, операционной системы с доскером в доскере в доскере - кто менял производительность прекрасной overlayfs, ась?) определенные бонусы - например, таки обеспечивая относительно надежную изоляцию - дальше poc эксплойты пока не продвинулись.
> расходов. А то, что некоторые макаки забивают гвозди микроскопами - это
это неизбежно следствие массового выпуска микроскопов без линз, с большой деревянной ручкой и металлической херней на конце. Для изучения микромира непригодных в принципе. Гвозди тоже хреново забивают, тут согласен.
systemd-nspawn
>Если писать код абсолютно правильно, то контейнеры не особо то и нужныЕсли использовать java EE, то доцкер не нужен. Может есть и другие вменяемые платформы, хз.
>>Если писать код абсолютно правильно, то контейнеры не особо то и нужны
> Если использовать java EE, то доцкер не нужен.угу, вместо сравнительно дешевого девляпса надо кормить наглого и распухшего от собственной важности жабиста.
Иначе в любой момент можно получить в морду бэктрейсом, и ни одна живая душа на свете не сможет объяснить, чего тут сломалось и чего этой уродине надо.
> Может есть и другие вменяемые платформы, хз.
есть, но жабка в их список не входит.
P.S. утром рассыпался filr - да-да, все как ты любишь, томкэт, жабка-ээ, поиски по всему диску кривыми башевскими скриптами запчастей и жалобы что нашла не то не так и не там вместо нормальных логов. Повезло - "починил" вручную запустив сдохший сервис. Почему он не загружался автоматически - жабист его знает.
> Ждем комментаторов с искрометными шутками про "девляпсов" и "контейнеры нинужны".У "девляпсов" копирование файлов в контейнер (точнее, образ) выполняется только при docker build, когда контейнер, внезапно, не выполняется. Для всего остального есть volumes.
Менять что-то в контейнере вручную - крайне бессмысленная задача, так они обычно создаются и уничтожаются автоматически при деплое.
> Для всего остального есть volumes.объявленные (те что персистентны, а не каждый раз вручную) deprecated пять лет назад и с тех пор по этому поводу толком не поддерживаемые (оставляют неудобообнаруживаемый и неудобоудаляемый мусор в системе, не видны обычными инструментами если не знать и не спросить специально)? Отличное решение, так держать.
Ну и вот ни разу не поверю, что копирование файлов ИЗ контейнера - никогда-никогда не случается у девляпсов. А баг, как я понимаю, эксплойтится и этим способом замечательно.
> deprecatedИ чем заменять предлагают?
> И чем заменять предлагают?как обычно, ничем - "как, вы не слышали? в какой криокамере вы спали? standalone docker давно уже ж немодно, все на k8s, бегом, бегом, некогда разбираться, ляпай давай!"
его, разумеется, тоже будет некогда доделывать - "все бегом в впопенштифт, управлять кластером руками ересь и предрассудки!"
в k8s все тем более через volume-ы делается
Судя по его комментам в этом обсуждении, докер он видел только на картин^Wвинде, а про кубер и сварм вообще только слышал.
> Судя по его комментам в этом обсуждении, докер он видел только на
> картин^Wвинде, а про кубер и сварм вообще только слышал.ваш сварм - такое же устаревшее ненужно, уже выкинутое ляпателями доскера в помойку, не доделывать же его, в самом-то деле?
Работает оно примерно вот так:
https://github.com/docker/docker-credential-helpers/issues/103
(да, проблема не в непосредственно его коде, но она, как видим, вылезла на куче систем и у кучи людей - просто потому что ляпалки не умеют тестировать прежде чем пихать что попало в зависимости)и ничего, пол-года никого не беспокоило - а чо, подумаешь, билд ломается, pull-то не ломается, зачем что собирать, вон тащи с хаба, уже за тебя собрали как попало что попало!
А новые-модные пацанчики им не пользуются - устаревшая негодная технология, не иначе.
P.S. отдельно доставил девляпский способ "решения" проблемы - тоже, судя по комментом, радостно подхваченный миллионами мух. Не буду объяснять что с ним не так, вам не надо лишних знаний.
> у и вот ни разу не поверю, что копирование файлов ИЗ контейнера - никогда-никогда не случается у девляпсов.Осталось найти девопса и убедить его сто раз скачать файл из работающего контейнера. Если повезёт, этого хватит, чтобы сработала уязвимость.
ну нет, зачем же так - надо найти девопса с десятью тысячами контейнеров, и как-то развести на нужный и полезный файл где-то в одном из. Вероятность попадания резко увеличивается.
Ага, админ десяти тысяч контейнеров не имеет никакой автоматизации и чуть что - сам лезет чинить.
Десять тысяч раз в день, ага.Ну и бред вы несете.
На практике, если с каким-то контейнером проблема - его проще редеплойнуть, чем ковыряться в его потрохах и выяснять, кто там pid-файл забыл убрать.
> Ага, админ десяти тысяч контейнеров не имеет никакой автоматизации и чуть что - сам лезет чинить.Зачем ты приписываешь свои слова другим?
> проще редеплойнуть, чем ковыряться
На практике проще.
Но не правильней.
Потому, что если всё делать как проще, то получится:> Ну и бред вы несете.
> Ага, админ десяти тысяч контейнеров не имеет никакой автоматизациину нет, зачем же - он как раз автоматически наш эксплойт и запустит, вручную-то хрен разведешь на такую тяжкую работу. Возможно даже и не зная о том - мало ли кто и когда чего заавтоматизировал еще до него - разбираться некогда, давай еще сорок подов поднимай.
> На практике, если с каким-то контейнером проблема - его проще редеплойнуть, чем
а оно вот, опять. И еще в пятистах, и число их растет.
Не, не будем ковыряться, какая нам разница что там не работает - проще редеплойнуть, ага?А потом прод лежит, потому что число "не совсем так работающих" превысило запас прочности системы, и они продолжают валиться.
Мы за это (в смысле - перезапуск автоматикой без попыток разобраться, что именно в этом инстансе пошло не так), кстати, дежурную смену штрафовали, именно по этой причине. Надеюсь, они все уже развились в девопсов, а самые умные - сменили профессию.
> ну нет, зачем же - он как раз автоматически наш эксплойт и запуститdocker cp? Нет, не запустит. В процессе продового деплоя отладочным операциям не место.
> Не, не будем ковыряться, какая нам разница что там не работает - проще редеплойнуть, ага?
Для ветеран-админов из девяностых, у которых одновременно в ведении было максимум десяток демонов, сложно понять, как можно работать с десятком тысяч контейнеров. Вы все время проецируете SOHO-методы - вручную чинить каждый сбой каждого приложения.
Действительно, зачем нужны системы мониторинга и коллекторы ошибок - админ сам зайдет, посмотрит и починит, лично, на всех ста серваках одновременно, ага.
> docker cp? Нет, не запустит. В процессе продового деплоя отладочным операциям не
> место.ага, перезапускать до посинения прода, после - обновить резюме.
>> Не, не будем ковыряться, какая нам разница что там не работает - проще редеплойнуть, ага?
> Для ветеран-админов из девяностых, у которых одновременно в ведении было максимум десяток
> демонов, сложно понять, как можно работать с десятком тысяч контейнеров. Вытак же, как мы работали с тысячей-другой физических хостов без всяких контейнеров - ничего ужасного в этом нет.
> все время проецируете SOHO-методы - вручную чинить каждый сбой каждого приложения.
это как раз промышленные методы - _сбоям_, а не отладке, на проде не место. Как и лечению перезапуском.
Если нельзя откатиться на заведомо исправную версию - да, идешь и разбираешься, что сломалось. Если делаешь это вручную - достаточно одного инстанса каждого типа, затронутого ошибкой.
Ну а если все переавтоматизировал так, что ручного доступа вообще нет - получай в свой канализационный коллектор терабайт ненужного мусора и ищи там, как хочешь.хотя да, зачем - надо просто перезапустить, потом еще два раза перезапустить, потом обновить резюме и еще раз перезапустить.
В резюме, разумеется, не забыть упомянуть опыт обслуживания продакшн-систем с миллионом инстансов.
Где вы такую траву берете? Или вы машину времени украли и пишете из 2030 года?
Не машину, а вагон времени. Всё это ваше ГНУ именно про вагон бесплатного чужого времени.
> Не машину, а вагон времени. Всё это ваше ГНУ именно про вагон
> бесплатного чужого времени.Сестра, тампоны! В треде ушибленный ГНУ!1
У тебя ушиб, если ты "девляпсы" выше по треду или "дыркер" из новости "перевёл" на гну.
Прикладывай лёд.
> объявленные (те что персистентны, а не каждый раз вручную)О, сразу видно великого спеца по девляпсам. Контейнеры, значит, вручную создаете.
На практике, где-либо, кроме тестового стенда, никто такой фигней не занимаются. Контейнеры со всеми томами, портами и лимитами создаются автоматически системой деплоя, поэтому никаких "вручную" быть не может по определению. Более того, в нормальной инфраструктуре система мониторинга выявляет все созданные и измененные "вручную" контейнеры на продовых серваках и поднимает critical alert.
>> объявленные (те что персистентны, а не каждый раз вручную)
> О, сразу видно великого спеца по девляпсам. Контейнеры, значит, вручную создаете.сразу видно великого спеца-девляпса, он даже не понял что речь о персистентных томах, а не контейнерах.
> На практике, где-либо, кроме тестового стенда, никто такой фигней не занимаются. Контейнеры
> со всеми томами, портами и лимитами создаются автоматически системой деплоя, поэтомупоэтому docker cp их незаменимый помощник, когда что-то где-то пойдет не так, ага, ага (ну и наш тоже, если придет в голову их немного поломать).
какие еще персистентные тома, они об этом ведь не успели дочитать, а если бы и успели - модная система "орхестрации" все равно не даст.
> сразу видно великого спеца-девляпса, он даже не понял что речь о персистентных томах, а не контейнерах.Нет, я не понял, нафига вообще нужны персистентные тома. Еще раз: список томов в виде пар "каталог хоста"-"каталог контейнера" (+опционально ro) автоматически формируется при создании каждого нового контейнера. Зачем в этой схеме нужен механизм docker persistent volumes?
> поэтому docker cp их незаменимый помощник, когда что-то где-то пойдет не так, ага, ага (ну и наш тоже, если придет в голову их немного поломать).
Ну удачи залезть на тестовый стенд. Конечно, специально для вас его откроют в мир. Если очень-очень попросить.
> Нет, я не понял, нафига вообще нужны персистентные тома. Еще раз: список
> томов в виде пар "каталог хоста"-"каталог контейнера" (+опционально ro) автоматически
> формируется при создании каждого нового контейнера. Зачем в этой схеме нуженв этой- низачем, поэтому поломано и починено не будет. Как и много чего еще, брошенное недоделанным, потому что стая макак ускакала за новыми, более блестящими погремушками.
(тот же swarm, как показала практика)
> с искрометными шуткамиНе каждому разработчику удаётся выбраться из контейнера на оплачиваемую работу.
Хьело фрём Индия, дрюгь! Ми написале харёши кёд для твая видиёкартачкя, дрюгь! Тама сто милиёнь строкь! (неразборчиво говорит дальше на хинглише)
> Ждем комментаторов с искрометными шутками про "девляпсов" и "контейнеры нинужны".Жаль, что тебе и подобным не понятно, что это не шутки в целом.
Контейнеры сами по себе может и ок концепция, со своей областью применения, но то, как эта концепция реализована в дрокере - это провал. Да и вечнодырявые линуксовые неймспейсы доверия не добавляют.
какая разница между концепцией контейнеров, ее реализацией в докере и линуксовыми неймспейсами?
> какая разница между концепцией контейнеров, ее реализацией в докере и линуксовыми неймспейсами?Это, на самом деле, непростой вопрос, на который развёрнуто отвечать можно очень долго и наверняка можно что-то пропустить.
Контейнеры в Linux претендуют на то, чтобы быть гибкими до невозможности. Ты можешь запустить приложение только в сетевом или только в PID неймспейсе, например, и, в теории, как угодно хитро управлять наборами неймспейсов для контейнеров.
На практике - бесконечные дыры из-за того, что реализация переусложнена во имя той самой гибкости.
При этом, необходимость этой гибкости под огромным вопросом.
Нужно изолировать приложение? ИЗОЛИРУЙ! Не нужно этих полумер с общими для N контейнеров неймспейсов. Это никогда не будет безопасной конструкцией.В этом плане неплохой пример того, какие контейнеры ОК - старые джейлы во FreeBSD. Гораздо более куцые в плане функционала, но свою задачу - запуск приложений в изолированном контейнере решающими отлично. Сейчас и их слегка переусложнили...
Ты про вебмакак забыл без них никуда.
"Контейнеры2 НЕ НУЖНЫ. дЕВЛЯПСЫ И ХИПСТОТА ЗЛО.
#nobigfatdaemon
S in docker stands for securityУже было и потёрли?
шутка, повтроненная в десятый раз уже не смешна
> шутка, повтроненная в пятидесятый раз уже не смешнаКто бы это Астахалу объяснил?
отнюдь, коллега, отнюдь
> S in docker stands for securityВроде так обычно не про докер шутили, а про systemd.
WAIT, OH SHI~
#notabug
Ну где тот аноним, который биткоинами разбрасывался? месяц даже не прошел )))
ну он вроде обещался за вылезание из контейнера, а не за эксплуатацию уязвимости в самом дыркеретут, как я понимаю, традиционно, нужен доступ к docker socket или лох, который это сделает за тебя в оговоренный момент. А это человеческие отношения, это сложно - проще получить свой биткойн с этих вот - "я вчера взламал твой кампьютер, хакнул твой вебкамера и заснятое разошлю по списку всех тваих кантактов если не пришлешь мне деньгов". Раньше они хоть правда пытались подбирать пароли и иногда даже присылали их, а теперь уже не парятся - видимо, и так неплохо выходит.
И только я, как дурак, сижу без вебкамеры :-(
> лох, который это сделает за тебя в оговоренный момент.И вероятность удачи порядка 1% на попытку. Очень долго придется несчастного лоха мучить...
> Ну где тот аноним, который биткоинами разбрасывался? месяц даже не прошел )))Он обещал за выход из контейнера. А сабжевая жуткая мега-уязвимость предполагает, что вы уже вне контейнера и имеете полномочия для управления докером (группа docker, в которую обычно входят только админы).
так каждый дурак может, тут идея что полномочия-то не у тебя, а используешь их - ты, без спросу.
Фигасе "без спросу" - сотню-другую раз подряд просить админа "ну скопируй мне файл, ну позяяяязя".
Systemd, dockers, не хватает только реестра для полного счастья.
dconf
> dockersC буквой "s" это будет другой, неправильный докер.
Wayland же, причем тут реестр.
> Wayland же, причем тут реестр."-- Тому не надо #Windows искать, у кого он за спиной стоит. "(почти)
"на 'десктопе' стоит"
> "на 'десктопе' стоит"не, за "спиной rh ^W ibmel-а".
В топике ничего не сказано про systemd, чудик.
>Атака может быть совершена только в момент выполнения администратором команды "docker cp" для копирования файлов в контейнер или из него.Вот уязвимость так уязвимость... Я аж забоялся...
> Таким образом атакующему необходимо каким-то образом убедить администратора Docker в необходимости выполнения этой операции и предугадать используемый при копировании путь.Может, проще сразу попросить рутовый доступ? А что, неплохая уязвимость получается - любой линукс взломать можно. И *bsd тоже. "Каким-то образом убедить админа, что вам нужен рутовый шелл".
А когда выберетесь из докера, то что дальше делать будете ?
Если говорить о реалистичных сценариях атаки, то это не "выбраться из контейнера", а "получить рута, если у тебя есть полномочия докер-админа".
На практике обычно управление докером и так выполняется из-под рута, поэтому можно даже за попкорном не ходить, скукотища.
Снова ночь и снова демоны приподнимают крышки контейнеров, оглядываются вокруг и едва слышно, по-одному, вылазят наружу...
Вот читаю комментарии, и удивляюсь. Никогда столь дырявая вещь не захватывала умы IP сообщества. Видимо это новый миллениум - сначала ставишь в прод, потом отлавливаешь баги, дыры и всё такое. Нам же некода, быстро надо.
Это:
и про докер,
и про pulseaudio, как он внедрялся,
и про systemd, как он внедрялся, без которого docker не столь привлекательным становится.Странно это. Без докера, помоему и обсуждать то не пришлось бы. Сейчас все разговоры только о том, какие дырки в докере, как эти дырки латают, как swarm придумал, как научили контейнеры контактировать друг с другом, какой плохой swarm, закроем swar, сделаем kubernetis, и т.д...
Технология на столько бурно развивается. и на столько плохо обкатана, что тот кто его потрогал год назад, сейчас уже занова должен всё читать и разбираться.
В сети взяли на вооружение BGP, раздали всем желающим рукожопам по AS, и сейчас ноют, что делать с интернетом. Распродали IP-адреса всем подряд, бесконтрольно, получили целые подсети spam, ddos, прочего флуда.
У меня одного впечатление, что всем IT рулит стадо детей лет 12-ти, которым вообще не хочется думать о завтрашнем дне?
Где мозги у людей?!
Даже уже шутить по поводу Docker не хочется. Это реально не смешно становится. Постригусь в BSD'уны.
> и про systemd, как он внедрялся, без которого docker не столь привлекательным становится.вот сейчас обидно получилось!
доскер с системд - не то что не близнецы-братья, а вообще друг-друга не любят. При запуске изнутри доскера, у системды есть специальный детект, который при этом ее ломает нахрен (можно починить но не нужно - для того и сделано ,чтоб так не запускали - просто так работать не будет, нужен костылепердолинг. one true init, заметьте, будет) Менеджмент доскер-контейнеров системдой невозможен нормально by design, только кривыми костылепрокладками - что и вызвало к жизни редхатовский "почти такой же, только не демон" (хотя ежу понятно что это решение всем хуже).
Поменять параметры запуска доскеру до системды можно было отдельным человекочитаемым конфигом (поскольку их читал скрипт), сейчас - только оверрайдом юнита, со всеми побочными эффектами (включая и то что человекочитаемым это не является, поскольку потроха сцыстемды перемешиваются с настройками приложения), ведь сцыстемда не умеет файлы с параметрами, а доскер как обычно недоделан, и не все то что можно пооверрайдить командной строкой, допустимо в конфиге.
> хотя ежу понятно что это решение всем хужеМне не понятно! Объясни!
у тебя есть демон, работает с поднятыми привиллегиями, запускается тем у кого они есть, может самостоятельно после этого сбросить лишние (ему видней, какие на самом деле нужны), no user-serviceable parts inside.
И отдельно cli, не требующий лишних прав, общающийся с демоном через лимитированный интерфейс (docker socket).Очевидно, что это и более надежное, и более управляемое (единственная точка входа - сокет, на которую можно аккуратно раздать права кому надо) и более компактное решение, вполне себе, между нами, unixway. Если б еще и работало, цены б ему не было, но тут как всегда.
Редгад берет и запихивает это все в юзеро-исполняемую программу чохом. Только потому, что его чудо-система инициализации не может нормально с тем демоном взаимодействовать, и не понимает, работает ли еще контейнер или уже сдох. (хотя это вообще не ее собачье дело, между прочим - но вот перехода в состояние running было бы неплохо и дождаться, если от его работы еще что-то у нас зависит. А опаньки, не обучено оно таким сложным проверкам.)
>и про systemd, как он внедрялся, без которого docker не столь привлекательным становится.да при чём тут докер то? :E у меня за 2 года прода багов докера было ровно два, с пермиссиями и extended acl. второй баг возник из-за лимитов. В systemd они задаются отдельно от /etc/security/limits.d/
Других проблем не было. и это прод, 2к рпс/наносекунду.
> у меняда-да-да, "если у меня работает, значит не гoвно".
2K рпс/наносекунду. Толсто однако.РПС - RPS - requests per second.
Даже если забыть этот ляп. И это 2K запросов в наносекунду, Гугл в сторонке курит.
Иди уроки учи. Завтра в школу
Другими словами вы pizdobol сэр.
Я в своём комментарии, как бы намека (явно говорю), что без systemd, с которым требования в виртуальной машине повышаются до 512МБ (хотя, вроде 256МБ со скрежетом стартует), докер становится не так привлекателен со всей мудрёностью, дырами, оркестрационными костылями и прочими утилитами.Смотрите пример.
допустим в минималке Alpine Linux запускается на 32МБ RAM. Сколько вы таких станций сможете запустить, чтобы утилизировать 1ГБ RAM?
А теперь, если у вас Debian, на запуск которого вам нужно 512БМ RAM. Сколько вы таких станций сможете запустить, чтобы утилизровать 1ГБ RAM?Доступно объяснил?
Я конечно понимаю, что 32МБ RAM на запуск системы и кучи процессов подкапотом и дискового пространства под систему значительно выше чем в контейнере. Но зато, не нужно постоянно адаптироваться под быстроменяющийся дуршлаг, быстродействие которого под большим вопросом под нагрузками, т.к. есть накладные расходы на слои FS, есть утечки памяти, есть нюансы с сетью, есть дырки и нежданчики, которые всю изоляцию делают вовсе не изоляцией (на сколько позволяет мне судить моё поверхностное знание о Docker).
И это всё прекрасно, когда вы на Docker у себя в лаборатории, изолированной от общества, делаете. А вот если начинаете покупать контейнеры у Amazon, в облаке на них прод подымаете. Мне вас жалко.
Не! Конечно, может вы никому не интересны, и у вас взлома не произойдёт!... И в резюме вы сможете написать, что знаете докер, можете подымать 100500 хостов за пару минут и вертеть все их на своей шишке. Обычно это безотказно работает на работодателей ищущих DevOps.
Нео путь избранного
А что Freebsd с её джейламм?
> А что Freebsd с её джейламм?какой был 100 лет назад, такой и остался, пусть таким и остается
кое-что все же успели испортить за последние пять - в погоне за косплеем доскера, ага.
vnet что-ли? На 11.2 все ещё кидал систему в панику если в разных клетках свой pf запустить.
> vnet что-ли? На 11.2 все ещё кидал систему в панику если в
> разных клетках свой pf запустить.в клетках пф? о Боже
>> vnet что-ли? На 11.2 все ещё кидал систему в панику если в
>> разных клетках свой pf запустить.
> в клетках пф? о Божену а зачем вообще тебе vnet?
с разделяемой физической сетевухой и так все работает.
> ну а зачем вообще тебе vnet?
> с разделяемой физической сетевухой и так все работает.алиасов хватает )
Алиасы не нужны. vhid практичней.
так это и есть разделение физической сетевухи - хошь алиасами, а не хошь просто порт не занимай.
> так это и есть разделение физической сетевухи - хошь алиасами, а не
> хошь просто порт не занимай.а зачем тогда pf тянуть в джейл?
в смысле? Это способы его туда не тянуть.А pf в jail можно хотеть тянуть по миллиону причин - например, дать им порулить кому-то третьему. Но для этого понадобится таки vnet. С моей точки зрения - лучше бы его там не было, а кому-те мы дадим виртуальную машину, пусть подавится, но в ядре будет меньше подозрительного кривого кода, который некому поддерживать.
P.S. впрочем, я тут случайно забрел в некоторые места, почитал, сделал выводы о перспективах фри в моем хозяйстве и в народном хозяйстве вообще.
Вкратце: раз https://reviews.freebsd.org/D19094 и два: https://github.com/zfsonlinux/zfs/issues/7896 (напоминаю, что это вашновыйстанда...простите, апстрим, и именно по этой причине туда пришел Тутубалин, точнее, его сумели уговорить это сделать)Причем во втором случае есть шанс на победу здравого смысла, а в первом никаких надежд нет, типичное поведение фрибсдшников, ткнутых носом в проблему.
> Вкратце: раз https://reviews.freebsd.org/D19094 и два: https://github.com/zfsonlinux/zfs/issues/7896
> (напоминаю, что это вашновыйстанда...простите, апстрим, и именно по этой причине туда
> пришел Тутубалин, точнее, его сумели уговорить это сделать)
> Причем во втором случае есть шанс на победу здравого смысла, а в
> первом никаких надежд нет, типичное поведение фрибсдшников, ткнутых носом в проблему.О да. Сорян за лёгкий некропостинг, но да, это прекрасно.
"Ты закоммитишь?" - и тишина. В русскоязычном канале фрибсдшников в богомерзком телеграме Слава (slw который) много высказывался про весь этот трэш-цирк.Жаль, что всё так.
Для всех в этом чатике изоляция бывает только аппаратная. И то там работает социоинженерия. Все остальное фикция. То что докер не может решить эту проблему это только потому что никто такой задачи решить не может.
Ещё дыры в интеловских процах там ничего так работают.
Эту вашу аппаратную изоляцию ломают чаще чем в докере дыры находят. При этом её ещё и исправить можно только покупкой новой железяки, которая появится только через год.
> вашу аппаратную изоляцию ломают чаще чем в докере дыры находят.Это изоляция .. , она такая же наша как и твоя.
И почему изоляцию ломают, а дыры в докере находят? Может всё ровно наоборот? Дыры в твоей аппаратной изоляции находят, а докер ломают?> При этом её ещё и исправить можно только покупкой новой железяки, которая появится только через год.
И какой же ты делаешь из этого вывод? Что, надо использовать докер без аппаратной изоляции?
Вот тут ты очень смешно протролил. Надо запомнить. Буду теперь всем DevOps'ам говорить, чтобы использовали Docker без аппаратной изоляции в чистом виде, прямо на железе. Какой там на железе?! Прямо в уме пускай это делают. В мозгу то дыр нет. Хотя...
Ха-ха-ха-ха-ха! (сдох)
> И то там работает социоинженерия.И хорошо работает. Аппаратная изоляция - это программная, реализованная на уровне фирмвари проца. Тот же программный код, притом проприетарные. Да уж, изоляция с открытым кодом - фикция, только проприетарная изоляция настоящая.
Вспомнил забавный киноляп из недавнего фильма, как чел, кажется раз 7 сбегал из немецкого концлагеря во время второй мировой.
> Вспомнил забавный киноляп из недавнего фильма, как чел, кажется раз 7 сбегал
> из немецкого концлагеря во время второй мировой.Был такой. Тони Ролт. Прославился еще как гонщик (и тем, что для последнего побега, из замка Кольдиц, построили с группой заключенных планер).
Сбегал 7 раз (вроде как подтверждено документально самими немцами).
Просто был британским офицером (более мягкие условия содержания в начале второй мировой), да и последний его побег был еще до 1943.
Почему баг обработки симлинков исправляется приостановкой контейнера????
>Почему баг обработки симлинков исправляется приостановкой контейнера????потому что твой супер контейнер должен быть stateless, и их должно быть два минимум.
statefull прикладухи для докера это такое себе, mysql в докере поднимать не следует, если ты не псих и не разраб.
> Почему баг обработки симлинков исправляется приостановкой контейнера????потому что макака по другому просто не умеет. Контейнер стопнула - опа, вот и race condition сам собой рассосался, с гарантией. А что он в тот момент может на запрос отвечал (от чего никакое "stateless" не спасет) - да пофигу, вон, девляпс уже верещит что это верно и правильно, у него 5krps ненужно - "всеработает".
Девопсненько так. В lxc проблемы нет, но девопсяры же в неё не умеют, им решетокер нужен))
lxc очень сложно, нужно проходить курсы для запуска hello world
> lxc очень сложно, нужно проходить курсы для запуска hello worldlxc еще и очень криво, неудачный косплей виртуальной машины.
К ней бы runc от clear приделал кто - была бы неплохая в общем альтернатива qemu.
В podman тоже нет проблемы, но во многом аналогичен докеру по использованию. Да и runc лучше lxd по безопасности, потому как хотя-бы для части контейнеров в нем можно обходиться без прав рута.
https://github.com/rgroux/exemples/wiki/Howto:-LXC---contain...
Вообще этих контейнеров вагон и маленький вагон, но бабки нашептали только три буквы - LXC.
Вопрос в том, как много из них прошли аудит безопасности и стали готовы для продакшена.
> Вопрос в том, как много из них прошли аудит безопасности и сталилолшта? Конечно ноль!
> готовы для продакшена.ВСЕ!
(каравай-каравай, каку хочешь? Выбирай!)
Только то что запускают в реальной VM, как например VMware Photon.
> Только то что запускают в реальной VM, как например VMware Photon.ты еще скажи, что она проходила какой-то там "аудит".
или что секретная технология x-як-х-як и в продакшн не освоена китайцами вмвари в достаточной степени.
или что такая же виртуалка с atomic shit (или как там его) чем-то по надежности будет хуже?
В systemd-nspawn тоже проблемы нет.
Ну что, сколько уже смузихлебов выбралось из своего картонного контейнера? Уже есть статистика?
ШОК, СЕНСАЦИЯ!!! Найдена уязвимость во всех ОС: Если иметь права root\админа, то можно убить систему!!!
Уязвимость ещё не исправлена!
А можно поподробнее? Хочу УБИТЬ СИСТЕМУ!
Имей систему - переходи на красный.
Можно: killall system
Дерзай.
> Можно: killall system
> Дерзай.# killall system
No matching processes were foundА что должно было произойти?
Если на каждый шмокер приходится ровно по одному хосту, то не страшно конечно. Но нафига тогда он нужен?
для деплоя же ж...но так красиво получается только первые три дня - а дальше контейнеров становится пара сотен, вручную рулить ими ты быстро задолбаешься, а ответственность за безопасность и надежность решения уже успешно переложена на никого, так что и плакать не о чем.
> убедить админаУбедить? Да сейчас каждая вторая приблуда - "нет времени объяснять, качай docker". Или еще хуже "curl https://vasyapupkin.com -sSf | sh"
Используйте для изоляции харденед chroot от grsecurity.net