Исследователи безопасности из компании Cisco раскрыли (https://talosintelligence.com/vulnerability_reports/TALOS-20...) сведения об уязвимости (CVE-2019-5021) в сборках (https://hub.docker.com/_/alpine) дистрибутива Alpine для системы контейнерной изоляции Docker. Суть выявленной проблемы в том, что для пользователя root был задан по умолчанию пустой пароль без блокировки прямого входа под root, что позволяло по умолчанию подключиться к контейнеру без пароля или повысить привилегии внутри контейнера через запуск утилиты su. Напомним, что Alpine используется для формирования официальных образов от проекта Docker (раньше официальные сборки основывались Ubuntu, но потом были переведены (https://www.opennet.me/opennews/art.shtml?num=43828) на Alpine).
Проблема проявляется начиная со сборки Alpine Docker 3.3 и была вызвана регрессивным изменением, добавленным в 2015 году (до версии 3.3 в /etc/shadow использовалась строка "root:!::0:::::", а после из-за прекращения использования флага "-d" стала добавляться строка "root:::0:::::"). Проблема была изначально выявлена и исправлена (https://github.com/gliderlabs/docker-alpine/commit/8b9abf92b...) в ноябре 2015 года, но в декабре по ошибке опять всплыла (https://github.com/gliderlabs/docker-alpine/commit/ab4337c59...) в сборочных файлах эксперментальной ветки, а затем была перенесена в стабильные сборки.В сведениях об уязвимости указано, что проблема проявляется в том числе в последней ветке Alpine Docker 3.9. Разработчики Alpine в марте выпустили (https://github.com/docker-library/official-images/pull/5516) исправление и уязвимость не проявляется (https://github.com/alpinelinux/docker-alpine/issues/13) начиная со сборок 3.9.2, 3.8.4, 3.7.3 и 3.6.5, но остаётся в старых ветках 3.4.x и 3.5.x, поддержка которых уже прекращена. Кроме того, разработчики утверждают, что вектор для атаки сильно ограничен и требует наличия у атакующего доступа к той же инфраструктуре.
URL: https://talosintelligence.com/vulnerability_reports/TALOS-20...
Новость: https://www.opennet.me/opennews/art.shtml?num=50654
Нормально, что. Докер образ - это же как отдельное приложение статически слинкованное в статическом окружении. Никто не ставит пароли на приложения.
>"root:!::0:::::", "root:::0:::::"Т.е. проблема в наркоманском формате конфигов, который делает невозможным нецеленаправленное обнаружение ошибки.
Полвека жили с DSV, и никому даже в голову не приходило, что с ним что-то не так, пока, наконец, Астахл не открыл нам глаза. Спаситель ты наш!
а шо, он от части прав, хотите сказать вот такой вот синтаксис не разрешен ::::: ?
Конечно разрешён, это нормальный синтаксис DSV. Что с ним не так?
Ну, конечно, если отвлечься от его конкретного приложения, в котором могут быть обязательные поля.
>в котором могут быть обязательные поля.так все к этому и сводится, строгости нет, вот и такие беды, у рута нет пароля ппц, рута без пароля теоретически существовать не должно, представьте Бога который не все властен :) или его властью обладает каждый смертный, существовало бы понятие Бога?
>>в котором могут быть обязательные поля.
> так все к этому и сводится, строгости нет, вот и такие беды,Yea, you got it! But don't worry! They call me Superlennart and I'm here to rescue you all! There will be one true, binary format soon.
> у рута нет пароля ппц, рута без пароля теоретически существовать не должноYou don't know about biometric, BT/USB-key/NFC and other passwordless authentification methods, do you?
>You don't know about biometric, BT/USB-key/NFC and other passwordless authentification methods, do you?кхмм в смысле без парольные методы? вы хоть представляете, что из себя представляют эти механизмы? или для юсби брелка вы там пинкод для разблокировки ключа не вводите?
>>You don't know about biometric, BT/USB-key/NFC and other passwordless authentification methods, do you?
> кхмм в смысле без парольные методы? вы хоть представляете, что из себя представляют эти механизмы?Не только представляю, но и использую.
> или для юсби брелка вы там пинкод для разблокировки ключа не вводите?
Причем тут пароль в /etc/shadow и какие буквы в слове "passwordless" вам не понятны?
>Причем тут пароль в /etc/shadow и какие буквы в слове "passwordless" вам не понятны?при том, что читаем выше, "рута без пароля существовать не должно", вот и мне говорят про "passwordless" механизмы.
>>Причем тут пароль в /etc/shadow и какие буквы в слове "passwordless" вам не понятны?
> при том, что читаем выше, "рута без пароля существовать не должно", вот
> и мне говорят про "passwordless" механизмы.Внезапно, при той же биометрической аутентификации никакого пароля для рута не требуется. С брелками то же самое - опционально.
>биометрической аутентификации никакого пароля для рута не требуетсято есть ваш рут без пароля? и любой может им пользоваться?
>Внезапно, при той же биометрической аутентификациипонятие "рут без пароля" или "рут без пальца" или "рут без глаза" всё это равносильно тому, что рут без механизма аутентификации, и речь в статье именно о ней. Во всех механизмах аутентификации есть понятия "ключ"-а (пароля, секретной последовательности и т.д.). И без разницы как он "вводится".
Утверждение "рут без пароля (ключа)" равносильно утверждению "доступ к руту не требует аутентификации". А вот каков механизм данной аутентификации - это уже из другой оперы.
> понятие "рут без пароля" или "рут без пальца" или "рут без глаза"
> всё это равносильно тому, что рут без механизма аутентификации, иПонятие "болтолог опеннета" подходит гораздо лучше. Забыл с кем имею дело, прошу прощения, больше не повторится.
нуну, че нить полезного написали бы, и так знаю что "болтология" - это наука изучающая дискуссии.
>у рута нет пароля ппц, рута без пароля теоретически существовать не должноНе ставлю пароли руту (выключаю их штатным образом, см. passwd -l) уже лет пять, если не больше. Где твой бог теперь?
>>у рута нет пароля ппц, рута без пароля теоретически существовать не должно
> Не ставлю пароли руту (выключаю их штатным образом, см. passwd -l)Ставишь.
Почитай уже ман, что ли:
-l
This option is used to lock the specified account and it is available to root only. The locking is performed by rendering the encrypted password into an invalid string (by prefixing the encrypted string with an !).
Там пустота на месте «encrypted password». Могу нотариально заверенный скриншот /etc/shadow показать.
> у рута нет пароля ппц, рута без пароля теоретически
> существовать не должноПочему? Бывают системы, где у рута не существует действительного пароля (односимвольная заглушка вместо хэша) -- а стать им можно, например, по ssh со своим ключиком. И с яичницей тоже путать вовсе не обязательно. :)
>по ssh со своим ключикомага, но не без аутентификации, читаем выше про понятие "рут без пароля (ключа)"
пс: у вас и ключик без пароля? (то есть не зашифрован)
> ага, но не без аутентификации, читаем выше про понятие
> "рут без пароля (ключа)"В скобках -- _расширение_ темы.
> пс: у вас и ключик без пароля? (то есть не зашифрован)
Нет. Но пароль к ключику не имеет никакого отношения к /etc/shadow (хотя `head /etc/shadow` я могу хоть прям сюда положить, не жалко).
>не имеет никакого отношения к /etc/shadowкак раз таки /etc/shadow и есть один из механизмов аутентификации, и он ничем не отличается от ключей, биометрии и других механизмов. А суть в том, что нельзя рута оставлять без механизма аутентификации. Даже пустой пароль в механизме /etc/shadow равносилен, что нет никакого механизма аутентификации. То же самое и про прочие методы, ключ (пароль) во всех этих механизмах и есть ключевая часть к предоставлению доступа к пользователю рут.
>(хотя `head /etc/shadow` я могу хоть прям сюда положить, не жалко).
ну если только вы отключили данный механизм, я тоже могу отпечаток сетчатки глаза тут оставить, только данный механизм у меня нигде не используется и что?
специально для sw00p ответ на закрытую ветку: нет, не всем. Список имеющих физический доступ к консоли или его аналог для vm - вполне себе ограничен и контролируется, как и факт такого доступа.дублировать его отдельным ограничением внутри системы совершенно незачем и ведет только к, наоборот, ненужным рискам, не говоря уже о потере времени при аварии.
но можете уже не изучать эту технологию - там уже тоже по-моему везде новый стандарт наступил (конкретно в freebsd - с рукожопым портированием ненужно utx вместо нормального utmp)
>Список имеющих физический доступ к консоли или его аналог для vm - вполне себе ограничен и контролируется, как и факт такого доступа.Ну зачем тогда порождать ненужные сущности (Access Control-ы) внутри ОС? Дам сразу ответ - потому-что, мультиюзерность, мультипорцессость и т.д. Почему не single-user mode, почему не один процесс на физ машину? Почему не один алгоритм на одну Тьюринг Машину?
> Ну зачем тогда порождать ненужные сущности (Access Control-ы) внутри ОС?затем, что доступ к "внутриос" имеют или могут некстати заиметь не только те, кому доступна консоль, и им совершенно незачем иметь те же возможности.
впрочем, мультиюзерности как таковой у нас по сути давно уже нет - юзер "wwwrun" обслуживает миллионы юзеров в рамках одного и того же uid.
А на недоноуте с которого я пишу - юзер один, йа. Хотя учетных записей пара десятков.времена терминальных залов давным-давно прошли, поэтому и особенного смысла расшибать себе лоб в молитвах такому "юниксвею" сейчас нет.
>>по ssh со своим ключиком
>ага, но не без аутентификацииПонятие аутентификации по публичному ключу тебе незнакомо?
Ваш приватный ключ тоже не зашифрован? и вы не вводите пароля для его расшифровки?
Какая разница? Это не имеет никакого отношения к аутентификации в целевой системе (ключ же не в ней лежит). Мой приватный ключ есть только у меня, какими средствами это обеспечивается — моя забота. Если кто-то пришёл с моим ключом, система считает, что это я. Точно так же, если кто-то ввёл правильный пароль пользователя, система его пустит, не поинтересовавшись, хранится этот пароль только у меня в памяти, в защищённом менеджере паролей или на стикере на мониторе.
ну вот, так к чему же было ваше "Понятие аутентификации по публичному ключу тебе незнакомо?", если тот же /etc/shadow и "по ключу" - суть одно и тоже.
я щас лап4атых ввергну в ступор, что бывают, по сей день в продакшне, системы, у которых рут именно без пароля - и ни к каким ужасам это не приводит.И это может быть, теоретически, любая система, кроме тех уродцев, где используется gnu su, дырявая by design, и отсутствует понятие secure tty.
более того, такие системы очень удобны в обслуживании большими или сильно распределенными группами людей, когда не приходится ни пробрасывать в них левую аутентификацию внешними сервисами (с попаданием в анальное рабство к этим сервисам и уже их менеджерам), ни суетиться менять десятки (ибо разные доступы) рутовых паролей на сотнях хостов, когда кто-то в очередной раз всем раздаст вазелин, решив попробовать свои силы в гетеросексуальной конторе.
достаточно ограничить доступ к физической или виртуальной, что чаще, консоли.
Что все равно нужно, и обеспечивать его админам тоже.P.S. предвидя вопрос - нет, сегодня таких систем, пригодных для практического применения, больше нет, устаревшие версии не в счет.
>по сей день в продакшне, системы, у которых рут именно без пароляэто говорит лишь о том, что необходим рут доступ всем, если таковы требования.
>более того, такие системы очень удобны в обслуживании большими или сильно распределенными группами людей
так само понятие аутентификации придумали для того, чтобы Васю отличить от всех, и именно Васе разрешить те или иные действия. Если у вас нет такого Васи, то смело разрешайте для всех. Тут нет ничего необычного.
>P.S. предвидя вопрос - нет, сегодня таких систем, пригодных для практического применения, больше нет, устаревшие версии не в счет.А как же принцип разделения власти? Вот я и привел пример выше про Бога, если каждый смертный обладал властью Бога, то существовало бы понятие Бога?
1. deep submergence vehicle - глубоководный аппарат; 2. diffused silicon varactor - диффузионный кремниевый варактор; 3. double-silk-varnish insulation - двухслойная шёлковая и лаковая изоляция; 4. drilling support vessel - вспомогательное судно для морского бурения
http://www.catb.org/~esr/writings/taoup/html/ch05s02.html
>>"root:!::0:::::", "root:::0:::::"
> Т.е. проблема в наркоманском формате конфигов, который делает невозможным нецеленаправленное обнаружение ошибки.Проблема в том, что ты вовремя не только не реализовал, но даже и не предложил альтернативу! Стыдись!
А еще проблема не в самом формате, а в опциональности его параметров.
Ну и походу автогенерация там была,
> а после из-за прекращения использования флага "-d" стала добавляться строкатак что вряд ли формат
"user=
password="
сильно помог бы.
Правильно, давайте переведем его на смузи-YAML!
на XML-же!
вы что, совсем уже - с этой немодной вонючей древней портянкой?
Вы еще dtd предложите с мертвым адресом на яхе, ага.Предлагаю json - yaml, не смотря на прекрасную идеологию превращения в тыкву лишним пробелом, представляется мне черезмерно удобочитаемым, поэтому провоцирующим на ручное редактирование и использование омерзительных мамонтовых инструментов типа sed. Модные и современные админы должны давно о нем забыть!
> json - yamlХочется решить не только конкретно эту проблему, а иметь +/- одинаковые конфиги во всем. К сожалению json и yaml придумали исключительно для сериализации данных. Для конфигов не покатит. Да и общий синтаксис, запрещенные символы и т.д. больше палок в колеса поставит при реальном использовании. И еще в конфигах частенько требуется if.
Прикинь, многие до сих пор ini используют!> И еще в конфигах частенько требуется if.
Отсыпь, а?
> одинаковые конфиги во всемТо есть, один выбрал какой-то формат конфигов и тем самым лишил всех остальных возможности выбирать формат конфигов?
В серьезных реализациях чего-либо xml уже by default много-много лет. json-скобочки и yaml-отступы для студентов и их подделок.
у тебя серьездность в чём измеряется,в интерпрайзах?
>> "root:!::0:::::", "root:::0:::::"
> Т.е. проблема в наркоманском формате конфигов, который делает невозможным нецеленаправленное обнаружение ошибки.Тебе-то, стахл, какое дело, что там за разделитель? Твоя проблема в том, что ты лезешь текстовым редактором туда, куда не надо им лезть.
> что ты лезешь текстовым редактором туда, куда не надо им лезть.то текстовые логи требуете (journald), то запрещаете текстовым редактором править, не угодишь!
>> что ты лезешь текстовым редактором туда, куда не надо им лезть.
> то текстовые логи требуете (journald)Ну блин, опять. Нет, мы не об этом говорим.
https://www.opennet.me/base/sys/systemd_myth.txt.html
Заблужление #10.
>>> что ты лезешь текстовым редактором туда, куда не надо им лезть.
>> то текстовые логи требуете (journald)
> Ну блин, опять. Нет, мы не об этом говорим.
> https://www.opennet.me/base/sys/systemd_myth.txt.html
> Заблужление #10.там претензии к глючности конкретной программы (journald), претензий к бинарному формату если тулза вида zcat отдаст всё, что прочла и подсветит ошибки формата - я не понимаю
+ https://www.opennet.me/openforum/vsluhforumID3/117318.html#130
> тулза вида zcat отдаст всё, что прочла и подсветит ошибки форматаНу если Вам zcat всё так успешно подсветит -- юзайте на здоровье, и да храни Вас Бог. =)
Текстовый формат хорош тем, что его можно читать и править в случае аварии при посредстве ломика и небезызвестной матери. Это не значит, однако, что при штатной работе системы надо пользоваться теми же средствами. Чтобы не накосячить, придуманы другие.
> Текстовый формат хорош тем, что его можно читать и править в случае
> аварии при посредстве ломика и небезызвестной матери. Это не значит, однако,
> что при штатной работе системы надо пользоваться теми же средствами. Чтобы
> не накосячить, придуманы другие.а зазипованные текстовые логи это ещё текстовый формат с ломиком или уже нет?
иль дело в том что в сам момент всеобщего падения текст "безопаснее", а без падения через 1 минуту уже можно зиповать? тоесть если journald будет одновременно писать 1-минутный кусок текстового лога все претензии снялись бы?
> а зазипованные текстовые логи это ещё текстовый формат с ломиком или уже нет?По умолчанию логи не зипуются. Настройки же зипования выбираются (если вообще включаются) для каждого приложения в отдельности, в зависимости от скорости заполнения лога.
> иль дело в том что в сам момент всеобщего падения текст "безопаснее", а без падения через 1 минуту уже можно зиповать?
Если у Вас logrotate производит ротацию ежеминутно, значит он у Вас неправильно сконфигурирован.
Буква S в названиях Docker и Alpine обозначает "security".
А у баяниста песня льётся чисто…
Но веть там нету буквы S
на официальном сайте огромными буквами написано "Small. Simple. Secure."
На заборах тоже много чего написано и даже нарисовано. Это для тех, кто верует в буквы, картинки, а не в продукт. Продукт по сути для таких не важен. Движение которое ловит таких, называется - Маркетинг.
Исследователям безопасности Cisco стоит стоит вспомнить про curl...
Пусть уж лучше ковыряют то, чем люди пользуются, а не свои ненужносвичи.
>Проблема была изначально выявлена и исправлена в ноябре 2015 года, но в декабре по ошибке опять всплыла в сборочных файлах эксперментальной ветки, а затем была перенесена в стабильные сборки.Как-то слишком незатейливо они бэкдоры внедряют.
> но в декабре по ошибке опять всплыла в сборочных файлахНикто их не внедряет, они сами "всплывают", чего не понятного, барабашки однако...
> позволяло по умолчанию подключиться к контейнеру без пароляИнтересно, про какой способ подключиться, доступный по-умолчанию, они говорят?
Оказывается, в оригинальной статье не говорят такого, это фантазия переводчика.
Про это в багтрекере докера было упомянуто.
К слову, тот же su не пустит (в alpine он также требует установки sticky bit на /bin/su перед тестом):$ su
su: incorrect passwordPam с PAM_DISALLOW_NULL_AUTHTOK тоже не работает:
$ pamtester login root "authenticate(PAM_DISALLOW_NULL_AUTHTOK)"
Password:
pamtester: Authentication failure
SUID на su? Что? Да так любую систему можно поломать, на которой не отрублено нафиг USB и в которой монтируюся флешки с ext2
> SUID на su?А как еще, по вашему, su должен работать?
> SUID на su? Что?Давно его в глаза не видели (ну, если у Вас не Owl какой)?..
PS: но su без SUID действительно бывает -- кстати, в том же Owl и альте это один из штатных вариантов, см. http://altlinux.org/control -- и служит исключительно для _понижения_ привилегий, не давая при этом лазейки для их повышения ни при каких известных обстоятельствах.
Добро пожаловать в реальный мир :)
Впрочем, как подсказал товарищ, udisks всегда монтирует с nosuid. Так что отбой.
Что за бред? Такой образ и должен поставляться с пустым паролем - пользователь _обязан_ поставить свой пароль в любом случае, независимо от того, пустой или не пустой пароль поставил создатель имиджа.
Или, по мнению "исследователей, обнаруживших уязвимость", непустой пароль, указанный в документации, намного безопаснее?
А вот то, что руту разрешён вход напрямую - это да, это косяк.
> пользователь _обязан_ поставить свой пароль в любом случаеНичем пользователь никому не обязан. В большинстве случаев вход по паролю там на фиг не нужен, руту — и подавно. А пароль должен быть залочен, что технически реализуется указанием невалидного хеша пароля.
...для чего там и стоял "!".PS: как не сам дыркер, так джокер: "что выпадет"...
> ...для чего там и стоял "!".Не видать тебе повышения, сержант Очевидность.
>> ...для чего там и стоял "!".
> Не видать тебе повышения, сержантВообще-то лейтенант. :)
То, что ты пиджак ВСУ, здесь мало кого волнует.
> пользователь _обязан_ поставить свой пароль в любом случаеНу задайте пароль рута в Dockerfile.
Видишь, тебе уже кто-то из юных девляпсов минус влепил. Рихтовать имиджи докерфайлом у новой поросли IT-макак считается неприличным.
Удивлён, что среди недокорчёванной предыдущей поросли ещё встречаются те, кто держит пароли в гите.
Можно генерировать пароль во время разворачивания docker-контейнера. А потом смотреть пароли через docker container logs или как там.
Зачем тебе его генерировать и смотреть? Вот куда ты его вводить собрался?
> А вот то, что руту разрешён вход напрямую - это да, это косяк.Не разрешен. Его нужно дополнительно настраивать. "Дырка" как бы в том, что если пользователь усталовил внутрь софиют для удаленного доступа, сконфигурировал его, но не задал руту пароль (или не отключил его), то можно заходить под рутом без пароля.
В общем ни о чем эта "уязвимость".
так докер пожизни запускается с рутом внутри, и гадит на хост с рутовым UID, не понимаю, чем новость принципиально плоха. Докер - само по себе дыра, о чем говорить. А в таких вещах наличие паролей - ложное чувство безопасности.
У нормальных людей он ничего не гадит на хост.
У не нормальных как написали ниже там и sshd стоит)
> У нормальных людей он ничего не гадит на хост.... потому что нормальные люди докерами не пользуются?
Люди в здравом уме используют директиву USER.
или запускают podman от ограниченного пользователя
А от этого внутри контейнера не станет рута?
Внутри контейнера ты хоть кем можешь быть, но если снаружи привелегий не дали, то они волшебным образом внутри не появляются, хоть ты там UID 0, хоть даже -1.
У root-а гораздо больше возможностей для выхода за пределы контейнера. Например, некогда широкоизвестный баг linux-контейнеров с CAP_DAC_READ_SEARCH неплохо это иллюстрирует :)
Так и сабж про рута внутри контейнера. И вылезти из него не так-то просто, если только он не привилегированный.
Куда входа-то. В контейнер ssh ставят только наркоманы. А docker exec итак из-под рута.
В здравом уме на хост ноду alpine тоже никто не поставит
Еще очень много старых разработчиков которые помнят времена пришествия контейнеров.
И хотят все старые практики оттуда. composer и npm внутри имейджа, пароли в dockrerfile и тому подобные штуки.
Ломать это все сложно и тяжело, с их точки зрения - работало же, хочу и сейчас как привык.
Не пробовали на мороз их выгонять?Например, есть разрабы, которые везде тянут постргрес, и заосвывают в него значительную часть логики приложения (триггеры, хранимки, etc), и при словах "шардирование" и "балансировка" сплевывают и говорят "свят-свят". Родом прямо из нулевых. Таких на разработку новых приложений брать однозначно не стоит.
Вообще, чем больше человек привык к старым технологиям, тем меньше он стоит как специалист. Конечно, легаси поддерживать кто-то должен, но это гораздо скучнее и ниже оплачивается, чем разработка нового или перевод старого на новые технологии.
>Родом прямо из нулевых. Таких на разработку новых приложений брать однозначно не стоит.а че же так далеко заехали до нулевых, как по мне все то, что вы сейчас используете, было создано еще в 70-ых
>Вообще, чем больше человек привык к старым технологиям, тем меньше он стоит как специалист.
ваш мозг от таких рассуждений быстрее постареет, а чем вы старее, тем вы "меньше он стоит как специалист".
И как ни странно всякие технологии Евклида до сих пор еще работают, привыкли уже?
> а че же так далеко заехали до нулевыхПросто он сам тоже родом из нулевых. Всё, что было раньше, для него — «до нашей эры», только из учебника истории узнать можно.
Да не, просто он при трудоустройстве не прошёл беседу со старпёром, съевшим собаку на постргесе и прочем серверном софте, и теперь исходит на форумах тем единственным, что в нём имеется.
По такой логике самые лучшие специалисты -- мартышки, скачущие с фреймворка на фреймворк.
А есть и такие, которых не стоит набирать по объявлениям -- разведут шардинг там, где изначально головой немного надо было думать и не валить всё в одну кучу.Впрочем, бродячая фраза про радикалов в двадцать, консерваторов в сорок и соотношение с сердцем и умом вроде бы никуда не убегала.
Ну, балансировки ради.
Хочу отвыкнуть от старых технологий. Посоветуй, за что лучше взяться? Монга уже состарилась, или ещё нет?
Если серьёзно, то из нового, ClickHouse -- вкусная штуковина :)
Надо автору статьи, на которую сослались ниже, добавить раздел "You are not Yandex". Впрочем, всё равно целевая аудитория не прочитает…
Ну конкретно в моём случае 100 тыс. запросов в секунду, по которым потом нужно делать аналитические запросы, и тут ClickHouse хорошо подошёл. В целом, много чего хорошо бы подошло, но с этим меньше всего проблем из изученного)
> ClickHouse -- вкусная штуковинаЭто там где интерфейс/протокол - HTTP-only? Это те, которые даже ODBC-драйвер более-менее приличный сделать не могут, а тот что есть - обёртка над тупым HTTP-клиентом?
И сколько разрабов, умеющих в триггеры и хранимки на ПГ, а также осведомлённых о подводных камнях "шардирования" и "балансировки" вы лично уволили в течение 4 месяцев этого года?
> Например, есть разрабы, которые везде тянут постргрес, и заосвывают в него значительную часть логики приложенияYou are not Google[1]. Современный мир предлагает широкий спектр решений, и считать что какое-то из всегда будет лучше другого -- это значит создавать совершенно ненужных проблем себе и другим. Люди очень часто забывают об этом, и начинают тянуть в проект какие-то вещи, которые совершенно не нужны. Это очень распространённая ошибка, которую совершают не только все эти ваши админы и девопсы, это ошибка которую постоянно совершают программисты, причём уже на этапе проектирования приложения, когда они проектируют приложение не под те требования, которые предъявляются задачей, а под те неизвестные им требования, которые могут возникнуть в будущем. Это ярче всего видно в субкультуре программистов на жабе, которые проектируют код так, чтобы его потом можно было бы изменить произвольным образом, как бы не повернулся вектор разработки.
Но есть одна вещь, о которой они все забывают напрочь. Способность разработки итеративно двигаться в любую сторону, по произвольной траектории, с произвольным количеством поворотов на 180 градусов -- это само по себе очень сложное требование, которое увеличивает сложность программы в разы, а раз увеличивает сложность, то усложняет поддержку и развитие. И таким образом, подчастую, их попытки сделать программу более поддерживаемой приводят к противоположному результату, поддерживать и развивать становится сложнее.
> чем больше человек привык к старым технологиям, тем меньше он стоит как специалист.
Если человек отказывается принимать что-то новое, потому что оно новое, то это другая крайность.
Инженерное дело всё целиком о выборе правильного компромисса между противоречивыми требованиями предъявляемым к решению задачи. Крайне сложно найти нужный компромисс, и как правило получается лишь приблизиться к оптимуму, но не достичь его. Но если ты будешь отрицать этот сам факт того, что перед тобой стоит оптимизационная задача и вваливаться в крайности, то в результате ты гарантированно получишь субоптимальное решение.
Когда хомячки совершают подобные ошибки, когда они решают проблему интеллектуальной перегрузки путём вваливания в крайности типа коммунизма или либерализма, когда они начинают предлагать для сложных проблем простые решения типа "панацея" или "серебряная пуля", например, "давайте включим смертную казнь и тогда все проблемы быстро решатся" -- это можно понять, они на то и хомячки. Но если ты хочешь быть инженером, то тебе надо научится справляться с интеллектуальной перегрузкой другими способами.
[1] https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb
> What we’re all imploring you to do is to think!Спасибо, отличный комментарий и примечательная ссылка; внимательно ознакомился. А кому-то ещё предстоит набить энное количество шишек о тщательно топтаные грабли собственным лбом и другими частями тела, чтоб перестать вопить и начать прислушиваться...
> чтоб перестать вопить и начать прислушиваться...к другим вопящим.
Надеяться на здравый смысл при разработки проекта, которым пользуются десятки миллионов… ну не стоит. Просто не стоит.
alphine-virt уязвимости не подвержен?
А куда собрались входить, извините?
Если это контейнер, то в него входят через docker exec или там lxc exec, в контейнере нет ssh, он там не только не нужен, но и с точки зрения идеологии контейнеров недопустим.
> в контейнере нет ssh, он там не только не нужен, но и с точки зрения идеологии контейнеров недопустим.Во-первых, нет никакой «идеологии контейнеров». До появления docker нормально было использовать контейнер как обычную виртуалку (да и сейчас нормально, посмотри, сколько кругом VPS на OpenVZ). Вход туда по SSH — норма. Во-вторых, с точки зрения идеологии docker, ssh в контейнере тоже вполне допустим, если он является ключевой частью контейнеризованного приложения. Мало ли для чего он там может понадобиться кроме администрирования.
OpenVZ это чрут на стероидах, его использование — признак принадлежности к интеллектуальному большинству.
Контейнеры -- это тот же самый chroot на стероидах. Собственно, из OpenVZ namespace-ы (и прочие радости) и перекочевали в ванильное ядро, образовывав основу для создания userland-утилит таких как lxc, docker и подобных.
> OpenVZ это чрут на стероидахВы точно с lxc не перепутали?
> его использование — признак принадлежности к интеллектуальному
> большинству.Это, кстати, неплохой признак. А вот верещать о том, в чём ни бельмеса, да ещё какие-то якобы "идеологии" приплетать -- плохой.
Ну, мне так _кажется_.
PS: если что, я достаточно разными контейнерами пользуюсь более полутора десятилетий (vserver/openvz с начала нулевых, lxc -- с 2009 или около того). Как и непривилегированными процессами в чрутах.
> А куда собрались входить, извините?
> Если это контейнер, то в него входят через docker exec или там
> lxc exec, в контейнере нет ssh, он там не только не нужен, но и с точки зрения идеологии контейнеров недопустим.А пацаны то и не знали, а оно во как вышло!
https://lists.freebsd.org/pipermail/freebsd-hackers/2005-Nov...
https://www.ixsystems.com/documentation/freenas/11.2/jails.h...
> с точки зрения идеологии контейнеров недопустимА что, разработкой докера теперь руководит товарищ Суслов?
Идеология - дело хорошее, когда она позволяет выстроить систему с чёткой внутренней логикой, благодаря которой в ней легко разобраться, а когда такая идеология связывает руки - тут уж извините, я не буду придерживаться такой идеологии.
новость ни о чем - докер от рута давно не пускают, только через --userns-remap. ssh в докере никто тоже не ставит
А я то наивный думал, что в docker и так все от root работает...
даже когда и работает (учитывая привычку держать в нем целиком систему, и, чтобы не выполнять мартышечью работу, стараться запускать сервисы в штатных режимах штатными скриптами - это вполне популярный вариант, переделывать часто себе дороже) - от рута обычно работает какой-нибудь uwsgi спавнер - а вот тому что поимев через очередную еженедельную дырку в джанке шелл от nobody, чувак мгновенно стает рутом, хотя и в контейнере (надолго ли? ;) - ты, вероятно, будешь немного не рад.хотя при кастрированном su и отсутствии других способов в минималистичной системе - проблема, похоже, таки сильно преувеличена. Если, конечно, у них только доскер так собирался, а не образы и для всякой эмбедовки.
> через очередную еженедельную дырку в джанкеВ смысле Junkins?
в смысле django - казалось бы, при упоминании рядом uwsgi, особо и выбирать не из чего. почему-то на прекрасном пихоне "только один кандидат, только один выбор" (не считая уж совсем несерьезной хипстоты)
Подозреваю что django
вот я не понимаю людейю... Все кричат docker контейнеры секурити импрумент... а вот результат то - кострированая изоляция некоторых системных вызовов, иллюзия изоляции процессов, корявый chroot и другие прелести кривого дизайна.
Может быть, когда-то всё это и было про безопасность и изоляцию, но потом стало ясно, что это просто способ сдавать один хост в аренду тысячам хомячков.
https://alpinelinux.org/posts/Docker-image-vulnerability-CVE...
от оно чо, михалыч...хотя, конечно, нефиг было выпендриваться. Ишь чего захотели, жить как прям в BSD...
> Unfortunately we missed the case when a user installs shadow and linux-pam instead of using the default tools.Хм, и что это значит? В их пакетах shadow и linux-pam настройки по умолчанию разрешают пускать root без пароля отовсюду? А причём тут Docker тогда? Такая проблема будет и на железе.
> Хм, и что это значит?это значит что у них все работало именно как полагается - рут без пароля доступен тем у кого физический доступ к консоли, для эмбедовки логично, или, в случае докера - кому он и так без логина доступен.
Но они не сообразили, что кто-то может из их же репо накатить обычную гнутую версию su и login (сам того причем не желая - завимимостями всего от всего притащит), старательно изуродованные еще молодым Встол-маном, которого больно п-ли универовские админы за попытки их ломануть (вот некисло он им отомстил за брата).
> А причём тут Docker тогда?
при том что "охфициальные образы" как раз на alpine и собраны - как обычно у макак, без траты лишнего времени на ознакомление со спецификой дистрибутива.
Вот и выросло поколение, не читавшее Эрика Реймонда.
никогда не понимал смысла использовать этот альпин вместо centos или debian/ubuntu. экономия трафика довольно сомнительная - образ системы, который кстати не такой уж и большой (меньше 100 метров), качается один раз. а все остальные приложения просто накатывают свои слои поверх.профит же от использования нормальных дистрибов вместо этого обрубка невероятный.