The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Удалённая уязимость в ядре NetBSD, эксплуатируемая из локальной сети, opennews (??), 14-Окт-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


101. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (100), 15-Окт-20, 10:19 
Очень интересно. В каких ОС ещё есть подобная защита, в каких нет? Особенно интересно про остальное семейство BSD и Linux.
Ответить | Правка | Наверх | Cообщить модератору

112. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (113), 16-Окт-20, 09:07 
Посмотри информацию на официальных сайтах интересующих OS.

Надо учитывать что вариантов W^X есть 3:

1. Защита строгая и бескомпромиссная.
2. Защита декларативная и дырявая.
3. Защиты нет.

В тех OS и сообществах где есть пропаганда и насаждение технологий JIT - никакой защиты W^X быть не может в принципе, по определению.

Дискретный контроль доступа (DAC) - фундамент безопасности с 1960-тых. И главное правило DAC: "все что исполняется не должно изменятся, а что изменяется не должно исполнятся" (W^X) сегодня реализован с той или иной степенью строгости и корректности во всех коммерческих OS: Unix, Microsoft, Apple.

Примеры GNU/Linux и *BSD:
NetBSD - строгая
OpenBSD - дырявая
GNU/Linux DYSTRYK - строгая https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/.../
GNU/Linux Ubuntu - отсутствует.

Ответить | Правка | Наверх | Cообщить модератору

114. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (100), 16-Окт-20, 09:29 
Спасибо за ответ. А в чём отличие дырявой от строгой?
Ответить | Правка | Наверх | Cообщить модератору

115. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  –1 +/
Сообщение от Аноним (113), 16-Окт-20, 09:54 
Строгая это строгая без копромисов. Когда разработчики ядра строго и без копромисов отказывают всем в поддержке JIT-подобным технологиям.

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

Ответить | Правка | Наверх | Cообщить модератору

116. "OpenBSD с JIT и дырой в W^X."  +/
Сообщение от Аноним (113), 16-Окт-20, 10:00 
Тео Де Раадт прогнулся, стал раком перед JIT и отказался от строгой защиты памяти в OpenBSD: https://www.opennet.ru/opennews/art.shtml?num=50763

Теперь в OpenBSD есть возможность запуска ненужных JIT-приложений и большая дырень в W^X для реализации эксплоитов на базе переполнения буфера.

Ответить | Правка | Наверх | Cообщить модератору

119. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Дон Ягон (ok), 16-Окт-20, 14:42 
Ты путаешь юзерспейсный и ядерный W^X. Ыксперд млин.

Очевидно, что remote root в netbsd/openbsd невозможен (из-за этих дыр) как раз из-за ядерного W^X. И очевидно, что юзерспейсный влияет только лишь на прикладные приложения с jit, типа браузеров.

И там да, в openbsd не стали делать самый дубовый из возможных вариантов противодействия, а именно - ломать возможность делать mprotect'ом +x для участка памяти принудительно. Если автор приложения уверен, что подобное его приложению и не нужно - он может отозвать prot_exec через pledge. Причём, в любом нужном участке кода программы, а не только сразу после старта. А не учить своё приложение гадать в рантайме, умеет mprotect в prot_exec или нет (или прибивать, в зависимости от настроек).

Но фанатикам, не умеющим думать, умеющим только повторять за другими, понять этого сложно.

PS: мне тут один "неумный" рассказывал, что умение pax mprotect в dlopen и возможность его (pax mprotect'а) отключения через pax-flags - это достоинство. К разговору о том, где W^X pt2 позволяет что-то гарантировать, а где нет, ага.

Ответить | Правка | К родителю #112 | Наверх | Cообщить модератору

121. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (100), 16-Окт-20, 15:05 
>Очевидно, что remote root в netbsd/openbsd невозможен (из-за этих дыр) как раз из-за ядерного W^X.

А если в Linux, то возможен?

Ответить | Правка | Наверх | Cообщить модератору

122. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  –1 +/
Сообщение от Дон Ягон (ok), 16-Окт-20, 15:15 
>>Очевидно, что remote root в netbsd/openbsd невозможен (из-за этих дыр) как раз из-за ядерного W^X.
> А если в Linux, то возможен?

Я не слишком хорошо знаком с актуальным состоянием ядра linux в этом месте, точно не знаю.
Но, судя, например, по https://www.opennet.ru/opennews/art.shtml?num=53892 - remote root там таки возможен.

Ответить | Правка | Наверх | Cообщить модератору

129. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (125), 16-Окт-20, 18:03 
> linux ... remote root там таки возможен

Только в дистрибутивах для быдла.

Ответить | Правка | Наверх | Cообщить модератору

158. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (100), 18-Окт-20, 22:29 
А какие не для быдла?
Ответить | Правка | Наверх | Cообщить модератору

161. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (161), 19-Окт-20, 08:54 
Ссылку на пример дал: https://www.opennet.ru/openforum/vsluhforumID3/122116.html#112

Проверить любой *NIX, для быдла он или для людей можно двумя командами:

1. paxtest blackhat

2. checksec --file=/bin/ls

Ответить | Правка | Наверх | Cообщить модератору

138. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +1 +/
Сообщение от Аноним (138), 16-Окт-20, 22:52 
То есть, NetBSD - мощь, а Linux маломощный, так сказать.
Ответить | Правка | К родителю #122 | Наверх | Cообщить модератору

160. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (160), 19-Окт-20, 08:19 
Все зависит от дистрибутива Linux.
Ответить | Правка | Наверх | Cообщить модератору

162. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (161), 19-Окт-20, 09:12 
> Я не слишком хорошо знаком с актуальным состоянием ядра linux в этом месте, точно не знаю.

А давай посмотрим на корень проблемы?

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...

Executable code and read-only data must not be writable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Any areas of the kernel with executable memory must not be writable.
While this obviously includes the kernel text itself, we must consider
all additional places too: kernel modules, JIT memory, etc. (There are
temporary exceptions to this rule to support things like instruction
alternatives, breakpoints, kprobes, etc. If these must exist in a
kernel, they are implemented in a way where the memory is temporarily
made writable during the update, and then returned to the original
permissions.)

In support of this are ``CONFIG_STRICT_KERNEL_RWX`` and
``CONFIG_STRICT_MODULE_RWX``, which seek to make sure that code is not
writable, data is not executable, and read-only data is neither writable
nor executable.

Most architectures have these options on by default and not user selectable.
For some architectures like arm that wish to have these be selectable...

Корнем проблемы и раздора есть фраза: "There are
temporary exceptions to this rule to support things like ..." вот из-за этих временных исключений в некоторых дистрибутивах GNU/Linux есть дыры. В строгих дистрах GNU/Linux исключений не делают, в них уязвимостей нет, нет и дерьма типа: firefox, JIT, orc, java, ...

> remote root там таки возможен.

Не во всех дистрибутивах GNU/Linux. Есть дистрибутивы GNU/Linux в ко орых эксплуатация любых уязвимостей переполнения буфера (bufferoverwrite) невозможна.

Ответить | Правка | К родителю #122 | Наверх | Cообщить модератору

128. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  –1 +/
Сообщение от Аноним (125), 16-Окт-20, 18:01 
> в openbsd не стали делать самый дубовый из возможных вариантов противодействия, а именно - ломать возможность делать mprotect'ом +x для участка памяти принудительно. Если автор приложения уверен, что подобное его приложению и не нужно - он может отозвать prot_exec через pledge. Причём, в любом нужном участке кода программы, а не только сразу после старта. А не учить своё приложение гадать в рантайме, умеет mprotect в prot_exec или нет (или прибивать, в зависимости от настроек).

В OpenBSD Тео отдал программисту право изменят исполняемый код программы. И это очень плохо. Я на стороне строгой реализации W^X не допускающий JIT в принципе.

Тео поступил плохо, мотивируя что chrome & firefox требуют JIT. Google таки прогнулся под Apple в которых тоже строгая реализация W^X и нетерпимость к JIT - сегодня хромого можно собрать без поддержки JIT!

И какому такому "умному" пользователю OpenBSD нужны проги с JIT?

> умение pax mprotect в dlopen и возможность его (pax mprotect'а) отключения через pax-flags - это достоинство. К разговору о том, где W^X pt2 позволяет что-то гарантировать, а где нет, ага.

PAX - правильная реализация строгой защиты памяти которая таки дает гарантии!

Только если при сборке ядра разрешить отключать защиту для некоторых бинарей:
CONFIG_PAX_XATTR_PAX_FLAGS=y
https://en.m.wikibooks.org/wiki/Grsecurity/Appendix/Grsecuri...
то откроется дыра и с помощью paxctl-ng можно отключать, дискретно, некоторую защиту по файлам, храня информацию в xattr файловой системы (может и в заглавиях бинарей) это значит что админ может отключить какую-то защиту:
* постраничный защиту памяти
* посегментную защиту памяти
* защиту памяти mprotect
* мелкие области памяти emutramp
* рандомизацию адресного пространства
Защиту pax атрибутов можно организовать простым патчем к IMA/EVM. И при этом есть гарантии неизменности PAX атрибутов. Если вы отключили защиту для некого бинаря то защиты естественно у вас нет, но это ваш выбор, как и выбор CONFIG_PAX_XATTR_PAX_FLAGS=y

Ответить | Правка | К родителю #119 | Наверх | Cообщить модератору

130. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  –1 +/
Сообщение от Дон Ягон (ok), 16-Окт-20, 18:25 
> Тео отдал программисту право изменят исполняемый код программы.

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

> Я на стороне строгой реализации W^X не допускающий JIT в принципе.

Как только объективной потребности в этом не будет - её все отключат. Пока это может сломать приложения, так делать нельзя.
(речь в большей степени про запрет на переключения RW -> RX, сам по себе W^X уже ломает не так много)

> Тео поступил плохо, мотивируя что chrome & firefox требуют JIT. Google таки прогнулся под Apple в которых тоже строгая реализация W^X и нетерпимость к JIT - сегодня хромого можно собрать без поддержки JIT!

Судя по https://developer.apple.com/documentation/apple_silicon/port... переключения между RW / WX возможны, т.е. всё аналогично openbsd.

> И какому такому "умному" пользователю OpenBSD нужны проги с JIT?

Мне например - firefox без prot_exec не работает. Firefox не нужен?

>> умение pax mprotect в dlopen и возможность его (pax mprotect'а) отключения через pax-flags - это достоинство. К разговору о том, где W^X pt2 позволяет что-то гарантировать, а где нет, ага.
> PAX - правильная реализация строгой защиты памяти которая таки дает гарантии!

Мне тут рассказывали (проверять поленился, ибо неинтересно), что подгрузить so'шку (со всеми вытекающими) можно даже при включённом pax mprotect. Т.е. строгость, видимо, таки мнимая.

>[оверквотинг удален]
> заглавиях бинарей) это значит что админ может отключить какую-то защиту:
> * постраничный защиту памяти
> * посегментную защиту памяти
> * защиту памяти mprotect
> * мелкие области памяти emutramp
> * рандомизацию адресного пространства
> Защиту pax атрибутов можно организовать простым патчем к IMA/EVM. И при этом
> есть гарантии неизменности PAX атрибутов. Если вы отключили защиту для некого
> бинаря то защиты естественно у вас нет, но это ваш выбор,
> как и выбор CONFIG_PAX_XATTR_PAX_FLAGS=y

Всё вышенаписанное можно свести к более простому, если без фанатичного переливания из пустого в порожнее:

1) Гарантий нет, защиты можно отключить на лету
2) А если собрать ядро так, что их отключить будет нельзя, работать будет не только лишь всё, что для ОС общего назначения неприемлемо.
3) per doll it sya ради "неизменных PAX атрибутов" никто не будет. Единственная ОС общего назначения, где есть pax mprotect из коробки - netbsd, но и там есть возможность его выключения как глобально, так и для отдельных бинарников.

Короче, блажен кто верует.

Ответить | Правка | Наверх | Cообщить модератору

133. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  –1 +/
Сообщение от Аноним (125), 16-Окт-20, 19:01 
> стандарты POSIX. Которые предполагают, что память может быть доступна и на запись и на чтение

На исполнение и на запись одновременно нельзя! Это вопрос безопасности.

> Как только объективной потребности в этом не будет - её все отключат

А объективной потребности и нет. Ее пытаются создать навязывая никому ненужный JIT, чтобы иметь дыру для реализации эксплоитов с переполнение буфера.

> https://developer.apple.com/documentation/apple_silicon/port...

А Google говорит что Apple их с JIT в chrome послали очень грубо и сказали принести такой же но уже без JIT и Google принес: https://v8.dev/blog/jitless

В Appleb iOS реализация W^X таки строгая?

> firefox без prot_exec не работает. Firefox не нужен?

Мне сегодня уже не нужен. Но когда был нужен запускал без JS и с собранными дополнениями в файловом менеджере. JIT firefox нужен для загрузки дополнений пользователем, а это тоже зло. Попробуй может взлетит и сегодня.

> Мне тут рассказывали (проверять поленился, ибо неинтересно), что подгрузить so'шку (со всеми вытекающими) можно даже при включённом pax mprotect. Т.е. строгость, видимо, таки мнимая.

Там много чего надо включать для полной защиты от "всех сишных дыр". И защита таки есть! Вот пример хорошего дистра GNU/Linux: https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/.../

> 1) Гарантий нет, защиты можно отключить на лету

Ложь. В нормально настроений системе не отключить.

> 2) А если собрать ядро так, что их отключить будет нельзя, работать будет не только лишь всё, что для ОС общего назначения неприемлемо.

Все теперь собирается без JIT и работает, даже шпионский хром.

> Единственная ОС общего назначения, где есть pax mprotect из коробки - netbsd, но и там есть возможность его выключения как глобально, так и для отдельных бинарников.

Это у теба единственная которую ты знаешь.

Ответить | Правка | Наверх | Cообщить модератору

137. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Дон Ягон (ok), 16-Окт-20, 19:53 
>> стандарты POSIX. Которые предполагают, что память может быть доступна и на запись и на чтение
> На исполнение и на запись одновременно нельзя! Это вопрос безопасности.

На колу мочала, начинаем всё сначала. Оставь, пожалуйста, свои "наивные" эмоции и восклицательные знаки. А также очевидные, но бессмысленные утверждения.

>> Как только объективной потребности в этом не будет - её все отключат
> А объективной потребности и нет. Ее пытаются создать навязывая никому ненужный JIT, чтобы иметь дыру для реализации эксплоитов с переполнение буфера.

Ты так считаешь? Ну вот, пока я не закрыл man security нетбсдшный:

"     PaX MPROTECT affects the following three uses:

           ·   Processes that utilize code generation (such as the JVM) might
               need to have MPROTECT disabled.

           ·   Miscompiled programs that have text relocations, will now core
               dump instead of having their relocations corrected.  You will
               need to fix those programs (recompile them properly).

           ·   Debugger breakpoints: gdb(1) needs to be able to write to the
               text segment in order to insert and delete breakpoints.  This
               will not work unless MPROTECT is disabled on the executable.
"

Сорян, я предпочту поверить примерам netbsd'шников, а не твоим ничем не обоснованным заявлениям.

>> https://developer.apple.com/documentation/apple_silicon/port...
> А Google говорит что Apple их с JIT в chrome послали очень грубо и сказали принести такой же но уже без JIT и
> Google принес: https://v8.dev/blog/jitless

Ни слова про грубый посыл от apple. Хром у меня в mac os работал в те времена, когда W^X в ней уже был (10.4+), а jitless в хромом ещё не было. Ты гони, как говорится, но не загоняйся.

> В Appleb iOS реализация W^X таки строгая?

Возможно, в мобильной версии. В десктопной - нет.

>> firefox без prot_exec не работает. Firefox не нужен?
> Мне сегодня уже не нужен. Но когда был нужен запускал без JS и с собранными дополнениями в файловом менеджере. JIT firefox нужен для загрузки дополнений пользователем, а это тоже зло. Попробуй может взлетит и сегодня.

W|X емнип лисе уже не нужен довольно давно. А вот возможность делать переключения RW -> RX (в предыдущем сообщении я ошибочно написал "-> WX", лол) - нужна. А pax mprotect, он же (в терминологии чуваков из hardenedbsd) W^X pt2 ломает как раз именно эту возможность.

> Это у теба единственная которую ты знаешь.

Да, васин самосборный дистрибутив мне правда неинтересен. А netbsd таки хоть кем-то но используется.

Ответить | Правка | Наверх | Cообщить модератору

155. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +1 +/
Сообщение от Аноним (155), 18-Окт-20, 14:43 
> Сорян, я предпочту поверить примерам netbsd'шников, а не твоим ничем не обоснованным заявлениям.

Да, java в W^X работать не будет. Собираю все без java, jit, orc, ...

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

Gdb в рабочей системе никто не держит - уязвимость.

>Возможно, в мобильной версии. В десктопной - нет.

В новых версиях Mac OSX могли W^X добавить программный для Ынтель процов.

> вот возможность делать переключения RW -> RX

Это неприемлемо в плане безопасности. PaX вполне корректно убивает такой процесс. Исправлять надо именно firefox!

Ответить | Правка | Наверх | Cообщить модератору

140. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Карабьян (?), 17-Окт-20, 01:01 
Дополнения в файловом менеджере - как это?
Ответить | Правка | К родителю #133 | Наверх | Cообщить модератору

156. "Удалённая уязимость в ядре NetBSD, эксплуатируемая из локаль..."  +/
Сообщение от Аноним (155), 18-Окт-20, 14:47 
Дополнения к бровзеру должны распространятся стандартным ПАКЕТНЫМ менеджером. У меня emerge их собирает. И пользователь не должен устанавливать левые.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру