На конференции 39C3 (Chaos Communication Congress) представлен доклад с результатами исследования защищённости механизма FreeBSD jail. Авторам исследования удалось выйти за пределы Jail и скомпрометировать хост, при условии, что у атакующего есть root-права внутри Jail. На GitHub опубликован код 5 прототипов эксплоитов, использующих для выхода из Jail уязвимости в ipfilter, dummynet, carp и ipfw, проявляющиеся во FreeBSD 14.3-RELEASE. Всего в ходе исследования выявлено около 50 проблем с безопасностью в ядре FreeBSD, для части из которых подготовлены патчи с исправлениями...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=64550
>Современные
>1990даже не знаю
>Rust
кот бы сомневался
в общем и целом, аналитика от бога
> кот бы сомневалсяКот не сомневается))
А ты посмотри на список бажин github.com/iljavs/FreeBSD-Jail-Security-Research-Mirror/issues
Ну или хотя бы прочитай заголовки.Missing vm_object_deallocate()
Double refcount decrement
Out-of-bounds read
Missing NUL-Termination
Unbounded Allocation
Out-of-Bounds Read/Write
Uninitialized Stack Structures
Out-of-Bounds Read and Info Leak
Integer Underflow Allows Out-of-Bounds Read
Uninitialized Stack Padding
uninitialized heap memory
Stack Buffer Overflow
Buffer Overflow and Memory LeakТам же почти все проблемы - типикАл проблемы ̶д̶ы̶х̶р̶я̶х̶и̶ Божественной Сишечки!
Для этого придумали статистические анализаторы, valgrind, и всё остальное. Да и когда писали этот код, компиляторы не имели и сотой доли нынешних возможностей для отладки.
> Для этого придумали статистические анализаторы, valgrind, и всё остальное.Ну-ну. "Большая часть проанализированного кода написана в 1990-х годах и давно не подвергалась аудиту" У них было 20+ лет чтобы прогнать valgrind.
> статистические анализаторы
Полезная штука. Но только когда ею пользуются.
И чтобы ее не пропускали ее можно сделать неотъемлимой частью языка :)> Да и когда писали этот код, компиляторы не имели и
> сотой доли нынешних возможностей для отладки.Забавная попытка оправдать бракоделие.
> статистические анализаторыЛОЛЕД. Эксперта видно издалека.
Все абсолютно верно - для того, чтобы сишечку хоть как-то можно было использовать - придумали целые классы программ. Деблохаторы, стат. анализаторы и тп - это всё ради того, чтобы недоязычок хоть как-то работал. И когда народу говоришь про языки, где все это просто не нужно благодаря грамотному дизайну и встроенным гарантиям - это вызывает немножко защемление мозжечка.
Может, такие замечательные языки и есть, видимо, это c# и у него производительность и ресурсоёмкость питона.Потому что в том же расте у тебя память будет утекать КУДАТО, а треды периодически блокироваться ОТЧЕГОТО -- удачи отладить. А писать на нём просто невозможно.
У файрфокса это едва получается, постоянно скроллинг или отрисовка отваливаются, процессы с медиаконтентом зависают, вертикальная синхронизация поломана. Ничего из этого не было до добавления ржавчины.
> Потому что в том же расте у тебя память будет утекать КУДАТОТочно также как в любом языке без GC.
Поэтому ищешь утечки аналогничными способами - Valgrind, jemalloc's heap profiler, dhat и прочие инструменты.> а треды периодически блокироваться ОТЧЕГОТО -- удачи отладить
Раст не гарантирует отсутствие дедлоков, но с data races борется вполне успешно.
В отличие от убогих недоязыков из 70х, которые вообще ничего не гарантируют.> удачи отладить
> А писать на нём просто невозможно.Пффф... да таким неосиляторам как вы ни один язык не поможет))
> У файрфокса это едва получается, постоянно скроллинг или отрисовка отваливаются, процессы с медиаконтентом зависают, вертикальная синхронизация поломана. Ничего из этого не было до добавления ржавчины.
Угу, у всех работает, а у тебя нет))
До добавлении ржавчины оно отрисовывалось в один поток.
Не зря лиса получила прозвище тоpмoзилла.
эти "все" с Вами там в одной комнате ?
у огнелиса просто перманентный крашинг МедиаЧтоТоТам. более того, оно нормально не работало с лсм'ами до Х версии. по крайней мере, с аа и томойо. и крашило уже весь бравзер, емнип.
операция запрашивалась, но тут же фейлилась, независимо от того, была ли разрешена в политике.
почему - не разбиралась
> но с data races борется вполне успешно.Аххахахах, ну ну)
- https://www.opennet.ru/opennews/art.shtml?num=64439
Как, помогло нанятым-по-объявлению из гугла классовое разделение кода осознать, что снятие лока на список, в котором ты берёшь объект на read-write - это data race, и по хорошему объект нужно было удалить из листа перед тем как вернуть лок? Или все продолжили кидаться своими познаниями чекера боровов в "unsafe" часть кода, котора буквально одна строчка делающая то, что в ней написано? Ты же в курсе, что код крашнула та часть, которая "safe" как раз потому что она бросила лок перед тем, как закончить работать с объектом, потому что мегамозги лок использовали для памяти, а не для лайфтайма объектов, лежащих в этой памяти?
> Для этого придумали статистические анализаторы, valgrind, и всё остальное.Да? И почему не пользуются тогда?
Потому что уже написано. Сейчас ещё LLM добавили к списку. И да, с растом это всё не работает, по сути, раст сейчас в дедовских временах застрял.
https://www.opennet.ru/opennews/art.shtml?num=64551
https://opennet.ru/60877-backdoor
> типикАл проблемы ̶д̶ы̶х̶р̶я̶х̶и̶ Божественной Сишечки!Типикал проблемы кода, написанного энтузиастами, которым всегда было плевать на проблемы безопафосности корп, вopующих этот код 30 лет.
Причем, энтузиастам их поф-игизм только пользу принёс - в борьбе с "тивоизацией". А корпы как кopмили своих платных кастомеров и кастомерок с ло-паты, так и сейчас кормят. Только теперь - под сказки о безопасности.
Многие российские хостеры FreeBSD VPS предлагают.
И в чем проблема? Обновят и дальше будут предлагать.
В Sony PlayStation 4 и 5 основываются на FreeBSD переработанной под себя.
О да, нетфликс забыл ещё. И ссылку на сайт спонсоров фрибсд. И рассказ про гениальный сетевой стек. Давай сразу все карты на стол.
> В Sony PlayStation 4 и 5 основываются на FreeBSD переработанной под себя.Только тебе с этого ничего не обломится в сабжа. А так все хорошо, прекрасная маркиза.
ну если на основе джейлов - беги оттуда. Лет 25 назад такое где-то наверное и могло бы быть.А если это обычная виртуалка - тебе как-то и похрен должно было быть.
> Большая часть проанализированного кода написана в 1990-х годах и давно не подвергалась аудиту.PVS еще в 17 году писали про кучу проблем https://pvs-studio.com/en/blog/posts/cpp/0496/ и указывали
> FreeBSD code is regularly checked by Coverity
Получается он достаточно плохо анализирует.
> Получается он достаточно плохо анализирует.Или все кладут на его репорты.
зачем внутри jail собирать вот это ipfilter, dummynet, carp и ipfw? Зачем у них jail не read-only корень, и не no-exec "пользовательский" каталог (каталог для записи). Где их src.conf?
> read-only корень...no-exec "пользовательский" каталог (каталог для записи).что заказчику делать с такой системой, как администрировать?
> зачем внутри jail собирать вот это ipfilter, dummynet, carp
я не проверял на фряхе и на джейлах - но на вскидку, carp для базового failover хочется
> что заказчику делать с такой системой, как администрировать?зачем ему вообще изоляция?
> но на вскидку, carp для базового failover хочется
ну так его в основной системе делают, зачем он в джейле?
ну не собирай, действительно, чего животину мучать - скопируй через sh шелл-скрипт с base64encoded готовыми.Есть, правда, нюанс....
Но местным специалистам будет крайне трудно его понять. Они все еще маются чушью с ридонликорнем (пользователей добавлять ведь не надо) и прочими глупостями уровня детсада.
> Где их src.conf?
скрипачь уже двадцать лет ненужен, дарагой. И да, в ТАКОМ джейле где вот ето все сработало бы - твои детсадовские способы руту ничем не помешают. Опять не буду уточнять почему- мне выгодно что вы и...ты и умеете только в wsl
> И да, твои детсадовские способы руту ничем не помешаюттебе этот рут еще надо будет получить или опять анекдот про получить рут с помощью рута :)
в общем, насчет твоих умений только в wsl - это была не шутка.ДА, внезапно - jail позволяет ограничивать возможности - рута. И прежде всего для этого и предназначен (остальное в общем спас бы и chroot).
И все найденные увизгвимости - это именно будучи рутом внутри джейла.
Причем джейла с достаточно необычными параметрами.
> в общем, насчет твоих умений только в wsl - это была не шутка.рассмешил :) 20 лет юзаю эти джейлы
> ДА, внезапно - jail позволяет ограничивать возможности - рута.
пропиши securelevel=3, и allow.suser="false" и спи спокойно.
src.conf это вроде как не компилировать все подряд. Как это с jailbreak?
Убрать в jail сборку, на хрена такой jail?
> src.conf это вроде как не компилировать все подряд.Прописываем кастомный /etc/src.conf и /etc/make.conf, а потом собираем "мир"
# cd /usr/src
# make buildworld
# make installworld DESTDIR=/home/jail/new_jail
# make distribution DESTDIR=/home/jail/new_jail
# mount -t devfs devfs /home/jail/new_jail/devВсе по старинке, щас даже не в курсе как их там собирают.
//docs-archive.freebsd.org/doc/7.4-RELEASE/usr/share/doc/handbook/jails-build.html
> Большая часть проанализированного кода написана в 1990-х годах и давно не подвергалась аудиту.А использованию она подвергалась? Может быть нет, поэтому и аудит был не нужен.
не ну теоретически можно представить себе кого-то кто сначала джейл создает а потом дает ему права вот на йетовот всьо - особенно в эпоху ыы подсказок и нулевой квалификации мнящих себя админами.А так да, в 90х, как и в 200х - хрен бы получилось ее использовать где-то в реальном мире.
Мда... баги выглядят как типична сишная дристня.
Сплошные Out-of-bounds read, Integer Underflow, Buffer Overflow, проблемы с NUL-Termination Check (хаха! недостроки недоязыка опять отстрелили ногу)))
Missing vm_object_deallocate() when vm_map_fixed() fails in exec_map_stack()Double refcount decrement → UAF after vm_map_find() success and vm_map_wire() failure in nm_os_extmem_create()
Out-of-bounds read in parse_notes() due to missing length validation
Missing NUL-Termination Check in SIOCAIFGROUP/SIOCDIFGROUP Handler → Out-of-Bounds Reads
Unbounded Allocation in nfsrvd_layoutcommit() can lead to Kernel Paniс
Out-of-Bounds Read/Write in nfscl_docb() via Unvalidated nfsess_backslots
Kernel Panic in nfsrpc_getdeviceinfo() and nfsrv_parseug() via Oversized NFSM_DISSECT() Requests
Remote Kernel Memory Disclosure in nfsrpc_writerpc() due to Signedness Issue
Out-of-Bounds Read/Write in pfr_clr_tables() via Missing NUL Termination for DIOCRCLRTABLES
Pointer Information Leak via DPFPRINTF in PF Debug Paths (VNET-tunable from jails)
Information Disclosure in cbq_getqstats(), priq_getqstats(), and fairq_getqstats() via Uninitialized Stack Structures
Out-of-Bounds Read and Info Leak in pfsync_state_import() via Unterminated Interface Names
Integer Underflow in nvpair_unpack_string_array() Allows Out-of-Bounds Read
Information Leak in ipf_htable_stats_get() via Uninitialized Stack Padding (iphs_pad)
Information Disclosure in ipf_nat_getent() due to uninitialized heap memory being copied to userland
Stack Buffer Overflow in ipf_sync_write()
Unbounded malloc() in ip_dummynet_compat()
Buffer Overflow and Memory Leak in convert_rule_to_8()
Unchecked return value of sooptcopyin() in IP_FW_ADD leads to use of uninitialized kernel data
> Большая часть выявленных уязвимостей связана с ошибками при низкоуровневой работе с памятью, вместо которых можно было бы наделать разных других, применяя языки, позволяющие писать не думая, например, Rust.Можете не благодарить
> позволяющие писать не думаяА вот писаки сабжа много думали)
Поэтому дырень на дырене и дыренью погоняет.
да ну, чушь какая-то ыы генеренная. Какие такие ошибки ты видишь в README.md? (Особенно - написанном не думая - окей клава, набредь мне ридмишечку как мы щас тут на хрусте все перепишем ?)
Там даже синтаксических не будет, ыы грамотноэ.
> Современные операционные системы крайне сложны и появление в них ошибок неизбежно.Бред какой. Да любой опеннетный эксперт пишет по две операционки ещё до завтрака, чисто чтобы размяться перед реальной работой — комментированием на опеннет. Анскилльные лалки просто не осилили.
> На конференции 39C3 (Chaos Communication Congress) представлен доклад с результатами исследования
> защищённости механизма FreeBSD jail.На третий год ковбой набухался и все же спьяну поймал Неуловимого Джо. Но поскольку не придумал что с ним делать - отпустил восвояси.
> выявлено около 50 проблем с безопасностью в ядре FreeBSD,Качественный код, blah-blah-blah...
> для части из которых подготовлены патчи с исправлениями.
А остальные можно продолжать гасить эксплойтми? Ну ок. А, блин, гасить нечего. Вот это обидно было.
> Качественный код, blah-blah-blah.Ну так качественный же. Уязвимостей всего 50. А не как в линуксе, 500 уязвимостей и это до появления пингвинчика на экране, там ещё 5000 уязвимостей в иксах, по паре сотен в кде и гноме, сеть дырявая и тк далее.
> Ну так качественный же. Уязвимостей всего 50.Лол, это нашли всего 50. Причем живут они там с 90х.
> там ещё 5000 уязвимостей в иксах
Если бы в бсде использовался свой икс-сервер, написанный напр. современном с++ или (о боже) на расте, то был бы валидный пример. А там такие же иксы используются с таким же дидовым овнокодом.
> по паре сотен в кде и гноме, сеть дырявая и тк далее.
Окей, ты слился до уровня "а у нас негров линчуют".
Можешь не продолжать.
>> Ну так качественный же. Уязвимостей всего 50.
> Лол, это нашли всего 50. Причем живут они там с 90х.
>> там ещё 5000 уязвимостей в иксах
> Если бы в бсде использовался свой икс-сервер, написанный напр. современном с++ или
> (о боже) на расте, то был бы валидный пример. А там
> такие же иксы используются с таким же дидовым овнокодом.
>> по паре сотен в кде и гноме, сеть дырявая и тк далее.
> Окей, ты слился до уровня "а у нас негров линчуют".
> Можешь не продолжать.Ну так все эти штуки линукс в первую очередь, а значит уязвимости эти лежат на разрабах линуксячих, а не на бсд, у бсд в своей части всё хорошо.
> Ну так все эти штуки линукс в первую очередь, а значит уязвимости эти лежат
> на разрабах линуксячих, а не на бсд, у бсд в своей части всё хорошо.Просто бсдшные "разрабы" проморгали эти уязвимости.
Что в общем-то неудивительно.
Их компетентность мы наблюдаем прям в этой новости))
> Ну так качественный же. Уязвимостей всего 50. А не как в линуксе, 500 уязвимостей
> и это до появления пингвинчика на экране,У меня на экране пояявился - утенок, а не пингвинчик. Наверное я что-то делаю не так.
> там ещё 5000 уязвимостей в иксах, по паре сотен в кде и гноме, сеть дырявая и тк далее.
KDE и Gnome внезапно не Liunx. Который вообще - ядро. И кстати в сабже в них что, вулны куда-то магичски пропадают? :)
бывает, а что в линуксе меньше багов... не ну серьезно покажите не дырявый софт?
OpenBSD
Недостаточно хорошо пентестили просто.
потому что неуловимый джо нахрен никому не сдался.а так - достаточно вспомнить прекрасное smtpd - причем, написанное как раз под лозунгом ща всем покажем-покажем как надо.
да-да - зеро эксплойтов у выключенной и отключкенной от розетки системы с 93го года! (c)Theo
потому что включать в общем и незачем - она ж ничего полезного в современном мире уже не умеет
Это у которого ядро в панику валится от неудачного printf в tty? Ох, насмешил 🤣
А я рад новости, это говорит о том, что о FreeBSD помнят, находят баги, даже на раст переписать угрожают.
> при условии, что у атакующего есть root-права внутри Jail.Пожалуйста, кто-нибудь, научите одноязычных пограммистов создавать юзернеймы для сервисов и выдавать процессам capabilities чтобы биндиться на 443 порт без рута.
Пожалуйста, научите их так - не делать.Научите их программировать под юникс-системы. С дропом привиллегий (правильным а не как ыы набредила) и сменой uid. И чтоб ночью разбуди - могли правильно ответить на вопрос - почему, собственно, требуются рутовые права для доступа к системным портам.
А если программа вместо этого требует л@п4@то-костылей - такое только в докере под докером в wsl запускать. Там пусть антивирус-касперского с ней разбирается если что.
> почему, собственно, требуются рутовые права для доступа к системным портамПотому что надизайнившие этот бред диды верили в магию чисел и наследили ей по всей системе, от gid/uid до номеров портов. Качественнейшие грабли, до сих пор по ним бегаем.