> Ну то есть ещё раз: если для некоторых приложений не ОТКЛЮЧИТЬ pax-защиты,
> они работать не будут.А если отключить - будут. Ещё раз: это whitelisting, лучшая практика по индустрии. Тебе она близка в аспектах secure by default. И как ты тут пыжишься и решаешь за всех, какой PaX неудобный и неправильный, что говно и что абсурд, отлично характеризует лично тебя, а не предмет "обсуждения".
> Как кого-то это говно может устраивать?
> гораздо лучше надрачивать
> предлагать пользователю решать самому - абсурд
Раскрылся, эксперт.
>> В OpenBSD всё решили за пользователя: только следование стандарту, только в ущерб безопасности.
> Решили, но не в ущерб безопасности. Хром на ведре с PAX-патчами не
> становится безопаснее, потому что для него PAX всё равно выключается.
Нет, именно в ущерб. В PaX без MPROTECT работают процессы, для которых он явно отключён, а в OpenBSD без аналогичной защиты работает всё, что не собрано с pledge.
>> Выбор оставили только разработчикам, то есть, себе любимым - тот самый pledge.
> Нет, не себе любимым, а всем.
Не всем, а только тем, кто готов взять на себя бремя модификации и пересборки исходников.
> Вообще-то знаю, я даже написал про это в сообщении, на которое ты
> отвечаешь: "Ну да, "W^X part two" оно тоже умеет, но это
> скорее посмеяться".
Когда нет аргументов по существу, остаётся только "смех" и физиологизмы.
>> Даже в линуксе. А в OpenBSD - выбора нет. Если тебе этот выбор не нужен - это твоё и только твоё дело.
> Повтори мантру про выбор ещё, чо.
И повторю.
> сделай патч, это 1-2 строки кода примерно будет.
Сделать патч, пересобрать, развернуть. С PaX обхожусь без этих лишних трудозатрат, оставляя ресурсы для более важных вещей.
> Наружная крутилка для внутренней логики работы программы - это абсурд и иллюзия
> безопасности.
Иллюзия безопасности - это OpenBSD с набором защит ядра уровня ниже PaX начала нулевых.
> Не делай, пожалуйста так (хак с LD_PRELOAD). Ты совсем не понял суть
> pledge, если хочешь делать так.
Это тебе кажется, что я не понял. Wishful thinking. Хочешь казаться экспертом, а демонстрируешь неспособность понимать смысл написанного в контексте.
> Там уже перестали при каждом чихе рекомендовать делать setenforce=0?
Знаю людей, которые пишут собственные политики для систем с усиленной защитой ядра (grsecurity). Потому что - сюрприз! - штатные политики никуда не годятся, ибо накладывают слишком общие и потому почти бесполезные ограничени. Так вот, они не делают setenforce=0. Представь себе, целевая аудитория систем с заявкой на повышенную защищённость - не только хомячки, за которых нужно делать выбор. И задачи они решают не только по защите локалхоста от мнимых угроз.
> В целом же, я про другое. Использовать selinux для включения W^X для
> отдельно взятого приложения, конечно же, можно, только очень неудобно.
Удобно или нет, но это можно сделать, и находятся люди, которые делают, в рамках кастомных более запретительных политик MAC.
> огораживать приложения им, ИМХО, неудобно.
Да неужели прогресс? Уже не "говно" и не "абсурд", а "ИМХО, неудобно".
> И pledge, повторюсь, задуман ради бОльшего, нежели отзыв prot_exec.
А флаги PaX - ради меньшего. У них более узкие задачи, с которыми они прекрасно справляются.
> Это принципиально неверный способ использования pledge. Его предполагается вызывать после
> того, как приложение закончило инициализацию, подгрузило все модули и перед тем,
> как оно перешло в main loop. Так как предлагаешь ты, ничего
> нормально работать не будет.
А теперь давай разберём это твоё "экспертное" мнение.
Во-первых, тебя сносит в обсуждение собственных мыслей о pledge. Если б ты постарался понять (или не сделал бы вид, что не понял), о чём тебе собеседник пишет, то заметил, что речь шла о включении запрета на использование PROT_EXEC. И его-то нужно включать как можно раньше: что через хак с LD_PRELOAD, что через штатное использование pledge() в исходниках. В main loop, как ты выразился, можно включать другие запреты, которые при включении на более ранних стадиях помешали бы нормальной инициализации приложения.
Во-вторых, поверхностно воспринимаешь написанное или вовсе плохо представляешь себе предмет обсуждения, что опять же выдаёт в тебе эксперта уровня комментов на опеннете.
Более сложный рантайм-враппер, подгруженный через LD_PRELOAD, на этапе инициализации способен заменить любые символы в таблице связывания процедур и соответственно обернуть любые процедуры в код, который вызывает pledge() и затем обёрнутую процедуру (например, системный вызов bind или точку входа в main loop). При желании такой враппер можно даже сделать настраиваемым через конфиг, где описывать набор правил: в момент вызова какой процедуры - какие ограничения включать. По тому же принципу, например, в линуксе можно включать SECCOMPv2 без изменения исходников и пересборки.
> Мне, конечно, следовало написать "потенциально небезопасно".
"Потенциально небезопасно" - высказывание с объёмом, близким к бесконечности и обратно пропорциональным же содержанием. Лучше б ты вообще промолчал.
> Знатоком сортов говен не являюсь.
А совершенно не важно, говна то или не говна. Это всё твои субъективные ощущения, представленные в характерной форме физиологизмов. А по факту ты лишь расписался в том, что судишь о вещах, о которых имеешь самое поверхностное представление.
>>> pledge() предполагает, что будет использоваться автором программы, а не пользователем;
>> Вот именно. Защищённая система, где включать защиты можно только разработчикам. ;)
> Нет. Они или есть и включены изначально, или их просто нет.
Я вот до сих пор не пойму, это такой троллинг, или всё-таки эмоциональный пересказ глубоко воспринятой доктрины? Ну сказал бы "или они просто не работают" - нет, ляпнул "их просто нет". Тут и добавить нечего.
> Опциональная безопасность = не безопасность. История "успеха" setenforce 0, то есть, простите,
> selinux, тому пример.
>>> Не нужно пытаться делать из openbsd pax
>> При всём желании не получится. Не доросли.
> Провокация не удалась
Это и не провокация, а констатация факта. В PaX (и grsecurity) в начале нулевых уже были защиты от эксплуатаций уязвимостей ядра, пять лет назад появился CFI, а относительно недавно - GCC-плагины для защиты от атак на микроархитектуру (Spectre). В OpenBSD же на ядерном поприще если и делается что, так только под лозунгами наведения корректности. Явный курс на безопасность они оставили ещё в начале нулевых и с тех пор даже не пытались на него вернуться.
> я не намерен ни хамить, ни оправдываться.
Ты уже нахамил. Сперва на "ты" перешёл в фамильярной форме, затем физиологизмами свои писульки приправил. Или ты считаешь, что только прямые личные оскорбления хамством являются?
> Ваше право думать так, как вы думаете.
С этого надо было начинать. А уж если и заканчивать, то без "говен" и "надрачивать" по тексту выше.
> Почему я думаю так как я думаю я уже написал.
А я тебе аргументированно возразил. Пишешь своё авторитетное экспертное мнение в комментах, претендуя на что-то уровнем выше плинтуса ("троллинга") - знай, о чём пишешь, умей держаться в рамках приличий, понимать написаннное тебе в ответ и возражать по существу, а не прыгать с темы на тему.