Обнаруженная (http://www.opennet.me/opennews/art.shtml?num=23443) Пржемыславом Фрашунеком (Przemyslaw Frasunek (http://www.frasunek.com/)) в конце августа уязвимость, позволяющая локальному непривилегированному пользователю FreeBSD получить root-привилегий, получила свое подтверждение. Более того, пока разработчики FreeBSD готовили исправления, Пржемыслав нашел еще одну подобную уязвимость в другой подсистеме. В итоге, сегодня опубликованы три уведомления:- В ветке FreeBSD 6.x найдена уязвимость (http://security.freebsd.org/advisories/FreeBSD-SA-09:13.pipe...), позволяющая получить root-привилегии при наличии локального непривилегированного доступа к системе. Уязвимость вызвана проблемой (эффект гонки, "race condition") в коде закрытия pipe и связанна с возможностью обращения к уже освобожденной памяти на многопроцессорных системах в системном вызове kevent.
- Во всех поддерживаемых версиях FreeBSD 6.x и 7.x найдена уязвимость (http://security.freebsd.org/advisories/FreeBS...
URL: http://www.freebsd.org/security/advisories.html
Новость: http://www.opennet.me/opennews/art.shtml?num=23712
а про своп раздел Глеб не забыл?
или это еще одна оставленная уязвимость на будущее?
>а про своп раздел Глеб не забыл?
>или это еще одна оставленная уязвимость на будущее?читаейте что в новости пишут хотя бы.
это stacked файловая система. аналогичная eCryptfs в linux. или иначе говоря nullfs + encryption.
Я думаю Глеб не так глуп, как многие здесь присутствующие. Залочить страницы в ядре - не проблема.
А чем ему для шифрования geli не угодил?
>А чем ему для шифрования geli не угодил?Видимо тем, что шифрует весь раздел. Тут же можно файлы поотдельности.
это stacked файловая система. аналогичная eCryptfs в linux. или иначе говоря nullfs + encryption. geli -- шифрование но уровне блочного устройства
>это stacked файловая система. аналогичная eCryptfs в linux. или иначе говоря nullfs
>+ encryption. geli -- шифрование но уровне блочного устройстваНу и? Geli нельзя разве завести как криптоконтейнер на MD-устройстве (смонтированном файле как устройстве).
«Сохранение прежнего размера файла, после шифрования; »
OMG! И это декларируется как feature? Этот мир совсем сошел с ума?
>«Сохранение прежнего размера файла, после шифрования; »
>OMG! И это декларируется как feature? Этот мир совсем сошел с ума?ОМГ а после шифрования должен меняться размер файла?
Почему нет? Добавляется "cоль" для еще более сильной защиты и элементы избыточности например.
>Почему нет? Добавляется "cоль" для еще более сильной защиты и элементы избыточности например.при/после расшифровке что делать с этой солью? куда ее девать?
или вводить дополнительные контейнеры для избыточности что бы хранить начало и размер оригинального файла?
Это были риторические вопросы?
>Это были риторические вопросы?Это молодому дарованию хватает времени ненавидеть, но не хватает денег на SotW. :)
>Почему нет? Добавляется "cоль" для еще более сильной защиты и элементы избыточности
>например.нет. здесь дело совсем в другом. традиционно стековые файловые системы, реализующие шифрование (как eCryptfs и encfs), добавляют в тело файла дополнительную информацию: только в заголовок или и в середину файла тоже. что негативно влияет на производительность и чревато ошибками т.к. на порядок (ОЧЕНЬ) усложняет дизайн файловой системы. идея в том, что файловая система спроектирована так, что никакой обработки непосредственно данных не производится. что и является фичей. записать это в одну строчку просто сложно.
а то, что размер файла не увеличивается да размера блока шифра -- это скорее приятный сайдэффект.
> OMG! И это декларируется как feature? Этот мир совсем сошел с ума?JFYI, ряд алгоритмов оперирует только *блоками* вполне конкретного размера и не может работать иначе. Посему - в случае чего для таких алгоритмов данные padd'ятся до размера блока. А как иначе то? Более того - а жесткие диски умеют писать данные только блоками по 512 байтов. Так что если вы хотите записать 10 байтов, по факту будет записано как минимум 512 и баста :).При необходимости - будет прочитано 512 байтов, пропатчено 10 и записано обратно. Для вас это будет "записано 10 байтов", да.
Опять вам надо матчасть пересказывать? До'pad'дить конец файла до размера блока можно налету. Речь шла о хранении метаданных, но вы как обычно не читатель.
Дисковое пространство может выделяться блоками, размер которых может быть любым, в т.ч. и меньшим, чем размет сектора на диске.
а со стороны FreeBSD хорошая подстава по секьюрити апдейтам
можно было их выпустить в понедельник когда люди на работе
а не в выходные когда все и большинство отдыхают
вообще, у людей все обычно автоматом скриптами обновляется
>вообще, у людей все обычно автоматом скриптами обновляетсяеще скажите пересобирают и обновляют мир
Да, а в чем проблема?
>>вообще, у людей все обычно автоматом скриптами обновляется
>
>еще скажите пересобирают и обновляют мирА пакеты в FreeBSD есть? В Linux (конкретно в Debian и т.д.) обновление бы выглядело так:
apt-get update
apt-get upgradeFreeBSD так умеет?
Сколько можно объяснять:
freebsd-update fetch install
>А пакеты в FreeBSD есть? В Linux (конкретно в Debian и т.д.)
>обновление бы выглядело так:
>
>apt-get update
>apt-get upgrade
>
>FreeBSD так умеет?Пакеты есть. Умеет.
portupgrade -a - обновить все из исходников
portupgrade -aP - обновить все из пакетов
>portupgrade -aP - обновить все из пакетовportupgrade -aPP.
>portupgrade -aPP.portupgrade -aP. -PP бесполезно, ибо зафейлится, если пакета нету вообще нигде, вместо того, чтобы собрать порт.
portupgrade -Pary ещё лучше - дополнительно не задавать глупых вопросов и делать рекурсивные обновления.
А потом автоматом исправляются все возможные проблемы?...Красота!
Вот вы забодали. А у людей локально посторонние юзвери, да ещё мнящие себя мегахацкерами, по серверам не ходят. А есть ещё хомяк смонтированный с noexec
>Вот вы забодали. А у людей локально посторонние юзвери, да ещё мнящие
>себя мегахацкерами, по серверам не ходят. А есть ещё хомяк смонтированный
>с noexecЛюбой хостинговый продакшн - рассадник левых людей и мегахацкеров по определению.
А noexec вообще ничего не решает, ибо элементарно обходится. Стыдно не знать.
> noexec вообще ничего не решает, ибо элементарно обходится.Мне стыдно - я не знаю. Расскажите, как.
>> noexec вообще ничего не решает, ибо элементарно обходится.
>
>Мне стыдно - я не знаю. Расскажите, как.Ключевое слово для поиска в гугл - интерпретируемые языки.
Другими словами, perl -f /tmp/script.pl прекрасно выполнится и в случае, если /tmp будет как noexec смонтирован.
>Вот вы забодали. А у людей локально посторонние юзвери, да ещё мнящие
>себя мегахацкерами, по серверам не ходят.Хостингам это расскажите. А заодно и кульным перцам которые сломав один сайт потом имеют и другие :)
>вообще, у людей все обычно автоматом скриптами обновляетсяБггг. Дайте мне скрипт, который сделает make buildworld, make kernel, make installworld и mergemaster за меня, и при этом ничего не сломает!
freebsd-update
если ядро нестандартное - нужно будет только его и пересобрать.
Но автоматом я бы, пожалуй, не обновлялся даже имея GENERIC-ядро.
Да вы просто мистер-очевидность!
>Бггг. Дайте мне скрипт, который сделает make buildworld, make kernel, make installworld
>и mergemaster за меня, и при этом ничего не сломает!А покажите-ка мне скрипт, который что-то при этом сломает.
>>Бггг. Дайте мне скрипт, который сделает make buildworld, make kernel, make installworld
>>и mergemaster за меня, и при этом ничего не сломает!
>
>А покажите-ка мне скрипт, который что-то при этом сломает.Администраторы FreeBSD смеются над вами.
Слово mergemaster вам ни о чем не говорит.
И make installworld в многопользовательском режиме вы никогда не пытались делать.В общем, непонятно, почему вы на опеннете, а не на башорге.
Я делал make installworld в многопользовательском режиме и все прошло нормально. Что я делал не так?
+1
где засада?
+2, всегда так делаю. ЧЯДН?
>Администраторы FreeBSD смеются над вами.
>Слово mergemaster вам ни о чем не говорит.
>И make installworld в многопользовательском режиме вы никогда не пытались делать.
>
>В общем, непонятно, почему вы на опеннете, а не на башорге.А не задержись вы в своем развитии на ls, cd и handbook'е, вы бы руководствовались своими мозгами, а не ОБС. Да, я пытался делать installworld в многопользовательском режиме, более того, я всегда обновляюсь именно так, в том числе между ветками, еще с 4.5. От вас я жду эссе на 5000 слов про то, где именно оно может сломаться, и почему не ломается.
Про mergemaster еще проще - проштудируйте для начала ман на предмет -Ui, потом вспомните, какие конфиги кардинально меняли синтаксис за последние 3 года, а если у вас так развиты телепатичекие способности, скажите какие из них я использую.
Удачи в профессиональном росте.
> а со стороны FreeBSD хорошая подстава по секьюрити апдейтам можно было их выпустить в понедельник когда люди на работе а не в выходные когда все и большинство отдыхаютНефиг бездельничать в выходные, выходные предназначены как раз для того чтобы реконфигурацию системы делать, железо менять, обновления ставить, новые фичи вводить и т.п. пока планктон на душой не стоит.
А ваши шефы знают что вы рветесь работать без выходных и праздников? :)
>А ваши шефы знают что вы рветесь работать без выходных и праздников?
>:)С большей частью "шефов" (а это не маленькие фирмы), партнёров, поставщиков и субподрядчиков я работаю исключительно по выхдным и вечерам, не стесняясь выражать своё призрение в ответ на отмазки и попытки вомзущаться. Потому что в рабочее время я безвылазно сижу на фирме, где мне за более простую работу и нахождение 9 часов на рабочем месте платят стабильный хороший оклад. Бугога. :-)
Какие интеллигентные у вас партнеры:-) Обычно просто объясняют, насколько восприимчива душа шерифа, к проблемам индейского населения и сообщают режим работы. Это если вообще решат общаться.
>Какие интеллигентные у вас партнеры:-) Обычно просто объясняют, насколько восприимчива душа шерифа,
>к проблемам индейского населения и сообщают режим работы. Это если вообще
>решат общаться.Таки они деньги зарабатывают. Не решат одни, желающих достаточно :-) Местные сами по себе по менталитету достаточно энертны, здесь даже аптеки в большинстве своём работают только до 7 вечера и только в рабочие дни, но когда люди имеют существенный личный интерес, они становятся гораздо сговорчивее и рациональнее, особенно в кризис....
>А ваши шефы знают что вы рветесь работать без выходных и праздников? :)User294 - это тока в России (да и то - уже не везде!) начальство не знает за что и как платит сотрудникам и что у них в контракте написано. А написано обычно всё что после 7pm и до 8 am = 2 * hourly_rate + такси туда-сюда + хавчик + emergency call pickup. Кстате тут уже кто то писал про это.
Так что начальство - знает. И это одна из его функций сделать так чтобы ты выполнил работу дешевле :) Мне к примеру не дают общаться с кастомерами по их первому звонку - в саппорте седят ребята с рэйтом вдвое меньше ... Ну и и.д. User294 - поработай на нормального большого буржуя, всй поймешь.
Я боссу тут же доложился мол-так и так - ГОРИМ! К выезду котов. На что получил резонный ответ - торопиться не надо, не наломай дров. К следующей пятнице справишься? Заработаешь с такими жлобами - как же, хорошо хоть линуксы и винда тоже есть а то бы пошел в кодеры за еду :))))
Обновление на автомате в любой ОС чревато тем, что в одно "прекрасное" утро Вы словите баг от пришедшего ночью "update" - и хорошо, если Вы сможете отследить, после установки какого патча все окривело...PS: Всем людям свойственно иногда ошибаться - другое дело, что при обновлении вручную больше шансов понять, на каком этапе наступила бяка :)
поправьте, пожалуйста, текст новости. Глеба Карцева по-русски зовут Глеб Курцов :)
>поправьте, пожалуйста, текст новости. Глеба Карцева по-русски зовут Глеб Курцов :)И не только. Пржемыслава Фрашунека зовут Пшемыслав Фрасунек :)
Я поправил оба имени ещё днём, но администратору они не понравились, похоже :)
Да всё нормально чего разорались то? Или надо было молчать в тряпочку как M$ а теперь и ... ну да знаете сами кто :)
За выходные как раз все и обновлю, да еще и овертаймы заплатят (2*hourly rate + transportation + food expences) ... нашли блин проблему :)
Core team FBSD медленно реагирует. товарисчь благодаря которому оно найдено об этом говорил где-то пару недель назад с описанием. конечно мало у кого кто не попадя (не доверенный) в системе сможет скомпилить бинарник и запустить (или подсунуть готовый) но факт медленного реагирования и вероятность того что ошибки есть ещё настораживают.
Ошибки есть везде - это раз.
А ты думаешь что исправление - два байта поменять? Исправить не наломав дров - это время. Это два.
Лучше все равно ничего нет и это три :)
>Лучше все равно ничего нет и это три :)Не могу утверждать определенно, но субъективно, последние линуксовые дырки, тот же vmsplice и пр, патчились гораздо быстрее, вплоть до того, что на следующий день, в который же были доступны бинарные фиксы для основных дистрибутивов.
>Не могу утверждать определенно, но субъективно, последние линуксовые дырки, тот же vmsplice
>и пр, патчились гораздо быстрее, вплоть до того, что на следующий
>день, в который же были доступны бинарные фиксы для основных дистрибутивов.Дык они и гораздо опаснее были.
>Дык они и гораздо опаснее были.Не факт, совсем. Локальный шел для FreeBSD гораздо опаснее, так как в хостинге ее используют, обычно, без виртуализации, в Linux же есть контейнеры, которые работают так же без оверхеда, как и натив (в production OVZ и PVC, скоро там же появится LXC), в которых все без исключения последние эсплойты не работали. Не знаю, аффектит ли этот эсплойт jail-окружения, но они (jail-окружения)очень далеки от концепций HighLoad систем(хотя РУ-Центр и использует патченное chroot-окружение, возможно, кто-то еще использует jail, все это бесконечно далеко по функционалу от OVZ/PVC и даже от Solaris Zones).
FreeBSD-ый HighLoad это stadolone сервер под, например, FAMP, с четким разделением ролей по серверам, с использованием HTTP-реверс-прокси, и т д.
Хостеров с shell-доступом, которые по каким-то причинам не обновили свои, например, 7.0 на бэкэндах с Апачем просто очень много :(Из этических соображений прошу не требовать от меня их названий.
>>Дык они и гораздо опаснее были.
>
>Не факт, совсем. Локальный шел для FreeBSD гораздо опаснее, так как в
>хостинге ее используют, обычно, без виртуализации, в Linux же есть контейнеры,
>которые работают так же без оверхеда, как и натив (в production
>OVZ и PVC, скоро там же появится LXC), в которых все
>без исключения последние эсплойты не работали. Не знаю, аффектит ли этот
>эсплойт jail-окружения, но они (jail-окружения)очень далеки от концепций HighLoad систем(хотя РУ-Центр
>и использует патченное chroot-окружение, возможно, кто-то еще использует jail, все это
>бесконечно далеко по функционалу от OVZ/PVC и даже от Solaris Zones).Вот здесь поподробней, пожалуйста, чем jail(8) "бесконечно далеко по функционалу от OVZ/PVC и даже от Solaris Zones".
См., например, vzctl(8).
>См., например, vzctl(8).Какая-то "плоская" среда над chrot, никаких преимуществ перед jail(8), кроме выделения ресурсов, не увидел. У vzctl(8) нету даже securelevel -- впрочем, у Linux этого нет изначально.
Вложенные контейнеры vzctl(8) хотя бы умеет?
>>См., например, vzctl(8).
>Какая-то "плоская" среда над chrotМожно конкретнее? Там, например, реализован двуслойный скедулер -- сперва процессоры на контейнеры, потом в пределах контейнеров между задачами. Чтоб один контейнер с тремя сотнями процессов не досил соседние с по полсотни на брата.
>никаких преимуществ перед jail(8), кроме выделения ресурсов, не увидел.
Вы всерьёз полагаете, что этого мало?
Ладно, давайте попробую объяснить на пальцах. Под OpenVZ у меня на старом офисе до сих пор благополучно живёт терминальный сервер, пара сборочниц (32/64-bit) и ещё по мелочи. Сборка является io/cpu intensive, бишь на локальном десктопе может заметно притормаживать всё. Так вот разнесения по шпинделям плюс расставления приоритетов контейнеров (--cpuunits/--ioprio) хватило, чтобы весьма серьёзная загрузка (три одновременных процесса сборки, сейчас там всего-то dualcore) практически не замечалась при работе с тонких клиентов.
Сделайте такое на jail, а я посмотрю -- мало это "кроме" или всё-таки различие между великом и мокиком.
>У vzctl(8) нету даже securelevel -- впрочем, у Linux этого нет изначально.
_Уже_ нету. Года три как. Благо хватает полноценных систем RBAC/MAC.
>Вложенные контейнеры vzctl(8) хотя бы умеет?
Нет, но OpenVZ живёт и под Xen (domU/dom0), и как минимум рядом с kvm. Только вот в моей практике ещё не встречалось ни одного случая, когда захотелось бы засовывать -- и так сервисы, работающие в VE-шках, ещё и по чрутам сидят. Причём нередко ещё и с privsep'ом.
>Сделайте такое на jail, а я посмотрю -- мало это "кроме" или
>всё-таки различие между великом и мокиком.В Jails v2 сделали только для привязки к ядрам процессоров:
- cpuset(1) способен привязывать набор процессоров к определенному jailid или irq, причем установка возможна и после создания jail окружения.Винчестеры как ресурсы пока невозможно привязать к конкретным jailid.
>Нет, но OpenVZ живёт и под Xen (domU/dom0), и как минимум рядом с kvm. Только вот в моей практике ещё не встречалось ни одного случая, когда захотелось бы засовывать -- и так сервисы, работающие в VE-шках, ещё и по чрутам сидят.
Вложенные контейнеры виртуализации полезны там, где крутятся иерархические процессы. Ради управляемости и распределённой по уровням степени надёжности. к примеру, глупо было бы обеспечивать максимальную степень надёжности и доступности какому-то тестовому Web-серверу, отнимая ресурсы у более важных сервисов; почему бы не сунуть его поглубже в jail-окружение группы разработчиков и передать права по управлению этим сервисом им, а на верхние уровни управления вывести изолированные окружения жизненно-важных для организации департаментов.
>В Jails v2 сделали только для привязки к ядрам процессоров:Это очень грубо, хотя уже лучше, чем совсем никак.
>- cpuset(1) способен привязывать набор процессоров к определенному jailid или irq
В линуксе есть и taskset(1), и irqbalance(1) (последний, правда, распределяет автоматом).
>Винчестеры как ресурсы пока невозможно привязать к конкретным jailid.
Актуальней процессор/память. Ещё сейчас довольно горячая тема -- расшаривание идентичных страниц (например, mmap'ленных копий libc).
>Вложенные контейнеры виртуализации полезны там, где крутятся иерархические процессы.
Не знаю, что это такое -- можно определение/пример?
>Ради управляемости и распределённой по уровням степени надёжности.
Типичное железо всё-таки тянет ну несколько сотен контейнеров максимум (и IMHO максимум немного десятков в более типичном для наличия дивергенции надёжности случае). Это не то количество, которое обязательно просится в иерархию. А на большом железе и так аппаратный partitioning, внутри которого уже можно разводить (например, тот же ovz есть на PPC64).
>к примеру, глупо было бы обеспечивать максимальную степень надёжности и доступности
>какому-то тестовому Web-серверу, отнимая ресурсы у более важных сервисовВот и пусть сидит в отдельном контейнере, не отсвечивая ни по процессору, ни по памяти, ни по диску. По-моему, тут адекватный контроль потребления ресурсов куда важнее вложенности.
>почему бы не сунуть его поглубже в jail-окружение группы разработчиков и передать
>права по управлению этим сервисом им, а на верхние уровни управления вывести
>изолированные окружения жизненно-важных для организации департаментов.Ну этот пример вполне укладывается в xen+openvz, например, хотя мне кажется серьёзно притянутым за уши. Пример с критичным терминальным сервером и фоновыми сборочницами уже привёл, с делегированием прав проблем за время эксплуатации так и не обнаружено.
PS: извиняюсь, но кажется, я спамлю тему офтопиком. :(
> Лучше все равно ничего нет и это три :)в точку.
Двойные стандарты у некоторых и отсутствие объективности - вот это в точку.Помнится недавно про такуж же по смыслу дыру в линуксе написали что это критично и развели вагон срача. А тут философствуют про то что случается, дескать. Почему-то большинство бздунов - жуткие лицемеры.
Да, причем здесь core team ?Если прочитать SA, то становится очевидно, что эти дырки были закрыты задолго до того, как их отрепортил поляк. RELENG_7 была исправлена где-то год и пол года тому назад, соотв. В RELENG_6 фиксы не были закоммичены из-за лености соответствующего коммитера.
Анализ, подготовка, тестирование, составление advisory и коммит в RELENG_X_Y занимают очень много времени, плюс тот факт, что в stable/7 и stable/8 этих проблем давно нет.
>Core team FBSD медленно реагирует. товарисчь благодаря которому оно найдено об этом
>говорил где-то пару недель назад с описанием. конечно мало у кого
>кто не попадя (не доверенный) в системе сможет скомпилить бинарник и
>запустить (или подсунуть готовый) но факт медленного реагирования и вероятность того
>что ошибки есть ещё настораживают.Это не так, SecurityTeam патч изготовили быстро, все остальное время его тестировали, дабы ничего не сломать.
>Core team FBSD медленно реагирует. товарисчь благодаря которому оно найдено об этом
>говорил где-то пару недель назад с описанием.Чел из core team говорил, что они уведомление от этого товарища протеряли в спаме :)
Т.е. теперь null-бага выключается методом sysctl security.bsd.map_at_zero=0.
Плавный переход от багов к фичам...
Подскажите кто-нибудь, а как применить исправления уязвимости к 7.1 без перезагрузки?
Мне должно быть стыдно, но я знаю только один способ пересобрать ядро.
>Подскажите кто-нибудь, а как применить исправления уязвимости к 7.1 без перезагрузки?
>Мне должно быть стыдно, но я знаю только один способ пересобрать ядро.очень просто
пишите модуль
который должен состоять из трех функций
1) создание набора страниц схожих на те в котоых находиться текущий kernel
2) подрузка нового kernel в этот новый набор страниц
3) остановка всех CPU (если это SMP) и перевода первого CPU на выполнение токо одной функции
функциия должна сменить один набор страниц на другойвсе радуемся жизни без перегрузки сервера
А у Вас kexec() нету?
обновляешь бинарник, перезапускаешь процесс.
>А у Вас kexec() нету?Нету. Мы все умрём да?! :)
>все радуемся жизни без перегрузки сервераЭм...мне стыдна, но я нихрена не понял :)
Это стёб такой или реально работает?
Не пойму что я такого сказал (я про критику ОС FreeBSD, которую же сам использую), что нужно было удалить мой коммент. Быть может меня бы переубедили, указав на мое неверное понимание философии данной ОС?