URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 108074
[ Назад ]

Исходное сообщение
"Проект OpenBSD перешёл на обязательное использование механиз..."

Отправлено opennews , 28-Май-16 10:57 
Проект OpenBSD перешёл (http://undeadly.org/cgi?action=article&sid=20160527203200) на обязательное применение механизма защиты памяти W^X (https://en.wikipedia.org/wiki/W%5EX) (Write XOR Execute), суть которого в том, что страницы памяти процесса не могут быть одновременно доступны на запись и исполнение. Таким образом, код может быть исполнен только после запрещения записи, а запись в страницу памяти возможна только после запрета исполнения. Механизм W^X помогает защитить приложения в пространстве пользователя от типовых атак, осуществляемых через переполнение буфера, в том числе от переполнений стека (записанный за пределы буфер код не может быть исполнен).

Традиционно в Unix при маппинге памяти допускается модель "W|X", которая позволяет осуществить как запись, так и исполнение, что является порочной практикой с позиции обеспечения безопасности. В OpenBSD отныне такая модель переведена в категорию недопустимых (при попытке использования будет выведена ошибка) и обязательно требуется использование только механизма "W^X".


Обход запрета "W|X" может быть осуществлён только через монтирование ФС (ffs/nfs) со специальным флагом "wxallowed", который рекомендуется использовать для монтирования /usr/local, так как некоторые сторонние программы пока не адаптированы для нормальной поддержки "W^X". Многие порты уже портированы для нормальной работы в режиме "W^X" или поддерживают его из коробки (например, Firefox), но в ряде крупных пакетов пока наблюдаются проблемы, например, это касается JDK, GCC, Mono и Chromium.


URL: http://undeadly.org/cgi?action=article&sid=20160527203200
Новость: http://www.opennet.me/opennews/art.shtml?num=44506


Содержание

Сообщения в этом обсуждении
"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено anonymous , 28-Май-16 10:57 
Молодцы!

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Sunderland93 , 28-Май-16 11:03 
Самая безопасная ОС стала ещё безопаснее! Вот бы для Линукса такое запилили

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 28-Май-16 11:18 
Защищённый вариант mprotect уже лет 15 как PaX-ом запилен, но в ядро добавлять его никто не спешит и тем более переходить на его обязательное использование.

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 29-Май-16 20:10 
> Защищённый вариант mprotect уже лет 15 как PaX-ом запилен, но в ядро
> добавлять его никто не спешит и тем более переходить на его
> обязательное использование.

Вы, часом, не путаете ядро и всю ОС, вместе со всем базовым софтом?


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено angra , 28-Май-16 11:22 
Добавить в линукс связь флагов страниц памяти с флагами монтирования файловой системы? Спасибо, не надо. Такое нужно лишь тем, кто хочет поддерживать миф о "только две remote дырки за все время", а значит вынужден отделять "надежные" пакеты базовой ОС от всего остального, что обычно ставят для нормальной работы.

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Ананимас , 28-Май-16 14:09 
>вынужден отделять "надежные" пакеты базовой ОС от всего остального, что обычно ставят для нормальной работы.

как traceroute в linux?


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено grsec , 28-Май-16 17:12 
Какие проблемы?

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 30-Май-16 16:06 
> Добавить в линукс связь флагов страниц памяти с флагами монтирования файловой системы? Спасибо, не надо.

В Линуксе выставляют опции защиты памяти для каждого отдельного файла. Причём можно это сделать двумя способами:

1. Метить ELF заглавия файлов CONFIG_PAX_PT_PAX_FLAGS = y

2. Создавать дополнительные атрибуты в файловой системе CONFIG_PAX_XATTR_PAX_FLAGS = y (удобно для кривых проприетарных прог с подписаными бинарями)

Метят файлы утилитой paxctl-ng


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 28-Май-16 14:50 
>  Вот бы для Линукса такое запилили

Больщинство дистров давно уже это используют.


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 28-Май-16 15:02 
А поподробнее.

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 28-Май-16 16:47 
man PaX
Заодно и GRSECURITY.

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Нанобот , 28-Май-16 19:55 
пожалуйста, ознакомьтесь со значение слова "большинство" (http://ru.wiktionary.org/wiki/%D0%B1%D0%... после чего попробуйте ответить на тот же вопрос ещё раз

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 29-Май-16 02:39 
В большинстве дистров это возможно. Но почти никто не использует by-default.

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 28-Май-16 19:06 
Можно загрузить другую ОС с флешки и дампнуть память.

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 29-Май-16 23:16 
> Можно загрузить другую ОС с флешки и дампнуть память.

А в огороде бузина …
Или к чему это?



"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено НяшМяш , 28-Май-16 20:07 
> JDK, GCC, Mono и Chromium

Большинство понятно, что говнище, но вот от GCC не ожидал. Интересно, у Clanga те же проблемы?


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 28-Май-16 21:56 
jdk, mono, chromium это из за jit. Туда придется добавлять уменьшающие производительность костыли чтоб это работало.

"Проект Gentoo перешёл:"
Отправлено Аноним , 29-Май-16 14:39 
CONFIG_PAX_NOEXEC=y
CONFIG_PAX_PAGEEXEC=y
CONFIG_PAX_MPROTECT=y

# USE="-jit -orc -schroedinger pic pie" emerge -uDN world


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено AnotherReality , 29-Май-16 03:26 
Не знаю аудиторию  OpenBsd. Но технология выглядит интересной, в частности для  выявления  такой  не правильной практики как в "JDK, GCC, Mono и Chromium"
Да и не плохо бы в ядрышко линукса добавить похожую фичу, но подключаемую

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 29-Май-16 07:05 
Такая практика называется JIT.

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено lib ru , 29-Май-16 06:37 
одобряю, если линукс растащат на куски то валить во фряху, а после фряхи опэнбст следующий норм кандидат (параноидальная защита, но оно начинает мне нравится)

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 29-Май-16 14:41 
Зачем по всем граблям бегать? Можно сразу на DragonFlyBSD!



"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено chinarulezzz , 29-Май-16 16:36 
только x86_64? :(

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено _ , 30-Май-16 16:43 
Он имел в виду - зачем собитать грабли с кайдой бсд-эшки, если можно собрать все грабли сразу на стрекозе :)

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено count0krsk , 31-Май-16 17:40 
Тонко, спасибо )))

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Нанобот , 30-Май-16 09:37 
тут ещё вендекапец не наступил, а ты уже к линуксокапцу готовишься

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Клыкастый , 30-Май-16 10:17 
FreeBSD/DragonflyBSD вполне
но линукс "не растащат". в том смысле, что будет какой-то островок стабильности, может несколько, со схожей идеологией. да, пилить его будет не 100 корпораций, но и при переходе на DFBSD вы же не питаете иллюзий - её пилят относительно немного народу. И Диллон конечно монстр и всё такое, но нужна толковая смена, нужно стабильное, ещё лучше растущее, комьюнити.

//trolling=ON
//offtop=ON

вот заря будущего, вот вендекапец и всё такое:
http://www.techrepublic.com/article/os2-resurrected-blue-lio.../


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено _ , 30-Май-16 16:45 
Да брось Клыкастый, не взлетит оно.

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Клыкастый , 30-Май-16 17:02 
> Да брось Клыкастый, не взлетит оно.

ну блин ещё и шутки юмора объяснять...


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено бедный буратино , 30-Май-16 03:15 
у меня /usr/local не отдельным разделом.

теперь, что - у меня в следующем обновлении сломается gcc (кстати, только пакетный? штатный gcc 4.2 работать будет?) и другие пакеты?


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено 1 , 30-Май-16 11:27 
монтируй корень тогда

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 30-Май-16 11:50 
Почему бы интелу с амд не поднапрячься и не сделать аппаратную защиту стека (а то и второй бы запилить, только для данных, неплохо было бы)? Вызываем функцию, говорим на каком адресе начинается адрес возврата. В процессоре - небольшая память этих адресов-точек (выходим из функцию - убираем ее точку), при записи в которые, в пределах размерности указателя - говорим "кирдык".

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено fi , 31-Май-16 00:39 
она называется x86_64 :)))

"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 30-Май-16 14:28 
>> аппаратную защиту стека

В смысле  NX/XD ?


"Проект OpenBSD перешёл на обязательное использование механиз..."
Отправлено Аноним , 30-Май-16 16:32 
Нет, nx не помогает против перезаписи адреса возврата указателем на нужную функцию (понятно что подобрать сложно, может даже невозможно, но теоретическая возможность есть). Просто сравнивать адреса при записи в сегмент стека с адресами где точно хранятся адреса возврата (небольшой массив на 8-32 адреса вполне хватит для почти 100% защиты).