The OpenNET Project / Index page

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



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

"Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от opennews (??), 16-Фев-20, 08:44 
В поставляемом в OpenBSD гипервизоре VMM выявлена уязвимость, позволяющая через манипуляции на стороне гостевой системы добиться перезаписи содержимого областей памяти ядра host-окружения. Проблема вызвана тем, что часть физических адресов гостевой системы (GPA, Guest Physical Address) отражены в виртуальное адресное пространство ядра (KVA). Из-за отсутствия необходимых проверок в функции еvmm_update_pvclock() можно добиться передачи  KVA-адресов хост-системы в вызов pmap и переписать содержимое памяти ядра...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=52378

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

Оглавление

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


1. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +4 +/
Сообщение от Аноним (1), 16-Фев-20, 08:44 
Но как же хвалёное внимание BSD-шников к безопасности?
Ответить | Правка | Наверх | Cообщить модератору

2. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +3 +/
Сообщение от б.б. (?), 16-Фев-20, 08:50 
непрерывный аудит и находит такие ошибки
Ответить | Правка | Наверх | Cообщить модератору

32. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  –2 +/
Сообщение от Андрей (??), 16-Фев-20, 18:26 
Да, тут было бы интересно узнать, какое время эта уязвимость просидела незамеченной. Если короче чем аналогичная в линуксе, значит, аудит работает лучше.
Ответить | Правка | Наверх | Cообщить модератору

49. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от б.б. (?), 17-Фев-20, 07:15 
> Да, тут было бы интересно узнать, какое время эта уязвимость просидела незамеченной.
> Если короче чем аналогичная в линуксе, значит, аудит работает лучше.

судя по тому, что патч вышел для 6.6, но не вышел, как обычно, для 6.5, значит уязвимость совсем новая :)

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

38. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 16-Фев-20, 20:30 
Но тогда получается что линуксоиды со своим syzkaller'ом и сотнями тестов, аудитов и фуззинга вообще впереди планеты всей, разве нет?
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

43. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Аноним (-), 16-Фев-20, 22:52 
> Но тогда получается что линуксоиды со своим syzkaller'ом и сотнями тестов, аудитов и фуззинга вообще впереди планеты всей, разве нет?
> syzkaller kernel fuzzer и сотнями тестов, аудитов и фуззинга вообще впереди планеты всей, разве нет?
> syzkaller (kernel fuzzer from Google, Supported OSes: Akaros, FreeBSD, Fuchsia, gVisor, Linux, NetBSD, OpenBSD, Windows) и сотнями тестов, аудитов и фуззинга вообще впереди планеты всей, разве нет?

Отдельные линуксоиды опеннета, по понтам -- так уж точно!

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

44. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 16-Фев-20, 23:12 
У кого ж они этому научились? Вроде, говорят что BSD до Linux появились... ;)
Ответить | Правка | Наверх | Cообщить модератору

46. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 17-Фев-20, 00:37 
> У кого ж они этому научились? Вроде, говорят что BSD до Linux
> появились... ;)

И часовню - тоже они?

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

51. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (51), 17-Фев-20, 11:48 
BSDшники написали Unix, да :)
Ответить | Правка | Наверх | Cообщить модератору

56. Скрыто модератором  +/
Сообщение от Аноним (-), 17-Фев-20, 15:11 
Ответить | Правка | Наверх | Cообщить модератору

92. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 20-Фев-20, 22:43 
Авотфиг! Вон там Euler Linux таки сертифицЫровли как UNIX (facepalm!). А бздов в списке юникса таки нет.
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

60. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (60), 17-Фев-20, 17:22 
Да.
Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

61. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (61), 17-Фев-20, 17:47 
syzkaller'ом и сотнями тестов, аудитов и фуззинга не гарантируют нахождение ошибок
Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

65. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 17-Фев-20, 21:13 
> syzkaller'ом и сотнями тестов, аудитов и фуззинга не гарантируют нахождение ошибок

Стопроцентные гарантии в этом мире даже страховой полис, увы, не дает. Работает он так.

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

3. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +2 +/
Сообщение от Валик (?), 16-Фев-20, 08:52 
Так вот же оно - были столь внимательны, что обнаружили очередную уязвимость...
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

4. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от A.Stahl (ok), 16-Фев-20, 08:54 
*BSD большой и все 1782.4 BSDшника не смогут выловить все баги до очередного релиза даже если только этим и будут заниматься.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

52. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (51), 17-Фев-20, 11:50 
По-моему, ваша оценка числа разработчиков опёнка сильно завышена. На пару порядков, как минимум.
Ответить | Правка | Наверх | Cообщить модератору

67. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (67), 17-Фев-20, 21:35 
Активных разработчиков OpenBSD одномоментно порядка 70, всего — несколько сотен. Это если считать по коммиттерам. У FreeBSD цифры заметно больше, отчасти из-за политики выдачи прав на коммиты в дерево портов (возможно, за последние годы что-то изменилось). По NetBSD не интересовался.
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

6. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (6), 16-Фев-20, 08:58 
Тео изначально сказал что защита памяти в опенке будет не строгая, а со щелями.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

22. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Аноним (22), 16-Фев-20, 13:23 
А есть пруфы?
Ответить | Правка | Наверх | Cообщить модератору

68. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (68), 18-Фев-20, 08:49 
Были, надо искать, даже здесь писали.

Смотри планы по защите памяти в опенке, особенно ту часть где речь о частичной поддержке JIT. Тео явно и четко сказал, что защита памяти в OpenBSD будет не строгая.

https://blog.acumensecurity.net/2016/04/21/fpt_wx_ext-1-a-ru.../
W^X (write xor execute) is the name of an implementation specifically in OpenBSD. One might therefor think that OpenBSD would meet this SFR, however it does not, as I will demonstrate below.


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

74. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (68), 18-Фев-20, 09:54 
paxtest запусти.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

75. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (68), 18-Фев-20, 09:58 
https://security.stackexchange.com/questions/139238/why-does...

kern.wxabort=1
# grep kern.wxabort /etc/sysctl.conf
kern.wxabort=1
#
and rebooted, then ran the paxtest:

# ./paxtest blackhat                                                                                                                                        
PaXtest - Copyright(c) 2003-2016 by Peter Busser <peter@adamantix.org> and Brad Spengler <spender@grsecurity.net>
Released under the GNU Public Licence version 2 or later

Writing output to /root/paxtest.log
It may take a while for the tests to complete
Test results:
gcc: no input files

Executable anonymous mapping             : Killed
Executable bss                           : Killed
Executable data                          : Killed
Executable heap                          : Killed
Executable stack                         : Killed
Executable anonymous mapping (mprotect)  : Vulnerable
Executable bss (mprotect)                : Vulnerable
Executable data (mprotect)               : Vulnerable
Executable heap (mprotect)               : Vulnerable
Executable shared library bss (mprotect) : Vulnerable
Executable shared library data (mprotect): Vulnerable
Executable stack (mprotect)              : Killed
Anonymous mapping randomization test     : 33 quality bits (guessed)
Heap randomization test (ET_EXEC)        : 38 quality bits (guessed)
Main executable randomization (ET_EXEC)  : 25 quality bits (guessed)
Shared library randomization test        : 33 quality bits (guessed)
Stack randomization test (SEGMEXEC)      : 20 quality bits (guessed)
Stack randomization test (PAGEEXEC)      : 20 quality bits (guessed)
Arg/env randomization test (SEGMEXEC)    : 20 quality bits (guessed)
Arg/env randomization test (PAGEEXEC)    : 20 quality bits (guessed)
Return to function (strcpy)              : paxtest: return address contains a NULL byte.
Return to function (strcpy, PIE)         : paxtest: return address contains a NULL byte.
Return to function (memcpy)              : Vulnerable
Return to function (memcpy, PIE)         : Vulnerable
Executable shared library bss            : Killed
Executable shared library data           : Killed
Writable text segments                   : Killed

# pwd
/root/paxtest-0.9.15-bsdfix
#
# uname -mrs
OpenBSD 6.0 amd64
#

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

25. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от xm (ok), 16-Фев-20, 16:19 
"Так говорил Заратустра"
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

20. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  –2 +/
Сообщение от llol (?), 16-Фев-20, 11:59 
Сейчас тебе расскажут, что "поэтому и находят уязвимости, что внимательно следят".

Но ты это читай как: "первый же адекватный человек, взглянувший на ЭТО, обнаружил, что BSD - такое же рeшето, как и всё остальное"

llol :-)

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

26. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от xm (ok), 16-Фев-20, 16:21 
Дегенераты из линуксового мира до сих пор не могут понять что основные *BSD это совершенно разные системы, со своими ядрами, окружением и т.п.
Ответить | Правка | Наверх | Cообщить модератору

30. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  –5 +/
Сообщение от Michael Shigorinemail (ok), 16-Фев-20, 18:18 
Знаете, я не специалист по таким состояниям, но Вашу мысль можно было переформулировать и прямее -- "не надо перехваливать и излишне обобщать, приписывая заявленное отношение опенбздишников всем бздишникам", заодно адресовав автору комментария #1.  Не стёр ровно потому, что самоунижение правилами форума формально вроде бы не запрещено.
Ответить | Правка | Наверх | Cообщить модератору

53. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (51), 17-Фев-20, 11:51 
> Дегенераты из линуксового мира до сих пор не могут понять что основные *BSD это совершенно разные системы, со своими ядрами, окружением и т.п.

Жителю Санкт-Петербурга простительно не понимать тонкой разницы между чеченцем и дагестанцем.
Дегeнератом его это, внезапно, не делает.

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

54. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от xm (ok), 17-Фев-20, 13:07 
"Жителям Санкт-Петербурга" прежде чем искать всякого рода "тонкие разницы" недурно бы научиться не ссать в парадных.
Ответить | Правка | Наверх | Cообщить модератору

57. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 17-Фев-20, 15:23 
> "Жителям Санкт-Петербурга" прежде чем искать всякого рода "тонкие разницы" недурно бы
> научиться не ссать в парадных.

Да вот знаете, если так посмотреть кто в парадных ссыт, у них почему-то обычно чаще всего совсем не петербургские рожи. А с какой горы эти не очень почтенные господа спустились, или даже из какого огорода вылезли - другой вопрос.

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

29. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  –1 +/
Сообщение от Michael Shigorinemail (ok), 16-Фев-20, 18:13 
Во-первых, не "BSD-шников", а опёнковцев.  Во-вторых, на всякого Акелу в сходящем с ума мире рано или поздно находится рост сложности за пределы человекопостижимости, похоже...
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

39. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  –1 +/
Сообщение от Аноним (39), 16-Фев-20, 20:34 
При том если Акелла вдруг удумает лечить что, например, виртуализация не нужна - он тогда вообще с голоду загнется. Потому что останется один, в пустоте.
Ответить | Правка | Наверх | Cообщить модератору

45. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Аноним (45), 16-Фев-20, 23:14 
> При том если Акелла вдруг удумает лечить что, например, виртуализация не нужна
> - он тогда вообще с голоду загнется. Потому что останется один, в пустоте.

Потому что аноним, как обычно, слышал звон. И ЧСЗ, самозабвенно повторяет его уже не первый год?

Виртуализация, как тогда было сделано Innotek -> VirtualBox так нужна, так нужна, что все почему-то в "продакшне" до сих пор предпочитают совсем не виртуальный ящик, ага.

Ну и еще раз напомню тем, кто сначала не знал, а потом еще и забыл -
_контекст_ высказывания (сделанного пару недель после) Тео был такой:
https://misc.openbsd.narkive.com/bCHLin6N/bug-reports-regard...
> A few of us just spent some time again debugging an application level

problem ... and once again realized that the application was running
on OpenBSD inside the Innobox's VirtualBox VM.
>
> When that VM is running, we end up with bugs that make it quite

clear that cpu registers are being corrupted in some instances.
> That VM does not emulate the x86 correctly, (either).
>
> We've had to make changes to a lot of drivers to cope with the VM's having bugs.

Но вы продолжайте и далее повторять глупости в стиле бандерлогов.

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

48. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  –2 +/
Сообщение от Аноним (-), 17-Фев-20, 04:50 
> Виртуализация, как тогда было сделано Innotek -> VirtualBox так нужна, так нужна,
> что все почему-то в "продакшне" до сих пор предпочитают совсем не виртуальный ящик, ага.

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

Во вторых, там еще вон легион хостеров есть, которые на этом деньги зарабатывают. И они довольно радикально изменили весь ландшафт этого самого, если кто-то вдруг с тормоза еще не снялся и вдруг не заметил толпу компаний делающих бизнес на продаже виртуалок.

> _контекст_ высказывания (сделанного пару недель после) Тео был такой:

Эк вам башню то снесло. Мое высказывание было вообще вне этого контекста. Он мне не интересен. Я всего лишь хочу сказать что если кто на этом глобусе рискнет пикнуть что виртуализация не нужна - ненужен в многочисленных коммерческих применениях довольно быстро станет именно этот пикнувший, как наиболее вероятный результат

> Но вы продолжайте и далее повторять глупости в стиле бандерлогов.

В стиле Кэпа, не более. А вы там с проблемами своей помоечки как-нибудь сами разбирайтесь. И таки да, это сообщение тоже не без помощи вон той группы виртуалок скроено, если уж мы об этом.

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

55. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 17-Фев-20, 14:45 
>> Виртуализация, как тогда было сделано Innotek -> VirtualBox так нужна, так нужна,
>> что все почему-то в "продакшне" до сих пор предпочитают совсем не виртуальный ящик, ага.
> Во первых, я видел виртуализаторы самого разного пошиба в продакшнах и тестлабах
> нескольких жирных корпораций с мировыми именами, поэтому если ваше сельпо чего-то
> там предпочитает - это проблемы вашего сельпо.

Разве что в параллельной вселенной. Ну или все эти ваши "жирные корпорации с мировым именем" как раз уровня местного сельпо. Ну или кто-то опять читал совсем не глазами, углядел знакомое слово и поспешил высказать ценное мнение.

> Во вторых, там еще вон легион хостеров есть, которые на этом деньги
> зарабатывают. И они довольно радикально изменили весь ландшафт этого самого, если
> кто-то вдруг с тормоза еще не снялся и вдруг не заметил
> толпу компаний делающих бизнес на продаже виртуалок.

Т.е кинуть пару-тройку ссылок на конкретных не Васян-хостеров с виртуалбоксами в качестве виртуализатора, фантазер^W мирового эксперта не затруднит?

>> _контекст_ высказывания (сделанного пару недель после) Тео был такой:
> Эк вам башню то снесло. Мое высказывание было вообще вне этого контекста.
> Он мне не интересен. Я всего лишь хочу сказать что если
> кто на этом глобусе рискнет пикнуть что виртуализация не нужна -
> ненужен в многочисленных коммерческих применениях довольно быстро станет именно этот пикнувший, как наиболее вероятный результат

Ну-ну. В контексте виртуализатора Опенка конечно же имелся в виду не Тео, который анониму совервшенно не интересен …

>> Но вы продолжайте и далее повторять глупости в стиле бандерлогов.
> В стиле Кэпа, не более. А вы там с проблемами своей помоечки
> как-нибудь сами разбирайтесь. И таки да, это сообщение тоже не без
> помощи вон той группы виртуалок скроено, если уж мы об этом.

В стиле Кэпа, читающего совсем не глазами, c "ценным мнением"? Верю-верю.


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

58. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 17-Фев-20, 16:51 
> Разве что в параллельной вселенной. Ну или все эти ваши "жирные корпорации
> с мировым именем" как раз уровня местного сельпо.

Это годные сельпо, оно завалили глобус продукцией. С хорошей вероятностью вы их продукцией тоже пользуетесь.

> Ну или кто-то опять читал совсем не глазами, углядел знакомое слово и поспешил высказать
> ценное мнение.

Да, я только про виртуализацию как технологию, без остального контекста. Как реверанс в адрес мистера Шигорина о сходящем с ума мире. Мир просто не хочет дорого, долго, хреново и неудобно.

> виртуализатора, фантазер^W мирового эксперта не затруднит?

Абажур, дижитал океан, амазон какой, ... их много. От Васяна до мегакорпораций, на все вкусы. А Нидерланды вообще как страна теперь кроме тюльпанов еще хостерами знамениты, как национальная особенность :). А именно виртуалбокс таки самый васянский из виртуализаторов, он малопригоден для чего либо кроме домашнего применения. Во всяком случае, _это_ у хостеров я ни разу не встречал. У них vmware, kvm, xen, у ms еще свой hyperv.

> Ну-ну. В контексте виртуализатора Опенка конечно же имелся в виду не Тео,
> который анониму совервшенно не интересен …

Экая у вас мнительность! В контексте имелся в вижу <любой персонаж>. А то что насколько я вас понимаю, Тео тоже подошел на роль Акеллы - ок, наверное. Хотя рассматривать именно опенбсд как именно платформу для виртуализаторов - вот тут я и правда не знаю ни 1 крупного продакшна на именно этом.

> В стиле Кэпа, читающего совсем не глазами, c "ценным мнением"? Верю-верю.

В стиле Кэпа, который абстрактно про технологии виртуализации и их влияние на мир и процессы в нем.

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

63. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от анонн (ok), 17-Фев-20, 18:40 
>> Разве что в параллельной вселенной. Ну или все эти ваши "жирные корпорации
>> с мировым именем" как раз уровня местного сельпо.
> Это годные сельпо, оно завалили глобус продукцией. С хорошей вероятностью вы их продукцией тоже пользуетесь.

Вряд ли.

> А именно виртуалбокс таки самый васянский из виртуализаторов, он малопригоден для чего либо кроме домашнего применения

Два комментария с морем пафоса, воды, повторов одно и того же на разные лады и вещания через губу … чтобы в конце все же согласится с исходным тезисом … это сильно!

>> Ну или кто-то опять читал совсем не глазами, углядел знакомое слово и поспешил высказать
>> ценное мнение.
> Да, я только про виртуализацию как технологию, без остального контекста. Как реверанс
> в адрес мистера Шигорина о сходящем с ума мире.

Ну в общем, как обычно - не прочитав толком и выдав что-то почти рандомное и почти мимо темы, да еще и менторским тоном, с "гордо задранной гузочкой" …
Особенно "лулзово" на фоне претензий анонима к некому М.Шигорину по схожему поводу "рандомных ответов" и "надутости гусей" к "бздунам"
Вот уж где прекрасная иллюстрация поговорки про соринки и (товарняки) бревен в глазах ))

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

66. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 17-Фев-20, 21:34 
> Вряд ли.

Мегакорпорации штука забавная - ухитряются пролезть в самые неожиданные области.

> же согласится с исходным тезисом … это сильно!

А я не знаю чего вы так взъелись на сам тезис про виртуализацию. Против конкретной инкарнации в виде виртуалбокса даже не возражаю, на мое мнение именно vbox - самый дурацкий из всех виртуализаторов которые я знаю.

> Особенно "лулзово" на фоне претензий анонима к некому М.Шигорину по схожему поводу
> "рандомных ответов" и "надутости гусей" к "бздунам". Вот уж где прекрасная
> иллюстрация поговорки про соринки и (товарняки) бревен в глазах ))

Я бы даже сказал что уел, черт, если б ЧСВ не перло :). А так - просто не выделяюсь из окружения, чтоли. Какой смысл перед гопами балет танцевать? :)

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

5. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (6), 16-Фев-20, 08:56 
> для GPA не применяется защита от записи в области KVA, помеченные только для чтения

В OpenBSD защита памяти сделана хуже чем в Linux + PAX + GrSecurity.

https://pax.grsecurity.net/docs/mprotect.txt

   - creating executable anonymous mappings
   - creating executable/writable file mappings
   - making an executable/read-only file mapping writable except for performing
     relocations on an ET_DYN ELF file (non-PIC shared library)
   - making a non-executable mapping executable

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

8. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Аноним (6), 16-Фев-20, 09:13 
В дополнение к защите памяти с помощью классических R, W, X, UNIX должен защищать процессы дискретно, по пользователям. Это обязательное требование DAC.

В Linux дискретная защита процесов реализована с помощью YAMA: https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.... . Или старый вариант через grsecurity можно защитить файлувую систему /proc чтобы каждый пользователь видел только свои процессы: https://en.m.wikibooks.org/wiki/Grsecurity/Appendix/Grsecuri...

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

13. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +6 +/
Сообщение от Аноним (13), 16-Фев-20, 09:24 
мы выслушали очередную рекламу Grsec не осилившего прочитать штатные средства защиты в proc, cуществующие хрен знает сколько времени.

https://linux-audit.com/linux-system-hardening-adding-hidepi.../.

Пытаетесь наскрести деньги на выплату по суду ?

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

62. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (61), 17-Фев-20, 17:50 
> хрен знает сколько времени

После Grsecurity

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

64. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (64), 17-Фев-20, 20:51 
да да, вот шнурки отглажу. тогда уж grsec спер из Virtuozzo / Linux-VServer
Ответить | Правка | Наверх | Cообщить модератору

11. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +2 +/
Сообщение от Аноним (13), 16-Фев-20, 09:22 
мы выслушали очередную рекламу grsec. Как там в у вас с нарушениями GPL ?
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

14. "Нарушение GPL-2 компанией GrSecurity есть доказанным фактом!"  +1 +/
Сообщение от Аноним (6), 16-Фев-20, 09:32 
https://www.opennet.ru/openforum/vsluhforumID3/119728.html#31

https://www.opennet.ru/openforum/vsluhforumID3/119728.html#94

https://www.opennet.ru/openforum/vsluhforumID3/119728.html#79

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

12. "Fix"  +/
Сообщение от Аноним (6), 16-Фев-20, 09:22 
The restrictions prevent:
   - creating executable anonymous mappings
   - creating executable/writable file mappings
   - making an executable/read-only file mapping writable except for performing
     relocations on an ET_DYN ELF file (non-PIC shared library)
   - making a non-executable mapping executable
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

18. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (67), 16-Фев-20, 11:06 
Конечно же, вы правы. Только хотелось бы уточнить, почему пользователей дистрибутивов Linux, где PaX и GRSecurity включены по умолчанию, так мало по сравнению с остальными?
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

19. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (19), 16-Фев-20, 11:57 
Хорош вопрос!

Вернемся к истокам и вспомним историю первого безопасного дистрибутива Linux - Adamantics. Его автор пропал без вести в ЕС...

Когда grsecurity в мутной истории с мутными договорами и требованием оплаты в нарушение лицензии GPL-2 закрыли патчи для свободного скачивания дистрибутивов с grsecurity, PAX стало еще меньше.

В РФ есть проблема образования - ИТ безграмотность. Лет 10 назад устраивался на работу в Газпром. Предлагал им разработку, внедрение и поддержку безопасной ОС, основанной на мат модели, которая дает определенные гарантии безопасности. Мы так и не подписали договор, ибо они считают, что ИТ безопасность можно достичь исключительно мозгоебством, используя ынтерпрайз дистрибутивы. А мат модель которая даст гарантии не зависимо от любых действий пользователя они понять пока не могут, а поверить уже не хотят.

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

21. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Consta (?), 16-Фев-20, 12:50 
>> Предлагал им разработку, внедрение и поддержку безопасной ОС, основанной на мат модели...

Это был линукс?

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

69. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (68), 18-Фев-20, 09:00 
Да, GNU/Linux, но с расширенными возможностями ядра, компилятора, глибс и бинутилс.
Ответить | Правка | Наверх | Cообщить модератору

80. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Consta (?), 18-Фев-20, 17:41 
>> Предлагал им разработку, внедрение и поддержку безопасной ОС, основанной на мат модели...
>> Да, GNU/Linux, но с расширенными возможностями ядра, компилятора, глибс и бинутилс

Это не спасает. Дело не только в формальной\матмодели как таковой (как в совокупности формальных\математических доказательств). Дело прежде всего в реализации как таковой. Чтобы реализация точно соответствовала модели. Чтобы все работало так, как требует математика. А для линукс это вряд ли возможно.

1. Вы пишете: "основанной на матмодели".
Но сложность именно в том, что Linux никогда и не основывался на матмодели. Позволю себе напомнить, что сам Торвальдс в своей книге "Just for Fun" (если правильно помню - 10 и 11 главы) неплохо описывает полемику с Танненбаумом про микроядро. Для микроядра формальная матмодель возможна в реальности (здесь "в реальности" я имею ввиду реализацию, а не просто декларацию в виде формул), наверное, как и ее верификация. В линуксе же - нет. Ибо вопросы формализации матмодели для Linux возможны только на бумаге.
Например, можно "натянуть" матмодель типа HRU для DAC (тут я понимаю как, даже с ACL). Но тогда что делать с capabilities? Выносить за рамки модели? Или пускай пухнет множество?
Можно, наверное, "натянуть" пресловутую модель Bella и LaPadula. Но это будет справедливая модель, описывающая MLS - т.е. только для SELinux, ну, или, parsec (хе-хе). Но тогда вопрос - а что делать c DAC? Не учитывать? Плюс ко всему - в ядре линукс (в зависимости от реализации и архитектуры) примерно 350-450 системных вызовов. Примерно сотни полторы из которых совершенно точно security relevant. Если не больше. Что с ними всеми делать?
Что делать со всякими namespaces, которые довольно дырявые до сих пор и постоянно переписываются? Что делать с моделью, которая должна описывать движение информационных потоков? А ведь это ведет за собой моделирование и NetFilter тоже. То есть потребется промоделировать безопасное состояние системы с огромным количеством атрибутов и операций. Плюс аудит. Плюс функции и сисколы, ответственные за время. И т.д. и т.п. Пока будем писать модели и проверять их корректность - это несколько лет пройдет и чудовищное количество человеко-часов. Запросто получим изменения в реализации.

2. Чтобы реально, а не на бумаге получить безопасную систему требуется представление реализации, в точности воспроизводящее формальную\матмодель. Реализация же не только сисколлов (как интерфейсов к функциям), а и самих функций и структур данных - чудовищно большая и размазана по ядру (и не только ядру), точек входа много. Достаточно посмотреть на количество поддерживаемых ФС и их связку с VFS, чтобы понять что монитор обращений не так то просто не то что формализовать и проверить, а хотя бы просто описать. Кроме того, напомню, что институт системного программирования РАН пытался несколько лет верифицировать сисколлы. Но не закончили, так и бросили. До функций даже и не дошли. Плюс - чудовищный объем ядра.

3. Именно поэтому практически не встречается в CCRA не то что линукса, а и вообще юникса, имеющего сертификат выше чем EAL4+. Там чуваки серьезные и они понимают, что дальше начинается моделирование, сопоставление с представлением реализации (EAL5), а еще дальше - и верификация (EAL5+).
К сожалению наш регулятор (при всем уважении) позволяет себе (по крайней мере пока) выдавать сертификаты на линукс систему, которая у нас тащит первый или второй уровень доверия (т.е. по-их нормативке выше, чем EAL5+).

Именно поэтому я бы не стал думать, что в Газпроме сидят люди, глупее нас с вами.
Они хорошо себе представляют, где шашечки, а где ехать.
Потому и отказали. Не надо удивляться.

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

83. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (83), 19-Фев-20, 16:58 
Много писать не хочется, буду краток.

1. Если идти путем разработки микроядра с текущей мат моделью UNIX, то тормоза по сравнению с монолитным ядром будут ~10 раз! В монолите поток проходит проверку ACL один раз, а в микроядра при каждом обращении к микросервисам должна проходить проверка ACL. Безопасные ОС на микроядрах будут очень сильно тормозными. DAC, MAC придется выкинуть. Хорошо работает ASLR рандомизация, будет работать Integrity.

2. В монолитных ядрах, в класической модели UNIX, разные модели безопасности применяются последовательно и друг с другом почти не взаимодействуют. Сперва применяется Integroty, потом DAC, если все проверки прошли, то применяем MAC. Реализация Integrity, DAC и MAC почти не связаны. Связь есть но минимальна. Каждая ступенька имеет свою матмодель. Эти мат модели не связаны между собой, почти.

MAC от Bella и LaPadula просто подогнана под документооборот в DoD US не есть универсальна и очень сложно внедряема на обычном предприятии. MAC вообще очень дорогая штука в плане написания правил. RSBAC от grsecurity с возможностью самообучения и простым форматом правил выглядит вполне привлекательно и capabilities он тоже контролирует.

Capabilities предполагает в общем еще адаптацию ПО, написание правил это тоже дорого. Можно схитрить, на уровне ядра создать изоляцию в которой capabilities запрещены и помещать туда сервисы - это дешево. Опять ПО написано криво, бинари пытаются создать каталог для логов, установить на него права... и при заруске в изоляции от capabilities ядро их убивает.

Cgruops, namespaces, виртуализация мне не нравятся вообще.

3. Аудит кода трудоемок и не предполагался вообще. Кроме минимальных участков которые модифицируются.

Для гарантий безопасности ОС необходимо и достаточно "контролировать", изменить: ядро, гсс, глибс, бинутилс.

Газпром был тогда заинтеиесован, хотел, но мы не договорились. Я требовал гарантий полного покоя, чтобы ничего меня не отвлекало, а они соглашались только на общих условиях.

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

89. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Consta (?), 20-Фев-20, 13:47 
>> Если идти путем разработки микроядра с текущей мат моделью UNIX...

Зачем? Там свое. Кроме того, я не предлагал такое. Смысл моего прсыла был в том, что в сущности, при микроядре возможно достичь и в представлении реализации тех критериев безопасности, заданных формальной моделью,а не только на бумаге.

>> Cgruops, namespaces, виртуализация мне не нравятся вообще.

Именно на это я и указывал. Только вопрос не в том, что нравится, а что нет. Вопрос в том, что эти механизмы (плюс капабилити, конечно) - оооочень плохо формализуются (если это вообще возможно). А просто так их выкинуть не получится. Не учитывать их по желанию - это волюнтаризм чистой воды. Получаем неописанные ФБО в ядре, т.е., соответственно - НДВ, в чистом виде. А ведь капабилити это дискретка, которую надо бы заявлять, ибо она есть. Ну, или иначе выкидывать.

>> MAC от Bella и LaPadula просто подогнана под документооборот в DoD...

Нет. Это вовсе не так. Это просто хорошая, стррйная и простая формальная модель разграничения доступа и информационных потоков. То, что она применялась (точнее, реализация на ее базе) в DoD (и не только) - лишнее тому подтверждение.

>> Аудит кода трудоемок и не предполагался вообще. Кроме минимальных участков которые модифицируются.

Если аудит не предполагался, то как тогда планировалось убедиться в достижении критериев безопасности, заданных формальной моделью при реализации в коде? Неужели на бумаге?
Я уже указывал, что минимальных участков там нет и не будет. Это слова. Напоминаю, что функции, реализующие ФБО валяются в ядре ооооочень много где. Это совершенно точно сотни файлов исходников. Плюс - заголовочные файлы и файлы со структурами данных. Плюс, сюда надо добавить интерфейсы в виде сисколов, а это еще несколько десятков файлов, минимум. Плюс нетфильтр. Плюс - убедится в корректности работы интерфейсов, например, с помощью LTP тестов. Но они есть не на все сисколлы и не по всем входным/выходным данным. То есть там покрытие не стопроцентное, не позволяющее проверить все множество работы интерфейсов к функциям. Значит, надо дописывать тесты. Плюс, выполнить дальнейшее прослеживание, которое при проверке, скажем, команды chmod покажет, что дергается нужный сискол chmod(). А это значит, что и командные интерфейсы тоже надо исследовать и проверять. Одними бинутилсами и глибси в юзерспейсе не обойтись.

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

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

101. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  –1 +/
Сообщение от Аноним (101), 22-Фев-20, 11:48 
> Смысл моего прсыла был в том, что в сущности, при микроядре возможно достичь и в представлении реализации тех критериев безопасности, заданных формальной моделью,а не только на бумаге.

Доказано что любая реализация DAC и MAC в микроядерных OS будет работать более чем в 10 раз медленнее по сравнению с монолитными OS! И пока нет других мат моделей заменяющих DAC и MAC, рандомизация не дает таких гарантий, в разработке микроядерных OS ставим точку.

> > Cgruops, namespaces, виртуализация мне не нравятся вообще.
> Вопрос в том, что эти механизмы (плюс капабилити, конечно) - оооочень плохо формализуются (если это вообще возможно). А просто так их выкинуть не получится.

У меня получается эти механизмы выкинуть. С ними выкидывается сразу systemd, elogind.

У вас ниукого нет никакого понимания общей безопасности ОС! В РФ об этом по чему-то никто не знает!!!

Распределите все существующие модели безопасности по их ВРЕМЕНИ, ПОРЯДКУ, МЕСТУ применения в OS. Узрите что большинство применяется последовательно, а не паралельно и  можно считать независимыми друг от друга.

Capabilities применяется последовательно с Integrity, сразу после нее и паралельно с DAC и MAC, но почти независимо от них, применяется ядром на всем протяжении работы программы. Оно дробит права root по областям и следит за тем чтобы не использовалось более чем заявлено самой прогой и/или разрешено ядром OS. Реализация на стороне программы дорогая.

Вы не видите лес в целом ч высоты, а пытаетесь понять, что такое лес, рассматривая листочки и веточки.

> > MAC от Bella и LaPadula просто подогнана под документооборот в DoD...
> Нет. Это вовсе не так. Это просто хорошая, стррйная и простая формальная модель разграничения доступа и информационных потоков. То, что она применялась (точнее, реализация на ее базе) в DoD (и не только) - лишнее тому подтверждение.

DoD имела свою бумажную инструкцию бумажного документооборота, а Bella и LaPadula, тупо, вместо разработки MAC для OS, сперли модель бумажного документооборота и написали по ней свой MAC. И это плохо для общего применения.

> > Аудит кода трудоемок и не предполагался вообще. Кроме минимальных участков которые модифицируются.
> Если аудит не предполагался, то как тогда планировалось убедиться в достижении критериев безопасности, заданных формальной моделью при реализации в коде? ...

Для дачи гарантий код надо дописывать. Аудит всего кода не предполагался. Вот изменяемой, для дачи гарантий, часть кода предполагалось верифицировать с формальной мат моделью.

А иначе никак, даже с ресурсами Газпрома. Людей подготовленных просто столько нет.

> В целом, гарантии в виде непонятной бумажной модели, не учитывающей все механизмы разграничения доступа и с минимальным аудитом реализации, а также постулат, что достаточно иметь ядро, глибси, компилятор и бинутилс, без учета сисколов и интерфейсов в юзерспейсе - извините, мне это тоже представляются крайне сомнительными.

Ниукого нет одной большой мат модели, которая учитывает все. Есть безопасность как совокупность многих методов, каждый с которых имеет свою хорошую мат модель. Есть понимание где, в каких конкретных точках все эти методы применяются: последовательно или параллельно к друг другу. Есть допущение что каждый метод безопасности почти не взаимодействует с другими и его можно рассматривать отдельной мат моделью.

Общая мат модель она рассматривает, формально на бумаге, закрытие всех возможных щелей существующими методами дающими определенные гарантии безопасности и имеющими свои специфичные мат модели.

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

102. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Consta (?), 22-Фев-20, 15:06 
>> Доказано что любая реализация DAC и MAC в микроядерных OS

Где можно ознакомиться с соответствующими доказательствами? Может, хоть у меня получится повысть свой уровень образования.

>> У меня получается эти механизмы выкинуть.

Подрудитесь объяснить в таком случае еще несколько вещей:
1. Каким именно образом были выброшены namespaces, capabilities и cgroups? Что стало с сисколами, которые это обрабатывали?
2. Что после того, как выкинули указанное в п. 1 стало с совместимостью программ в пространстве пользователя?
3. Правильно ли понимаю, что в таком случае предполагалось использовать HRU модель?

>> У вас ниукого нет никакого понимания общей безопасности ОС! В РФ об этом по чему-то никто не знает!!!

Ну тут даже не знаю, что сказать. Видимо, до таких высот мы еще не доросли, да. Но тогда не доросли и все остальные. Ибо почему то, о ужас, у RedHat уровень доверия EAL4+, у SLES/D - тоже такой EAL4+. У Ubuntu - EAL2. Все эти уровни доверия не предполагают формализации моделей. Достаточно зачитать ISO 15408 и 18045, чтобы это понять. Очевидно, они там еще меньше нашего соображают в вопросах доверия к безопасности, правильно понимаю?  Почему то им не приходит в голову бодро писать модели и поднимать EAL. Тоже, видимо, ума не хватает. Ну, могу лишь посоветовать не теряться, и обратиться сразу в IBM, которая выступает много лет заявителем у RedHat и SUSE. Может, хоть там прислушаются к мощности аргументации, раз у нас не хватает тут ума. В целом, даже возможно лучше, как говаривал классик, писать сразу в Спортлото.
Напомню, что документация на RHEL, Ubuntu и SUSE лежит в открытом доступе, где можно ознакомится с соответствующей аргументацией. Если есть сложности с поиском в гугле - то меня вовсе не затруднит выложить ссылку, например для RHEL: https://access.redhat.com/articles/2918071
Там и задания по безопасности есть, и отчетные материалы. А если порыть сайт IBM, то там лежат и функциональные спецификации и базовые модульные проекты (aka HLD). И из того что там написано, можно понять, что они совершенно не зря считают, что формальная модель для линукс плохо применима, а верификация реализации или практически невозможна, либо чудовищно трудоемка даже для IBM.

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

114. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (114), 26-Фев-20, 16:43 
>> Доказано что любая реализация DAC и MAC в микроядерных OS
>Где можно ознакомиться с соответствующими доказательствами?

Мы когда-то посовещались и Я так решил.

https://www.opennet.ru/openforum/vsluhforumID3/100354.html#51

https://www.opennet.ru/openforum/vsluhforumID3/100354.html#23

https://www.opennet.ru/openforum/vsluhforumID3/100354.html#48

https://www.opennet.ru/openforum/vsluhforumID3/103368.html#28

ACL и MAC модели для микроядер неприемлемы из-за тормозов в реализации более 10 раз.

Это проблема решения не имеет и хакеры GNU Hurd это пока признают. Долго искали решения и вопрос с производительностью ACL и MAC отложили. Тесты сравнения производительности ACL в Hurd и Linux были здесь. Проиграш микроядра по сравнению с монолитом 10-100 раз.

Хакеры Haiku отказались от безопасности ACL и MAC в пользу производительности.

seL4 первая реализация микроядра, которая дает хоть какую-то гарантию безопасности без потери производительности в сравнении с монолитом. Безопасность основана на рандомизации. ACL и MAC в ней нет.

Сам подумай, при каждомм выходе-входе в микроядро надо делать все проверки ACL и MAC! Монолитное ядро делает в контексте ядра только одну проверку и реализует сразу очень большие возможности: драйвера, протоколы, шифрование, ....

> namespaces, capabilities и cgroups

capabilities я выбрасывать нигде не говорил! Говорил что поддержка capabilities, как вы ее предлагаете, очень дорога. Говорил, что программисты включают установку прав на log, run в бинарный сервис, а надо в инит скрипт. Также показал правильный путь использования capabilities - RSBAC от grsecurity. Ничего писать не надо они capabilities контролируют правилами RSBAC сразу для всех прог.

Отключение cgroups прибивает systemd намертво и навсегда. Даже elogind не шевелится. consolekit можно собрать без cgroups и он будет жить.

Отключение namespaces убивает некоторую изоляцию.

Вы не хотите настроить простую DAC, спорите о том, что можно выделять память одновременно в режиме для записи и изменения, вы действительно думаете что в этом случае вам поможет изоляция namespaces?

> Ну тут даже не знаю, что сказать. Видимо, до таких высот мы еще не доросли, да. Но тогда не доросли и все остальные. Ибо почему то, о ужас, …

Многие понимают, знают как и могут, но АНБ, ФСБ, *Б этого не надо. Чем меньше у вас безопасности тем им легче исполнять свои обязанности....

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

117. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (114), 26-Фев-20, 17:25 
- Вы не хотите настроить простую DAC, спорите о том, что можно выделять память одновременно в режиме для записи и изменения, вы действительно думаете что в этом случае вам поможет изоляция namespaces?

+ Вы не хотите настроить простую DAC, спорите о том, что можно выделять память одновременно в режиме для записи и исполнения, вы действительно думаете что в этом случае вам поможет изоляция namespaces?

s/изменения/исполнения/

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

130. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Consta (?), 02-Мрт-20, 15:24 
>> Мы когда-то посовещались и Я так решил.

Правильно понимаю, что предлагается в качестве доказательств рассматривать ссылки на комментарии в опеннете, а не на научные работы, выполненные корректно с точки зрения методологии?

>> Отключение cgroups прибивает systemd намертво и навсегда
>> Отключение namespaces убивает некоторую изоляцию.

Да неужели?

>> Да, GNU/Linux, но с расширенными возможностями ядра, компилятора, глибс и бинутилс.

Какие тогда "расширенные возможности ядра" имелись ввиду?

>> capabilities я выбрасывать нигде не говорил!

Если их не выбрасывать, и они остаются, то как тогда учесть их наличие в формальной модели? Или это не предполагалось, а просто решили об этом деликатно умолчать? Я уже писал про то, что такая позиция, фактически, приводит к возникновению неописанных ФБО в ядре и проблеме НДВ\РДВ.

>> Многие понимают, знают как и могут...

Прекращайте демагогию. По существу тезиса о том, что и Red Hat и SUSE (плюс с ними IBM), и Ubuntu/Canonical совершенно аргументированно считают, что формализация моделей безопасности (особенно их при верификации) для Linux практически невозможна, есть что сказать?

>> Вы не хотите настроить простую DAC, спорите....

Доброе утро. Я вообще не про это. Я про проблему формализации модели безопасности для Linux. Напоминаю, что именно с этого и начался диалог. Я не спорю, не предлагаю, я указываю на поток проблем, возникающих из необдуманного решения. Решение тупо формализовать модель на бумаге - ничего не дает с точки зрения ИБ. Ибо она или не учтет все возможные ФБО, или лишит ядро имеющегося там функционала. Плюс - чудовищная трудоемкость проверки реализации этой модели.
Ну и про простоту DAC. А простого DAC в Linux и нету. Есть последовательное множество DAC - UNIX permission bits, POSIX ACL, capabilities плюс - в какой то степени cgroups и namespaces. В каком месте тут простота, если требуется описывать и уметь настраивать все это множество? Особенно, когда необходимо DAC применять комплексно? Сюда еще нужно добавить netfilter для полноты картины. Это тоже DAC, только для информационных потоков. А уж если SELinux появился - то это еще один механизм DAC, если без MLS, конечно.

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

135. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (135), 04-Мрт-20, 16:24 
> ссылки на комментарии в опеннете, а не на научные работы

Там вполне достаточно чтобы сложить 2+2.

> Какие тогда "расширенные возможности ядра" имелись ввиду?

Дополнения для безопасности.

> Если их не выбрасывать, и они остаются, то как тогда учесть их наличие в формальной модели?

Писал уже, capabilities учитываются как независимые от DAC и MAC. Точка применения: последовательно с Integrity, после него и паралельно DAC и MAC.

> формализация моделей безопасности (особенно их при верификации) для Linux практически невозможна, есть что сказать?

Тяжело, но можно.

> Плюс - чудовищная трудоемкость проверки реализации этой модели.

Вы пытаетесь построить одну большую мат модель. Я же говорю о многих маленьких, каждая с которых закрывает/решает свою проблему. Прочти посты выше.

На бумаге мы оперируем уже моделями и следим чтобы они закрывали все теоретические дыры и решали все проблемы.

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

146. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Consta (?), 06-Мрт-20, 11:12 
>> Там вполне достаточно чтобы сложить 2+2.

Да я и не сомневался, что сразу все ясно.

>> Дополнения для безопасности.

Решение, безусловно, новаторское. Сначала надо вырвать с мясом из ядра те вещи, которые и так уже работают, поломав по дороге совместимость пользовательского окружения. А потом надо затолкать в ядро непонятно что. И обозвать это непонятное - "расширенными возможностями" и "дополнениями безопасности". Подход тоже ясен, да.

>> Писал уже, capabilities учитываются как независимые от DAC и MAC.

Это тоже прорыв. К сведению: capabilities - есть типичный DAC. Ибо это дискреционное разграничение доступа на основе атрибутов. Не считать capabilites механизмом DAC - это точно такое же гениальное решение, как и предыдущее.
Кроме того, сам термин "учитываются" - вот он что означает? Как именно множество то капабилитей планировалось формализовать в модели и увязывать с другими механизмами DAC? Ау? Или не планировали все-же? Хотели как то "учесть"? А что такое - "учесть"?
Посчитать, сколько их в конкретном ядре есть и написать какая для чего нужна? И все? Так для этого и писать то ничего не надо. Все в манах есть. Даже на русском языке. А формально доказывать, что они всегда корректно работают? Нет? Не надо делать? Ну и правильно.

>> Тяжело, но можно.

Это демагогия. Есть ли независимо подтверждаемые и научно обоснованные примеры?
Их нет. Как уже справедливо писали выше - формальная модель в каком-то виде (не полном, ибо я то ее как раз читал, и не одну) есть для Astra линукс, но это мало что дало на практике.
Мандатка там текла, да, тупо зная пароль пользователя и используя su можно было зафигачить эскалацию привилегий и инициировать факт НСД. Находясь в одном уровне, прямо и без затей из оболочки можно было запросить доступ к файлу на другом уровне. Не знаю, как там у них с этим делом сейчас. Закрыли эту дыру или нет. Зато была модель, да.
Этот пример отлично иллюстрирует как раз корень проблемы - косая реализация "бумажной" формальной модели, неверифицированной и с плохим аудитом - привела к дыре в механизме безопасности. И во всех виденных мной моделях - есть грабли. Модели не полные. А значит реализация, таким образом, как минимум содержит неформализованные ФБО в ядре.
А у ведущих разработчиков ОС Linux, коими в том числе являются Red Hat, SUSE и Canonical - моделей нет совсем. Они и не претендуют. Ибо они то как раз хорошо понимают чудовищность и объем проблемы. Кроме того, я уже предлагал - можно не соглашаться с моими доводами, я не заставляю. Можно не считать мою агрументацию убедительной, я не заставляю. Но есть факты, они упрямая вещь, а моя аргументация может быть независимо от меня проверена. Не согласны с аргументацией и фактами - ну попробуйте обратиться в какую-нибудь аккредитованую CCRA испытательную лабораторию. Их много. Можно обратиться к IBM, Red Hat, Suse, Canonical, написать хоть Таненбауму. И предложить им написать формальную модель или модели. Может, они что-то ответят?

>> Вы пытаетесь построить одну большую мат модель.

Вовсе нет. Я пытаюсь сказать, что количество моделей не имеет значения. Одна она, две, или двадцать две. Важно то, что модель или модели должны на формальном языке описывать все без исключения (еще раз повторю - все без исключения!) механизмы принятия решений, включая решения по разграничению информационных потоков тоже (то есть и фильтр пакетов тоже, если он есть, а в линуксе он есть, а сейчас и не один). Именно для этого модель(и) и нужна(ы). И кроме этого, модель(и) должна(ы) иметь непротиворечивое(ые), независимо проверяемое(ые) доказательство(а). Проще всего это сделать с помощью математики. Доказательство даст алгоритм. А алгоритм уже можно реализовать в коде. И проверить реализацию. А ну как в коде ошибка, и алгоритм реализован не верно? Если этого не сделать, то никакой реальной пользы не будет.

>> На бумаге мы оперируем уже моделями и следим чтобы они закрывали все теоретические дыры

Демагогия. Что такое - "теоретическая дыра"?  Модель (ну или совокупность моделей, если угодно, сути это не меняет) не призвана закрывать какие-то там дыры. Хоть "теоретические", хоть "практические". Доброе утро.
Модель должна доказывать (и не только доказывать формальным способом, а и иметь как минимум еще ссылки на проверяемую реализацию) - что цели безопасности достижимы, угрозам безопасности можно успешно противодействовать, политики безопасности реализуемы, предположения безопасности выполнимы.
А все эти угрозы, цели, политики и предположения уже давным-давно сформулированы, определены и заданы заранее. И у нас и у них. Смотрим любой профиль защиты - и там (о ужас!) их находим. Как для самой ОС, так и для среды её выполнения. Так что никаких "теоретических дыр" нет. Есть вполне конкретные, четко сформулированные цели безопасности, которых нужно достичь, угрозы, которым нужно противостоять и т.д. Зачем вы пишите про "теоретические дыры", которых нет в природе? Просто почитайте уже хотя бы любой профиль защиты и постарайтесь понять, что там написано, и почему именно так написано.

Подытожим:

а) некие люди пришли в Газпром и предложили (создать?) некую реализацию ОС на базе Линукс, содержащую некие "расширенные возможности ядра", задекларированные как "дополнения для безопасности";

б) те же лица предложили (создать?) еще некую документацию на систему. Как минимум - формальную модель безопасности;

в) при всем этом - в модели не предполагалось приводить описание и формализацию cgroups, namespaces и capabilities, и, похоже, netfilter тоже. Все это, конечно, привело бы к возникновению проблемы НДВ\РДВ и потенциальному обходу описанных и формализованных в модели механизмов безопасности. Но кому оно надо? Зачем бумагу и время тратить, и что-то там описывать и формализовывать, правда?;

г) при всем этом, на сколько я понял, реализация предполагала отключение cgroups и namespaces, что привело бы к заметной деградации в юзерспейсе. Вместо них в реализацию должны были бы быть включены некие магичесикие и никак по переписке не идентифицируемые "расширенные возможности ядра", задекларированные как "дополнения для безопасности". Что это - не ясно. Что это дает, кроме поломок в юзерспейсе - не ясно;

д) проверка реализации не предполагала аудита кода, но, странным образом, предполагала его верификацию. Цитата: "Аудит всего кода не предполагался. Вот изменяемой, для дачи гарантий, часть кода предполагалось верифицировать с формальной мат моделью". Верификация - это не просто аудит. Это проверка доказательств правоты, помимо просто аудита. Ну да ладно. Про чудовищные объемы аудита и верификации, а также осуществление прослеживания (алгоритм -> структура данных -> конкретная функция в ядре -> системный вызов, взаимодействующий с функцией -> прикладная программа) - писать и повторяться не буду, писал ранее.  Если не проверить и не проследить все, что в скобках в предыдущем предложении - имеем неясно что, с точки зрения ИБ. Очевидно, что это все и не планировалось. Опыт Red Hat, SUSE и Canonical был проигнорирован.

В целом, мне все ясно. Тут налицо какая-то мутная попытка выдать непонятно что за защищенную систему. Хорошо, что такое не получилось.

За сим более писать не буду. И так все понял.
И про уровень экспертизы, и про модель, и про реализацию системы.

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

147. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (147), 07-Мрт-20, 12:40 
Нет времени спорить и что то доказывать. Это сложные вещи.

Кратко:

Сетевой экран, как в DAC таки и  MAC включал.

> К сведению: capabilities - есть типичный DAC. Ибо это дискреционное разграничение доступа на основе атрибутов. Не считать capabilites механизмом DAC - это точно такое же гениальное решение, как и предыдущее.

Да я лично capabilites механизмом DAC не считаю!

Повторю еще раз сказание мною выше:

DAC - да дискретный, как много чего другого. Но DAC дискретный по пользователям, а capabilites дискретный по привилегиям суперпользователя. Это разные вещи по точке их применения!!! DAC применяется последовательно, после Integrity и перед MAC. А capabilites применяются паралельно DAC и MAC, можно считать почти незавтсимо от них.

Grsecurity контролирует capabilites в RSBAC и/или в независимой от DAC и MAC реализации изоляции процессов.

Перед постройкой мат модели должно быть понимание в какой последовательности по отношению друг к другу применяются разные модели безопасности. Capabilites сработает и при обработки DAC и при обработки MAC, оно работает паралельно им и можно считать независимо.

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

23. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от pin (??), 16-Фев-20, 13:42 
Теперь это Астра?
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

33. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Michael Shigorinemail (ok), 16-Фев-20, 18:27 
> Теперь это Астра?

Если вдруг Вы угадали -- то было бы особенно пикантно, потому как несколько лет назад тамошнюю мандатку обходили с помощью su(1).  Причём знакомый, который с этим вынужден был мучаться, упоминал, что от этой информации поставщик ещё и отбрыкивался, помнится...

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

70. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (68), 18-Фев-20, 09:01 
Нет не Астра.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

24. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +3 +/
Сообщение от cutlass (?), 16-Фев-20, 14:59 
Спектре матмодель учитывала?
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

71. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (68), 18-Фев-20, 09:02 
Это было 10 лет назад.
Ответить | Правка | Наверх | Cообщить модератору

27. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +2 +/
Сообщение от Аноним (27), 16-Фев-20, 16:23 
На ентерпрайз-дистрибутивах можно неплохо попилить, а на твоей разработке как?
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

31. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Michael Shigorinemail (ok), 16-Фев-20, 18:24 
> Вернемся к истокам и вспомним историю первого безопасного дистрибутива Linux
> - Adamantics

Во-первых, если он и претендовал на "первый безопасный", это была ложь.
Во-вторых, Adamantix 1.0 был выпущен в 2003 году, а практически применявшаяся бета ALT Linux Castle с RSBAC -- ещё в 2001: http://www.linuxcenter.ru/lib/articles/distrib/altlinux/cast...

> В РФ есть проблема образования - ИТ безграмотность.

Её демонстрацию вовсе не обязательно было ещё и матом сопровождать.  Почитайте здесь комментарии solardiz (который, в отличие от Вас, известен на публике _практической_ грамотностью в виде кода) -- вдруг дойдёт, что место Вашей матмодели -- среди проектов вечных двигателей, включая и мой школьный.

PS: а если ещё и не Вашей лично, а девянинской (ср. #23) -- тогда тем более.

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

36. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от tensor (?), 16-Фев-20, 19:57 
Всё уже придумано полвека назад, но только не бздунами под дырявую платформу:
https://en.wikipedia.org/wiki/Popek_and_Goldberg_virtualizat...
А основная проблема amd64 даже не в дырявости, а в том, что без хаков с vmx и "защитой страниц" поп-вирт будет работать как старенький атом.
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

59. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Аноним (-), 17-Фев-20, 17:00 
> которая даст гарантии не зависимо от любых действий пользователя они понять
> пока не могут, а поверить уже не хотят.

Да, в донкихотство теперь не верит даже Газпром, им видимо донесли что бюджет все же не резиновый. ОС общего назначения таким макаром не получится, а узкоспециализированное нечто - слишком нишевое.

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

72. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (68), 18-Фев-20, 09:10 
Речь шла об ОС общего назначения.
Ответить | Правка | Наверх | Cообщить модератору

81. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Аноним (81), 19-Фев-20, 01:00 
> Речь шла об ОС общего назначения.

В ос общего назначения крапа слишком уж много, все предусмотреть имхо малореально.

Ну и вон там с 2010 года примерно на интелском железе ME в каждой дырке, всегда активный, dma-capable, с мутной фирмварью делающей неизвестно что? Как его такой моделировать то, кроме FATAL VULN, unless proven otherwise?

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

37. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +3 +/
Сообщение от Дон Ягон (ok), 16-Фев-20, 20:18 
> В OpenBSD защита памяти сделана хуже чем в Linux + PAX + GrSecurity.

Она, главным образом, сделана по другому. И OpenBSD, в отличие от NetBSD и HardenedBSD не пытается копипастить PAX/grsec.
Мой любимый пример:

PAX реализует и "Prevention of the creation of writable and executable memory mappings (W^X part one)" и "Restrictions on mprotect to prevent switching pages between writable and executable (W^X part two)". OpenBSD только "W^X part one".
Казалось бы, уже пора объявлять разработчиков OpenBSD ламерами, по очевидным причинам, но нет.

Во-первых, "W^X part two" не соответствует букве стандарта.
Во-вторых, что куда хуже, оно ломает приложения. Ну т.е. натурально, после включения у вас сдохнет chrome, ff, java и куча всего другого весёлого, в основном, использующее JIT. Да, предполагается или выставлять разрешающие флаги через paxctl или запускать костыледемон paxd, который будет делать это за вас, но это 1) уродство 2) полностью отключает эти защиты для приложений.

(Что касается уродства, то в OpenBSD бинарники-исключения тоже помечаются особым образом, чтобы им было позволено нарушать W^X, но это не преподносится как удачное решение и считается, в некотором роде, капитуляцией перед реальностью и невозможностью строгого W^X везде.)

Наконец, в третьих, OpenBSD предлагает решать проблему с "W^X part two" внутри самого приложения, при помощи pledge. Если вам точно известно, что ваше ПО не нуждается в том, чтобы делать страницы памяти исполняемыми, не выдавайте процессам вашей программы pledge "prot_exec" (см. man для подробностей) и получайте желаемое.
Да, для этого нужно патчить код программы. Но имхо, это самое верное место, и никто лучше автора программы не знает, что нужно, а что нет его программе. А если автор осёл и вращал известно где безопасность, то никакие PAX и OpenBSD вам всё равно не помогут.

ИМХО, решение от PAX мало подходит как стандартное решение для ОС общего назначения - его сложно включить по умолчанию ничего не сломав или не разрешив слишком много, приложения, которые добавили в исключения будут незащищены (впрочем, это может зависеть от используемых PAX-патчей и добавленных исключений). В то же время, я могу представить, как их монетизировать (продажа патчей + консультации по правильной настройке и написанию ПО, например).
Решение от OpenBSD требует модификации кода программы, но снимает с разработчиков дистрибутива ответственность за безопасность стороннего ПО, в то же время, выдаёт самим разработчикам инструменты для защиты своих приложений. Даже если вашему приложению нужен prot_exec, его можно ограничить другими "обещаниями" pledge и/или unveil (что в опёнке для примера сделали с ff и хромым).

Надеюсь, я достаточно понятно и непредвзято донёс своё понимание разницы подходов OpenBSD и PAX, буду рад критике.

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

73. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  –2 +/
Сообщение от Аноним (68), 18-Фев-20, 09:50 
> ... OpenBSD только "W^X part one". ...

Спасибо за расширенный ответ.

Неизыблемое правило DAC - все исполняемое не должно изменятся, а изменяемое НИКОГДА не должно исполнятся.

Подсистема гарантирующая целостность ОС должна следить за неизменностью, как запускаемого кода с диска, так и исполняемого в оперативной памяти - незыблемое правило Integrity.

Стандарты, инструкции, которые противоречат этим правилам печатаете на мягкой бумаге и храните в туалете, может кому пригодятся.

JIT - в принципе не нужен. Вся оптимизация двоичного кода должна проводится в момент компиляции. Мне, пользователю Gentoo, использования JIT не даст глобалальный прирост производительности, а безопасность уменьшит точно. JIT - отрава безопасности UNIX, которую специально внедряют, и подгоняют под ее использование стандарты. Тео зря пошел на компромисс с пропогандистами JIT разрешив ранее выделенные, для изменения, страницы памяти переводить в режим исполнения. Пользователи JIT розменивают свою безопасность на мнимую производительность. Надо производительность - пересобери все с оптимизацией под свой процессор.

Безопасность ОС, особенно фундаментальная: DAC, MAC, Integrity, ... должна быть гарантирована! Гарантировать ее можно только на уровне аппаратном или ядра ОС. Если оставить дыры и переложить ответственность за безопасность на прикладной софт гарантии безопасности теряются. Дыры будут использованы вирями. А программисты прикладного софта не будут следить за безопасностью у них совсем другие интересы.

> W^X (write xor execute) is the name of an implementation specifically in OpenBSD. One might therefor think that OpenBSD would meet this SFR, however it does not, as I will demonstrate below.

https://blog.acumensecurity.net/2016/04/21/fpt_wx_ext-1-a-ru.../

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

77. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +2 +/
Сообщение от анонн (ok), 18-Фев-20, 13:27 
> Подсистема гарантирующая целостность ОС должна следить за неизменностью, как запускаемого кода с диска, так и исполняемого в оперативной памяти - незыблемое правило Integrity.

...
>  Пользователи JIT розменивают свою безопасность на мнимую производительность. Надо производительность - пересобери все с оптимизацией под свой процессор.
> Безопасность ОС, особенно фундаментальная: DAC, MAC, Integrity, ... должна быть гарантирована! Гарантировать ее

...
> пошел на компромисс с пропогандистами JIT разрешив ранее выделенные, для изменения,

...
> Мне, пользователю Gentoo,

Это которая с питоном и шеллскриптами, умеющими в eval и чьи интерпретаторы плевать хотели на W^X, т.к. они сам себе "execution unit"?

А так дышал, так дышал :(

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

84. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (83), 19-Фев-20, 17:24 
> Это которая с питоном и шеллскриптами, умеющими в eval и чьи интерпретаторы плевать хотели на W^X, т.к. они сам себе "execution unit"?

Интерпретаторы, с питоном включительно, можно обрезать простым DAC. Обычному пользователю и большинству сервисов они не нужны.

groupadd shells
usermod -a -G shells portage
usermod -a -G shells ...
chown root:shells /usr/bin/python* /bin/bash ...
chmod o-rwx /usr/bin/python* /bin/bash ...

У сегодняшнего Gentoo есть недостатки, но решаемы.

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

93. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Аноним (-), 20-Фев-20, 22:54 
> Интерпретаторы, с питоном включительно, можно обрезать простым DAC.

Угу, обрежь "пакетный менеджер" простым DAC. И чего он сможет потом? А ежели этот кус крапа заведует софтом в системе - то наверное и поиметь сможет, все что захочет, если захочет, не? На уровне базового анализа взаимодействий компонентов сугубо.

> groupadd shells
> usermod -a -G shells portage
> usermod -a -G shells ...
> chown root:shells /usr/bin/python* /bin/bash ...
> chmod o-rwx /usr/bin/python* /bin/bash ...

Прикольные тантры, а смысл? Можно подумать, это блекхэтам как-то помешает.

> У сегодняшнего Gentoo есть недостатки, но решаемы.

...особенно ежели заменой дистра на менее хаотичный.

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

98. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (101), 22-Фев-20, 09:07 
> > Интерпретаторы, с питоном включительно, можно обрезать простым DAC.
> Угу, обрежь "пакетный менеджер" простым DAC. И чего он сможет потом? А ежели этот кус крапа заведует софтом в системе - то наверное и поиметь сможет, все что захочет, если захочет, не? На уровне базового анализа взаимодействий компонентов сугубо.

Именно так и надо делать! Пакетным менеджером должен рулить отдельный пользователь (запуск под root, установка под root, а вот загрузки и сборка в изолированном окружении под непривелег рованым пользователем), и только ему в случае Gentoo нужны права к инструментам разработчика. DAC именно для этого и нужен.

> > groupadd shells
> > usermod -a -G shells portage
> > usermod -a -G shells ...
> > chown root:shells /usr/bin/python* /bin/bash ...
> > chmod o-rwx /usr/bin/python* /bin/bash ...
> Прикольные тантры, а смысл? Можно подумать, это блекхэтам как-то помешает.

Это не приколы, а разграничения доступа к интерпретаторам и средствам сборки на уровне DAC.

В обычном Линукс дистре DAC используют для ограничения запуска программы с /usr/games только пользователи группы games могут запускать программы с этого каталога.

Это азы уровня школы, исполнение которых значительно повысит безопасность системы.

> > У сегодняшнего Gentoo есть недостатки, но решаемы.
> ...особенно ежели заменой дистра на менее хаотичный.

Речь идет о интерпретатора и их eval. Для portage есть и бинарные пакетным менеджеры. Система инициализации openrc-run бинарный интерпретатор, а вот netifrc пока проблемное расширение с ворохом eval скриптов.

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

127. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (-), 01-Мрт-20, 21:11 
> Именно так и надо делать! Пакетным менеджером должен рулить отдельный пользователь (запуск
> под root, установка под root, а вот загрузки и сборка в изолированном окружении под
> непривелег рованым пользователем), и только ему в случае Gentoo нужны права к
> инструментам разработчика. DAC именно для этого и нужен.

А как насчет простого тезиса? Подлом этого юзера почти эквивалентен подлому рута, возможно даже более чем в 1 системе. Просто потому что тот юзер может произвольно патчить софт и конфигурацию оного, а потом все это от рута вкатится в систему - и, собственно, в этот момент атакующий сможет снять любые мыслимые сливки.

Конечно, есть некая вероятность что между этими этапами спалите что собралось что-то не то, но если для майнтайнера собирающего в бинарном дистре пару пакетов и знающего там каждый байт как облупленый я еще могу допустить, то гентушник ворочающий сотнями мегазов всего и вся, имхо, в этом плане абсолютно без шансов. В итоге получается лишний management overhead с какими-то странными приседаниями, а профит, собственно, в чем?

> Это не приколы, а разграничения доступа к интерпретаторам и средствам сборки на уровне DAC.

Системная камасутра на мое нескромное мнение.

> Это азы уровня школы, исполнение которых значительно повысит безопасность системы.

Я не думаю что вы бы вообще что-нибудь поняли в моей инсталляции. Естественно не имеющей ничего общего с этими приседаниями, и не факт что менее секурной чем ваше добро. Я общие идеи содрал у мадам руткитской, а то что запилил малость по своему - так можно, и чего? :)

> Речь идет о интерпретатора и их eval.

Я рассматриваю это как большой и жирный класс неприятных вулнов. Его малореально заткнуть, а поскольку это в конечном итоге оказывает влияние на то что будет собрано из софта - да какая разница под каким юзером крутится? :)

> Для portage есть и бинарные пакетным менеджеры. Система инициализации openrc-run
> бинарный интерпретатор, а вот netifrc пока проблемное расширение с ворохом eval скриптов.

Ну это в духе гентушников. Потом оказывается что в всех этих гомнопалках dhcp сервак рута получает, etc. Мегаскриптеры они такие.

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

103. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Michael Shigorinemail (ok), 22-Фев-20, 16:18 
> Интерпретаторы, с питоном включительно, можно обрезать простым DAC.
> Обычному пользователю и большинству сервисов они не нужны.

О, а попробуйте так сделать вот прям сейчас на localhost.
Разумеется, используемого пользователя вносить в shells незачем.

PS: о том, что надо будет бегать и следить за правами по мере обновления бинарников (а также о гонке в процессе при такой наивной реализации) -- помолчу, но вообще-то у нас подобная задача решена.

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

115. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (114), 26-Фев-20, 16:48 
> О, а попробуйте так сделать вот прям сейчас на localhost. Разумеется, используемого пользователя вносить в shells незачем.

У меня именно так все и настроено. Пользователям права на их shell даю. На остальные нет.

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

78. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Дон Ягон (ok), 18-Фев-20, 14:31 
>> ... OpenBSD только "W^X part one". ...
> Стандарты, инструкции, которые противоречат этим правилам печатаете на мягкой бумаге и храните в туалете, может кому пригодятся.

Это общеиспользуемые стандарты, других нет.

> JIT - в принципе не нужен. Вся оптимизация двоичного кода должна проводится в момент компиляции.

Реальность, увы, иная. JIT используется много где, и понятно зачем. К слову, не каждая реализация JIT должна требовать W|X (примеры были тут - https://www.opennet.ru/opennews/art.shtml?num=50763).

> JIT - отрава безопасности UNIX, которую специально внедряют, и подгоняют под ее использование стандарты.

Ахинея.

> Тео зря пошел на компромисс с пропогандистами JIT разрешив ранее выделенные, для изменения, страницы памяти переводить в режим исполнения. Пользователи JIT розменивают свою безопасность на мнимую производительность. Надо производительность - пересобери все с оптимизацией под свой процессор.

Тео, в итоге, выбрал верное решение. Хотя какое-то время в OpenBSD было только W^X part one и не было pledge - да. Но от этого решение PAX team правильным не стало. Наиболее вероятный результат включения по умолчанию W^X part two для всех принудительно - отключение оного кустарными способами или смена ОС на ту, где такого нет.
И это логично - программа сначала должна решать какую-то проблему, а потом уже быть безопасной. Программа, которая не решает никакой проблемы, но безопасна - бесполезна. Как и ОС, в которой ни ff ни chrome не запустить.

> Безопасность ОС, особенно фундаментальная: DAC, MAC, Integrity, ... должна быть гарантирована! Гарантировать ее можно только на уровне аппаратном или ядра ОС.

Ты, как разработчик или пользователь ПО можешь герентировать отсутствие W|X при помощи pledge. Убивать приложение при нарушении W^X будет именно ядро (хотя по дефолту оно кажется не убивает, а просто возвращает -1 malloc'ом).

> Если оставить дыры и переложить ответственность за безопасность на прикладной софт гарантии безопасности теряются.

Их (гарантий) нет и в PAX. Можно отключить защиту как глобально, так и per app.

> А программисты прикладного софта не будут следить за безопасностью у них совсем другие интересы.

Во-первых, при наличии удобного, ранее отсутствовавшего инструмента - почему нет?
Во-вторых, ты можешь попатчить нужное сам, как это пока опенбсдшники и делают для ff, например.
В третьих, если сами разработчики хорошо положат болт на безопасность своего ПО, никакое pledge или pax тебе не поможет.

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

79. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 18-Фев-20, 14:50 
del
Ответить | Правка | Наверх | Cообщить модератору

85. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (83), 19-Фев-20, 17:54 
> Реальность, увы, иная. JIT используется много где, и понятно зачем.

Желаю все оптимизировать во время компиляции под свой проц, а во время исполнения иметь гарантию неизменности кода.

> К слову, не каждая реализация JIT должна требовать W|X

Исполнение ранее измеряемого кода - неприемлемо. Как и изменение прав x -> w -> x

> программа сначала должна решать какую-то проблему, а потом уже быть безопасной.

Вот это аргумент! Или прога проектируется удовлетворять элементарным требованиям безопасности, или она не будет безопасна никогда. И мне такая прога не нужна.

> Как и ОС, в которой ни ff ни chrome не запустить.

Это не безопасные бровзеры, хотя поняв что их люди выкинули из-за JIT все дружно добавили опции 'configure --no-jit'

> Ты, как разработчик или пользователь ПО можешь герентировать отсутствие W|X при помощи pledge. Убивать приложение при нарушении W^X будет именно ядро

Мое ядро все что только попросит память в режимеиwx прибивает сразу.

> Их (гарантий) нет и в PAX. Можно отключить защиту как глобально, так и per app.

У тебя нет, а у меня есть, возможность глобально отключить PAX требует перезагрузки, но я эту опцию в настройках ядра не включил.

По приложениям можно менять или заглавие ELF или xattr, но для этого надо root. А у меня / смонтирован ro и ядро недаст его перемонтировать rw, потому что мое ядро следит чтобы диски тоже в режиме rw,exec не монтировались. А кроме того есть IMA которая заблокирует изменения ELF и есть EVM которая заблокирует изменения IMA и xattr. У меня есть 100% гарантия.

> Во-первых, при наличии удобного, ранее отсутствовавшего инструмента - почему нет?

Во-вторых, ты можешь попатчить нужное сам, как это пока опенбсдшники и делают для ff, например.

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

> В третьих, если сами разработчики хорошо положат болт на безопасность своего ПО, никакое pledge или pax тебе не поможет.

Ложим болт на их поделки. KDE со своими скриптами с JIT, ... во многих ынтерпрайз дистрах дефолтный DE?

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

87. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 20-Фев-20, 07:48 
>> Реальность, увы, иная. JIT используется много где, и понятно зачем.
> Желаю все оптимизировать во время компиляции под свой проц, а во время исполнения иметь гарантию неизменности кода.

Это желания и только. Реальность есть реальность. Некоторые подвижки есть, но и только.

>> К слову, не каждая реализация JIT должна требовать W|X
> Исполнение ранее измеряемого кода - неприемлемо. Как и изменение прав x -> w -> x

Где так написано? А то программисты не знают и по другому программы пишут. И, цука, иногда нужные. Да, сделано из г-на, но какую-то нужную проблему решает.

>> программа сначала должна решать какую-то проблему, а потом уже быть безопасной.
> Вот это аргумент! Или прога проектируется удовлетворять элементарным требованиям безопасности, или она не будет безопасна никогда. И мне такая прога не нужна.

Как вы каменты то на опеннете оставляете, если у вас ff и chrome не работают, стесняюсь спросить?

>> Как и ОС, в которой ни ff ни chrome не запустить.
> Это не безопасные бровзеры, хотя поняв что их люди выкинули из-за JIT все дружно добавили опции 'configure --no-jit'

Окей, как вы каменты на опеннете  оставляли до того, как вышла версия хрома с nojit?

>> Ты, как разработчик или пользователь ПО можешь герентировать отсутствие W|X при помощи pledge. Убивать приложение при нарушении W^X будет именно ядро
> Мое ядро все что только попросит память в режимеиwx прибивает сразу.

Выглядит так, как будто бы ты этим гордишься, хотя на самом деле, не стоило бы. В общем-то, сломать переключалку в mprotect не очень большая наука, студенты должны справиться.
Понятно, что проще всего объявить неугодное бескомпромиссно непримелемым и чуть что раздавать kill -9. Это самое очевидное и топорное решение.
Но смысл оно имеет только при условии, что есть доступная альтернатива тому ПО, которое не запустится. А это не так -> для включения по-умолчанию в ОС общего назначения это неприемлемо.

>> Их (гарантий) нет и в PAX. Можно отключить защиту как глобально, так и per app.
> У тебя нет, а у меня есть, возможность глобально отключить PAX требует перезагрузки, но я эту опцию в настройках ядра не включил.

Бессмысленная софистика. Принципиальная возможность - есть. Это абсолютно всё, что нужно знать.
А что там кто-то для себя наколхозил - не интересно.

> По приложениям можно менять или заглавие ELF или xattr

Не все хотят при каждом обновлении прописывать все флаги ручками, обычно это автоматизируется. Есть даже костыледемон paxd для этих целей. Т.е. можно ещё поколдовать со скриптами автоматизации или конфигами paxd. А не в лоб.

> А у меня / смонтирован ro и ядро недаст его перемонтировать rw, потому что мое ядро следит чтобы диски тоже в режиме rw,exec не монтировались. А кроме того есть IMA которая заблокирует изменения ELF и есть EVM которая заблокирует изменения IMA и xattr. У меня есть 100% гарантия.

Плохо, что ты думаешь, что у тебя 100% гарантия. Может это и так (я не знаю), но недоверие - это хорошо.

>> Во-первых, при наличии удобного, ранее отсутствовавшего инструмента - почему нет?
> Во-вторых, ты можешь попатчить нужное сам, как это пока опенбсдшники и делают для ff, например.

Опенбсдшники не патчили ff на предмет неиспользования jit. Ну, я про такое не слышал. Pledge туда добавили, да, и unveil.

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

99. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (101), 22-Фев-20, 10:45 
> > > Реальность, увы, иная. JIT используется много где, и понятно зачем.
> > Желаю все оптимизировать во время компиляции под свой проц, а во время исполнения иметь гарантию неизменности кода.
> Это желания и только. Реальность есть реальность

У меня source based дистрибутив вопрошающий мои желания в реальность!

> > > К слову, не каждая реализация JIT должна требовать W|X
> > Исполнение ранее измеряемого кода - неприемлемо. Как и изменение прав x -> w -> x
> Где так написано? А то программисты не знают и по другому программы пишут. И, цука, иногда нужные. Да, сделано из г-на, но какую-то нужную проблему решает.

И по этому их программы люди не используют. Передай этим "программистам", что если использую JIT, то код должен ветвится на две ветки: без JIT и с JIT. Выбор используемой ветки должен проводится на этапе выполнения configure: параметрами --with-jit или --disable-jit. Все нормальные программисты уже так сделали, даже в Google со своим хромом.

CONFIG_PAX_MPROTECT=y
Enabling this option will prevent programs from
- changing the executable status of memory pages that were not originally created as executable,
- making read-only executable pages writable again,
- creating executable pages from anonymous memory,
- making read-only-after-relocations (RELRO) data pages writable again.

https://en.m.wikibooks.org/wiki/Grsecurity/Appendix/Grsecuri...

https://en.m.wikibooks.org/wiki/Grsecurity/Appendix/Grsecuri...

https://grsecurity.net/PaX-presentation.pdf

https://grsecurity.net/PaX-presentation.ppt

http://mainisusuallyafunction.blogspot.com/2012/11/attacking...

https://github.com/01org/jit-spray-poc-for-ksp

http://www.matasano.com/research/Attacking_Clientside_JIT_Co...

> Окей, как вы каменты на опеннете  оставляли до того, как вышла версия хрома с nojit?

На целевой системе нет firefox и chrome. Кроме них есть куча бровзеров которые по умолчанию ответственно относятся к безопасности и приватности пользователей.

Firefox JIT нужен только для поддержки расширений. Можно расширения устанавливать пакетным менеджером в систему и отключить их поддержку firefox. Это правильный и безопасный путь. Почему его не используют разработчики дистрибутивов?

> > > Их (гарантий) нет и в PAX. Можно отключить защиту как глобально, так и per app.
> > У тебя нет, а у меня есть, возможность глобально отключить PAX требует перезагрузки, но я эту опцию в настройках ядра не включил.
> Бессмысленная софистика. Принципиальная возможность - есть. Это абсолютно всё, что нужно знать.
> А что там кто-то для себя наколхозил - не интересно.

В целевой системе, при правильной настройке (x86_64+NX процессору верим ;) ), PaX отключить принципиально, теоретически и практически невозможно:

PAX=y
PAX_SOFTMODE is not set
PAX_EI_PAX is not set
PAX_PT_PAX_FLAGS is not set
PAX_XATTR_PAX_FLAGS is not set
PAX_HAVE_ACL_FLAGS=y
PAX_NOEXEC=y
PAX_PAGEEXEC=y
PAX_SEGMEXEC is not set
PAX_EMUTRAMP is not set
PAX_EMUSIGRT is not set
PAX_MPROTECT=y
PAX_MPROTECT_COMPAT is not set
PAX_ELFRELOCS is not set
PAX_ETEXECRELOCS is not set
PAX_EMUPLT is not set
PAX_DLRESOLVE is not set
PAX_KERNEXEC=y

PAX_ASLR=y
PAX_RANDKSTACK=y
PAX_RANDUSTACK=y
PAX_RANDMMAP=y

PAX_MEMORY_SANITIZE=y
PAX_MEMORY_STACKLEAK=y
PAX_MEMORY_STRUCTLEAK=y
PAX_MEMORY_UDEREF is not set
PAX_REFCOUNT=y
PAX_CONSTIFY_PLUGIN=y
PAX_USERCOPY=y
PAX_SIZE_OVERFLOW=y
PAX_LATENT_ENTROPY=y
PAX_RAP=y

> > По приложениям можно менять или заглавие ELF или xattr
> Не все хотят при каждом обновлении прописывать все флаги ручками, обычно это автоматизируется. Есть даже костыледемон paxd для этих целей. Т.е. можно ещё поколдовать со скриптами автоматизации или конфигами paxd. А не в лоб.

В моем дистрибутиве пакетный менеджер умеет, для кривого софта, выставлять нужные PAX флаги!

Костыледемон paxd похерит Integrity. А при ro / и вовсе бесполезен.

Лучше просто не использовать софт с JIT вовсе.

> > А у меня / смонтирован ro и ядро недаст его перемонтировать rw, потому что мое ядро следит чтобы диски тоже в режиме rw,exec не монтировались. А кроме того есть IMA которая заблокирует изменения ELF и есть EVM которая заблокирует изменения IMA и xattr. У меня есть 100% гарантия.
> Плохо, что ты думаешь, что у тебя 100% гарантия. Может это и так (я не знаю), но недоверие - это хорошо.

Плохо ты думаешь, гарантия зависит от того кто гарантирует (настраивал). Данный алгоритм, при правильной настройке, даст 100℅ гарантию не низменности, по файловых, настроек PAX в целевой системе.

> Опенбсдшники не патчили ff на предмет неиспользования jit. Ну, я про такое не слышал. Pledge туда добавили, да, и unveil.

А надо было популярные расширения добавить в пакеты и отключить возможность загрузки расширений в ff! Тео, вместо этого, добавил ненужную дыру.

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

105. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 23-Фев-20, 06:31 
> И по этому их программы люди не используют.

Нет, это не так. Было бы хорошо, если бы это было так, но это не так и игнорировать это нельзя.

> На целевой системе нет firefox и chrome. Кроме них есть куча бровзеров которые по умолчанию ответственно относятся к безопасности и приватности пользователей.

Ясно-понятно.

> Firefox JIT нужен только для поддержки расширений. Можно расширения устанавливать пакетным менеджером в систему и отключить их поддержку firefox. Это правильный и безопасный путь. Почему его не используют разработчики дистрибутивов?

Потому что никто не хочет лепить свои костыли вместо стандартных возможностей ff во имя не пойми чего?

> В моем дистрибутиве пакетный менеджер умеет, для кривого софта, выставлять нужные PAX флаги!

Круто! Я тоже могу наколхозить кучу всего интересного (или не очень) и забавного. Кому какое дело до этого? Это очевидно нишевое решение. И не буду даже спрашивать откуда вы берёте pax-патчи, с тех пор как их закрыли вместе с grsecurity/.

> Тео, вместо этого, добавил ненужную дыру.

Я попробую ещё, но, пожалуй, последний раз в этой теме.
Так вот.
Какая проблема решается W^X pt 2, он же  PAX MPROTECT?
Если даже у нас уже реализован и используется W^X pt 1, мы всё равно можем внедрить код, сделать ret2libc->ret2mprotect = сделать память исполянемой, выполнить код. Защита преодолена, W^X нарушен.
PAX MPROTECT прибивает процесс, который вызывает mprotect, добавляющий PROT_EXEC, таким образом, решающий проблему (и ломающий некоторые "честные" приложения).

В случае OpenBSD, реализован только W^X pt 1, prot_exec может быть только отозван через pledge, что требует модификации кода программы.
Помимо этого, в любом случае возникнут сложности на этапе ret2libc, так как используется ASLR и при каждой новой загрузке ОС используется заново слинкованная libc с расположенными в случайном порядке объектами. Т.е. произвести атаку, конечно, всё-таки возможно, но это едва ли получится с первой попытки, да и в целом, будет несколько затруднено.
OpenBSD хочет соблюдать стандарты, а не извращённо толковать иx (из "If an implementation cannot support the combination of access types specified by prot, the call to mprotect() shall fail." люди из pax делают вывод, что имеют право ломать mprotect, в дествительности написать имплементацию которая поддерживает кобминацию w и x вполне можно, так что...).
Поэтому аналог PAX MPROTECT не может быть включен по умолчанию. Однако, так как хоть какие-то меры противодествия имеются, а ROP в более широком смысле, нежели описанный выше пример, всё равно может позволить обойти W^X pt 2, принятые по-умолчанию меры считаются примемлемыми.
А при использовании pledge можно и поставить точку в вопросе с prot_exec, и подобная логика может быть добавлена в программы достаточно легко.

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

> PaX отключить принципиально, теоретически и практически невозможно

С трудом представляю, как ты пользуешься такой системой, а главное - зачем. См. выше, почему я считаю, что ты страдаешь за почти что иллюзию защиты.

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

116. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (114), 26-Фев-20, 17:09 
> > Firefox JIT нужен только для поддержки расширений. Можно расширения устанавливать пакетным менеджером в систему и отключить их поддержку firefox. Это правильный и безопасный путь. Почему его не используют разработчики дистрибутивов?

Потому что никто не хочет лепить свои костыли вместо стандартных возможностей ff во имя не пойми чего?

> Если даже у нас уже реализован и используется W^X pt 1, мы всё равно можем внедрить код, сделать ret2libc->ret2mprotect = сделать память исполянемой, выполнить код. Защита преодолена, W^X нарушен.

PAX_ASLR=y
PAX_RANDKSTACK=y
PAX_RANDUSTACK=y
PAX_RANDMMAP=y
Замучаешся преодолевать, есть другие системы которые следят за брутефосом и принимают более радикальные проактивные меры.

>PAX MPROTECT прибивает процесс, который вызывает mprotect, добавляющий PROT_EXEC, таким образом, решающий проблему (и ломающий некоторые "честные" приложения).

В моем дистре очень легко можно сказать честным приложениям собирался без JIT и с оптимизацией под мой проц во время компиляции. Так что все программы будут работать с защитой PAX и без поломок.

> ROP в более широком смысле, нежели описанный выше пример, всё равно может позволить обойти W^X pt 2, принятые по-умолчанию меры считаются примемлемыми.

CONFIG_PAX_RAP=y
делает твой, очень дорогой ROP, практически невозможным.

> > PaX отключить принципиально, теоретически и практически невозможно
> С трудом представляю, как ты пользуешься такой системой, а главное - зачем

Это нормальная система, которая соответствует требованием DAC. Вот старый пример: https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/.../

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

118. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 26-Фев-20, 23:29 
>> Если даже у нас уже реализован и используется W^X pt 1, мы всё равно можем внедрить код, сделать ret2libc->ret2mprotect = сделать память исполянемой, выполнить код. Защита преодолена, W^X нарушен.
> PAX_ASLR=y
> PAX_RANDKSTACK=y
> PAX_RANDUSTACK=y
> PAX_RANDMMAP=y
> Замучаешся преодолевать, есть другие системы которые следят за брутефосом и принимают более
> радикальные проактивные меры.

Пример, который я описывал был не про обход W^X pt 2 (pax mprotect), а про обход W^X pt 1. Разница в том, что чтобы обойти W^X pt 2 нужен прям честный ROP, который совсем сложен (но да, возможен), в случае с обходом W^X pt 1 достаточно "найти" mprotect и сделать заинъекченый код исполняемым.
Это значительно проще.
Не знаю, к чему это ты, возможно, ты просто продолбался с цитированием и из-за этого я тебя не так понял.

>> ROP в более широком смысле, нежели описанный выше пример, всё равно может позволить обойти W^X pt 2, принятые по-умолчанию меры считаются примемлемыми.
> CONFIG_PAX_RAP=y
> делает твой, очень дорогой ROP, практически невозможным.

Я знаю про PAX_RAP. Ничего не утверждал про его наличие/отсутствие. Утверждал про то, что меры против ROP в OpenBSD затрудняют и сценарий эксплуатации W^X pt 1, поэтому мириться с отсутствием принудительного pax mprotect по-умолчанию приемлемо.

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

119. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (119), 27-Фев-20, 16:01 
> случае с обходом W^X pt 1 достаточно "найти" mprotect и сделать заинъекченый код исполняемым.

Рандомизацтя адресного пространства сильно затрудняет поиск нужного кода.

Ты не сможешь перевести заинекченыц код в режим исполнения, pax mprotect этого не даст.

> OpenBSD затрудняют и сценарий эксплуатации W^X pt 1, поэтому мириться с отсутствием принудительного pax mprotect по-умолчанию приемлемо.

Проблема с защитой памяти много кому на больные мозоли наступает:

У Linux мутная история:  https://www.opennet.ru/openforum/vsluhforumID3/119728.html#31

У опенка Тео перехотел сделать нормально:

https://www.opennet.ru/openforum/vsluhforumID3/119792.html#6

Использую PAX давно, у меня дистр основанный на исходниках, надо в одном месте указать что ты JIT не желаешь водить и потом соберутся без него. Тех страшных проблем ко орыми вы здесь пугаете продвигая дыру в безопасности не наблюдал. Защита памяти, гарантии неизменности исполняемого кода - безценны по сравнению с мнимой производительностью Jit.

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

120. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 27-Фев-20, 16:11 
>> случае с обходом W^X pt 1 достаточно "найти" mprotect и сделать заинъекченый код исполняемым.
> Рандомизацтя адресного пространства сильно затрудняет поиск нужного кода.

Я про это, да.

> Ты не сможешь перевести заинекченыц код в режим исполнения, pax mprotect этого не даст.

Я не про это.

> Использую PAX давно, у меня дистр основанный на исходниках, надо в одном месте указать что ты JIT не желаешь водить и потом соберутся без него. Тех страшных проблем ко орыми вы здесь пугаете продвигая дыру в безопасности не наблюдал. Защита памяти, гарантии неизменности исполняемого кода - безценны по сравнению с мнимой производительностью Jit.

Божечки, да причём тут это?
Когда-то у меня был арч с grsec-ядром, и в те моменты, когда я не игрался с ним ради самообразования, у меня тоже всё работало, вероятно, где-то я что-то делал для этого - уже не помню.

Кому-то нужна производительность, кому-то - строгая безопасность, кому-то соответствие стандартам.
Речь не про принципиальную возможность заставить что-то работать, а про стандартную поставку и годность для ОС общего назначения.

> У опенка Тео перехотел сделать нормально

Ну а по мне - как раз в опёнке нормально.

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

121. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (121), 28-Фев-20, 15:44 
Мое мнение, контроль за памятью должен быть только у ядра. Изменение исполняемых областей памяти - огромная дыра в безопасности. Тео проделал дырочку оставляя возможность приложениям с JIT изменять исполняемые области памяти. И это будет использовано вирусами.

Кому надо производительность тот компилит все под свой проц.

Советую всем отказатся от JIT, ядер ОС, "стандартов" и "инструкций" которые допускают изменение исполняемых областей памяти.

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

122. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 28-Фев-20, 15:49 
> Мое мнение, контроль за памятью должен быть только у ядра.
> Советую всем отказатся от JIT, ядер ОС, "стандартов" и "инструкций" которые допускают изменение исполняемых областей памяти.

Ради бога. Почему я считаю, что такой максималистский подход малоприменим для всеобщего использования по факту - я написал.

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

123. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (123), 29-Фев-20, 09:07 
Надеюсь, что всем уже стало понятно необходимость, ядром OS или аппаратно процессором, строго контролировать неизменность исполняемых областей памяти и областей данных помеченных только для чтения.

Контроль за памятью нельзя делегировать на уровень приложений. Любое такое делегирование это дыра которую будут использовать вирусы.

Были, есть и будут OS общего назначения и прикладные программы которые строго соблюдают правила контроля за оперативный памятью. Опенка с этого списка пока вычеркиваем.

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

124. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 01-Мрт-20, 05:07 
> Контроль за памятью нельзя делегировать на уровень приложений. Любое такое делегирование это дыра которую будут использовать вирусы.

Я прочитал сейчас что-то, по меньшей мере, очень странное.
И в случае pledge, и в случае PaX за гарантии отвечает ядро.
В случае pledge, гарантии заказываются из кода программы, в случае PaX - черех paxctl/конфиг ядра.

> Были, есть и будут OS общего назначения и прикладные программы которые строго соблюдают правила контроля за оперативный памятью.

Только никакого успеха они не имеют (чего нельзя сказать про нишевые решения).

> Опенка с этого списка пока вычеркиваем.

...

====
Я, в принципе, отчасти понимаю твой максимализм - было бы хорошо, если бы все думали про безопасность и не писали код, который требует нарушения W^X. Но всё так, как есть. Нельзя сказать, что ситуация совсем не меняется, но даже там, где стало можно, например, выключать JIT, требующий нарушения W^X, это всё равно не используется как вариант по-умолчанию и закономерно обладает меньшей производительностью.

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

126. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (126), 01-Мрт-20, 15:26 
> И в случае pledge, и в случае PaX за гарантии отвечает ядро.

Нет, в OpenBSD ядро не дает никаких гарантий, оставляя возможность приложениям изменять исполняемый код. Это дыра которую будут использовать вири.

> В случае pledge, гарантии заказываются из кода программы,

Это смешно. Гарантии неизменности исполняемого кода должно давать ядро или аппаратно проц.

> в случае PaX - через paxctl/конфиг ядра.

Ядро с PaX дает гарантии неизменности исполняемого кода и гарантии невозможности отключения такого поведения для всех программ.

В тоже время есть возможность выбора:

1. Дополнительно добавить в ядро возможность исключения для некоторых программ помеченных через заголовок ELF или расширенные атрибуты файловой системы xattr (PeMRs).
Pp - постраничная защита памяти.
Ee - эмуляция трамполлайнов. Очень маленькие участки памяти которые можно переводить в режим WX
Mm - защита памяти. В частности гарантия W^X. Выше упоминал все гарантии mprotect при использовании PaX ядра.
Rr - рандомизация адресного пространства.
Ss - посегментна защита памяти, если постраничная не поддерживается процессором (NX инструкция) или мы не доверяем защите памяти реализованной процессором.
По умолчанию ядро с PaX дает максимальную защиту.

2. Дополнительно добавить в ядро возможность загружатся в режиме когда PaX ядро не блокирует, а только ведет журнал событий нарушающих нормальное использование памяти. Grsecurity ядро блокирует изменение рабочего ядра через sysctl и следовательно дает гарантии невозможности включать/выключать PaX softmode в случае его поддержки ядром.

> > Были, есть и будут OS общего назначения и прикладные программы которые строго соблюдают правила контроля за оперативный памятью.
> Только никакого успеха они не имеют (чего нельзя сказать про нишевые решения).

Среди тех которые ты должен знать упомяну Apple как фирму чьи OS очень строго защищают память.

Также MS Windows имеет защиту оперативной памяти, но менее строгую по сравнению с Apple. MS видать как и Тео с OpenBSD попросили пойти на компромисс и просверлить дырочки, для "повышения производительности".

> Нельзя сказать, что ситуация совсем не меняется, но даже там, где стало можно, например, выключать JIT, требующий нарушения W^X, это всё равно не используется как вариант по-умолчанию

Самое главное, разработчики поняли, что код с JIT есть небезопасен, непортабелен и просто на некоторых аппаратных (powerpc,mips,..) и программных (Linux+PaX, Apple, ...) не работает. Для этих програмно-аппаратных архитектур есть возможность отключать код JIT еще на этапе конфигурации исходников перед сборкой и он используется по умолчанию всегда.

> и закономерно обладает меньшей производительностью.

Это очень спорный вопрос. Вас обманывают воруя безопасность и обещая мнимую производительность! Изменения режима исполняемого кода на изменяемый и потом обратно это очень ресурсоемко и врят ли окупится.

Оптимизация программы в момент компиляции под целевой процессор дает максимум производительности и скорости исполнения. В добавок можно получить гарантию неизменности исполняемого кода- безопасность.

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

129. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 02-Мрт-20, 00:44 
>> И в случае pledge, и в случае PaX за гарантии отвечает ядро.
> Нет, в OpenBSD ядро не дает никаких гарантий, оставляя возможность приложениям изменять исполняемый код. Это дыра которую будут использовать вири.
>> В случае pledge, гарантии заказываются из кода программы,
> Это смешно. Гарантии неизменности исполняемого кода должно давать ядро или аппаратно проц.

Прости, но ты пишешь ахинею. Pledge - это системный вызов, как следствие, вся работа по обеспечению гарантий производится в ядре. С каждым новоым вызовом pledge, выданных разрешений может быть _только_ меньше.
Ну да, может быть баг в реализации, ну так он и в PaX может быть.

>> > Были, есть и будут OS общего назначения и прикладные программы которые строго соблюдают правила контроля за оперативный памятью.
>> Только никакого успеха они не имеют (чего нельзя сказать про нишевые решения).
> Среди тех которые ты должен знать упомяну Apple как фирму чьи OS очень строго защищают память.

Если мне не изменяет память, то только в мобильном исполнении. И это закрытая экосистема, где список доступных приложений (и их возможности), в теории, полностью контролируется Apple.

> Самое главное, разработчики поняли, что код с JIT есть небезопасен

Потенциально небезопасен. И многое зависит от реализации.

>> и закономерно обладает меньшей производительностью.
> Это очень спорный вопрос. Вас обманывают воруя безопасность и обещая мнимую производительность!
> Изменения режима исполняемого кода на изменяемый и потом обратно это очень ресурсоемко и врят ли окупится.

Меня никто не обманывает. Про "небезопасность" отсутствия PaX MPROTECT (W^X pt 2) я уже писал - повторяться избыточно.
По поводу ресурсоёмкости и т.п. - это зависит от реализации и требуемых возможностей. В целом, байткод надо транслировать в машинный код примерно 1 раз, далее можно просто выполнять скомпилированное. Ну да, иногда ради бОльшего "динамизма" такой подход может быть и неприемлем.
На производительность, даже не мнимую лично мне скорее пофигу, особенно, если речь о незаметных "на глаз" процентах, особенно если за счёт безопасности, дело не в этом. Дело в том, что всему миру абсолютно наплевать на мои личные хотелки, у разных людей и компаний разные задачи и разные требования. И, к несчастью, реальность такова, что иногда альтернативы решениям с jit нет, а производительности хочется. А писать за свои деньги свою "правильную" альтернативу не хочется. Или денег нет.

> Оптимизация программы в момент компиляции под целевой процессор дает максимум производительности и скорости исполнения. В добавок можно получить гарантию неизменности исполняемого кода- безопасность.

Вашими бы устами да мёд пить.

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

131. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (131), 02-Мрт-20, 15:51 
> Pledge - это системный вызов, как следствие, вся работа по обеспечению гарантий производится в ядре.

Плохо то, что есть в ядре OpenBSD возможность дать программ право изменять исполняемый код. И в OpenBSD нет опции в конфиге ядра отключить такое поведение. Следовательно гарантий неизменности исполняемого кода в OpenBSD нет.

> Про "небезопасность" отсутствия PaX MPROTECT (W^X pt 2) я уже писал - повторяться избыточно.

Повторение - мать учения. Именно благодаря PaX MPROTECT получаем гарантию неизменности исполняемого кода:

Enabling this option will prevent programs from
- changing the executable status of memory pages that were
   not originally created as executable,
- making read-only executable pages writable again,
- creating executable pages from anonymous memory,
- making read-only-after-relocations (RELRO) data pages writable again.

https://en.m.wikibooks.org/wiki/Grsecurity/Appendix/Grsecuri...()

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

132. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 02-Мрт-20, 16:10 
>> Pledge - это системный вызов, как следствие, вся работа по обеспечению гарантий производится в ядре.
> Плохо то, что есть в ядре OpenBSD возможность дать программ право изменять исполняемый код. И в OpenBSD нет опции в конфиге ядра отключить такое поведение. Следовательно гарантий неизменности исполняемого кода в OpenBSD нет.

Нет, это не плохо, это адекватно требованиям, выдвигаемым к ОС общего назначения.
Проблема, на наличии которой ты настаиваешь имеет место, но её важность преувеличена. Поэтому, OpenBSD не даёт общесистемных гарантий, но позволяет гарантировать отсутствие prot_exec для отдельно взятой программы. На уровне логики работы самой программы.

> Повторение - мать учения.

А мне уже слегка надоело повторять одно и то же разными словами.

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

133. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (133), 03-Мрт-20, 15:55 
> Поэтому, OpenBSD не даёт общесистемных гарантий, но позволяет гарантировать отсутствие prot_exec для отдельно взятой программы. На уровне логики работы самой программы.

Нет сегодня возможности проверить логику работы всех программ. А безопасность иметь хочется. Единственный путь это гарантии неизменности исполняемого кода ядром OS или аппаратно процессором.

> А мне уже слегка надоело повторять одно и то же разными словами.

И мне.

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

134. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 03-Мрт-20, 16:05 
>> А мне уже слегка надоело повторять одно и то же разными словами.
> И мне.

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

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

136. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (135), 04-Мрт-20, 16:38 
> можно и заканчивать

Вы не сказали самый главный аргумент против использования W^X. А его надо понимать и помнить всем!

Ситуация когда безопасность имеет приоритет ниже чем сервис!!!

Примеры: система жизнеобеспечения больного в больнице, авиодиспетчеры, управление опасным производством, ядерный реактор, ...

В этих случаях ядра жестко убивающие за нарушения выделения памяти использовать нельзя. Для этого используется режим "PaX softmode" когда все нарушения только журналируются, а процесс продолжает работать без любых ущемлений ядром. Реализация PaX в GNU/Linux очень правильная и предусматривает все режимы работы для OS общего назначения.

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

137. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 04-Мрт-20, 16:41 
> Примеры: система жизнеобеспечения больного в больнице, авиодиспетчеры, управление опасным производством, ядерный реактор, ...

ИМХО, это всё совсем не про ОС общего назначения. И даже не только лишь по требованиям, связанным с безопасностью.

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

138. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (135), 04-Мрт-20, 16:48 
> ИМХО, это всё совсем не про ОС общего назначения.

Про OS общего назначения это:

Реализация PaX в GNU/Linux очень правильная и предусматривает все режимы работы для OS общего назначения.


А это:

Примеры: система жизнеобеспечения больного в больнице, авиодиспетчеры, управление опасным производством, ядерный реактор, ...

О том что не надо жесткий W^X пихать всюда без разбору. Есть места где безопасность совсем не главное и поддержка работающего сервиса имеет высший приоритет.

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

139. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 04-Мрт-20, 17:20 
> Про OS общего назначения это:

Я понял :) На эту тему все мысли, которые у меня были я уже написал, больше не хочу повторять одно и то же.

> Есть места где безопасность совсем не главное и поддержка работающего сервиса имеет высший приоритет.

Тогда просто не понятно, причём тут это. Там, насколько я могу понимать (практики администрирования подобного у меня нет), сильно своя атмосфера и там, помимо безопасности, ещё важна, как минимум риалтаймовость, да и резервировать, как я понимаю, там нужно примерно всё, если не хочется фатальных неожиданностей.
И там-то, кстати, лично я строгий PaX могу представить - ПО там специализированное и пишется специально под эти задачи, специальными людьми. Ничто не мешает (теоретически) сразу написать ПО с учётом модели памяти в PaX и смысл в этом есть.

Как там на самом деле всё настроено и работает, повторюсь, не знаю, ввиду отсутствия практики.

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

140. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (140), 04-Мрт-20, 17:41 
> Ничто не мешает (теоретически) сразу написать ПО с учётом модели памяти в PaX и смысл в этом есть.

Классика жанра:

В спец ПО для райнимации больного допустили ошибку переполнения буфера или даже ядро OS имеет ошибку переполнения буфера. Вирус использует эту уязвимость переполнения буфера и ядро с W^X убивает процесс поддержки жизнедеятельности человека. Человек погибает, а компьютер остается не зараженным.

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

Это надо обязательно понимать и помнить.

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

141. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 04-Мрт-20, 17:58 
>> Ничто не мешает (теоретически) сразу написать ПО с учётом модели памяти в PaX и смысл в этом есть.
> Классика жанра:
> В спец ПО для райнимации больного допустили ошибку переполнения буфера или даже ядро OS имеет ошибку переполнения буфера. Вирус использует эту уязвимость переполнения буфера и ядро с W^X убивает процесс поддержки жизнедеятельности человека. Человек погибает, а компьютер остается не зараженным.

Логика рассуждения мне понятна, спасибо. Мне не понятно, почему бы не резервировать эти процессы на изолированных контурах, например. Процесс может упасть из-за более тривиальной баги, не связанной с безопасностью - что тогда?
Или, например, можно не использовать динамических алокаций вообще, если условия задачи позволяют.
А PaX не обязательно убивает процесс, тот же PaX MPROTECT, про который тут шла речь, приводит к тому, что mprotect возвращает EPERM (с этим меня тут недалеко поправили) - это можно обрабатывать в коде программы.

> В случаях когда работа сервиса имеет приоритет над безопасностью, жесткий контроль за памятью использовать нельзя. Просто журналируются все события некорректного поведения процесса, без каких либо санкций к нему.
> Это надо обязательно понимать и помнить.

В моём понимании, это не напрямую связанные вещи. Если конструкция в целом умеет переживать смерть отдельного процесса без остановки сервиса, то не вижу проблем даже и в прибивании за нарушение гарантий памяти. Если не умеет, то мы нарвёмся на проблемы и без проблем с безопасностью.

Требование-то, на самом деле, к непрерывности предоставления сервиса, а не к модели памяти. От этого, имхо, и нужно рассуждать.

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

144. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (144), 05-Мрт-20, 16:31 
> Мне не понятно, почему бы не резервировать эти процессы на изолированных контурах, например.

А кто даст гарантию что не упадет процесс отвечающий за переключения или вообще само ядро, для которого тоже W^X применяется?

Смотри на ситуацию вирусной атаки - все процессы в памяти имеют уязвимость переполнения буфера и при вирусной атаке ядпо с W^X их всех прибет.

W^X очень простая, дешовая и эффективная техника безопасности. Она идеальна для рабочей станции секретарши, смартфона, планшета, ноута итп.

В системах для которых кретически важна безперебойная работа используют другие, более дорогие, техники безопасности. А PAX включают только в режиме softmode для журналирования.

> Процесс может упасть из-за более тривиальной баги, не связанной с безопасностью - что тогда?

Тогда виноват не админ с PaX а программист...

> mprotect возвращает EPERM (с этим меня тут недалеко поправили) - это можно обрабатывать в коде программы.

Это делать можно, например clamav так и делал. Но это неправильно. Лучше програмистам давать возможность сборщикам пакетов выбор JIT ветки кода в момент конфигурации перед компиляцией.

> Если конструкция в целом умеет переживать смерть отдельного процесса без остановки сервиса, то не вижу проблем даже и в прибивании за нарушение гарантий памяти. Если не умеет, то мы нарвёмся на проблемы и без проблем с безопасностью.
> Требование-то, на самом деле, к непрерывности предоставления сервиса, а не к модели памяти. От этого, имхо, и нужно рассуждать.

Еще разок, если есть ошибка переполнения буфера то PaX с grsecurity может не только убивать один процесс. Может убить все процессы пользователя и запретить ему вход в систему. Может вообще само ядро убить! Мы не знаем какую область памяти перезапишим за пределами буфера.

Общее правило: проактивные системы защиты, которые убивают процессы, нельзя использовать в системах критических для жизни людей, экологии, производства ИТП...

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

145. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +1 +/
Сообщение от Дон Ягон (ok), 05-Мрт-20, 17:06 
>> Мне не понятно, почему бы не резервировать эти процессы на изолированных контурах, например.
> А кто даст гарантию что не упадет процесс отвечающий за переключения или вообще само ядро, для которого тоже W^X применяется?

Всё зависит от того, как именно всё реализовано. Мы этих моментов не уточнили - я не понимаю, как тебе ответить: мы можем придумывать примеры и контрпримеры почти бесконечно.
Например, переключатель может быть вообще исполнен в железе.

> В системах для которых кретически важна безперебойная работа используют другие, более дорогие, техники безопасности. А PAX включают только в режиме softmode для журналирования.

Я не знаю, что именно там используется, но представить там PaX я вполне могу.

> Смотри на ситуацию вирусной атаки

Смотрю: пришёл хакир-вася, поломал мой мега-софт и выключил жизнеобеспечение пациента/систему АЗ АЭС. Потому что может. В логе осталась запись. Успех.
(за скобками оставляем вопрос о том, откуда на нашем мега-важном производстве взялся удалённый доступ к критичным сервисам из недоверенной сети)

>> Процесс может упасть из-за более тривиальной баги, не связанной с безопасностью - что тогда?
> Тогда виноват не админ с PaX а программист...

За падение даже куда менее критичных сервисов админ, работающий на вменяемую компанию, обычно получает конкретный втык. Смерть пациента или проблемы с АЭС - это, с ненулевой вероятностью, подсудное дело.
И перевод стрелок тут не прокатит. И тем более не понятно, почему в падении из-за бага (т.е. без внешнего злонамеренного воздействия) виноват программист, а в падении из-за уязвимости - администратор. Код в обоих случаях написан условным программистом. Система в обоих случаях обслуживается условным администратором.

> Еще разок, если есть ошибка переполнения буфера то PaX с grsecurity может не только убивать один процесс. Может убить все процессы пользователя и запретить ему вход в систему. Может вообще само ядро убить! Мы не знаем какую область памяти перезапишим за пределами буфера.

Што?

> Общее правило: проактивные системы защиты, которые убивают процессы, нельзя использовать в системах критических для жизни людей, экологии, производства ИТП...

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

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

148. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (148), 07-Мрт-20, 14:28 
> Всё зависит от того, как именно всё реализовано. Мы этих моментов не уточнили - я не понимаю, как тебе ответить: мы можем придумывать примеры и контрпримеры почти бесконечно.

Например, переключатель может быть вообще исполнен в железе.

> Я не знаю, что именно там используется, но представить там PaX я вполне могу.
> > Еще разок, если есть ошибка переполнения буфера то PaX с grsecurity может не только убивать один процесс. Может убить все процессы пользователя и запретить ему вход в систему. Может вообще само ядро убить! Мы не знаем какую область памяти перезапишим за пределами буфера.
> Што?

Есть общая теория проактивной защиты. Область применения: гарантии безопасности некретических для жизни человека, экологии, ... ИТ систем. Доступность сервисов в этой теории неважна, важны гарантии безопасности и недопущения вреда самой ИТ системе. Грубо говоря в этой теории выделяют 3 класса активной реакции системы на взлом:
1. Убить один процесс который нарушил определенные правила.
2. Убить все процессы некого пользователя и запретить создания новых процессов этому пользователю, который сильно нарушает правила.
3. Ядро OS убивает себя. В самой критической ситуации для предотвращения развития атаки ядро OS убивает само себя.

Пример реализации:
CONFIG_GRKERNSEC_BRUTE=y
CONFIG_GRKERNSEC_KERN_LOCKOUT=y
https://en.m.wikibooks.org/wiki/Grsecurity/Appendix/Grsecuri...
"If you say Y here, when a PaX alert is triggered due to suspicious
activity in the kernel (from KERNEXEC/UDEREF/USERCOPY)
or an OOPS occurs due to bad memory accesses, instead of just
terminating the offending process (and potentially allowing
a subsequent exploit from the same user), we will take one of two
actions:
If the user was root, we will panic the system
If the user was non-root, we will log the attempt, terminate
all processes owned by the user, then prevent them from creating
any new processes until the system is restarted
This deters repeated kernel exploitation/bruteforcing attempts
and is useful for later forensics."

Для админа это очень важно понимать!!!

Вот пример: по соседству https://www.opennet.ru/openforum/vsluhforumID3/119792.html#146
он думает что Linux capabilities и DAC это одно и тоже. На практике будет тоже что с умершим в больнице пациентом: в случае запрета доступа DAC прога получает просто Access denied от ядря и может его обработать, а в случае нарушения capabilities проактивное ядро OS этот процесс убет.

> > > Процесс может упасть из-за более тривиальной баги, не связанной с безопасностью - что тогда?
> > Тогда виноват не админ с PaX а программист...
> За падение даже куда менее критичных сервисов админ, работающий на вменяемую компанию, обычно получает конкретный втык.
> ... И перевод стрелок тут не прокатит.

За баг в программе отвечает програмист, тестер, а не админ. Админ может только поймать баг и написать по этому поводу рапорт. Да, резервирование, мониторинг и подем упавших сервисов, минимизация/исключение времени простоя - дело админа.

> не понятно, почему в падении из-за бага (т.е. без внешнего злонамеренного воздействия) виноват программист, а в падении из-за уязвимости - администратор.

Если падение из-за бага программы виновны однозначно только разработчики программы.

Если падение вызвано активной реакцией ядра OS на попытку эксплуатации уязвимости, то уже могут быть виновны не только програмисты, написавшие уязвимый код. В этом случае есть действие админа который установил проактивную защиту ядра OS. И если проактивная защита была установлена в системе, для которой предоставление сервиса более важно чем ее безопасность, то это уже вина админа.

Если код уязвим и идет вирусная атака, то в случае дешовой проактивной защиты, сервис будет недоступен даже с резервированием и защитой от сбоев. В этом случае для гарантии доступности сервиса приходится применять более дорогие средства защиты и обязанность админа их применить.

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

76. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (68), 18-Фев-20, 10:02 
А кто за лоббирование бесполезной для жизни и очень вредной для безопасности, технологии JIT, деньгу проплачивает?
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

82. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 19-Фев-20, 07:49 
Типичная апологетика и двойные стандарты.

> Во-первых, "W^X part two" не соответствует букве стандарта.

Зато соответствует модели угроз с учётом реальных техник эксплуатации и настраивается отдельно для каждого исполняемого файла. SELinux позволяет наложить аналогичные ограничения. Если лично для вас какие-то стандарты важнее, то это лишь ваши критерии.

Про OpenBSD можно сказать, что в отличие от PaX и даже SELinux она не даёт пользователю _выбора_: следовать стандартам или отклониться от него для решения поставленных задач.

> Во-вторых, что куда хуже, оно ломает приложения.

Не ломает приложения, а лишь требует настройки. Как и большинство более сложных мер безопасности, вроде MAC.

> Наконец, в третьих, OpenBSD предлагает решать проблему с "W^X part two" внутри самого приложения, при помощи pledge.

Отказываться от пакетов поставщика дистрибутива ОС, патчить исходники и собирать свои бинарники прикручивать pledge через инъекцию библиотеки посредством LD_PRELOAD - это нелепость и действительно неудобно.

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

86. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 20-Фев-20, 07:27 
>> Во-первых, "W^X part two" не соответствует букве стандарта.
> Зато соответствует модели угроз с учётом реальных техник эксплуатации и настраивается отдельно для каждого исполняемого файла. SELinux позволяет наложить аналогичные ограничения. Если лично для вас какие-то стандарты важнее, то это лишь ваши критерии.

При чём тут мои критерии? Приложения (хромиум, java) перестанут работать. Лично ты (или я - не суть) можешь настраивать свою инсталляцию ОС как тебе угодно, если ты выпускаешь ОС общего назначения и предполагаешь, что пользователь сможет использовать общеупотребимое ПО, то следить за тем, чтобы приложения были сломаны _необходимо_.

> Про OpenBSD можно сказать, что в отличие от PaX и даже SELinux она не даёт пользователю _выбора_: следовать стандартам или отклониться от него для решения поставленных задач.

OpenBSD не нарушает стандарт, а дополняет его. В позиксе нет pledge, но иметь свои сисколы - можно! Это ничем принципиально не отличается от какого-нибудь линукс-специфичного epoll, я не знаю.

>> Во-вторых, что куда хуже, оно ломает приложения.
> Не ломает приложения, а лишь требует настройки. Как и большинство более сложных мер безопасности, вроде MAC.

Использовать MAC для того, "чтобы браузер не мог вылезти за пределы ~/Downloads" - это забивать гвозди микроскопом. Хотя MAC MAC'у рознь, по разному бывает, наверное. В любом случае, в случае с pledge, _пользователю_ не придётся ничего настраивать.
И pledge не отменяет MAC. Конкретно в OpenBSD MAC нет, но ничто не мешает сделать, при нужде.

В моём понимании, все эти селинуксы (и важнее, что оно реализует RBAC), это история больше не про "защиту браузера", а про разграничение доступа между сотрудниками отделов с разными уровнями допуска в организациях типа АНБ. Ну да, "W^X part two" оно тоже умеет, но это скорее посмеяться, имхо.

>> Наконец, в третьих, OpenBSD предлагает решать проблему с "W^X part two" внутри самого приложения, при помощи pledge.
> Отказываться от пакетов поставщика дистрибутива ОС
> патчить исходники и собирать свои бинарники

Именно. И протаскивать патчи в апстрим ПО (типа если платформа = опенбсд, то pledge(...)).
Чтобы потом другим пользователям не нужно было патчить самим.

> прикручивать pledge через инъекцию библиотеки посредством LD_PRELOAD

lol

> это нелепость и действительно неудобно.

Неудобно и, главное, небезопасно, ставить ручками флаги paxctl'ем или запускать костыледемон paxd. pledge() предполагает, что будет использоваться автором программы, а не пользователем; его добавление требует понимания логики работы программы, или хотя бы умения понять, какие сисколлы использует ПО. Да, конкретно prot_exec очень часто можно безопасно отрывать, но использовать pledge только ради этого - идиотизм. Не нужно пытаться делать из openbsd pax и повторять все его недостатки и/или особенности. Pledge не заточен конкретно на "W^X part two", это только часть возможностей.

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

88. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 20-Фев-20, 12:06 
> При чём тут мои критерии? Приложения (хромиум, java) перестанут работать.

Что ты тут ёрничаешь? Перестанут работать, только если не будет способа снять для них запрет. В PaX этот способ есть. Выбор между режимами явного включения и явного отключения запретов (механизмов защиты), softmode - тоже есть.

По умолчанию (softmode не включён) механизмы должны явно отключаться, и это общепринятый подход "белого списка", который является лучшей практикой в отрасли. Лично тебе важнее стандарты, которые писались буквально в прошлом веке - так это лично твоё дело, и только.

> Лично ты

Отвечаю взаимностью.

> следить за тем, чтобы приложения [не] были сломаны _необходимо_.

Тирада о банальностях. paxctld и paxmark ранее в Hardened Gentoo созданы именно для этого, но тебя снова не устраивает.

> OpenBSD не нарушает стандарт, а дополняет его.

Ты или притворяешься, или действительно не понял, что я сказал? OpenBSD не предоставляет пользователям выбора: нарушать стандарт по умолчанию (или по явному волеизвявлению а ля softmode в PaX), но усилить безопасность, или не нарушать стандарт, но в ущерб безопасности.

В OpenBSD всё решили за пользователя: только следование стандарту, только в ущерб безопасности. Выбор оставили только разработчикам, то есть, себе любимым - тот самый pledge.

В PaX - кроме того, что можно включать/отключать защиты, никто не мешает собрать ядро без PAX_MPROTECT и следовать стандартам хоть до посинения, из коробки.

> Использовать MAC для того, "чтобы браузер не мог вылезти за пределы ~/Downloads"
> - это забивать гвозди микроскопом.

Твоё мнение очень важно для всех. Ты даже не понял, о чём речь, потому что не знаешь, что SELinux позволяет устанавлливать запрет, аналогичный PAX_MPROTECT, и выбор у пользователя есть, хотя бы и в такой форме. Даже в линуксе. А в OpenBSD - выбора нет. Если тебе этот выбор не нужен - это твоё и только твоё дело.

> бывает, наверное. В любом случае, в случае с pledge, _пользователю_ не
> придётся ничего настраивать.

Не только не придётся, но и возможности нет. Кроме хаков с LD_PRELOAD и аналогичных.

> это история больше не про "защиту браузера", а про разграничение доступа

Ознакомься и не позорься: https://akkadia.org/drepper/selinux-mem.html

>> патчить исходники и собирать свои бинарники
> Именно. И протаскивать патчи в апстрим ПО (типа если платформа = опенбсд,
> то pledge(...)).
> Чтобы потом другим пользователям не нужно было патчить самим.

Что и требовалось доказать. Двойные стандарты как они есть: бремя модификации исходников, сборки и распространения пакетов - тебя не смущает. А "сломанные приложения" и "неправильные" paxctl(d) - смущают. Whitelisting - плохо, blacklisting - хорошо. Цирковое училище оканчивал?

>> прикручивать pledge через инъекцию библиотеки посредством LD_PRELOAD
> lol

Действительно, смешно. Это ведь единственный способ усилить защиту памяти аналогично PAX_MPROTECT/SELinux без затрат на пересборку/распространение, который оставлен пользователям OpenBSD её разработчиками.

>> это нелепость и действительно неудобно.
> Неудобно и, главное, небезопасно, ставить ручками флаги paxctl'ем или запускать костыледемон

Ну-ка, ну-ка, чем небезопасно?

> paxd.

paxctld. Сразу видно знатока.

> pledge() предполагает, что будет использоваться автором программы, а не пользователем;

Вот именно. Защищённая система, где включать защиты можно только разработчикам. ;) Дальше очередная тирада о банальностях. Вчера заучил и додумал, сегодня с умным видом повторяешь.

> Не  нужно пытаться делать из openbsd pax

При всём желании не получится. Не доросли.

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

90. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 20-Фев-20, 17:55 
> Перестанут работать, только если не будет способа снять для них запрет. В PaX этот способ есть. Выбор между режимами явного включения и явного отключения запретов (механизмов защиты), softmode - тоже есть.

Ну то есть ещё раз: если для некоторых приложений не ОТКЛЮЧИТЬ pax-защиты, они работать не будут.
С pledge также не получится отозвать у этих приложений prot_exec (приложения сломаются по всё тем же причинам), зато можно отозвать у приложения какие-то другие права или даже ограничить его доступ к fs при помощи unveil.
Пример - да всё тот же хромиум. В случае pax ты получаешь обычный хромиум, в случае OpenBSD - запертый в ~/Downloads браузер.

>> следить за тем, чтобы приложения [не] были сломаны _необходимо_.
> Тирада о банальностях. paxctld и paxmark ранее в Hardened Gentoo созданы именно для этого, но тебя снова не устраивает.

Как кого-то это говно может устраивать?

Даже отбрасывая рассуждения о потенциальной дырявости всех этих волшебных приложений, и, главное, адекватности их конфигурации, можно же просто немного подумать головой: paxctl перелючает защиты для отдельного бинарника, pledge же можно более гибко разместить в коде программы (например, после инициализации и до main loop, чтобы например, во время инициализации разрешать условный dlopen(), а после - нет) и выдавать отдельные разрешения для каждого процесса.

Но нет, гораздо лучше надрачивать на мандатный контроль доступом, который типа даёт гарантии (на самом деле - выключается руками, чтобы хоть что-то работало).

>> OpenBSD не нарушает стандарт, а дополняет его.
> Ты или притворяешься, или действительно не понял, что я сказал? OpenBSD не предоставляет пользователям выбора: нарушать стандарт по умолчанию (или по явному волеизвявлению а ля softmode в PaX), но усилить безопасность, или не нарушать стандарт, но в ущерб безопасности.

Если ты умеешь писать код, то выбор есть (в любой ОС). А предлагать пользователю решать самому - абсурд, бОльшая часть выберет работающие приложения, а не безопасность. Какой смысл в защите, которая всё равно выключается или никогда не включается? Чтобы потом на нытьё "а чо миня фсьо равно паламали" - ну вы же сами всё отключили, мы-то тут причём?
Optional security - это то, что принципиально не делают в OpenBSD. Местный подход к обеспечению безопасности - security by default - все интегрированные в ОС механизмы защиты включены и работают по-умолчанию, отключить их нельзя. Контрпример с wxneeded - едва ли не единственный, и его наличием никто не гордится.

> В OpenBSD всё решили за пользователя: только следование стандарту, только в ущерб безопасности.

Решили, но не в ущерб безопасности. Хром на ведре с PAX-патчами не становится безопаснее, потому что для него PAX всё равно выключается.

> Выбор оставили только разработчикам, то есть, себе любимым - тот самый pledge.

Нет, не себе любимым, а всем.

> Ты даже не понял, о чём речь, потому что не знаешь, что SELinux позволяет устанавлливать запрет, аналогичный PAX_MPROTECT, и выбор у пользователя есть, хотя бы и в такой форме.

Вообще-то знаю, я даже написал про это в сообщении, на которое ты отвечаешь: "Ну да, "W^X part two" оно тоже умеет, но это скорее посмеяться".

> Даже в линуксе. А в OpenBSD - выбора нет. Если тебе этот выбор не нужен - это твоё и только твоё дело.

Повтори мантру про выбор ещё, чо.
Если ты прям мамой готов поклясться, что тебе нужен строгий W^X для безопасносте приложения и только этого не хватает для счастья - сделай патч, это 1-2 строки кода примерно будет. Если ограничиваться только отзывом prot_exec.
Наружная крутилка для внутренней логики работы программы - это абсурд и иллюзия безопасности.

>> бывает, наверное. В любом случае, в случае с pledge, _пользователю_ не придётся ничего настраивать.
> Не только не придётся, но и возможности нет. Кроме хаков с LD_PRELOAD и аналогичных.

Не делай, пожалуйста так (хак с LD_PRELOAD). Ты совсем не понял суть pledge, если хочешь делать так.
W^X part 1 зафоршен общесистемно (плюс paxctl'еобразный костыль с wxneeded), отозвать prot_exec можно только через вызов pledge и это by design, возможность настройки этого пользователем не сделана намеренно. В крайнем случае, возможность _отключить_ pledge в отладочных целях может быть реализована в самом коде программы.

>> это история больше не про "защиту браузера", а про разграничение доступа
> Ознакомься и не позорься: https://akkadia.org/drepper/selinux-mem.html

Да в курсе я, в курсе. Это смешно, конечно.
Там уже перестали при каждом чихе рекомендовать делать setenforce=0?

В целом же, я про другое. Использовать selinux для включения W^X для отдельно взятого приложения, конечно же, можно, только очень неудобно. И вообще, огораживать приложения им, ИМХО, неудобно. До сих пор это нормально не доведено до ума.
Удобно ли им (селинуксом) огораживать доступы пользователей в зависимости от их класса доступа и прочий RBAC я не знаю, не имел такого опыта, но сравнимых альтернатив в любом случае особенно нет, чего нельзя сказать про W^X. AppArmor и т.п. - немного другое всё же.

> Двойные стандарты как они есть: бремя модификации исходников, сборки и распространения пакетов - тебя не смущает. А "сломанные приложения" и "неправильные" paxctl(d) - смущают. Whitelisting - плохо, blacklisting - хорошо. Цирковое училище оканчивал?

Не смущает, потому что ПО будет работать также, как во всех прочих ОС, в которых W^X part 2 также не зафоршен по умолчанию, т.е. примерно во всех. Т.е. будет не хуже.
Бремя модификации исходников, по задумке, ложится на разработчика или на мэйнтейнера. Пользователю  про это думать не нужно, разве что по личной инициативе. И pledge, повторюсь, задуман ради бОльшего, нежели отзыв prot_exec.

>>> прикручивать pledge через инъекцию библиотеки посредством LD_PRELOAD
> Действительно, смешно. Это ведь единственный способ усилить защиту памяти аналогично PAX_MPROTECT/SELinux без затрат на пересборку/распространение, который оставлен пользователям OpenBSD её разработчиками.

Это принципиально неверный способ использования pledge. Его предполагается вызывать после того, как приложение закончило инициализацию, подгрузило все модули и перед тем, как оно перешло в main loop. Так как предлагаешь ты, ничего нормально работать не будет.

>>> это нелепость и действительно неудобно.
>> Неудобно и, главное, небезопасно, ставить ручками флаги paxctl'ем или запускать костыледемон
> Ну-ка, ну-ка, чем небезопасно?

Тем, что это лишний запущеный демон, читающий конфиг, написанный условным человеком. Настраивающий защиту памяти.
Человеку нужно разбираться в особенностях работы каждой отдельно взятой программы или выставлять более пермиссивные разрешения (= "отключить, чтобы работало").
Мне, конечно, следовало написать "потенциально небезопасно".

>> paxd.
> paxctld. Сразу видно знатока.

Знатоком сортов говен не являюсь. Так или иначе, paxd тоже был: https://github.com/thestinger/paxd-archive

>> pledge() предполагает, что будет использоваться автором программы, а не пользователем;
> Вот именно. Защищённая система, где включать защиты можно только разработчикам. ;)

Нет. Они или есть и включены изначально, или их просто нет. Опциональная безопасность = не безопасность. История "успеха" setenforce 0, то есть, простите, selinux, тому пример.

>> Не  нужно пытаться делать из openbsd pax
> При всём желании не получится. Не доросли.

Провокация не удалась, я не намерен ни хамить, ни оправдываться. Ваше право думать так, как вы думаете. Почему я думаю так как я думаю я уже написал.
Дальше очередная тирада о банальностях. Вчера заучил и додумал, сегодня с умным видом повторяешь.

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

91. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 20-Фев-20, 22:33 
> Ну то есть ещё раз: если для некоторых приложений не ОТКЛЮЧИТЬ 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 же на ядерном поприще если и делается что, так только под лозунгами наведения корректности. Явный курс на безопасность они оставили ещё в начале нулевых и с тех пор даже не пытались на него вернуться.

> я не намерен ни хамить, ни оправдываться.

Ты уже нахамил. Сперва на "ты" перешёл в фамильярной форме, затем физиологизмами свои писульки приправил. Или ты считаешь, что только прямые личные оскорбления хамством являются?

> Ваше право думать так, как вы думаете.

С этого надо было начинать. А уж если и заканчивать, то без "говен" и "надрачивать" по тексту выше.

> Почему я думаю так как я думаю я уже написал.

А я тебе аргументированно возразил. Пишешь своё авторитетное экспертное мнение в комментах, претендуя на что-то уровнем выше плинтуса ("троллинга") - знай, о чём пишешь, умей держаться в рамках приличий, понимать написаннное тебе в ответ и возражать по существу, а не прыгать с темы на тему.

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

94. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 21-Фев-20, 06:34 
> Ну то есть ещё раз: если для некоторых приложений не ОТКЛЮЧИТЬ pax-защиты, они работать не будут.
> А если отключить - будут. Ещё раз: это whitelisting, лучшая практика по индустрии.

Вместо решения конкретных проблем - мантры о стандартах индустрии. В случае проблем в условном хромиуме, PAX ему принципиально ничем помочь не может, в то время как pledge - потенциально да. А кроме браузера на десктопах, например, не так много запущено приложений, которые нужно защищать.

> какой PaX неудобный и неправильный, что говно и что абсурд

PaX таки решает ту проблему, что призван, если не выключен, конечно. Так что совсем неправильным не назвал бы. Но да, неудобен.
И говном я назвал не PaX, а paxd. Ну и, видимо, paxctld. Именно им я не пользовался, но едва ли он может чем-то принципиально отличаться от paxd. Сама идея подобного демона уже отвратительна. Вместо того, чтобы уменьшать количество сущностей, мы их плодим. Ну и как бы расписываемся в том, что управлять конфигурацией исключений pax без отдельного демона-костыля не очень удобно. Хотя, казалось бы, можно хотя бы пакеты с нужными xattrs собирать (гнутый  tar, да и вроде bsdtar (libarchive) их умеет).

>> предлагать пользователю решать самому - абсурд
> Раскрылся, эксперт.

Да я и не скывался, лол. По-существу: автор программы в любом случае лучше пользователя знает, какие разрешения нужны его программе. Предположение о том, что пользователь в общем случае будет вдумчиво анализировать, а не "отключать, чтобы работало" - нелепость и абсурд, да.

>>> В OpenBSD всё решили за пользователя: только следование стандарту, только в ущерб безопасности.
>> Решили, но не в ущерб безопасности. Хром на ведре с PAX-патчами нестановится безопаснее, потому что для него PAX всё равно выключается.
> Нет, именно в ущерб. В PaX без MPROTECT работают процессы, для которых он явно отключён, а в OpenBSD без аналогичной защиты работает всё, что не собрано с pledge.

Это так, в OpenBSD без вызова pledge (по-умолчанию) mprotect позволяет переключать память в +x. Это действительно следование стандарту и реальности, в которой есть приложения (нужные) на этот стандарт рассчитывающие.
PAX MPROTECT (не включённый по-умолчанию примерно нигде, кстати) такого не позволяет, да.
Я тебе даже больше скажу: до того, как появился pledge, был период (годы), когда в OpenBSD был только W^X pt 1 и всё. И вовсе не потому, что никто в openbsd не догадывался, что можно реализовать W^X pt 2, подсказываю. Даже более того, прежде чем просто W^X внедрили, долгое время занимались аудитом кода (базовой системы) и его адаптацией к грядущему принудительному W^X.

PAX MPROTECT - это сиюминутное решение, "починить" здесь и сейчас, не считаясь с потерями. Pledge требует затрат на внедрение, но решает проблему с W^X pt 2 (и не только) в перспективе. PAX MPROTECT - костыль (в хорошем смысле слова; вот paxd - в плохом), быстрое решение, pledge - api для privilege revocation вообще. В перспективе, если всё сложится, pledge будет использоваться примерно во всех программах, что повлечёт за собой в том числе и W^X pt 2 везде, где возможно - при использовании pledge prot_exec по-умолчанию запрещён. А в будущем у PAX MPROTECT всё те же per-binary исключения и выключенность по-умолчанию примерно везде. Даже в NetBSD, в единственной ОС (HardenedBSD - не вполне самостоятельная ОС), в которой он из коробки, без необходимости патчить ядро, по умолчанию он выключен.

Но да, сейчас PAX MPROTECT позволяет "одной кнопкой" зафорсить W^X pt 2, а OpenBSD - нет. Но это не значит, что PAX MPROTECT лучше или правильнее. Безопаснее - да, если речь не про ПО, которому нужен mprotect с неотломанным +x.

>> Вообще-то знаю, я даже написал про это в сообщении, на которое ты отвечаешь: "Ну да, "W^X part two" оно тоже умеет, но это скорее посмеяться".
> Когда нет аргументов по существу, остаётся только "смех" и физиологизмы.

Аргументы: это неудобно. И непрактично. Существование того же PaX во многом обусловлено тем, что selinux сложен и неудобен. Хотя и более гибок (на самом деле, надо читать не "хотя и", а "потому что").

>>> Даже в линуксе. А в OpenBSD - выбора нет. Если тебе этот выбор не нужен - это твоё и только твоё дело.
>> Повтори мантру про выбор ещё, чо.
> И повторю.

Бога ради. Конкретно отзыв prot_exec, а не осмысленное внедрение pledge добавляется тривиально. Чем стонать тут про отсутствие выбора, попатчили бы уже то, что нужно. Но нет, испускать шум интереснее. Бог в помощь.

>> сделай патч, это 1-2 строки кода примерно будет.
> Сделать патч, пересобрать, развернуть.

Отослать патч автору ПО, добиться включения в кодовую базу, забыть навсегда.

> С PaX обхожусь без этих лишних трудозатрат, оставляя ресурсы для более важных вещей.

Слабый аргумент, как по мне. Если бы было нужно решить какую-то настоящую проблему, а не поныть, патч был бы сделан. Если никакой проблемы решать не надо - ждите, пока кто-то напишет патч за вас.

>> Наружная крутилка для внутренней логики работы программы - это абсурд и иллюзия безопасности.
> Иллюзия безопасности - это OpenBSD с набором защит ядра уровня ниже PaX начала нулевых.

OpenBSD, несмотря на все стереотипы, всегда достаточно осторожно относились к внедрению всяческий "секурити фич". Важно не только внедрить защиту, но и не сломать нужное ПО, работающее в рамках стандарта, а также не просадить до невозможности производительность. Ибо OpenBSD - ОС общего назначения. Что касается патчей от PaX, то даже во времена открытого grsecurity не было ни одного "серьёзного" дистрибутива, использующего наработки PaX и чтобы они был включены по умолчанию. Отдельные наработки, типа того же W^X pt 1 и 2 перекочевали в NetBSD (отключены по умолчанию) и в HardenedBSD (забирать код из которого в родительский FreeBSD фряшники не спешат и пилят свой сорт pledge - capsicum). Отдельные специализированные (и серьёзные, уже без кавычек, хотя я и в первый раз ничего сильно плохого не имел ввиду) дистрибутивы, типа Openwall, насколько я знаю (самому использовать не приходилось) используют (или использовали в прошлом) активированный PaX, но, ключевое слово тут - специализированные, ЕМНИП едва ли не где-то на опеннете (но и не только) Солар высказывался о том, что, например, для графического десктопа Openwall не очень подходит, и это так задумано, а не так получилось. Так как ограниченная поддержка стандартов заявлена изначально, сравнивать с операционными системами общего назначения не вижу смысла, разные поставленные цели могут требовать разных инструментов.

>> Не делай, пожалуйста так (хак с LD_PRELOAD). Ты совсем не понял суть pledge, если хочешь делать так.
> Это тебе кажется, что я не понял. Wishful thinking. Хочешь казаться экспертом, а демонстрируешь неспособность понимать смысл написанного в контексте.

Ну ты написал "прикручивать pledge через инъекцию библиотеки посредством LD_PRELOAD", я вот именно про это.

Суть pledge - сделать удобный api для privilege revocation, а не слепить костыль для принудительного отключения prot_exec. Если в итоге появится и преуспеет описанный костыль, то задумка pledge будет в известной степени провалена. Хороший и правильный вариант - осмысленная модификация кода программы.
А то, что pledge можно позвать более чем 1 раз, уменьшая каждый раз список выданных классов доступа, я в курсе, спасибо.

В любом случае, ты зря думаешь, что я считаю себя экспертом.
Про враппер прокомментирую отдельно ниже.

> Знаю людей, которые пишут собственные политики для систем с усиленной защитой ядра (grsecurity). Потому что - сюрприз! - штатные политики никуда не годятся, ибо накладывают слишком общие и потому почти бесполезные ограничени. Так вот, они не делают setenforce=0. Представь себе, целевая аудитория систем с заявкой на повышенную защищённость - не только хомячки, за которых нужно делать выбор. И задачи они решают не только по защите локалхоста от мнимых угроз.

Я не знаю, какие задачи эти люди решают -> не знаю, насколько оправдано их решение. Я не говорю, что MAC или RBAC не нужен никому никогда в принципе и вообще бесполезен, я говорю, что они плохо подходят для защиты приложений "от самих себя" (ну чтобы там условный хромиум не мог залезть в ~/.ssh/, например). Но есть и области применения, где они, напротив, уместны.

Если люди не хотят, чтобы за них был сделан выбор, они и в код посмотрят, и патч, если надо напишут, и всё вообще на свете сделают и проверят. А _по_умолчанию_ должен быть максимально безопасный вариант, но в пределах допустимого стандартом, если заявлена поддержка оного.

>> В целом же, я про другое. Использовать selinux для включения W^X для отдельно взятого приложения, конечно же, можно, только очень неудобно.
> Удобно или нет, но это можно сделать, и находятся люди, которые делают, в рамках кастомных более запретительных политик MAC.

Абсолютно не важно, что кто-то сумел так всё настроить. Этот кто-то молодец. Важно, что это неудбно. Зачем использовать более сложный вариант при наличии более простого при равном итоге?

>> огораживать приложения им, ИМХО, неудобно.
> Да неужели прогресс? Уже не "говно" и не "абсурд", а "ИМХО, неудобно".

Говно - это paxd. Абсурд - это подход с настройкой возможности prot_exec извне приложения, потому и неудобно.

>> И pledge, повторюсь, задуман ради бОльшего, нежели отзыв prot_exec.
> А флаги PaX - ради меньшего. У них более узкие задачи, с которыми они прекрасно справляются.

Ага. Костыли для отключения костыля. Но спорить не буду - делает то, что обещает делать.

>> Это принципиально неверный способ использования pledge. Его предполагается вызывать после того, как приложение закончило инициализацию, подгрузило все модули и перед тем, как оно перешло в main loop. Так как предлагаешь ты, ничего нормально работать не будет.
> Во-первых, тебя сносит в обсуждение собственных мыслей о pledge. Если б ты постарался понять (или не сделал бы вид, что не понял), о чём тебе собеседник пишет, то заметил, что речь шла о включении запрета на использование PROT_EXEC.

Вот тут есть маленько, продолбался. Я не знаю, почему решил что речь об отзыве всех разрешений. Тем более, pledge можно вызвать N раз, при условии, что правила становятся только строже.

> И его-то нужно включать как можно раньше: что через хак с LD_PRELOAD, что через штатное использование pledge() в исходниках.

В целом согласен, хотя и большой проблемы в более позднем отзыве prot_exec не вижу - инициализация  обычно это в худшем случае секунды, это не успеют использовать. Но да, prot_exec отзовётся уже при первом вызове pledge, который нужно делать как можно раньше.

> В main loop, как ты выразился, можно включать другие запреты, которые при включении на более ранних стадиях помешали бы нормальной инициализации приложения.

Всё так. Я не вполне сейчас могу объяснить себе, почему я написал то, что написал, на самом деле я хотел написать что-то типа того, что написал (чуть выше, там где про api для privilege revocation). Видимо, в последний момент переключился на другую мысль. Так или иначе, это мой косяк, спасибо.

> Более сложный рантайм-враппер, подгруженный через LD_PRELOAD
> При желании такой враппер можно даже сделать настраиваемым через конфиг, где описывать набор правил: в момент вызова какой процедуры - какие ограничения включать.

Последнее не будет работать, т.к. pledge позволяет только уменьшать список доступных классов доступа (обратное было бы небезопасно) в пределах процесса.
Настраивать ограничения для отдельной функции в стороннем (по отношению к приложению) конфиге мне в любом случае не кажется хорошей идеей.
Использовать LD_PRELOAD - тоже. Хотя бы потому что LD_PRELOAD игнорируется для suid и sgid бинарников, лепить ещё один костыль для обхода этого - странно.

>> Мне, конечно, следовало написать "потенциально небезопасно".
> "Потенциально небезопасно" - высказывание с объёмом, близким к бесконечности и обратно пропорциональным же содержанием. Лучше б ты вообще промолчал.

В конкретном случае всё просто. В случае pledge всё настроено один раз в жизни при написании программы и в дальнейшем настроек не требует вообще, разве что, программа принципиально поменяет набор возможностей и/или способ их реализации. Но даже в этом случае можно обложиться тестами, например. В случае с PaX нужно поддерживать в правильном состоянии конфиг условного paxd (обновлять его настройки согласно требованиям программ), нужно держать в системе запущенный демон, который может выставлять рутовым бинарникам опасные разрешения - это всё, очевидно, сложнее чем отсутствие какой либо настройки. При равном (в итоге) результате - зачем?

>> Знатоком сортов говен не являюсь.
> А совершенно не важно, говна то или не говна. Это всё твои субъективные ощущения, представленные в характерной форме физиологизмов. А по факту ты лишь расписался в том, что судишь о вещах, о которых имеешь самое поверхностное представление.

Каким именно образом? Я не использовал Hardened Gentoo, и не в курсе, что там paxd называется paxctld. И мне не интересно, причём - совсем. Делают они одно и то же, и я слышал ещё по меньшей мере про один аналог. Это именно что сорта говна.
Ссылку на остатки от paxd на гитхабе я тебе скинул - такой демон был. Так что пытаясь обличить меня в недостаточном знании вопроса, ты обличил в нём и себя, так как продемонстрировал, что не знаешь про paxd. Хотя как по мне, можно ничего не знать ни про paxd, ни про paxctld - и то и другое костыли и так делать не надо. Надо хотя бы пакеты с правильными xattrs собирать.

>>>> pledge() предполагает, что будет использоваться автором программы, а не пользователем;
>>> Вот именно. Защищённая система, где включать защиты можно только разработчикам. ;)
>> Нет. Они или есть и включены изначально, или их просто нет.
> Я вот до сих пор не пойму, это такой троллинг, или всё-таки эмоциональный пересказ глубоко воспринятой доктрины? Ну сказал бы "или они просто не работают" - нет, ляпнул "их просто нет". Тут и добавить нечего.

ЯННП. Но и не очень интересно. Но если что, я абсолютно серьёзно отношусь к тому, что пишу на этот счёт. И, как мне кажется, вполне могу обосновать правильность своей позиции.

>> Провокация не удалась
> Это и не провокация, а констатация факта. В PaX (и grsecurity) в начале нулевых уже были защиты от эксплуатаций уязвимостей ядра, пять лет назад появился CFI, а относительно недавно - GCC-плагины для защиты от атак на микроархитектуру (Spectre). В OpenBSD же на ядерном поприще если и делается что, так только под лозунгами наведения корректности. Явный курс на безопасность они оставили ещё в начале нулевых и с тех пор даже не пытались на него вернуться.

Если это не провокация, то демонстрация невежества.
Заморачиваться лень, простой контрпример - KARL. Да, я в курсе, что это не внуриядерный механизм,а скрипты сбоку, но так или иначе, это именно пример защиты ядра. А то, что в OpenBSD стараются решать проблемы наведением корректности, а не "митигациями" - это хорошо. Не забывай, что в OpenBSD значительно более простое и компактное ядро, чем в Linux, даже динамически загружаемые модули не умеет уже, например. И серьёзных дыр _в_ядре_ довольно давно не было (что, конечно же, может быть и не показательно).
В целом, за grsec я перестал следить после того, как они закрыли код. Сделали что-то хорошее - молодцы. Забавно, что ты соскочил со сравнения подхода по включению W^X pt2 на сравнение возможностей OpenBSD и PAX в целом. Это разные ОС, разные подходы и разные ядра. Точнее, PaX - не ОС, а набор патчей, к ядру linux (в основном). Который, на самом деле, тоже не ОС, а только ядро.
Короче, неплохо, что PaX существует и в каких-то ситуациях он может быть полезен и применим, но не надо сравнивать опциональные меры безопасности (применимые не всегда) с безальтернативными (без злого вырезания функционала из кода не заставишь перестать работать).

>> я не намерен ни хамить, ни оправдываться.
> Ты уже нахамил.

А я только про конкретный наброс.

> Сперва на "ты" перешёл в фамильярной форме

Это не была попытка задеть, мы в интернете, тут общение на ты - норма. Я даже не придал этому значения. За это, в принципе, готов извиниться, если почему-то так задело.

> затем физиологизмами свои писульки приправил.

Ты принимаешь это слишком близко к сердцу, тем более, я снабдил это аргументами, а не только обозвал говном. Со своей терминологией я по прежнему согласен, и называть условный paxd "решением", а не говном отказываюсь.

> Или ты считаешь, что только прямые личные оскорбления хамством являются?

Хамством являются _необоснованные_ прямые личные оскорбления. Но мы уходим от изначальной темы совсем уж далеко

>> Почему я думаю так как я думаю я уже написал.
> А я тебе аргументированно возразил. Пишешь своё авторитетное экспертное мнение в комментах, претендуя на что-то уровнем выше плинтуса ("троллинга") - знай, о чём пишешь, умей держаться в рамках приличий, понимать написаннное тебе в ответ и возражать по существу, а не прыгать с темы на тему.

Сложно удержаться от соблазна потроллить, когда человек просто не хочет открывать для себя новое, потому что уже есть привычные решения. А иногда это вызывает раздражение, когда начинает казаться, что троллят тебя. Там где ты поправил меня по существу - я сказал тебе спасибо, и это за дело. А в целом, меня устраивает, как я выражаю мысли. Ты пишешь сюда не потому что тебе очень приятно общаться со мной, а потому что у тебя есть возражения, вот давай на них и сосредоточимся.

И да, экспертом я себя не считаю.

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

95. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от б.б. (?), 21-Фев-20, 08:04 
ничего себе тут войну и мир пишут...

можно уже на бумаге издавать

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

96. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 21-Фев-20, 12:48 
> Вместо решения конкретных проблем - мантры о стандартах индустрии.

Это ты сейчас свои отсылки к стандартам хорошо охарактеризовал.

> И говном я назвал не PaX, а paxd.

Да мне всё равно, что ты назвал. Главное, ты опустился до вербальных метаний фекалиями.

> Да я и не скывался, лол.

Ты хотел казаться. Тон в первом комментарии был соответствующий. И только потом ты убежал в ужимки и прыжки, вкусовщину и физиологизмы.

> Предположение о том,
> что пользователь в общем случае будет вдумчиво анализировать, а не "отключать,
> чтобы работало" - нелепость и абсурд, да.

Действительно, нелепость и абсурд. Это ведь твоё соломенное чучело, про поведение пользователей "в общем случае".

>> Нет, именно в ущерб.
> Это так

ЧТД.

> PAX MPROTECT (не включённый по-умолчанию примерно нигде, кстати) такого не позволяет, да.

Он включён по умолчанию примерно везде, где система работает на ядре с grsecurity. Пользователей softmode - проценты от процентов, если они вообще есть. Уверен, что постоянных нет, включают временно. И так было всегда.

> Я тебе даже больше скажу: до того, как появился pledge, был период
> (годы), когда в OpenBSD был только W^X pt 1 и всё.

Ничего нового ты мне не расскажешь, я эти процессы лично наблюдал.

> PAX MPROTECT - это сиюминутное решение, "починить" здесь и сейчас, не считаясь
> с потерями.

Это решение, которое зарекомендовало себя с лучшей стороны. За ним стоят обоснованные решения разработчиков и многолетний опыт пользователей, среди которых и я.

> у PAX MPROTECT всё те же per-binary исключения и выключенность по-умолчанию
> примерно везде.

Определись уже, выключенность или включённость. Хотя бы в рамках одного коммента. Смотреть жалко на эти вихляния.

> Но да, сейчас PAX MPROTECT позволяет "одной кнопкой" зафорсить W^X pt 2,
> а OpenBSD - нет. Но это не значит, что PAX MPROTECT
> лучше или правильнее. Безопаснее - да, если речь не про ПО,
> которому нужен mprotect с неотломанным +x.

Там, где он нужен, он именно лучше и именно правильнее. Потому что практический выигрыш в плане усложнения эксплуатации уязвимостей перевешивает те мелкие хлопоты, которые PAX_MPROTECT способен создать.

> Аргументы: это неудобно. И непрактично.

Это не аргументы. Тебе неудобно, а мне удобно. Тебе непрактично, а мне практично. И это даже не патовая ситуация. Потому что ты теоретик, а я пользователь grsecurity с многолетним стажем его применения для личных и рабочих нужд. И ладно б я один такой был.

> Существование того же PaX во многом обусловлено тем, что selinux сложен и неудобен.

Этот перл вообще без комментариев. Sapienti sat.

> Конкретно отзыв prot_exec, а не осмысленное внедрение pledge добавляется тривиально.

Тривиально для пользователей, которым разработчики OpenBSD даже расстановку аналогов PaX-флагов решили не доверять? ;)

> Чем стонать тут про отсутствие выбора

Так это ты здесь стонешь, как тебе всё неудобно и говно. Тогда как отсутствие выбора в озвученных рамках - это сухой факт.

> попатчили бы уже то, что нужно. Но нет, испускать шум интереснее. Бог в помощь.

Мне в системах с grsecurity не нужно ничего патчить. PAX_MPROTECT включён по умолчанию, исключения заданы, всё работает. Могу себе позволить повысказываться об особо важных и весомых мнениях, вроде твоего.

>> Сделать патч, пересобрать, развернуть.
> Отослать патч автору ПО, добиться включения в кодовую базу, забыть навсегда.

То ли дело строчку в /etc/paxctld.conf прописать... Непосильная задача!

> Слабый аргумент, как по мне. Если бы было нужно решить какую-то настоящую
> проблему, а не поныть, патч был бы сделан.

Не нужно решать проблему, котрой нет. Это ты будешь носиться с патчами, если захочешь ограничить PROT_EXEC. А у меня в системах с grsecurity ограничения включены по умолчанию.

>> Иллюзия безопасности - это OpenBSD с набором защит ядра уровня ниже PaX начала нулевых.
> OpenBSD, несмотря на все стереотипы, всегда достаточно осторожно относились к внедрению
> всяческий "секурити фич".

С чего ты вообще взял, что я чего-то не знаю и нуждаюсь в твоих рассказах? Ты спросил, уточнил? Нет. Сразу побежал простыню строчить, потому что умным хочешь показаться. Это для тебя главнее, чем любые конструктивные обсуждения и факты. За что и огребаешь, если ещё не понял.

> Важно не только внедрить защиту, но и не сломать нужное ПО, работающее в рамках стандарта

Я тебе про защиты ядра, а ты мне про какое-то сломанное ПО.

> а также не просадить до невозможности производительность.

FUD. Факты где? Фактов нет.

> Ибо OpenBSD - ОС общего назначения.

И сколько людей пользуются этой ОС общего назначения?

> Что касается патчей от PaX, то даже во времена открытого grsecurity не было
> ни одного "серьёзного" дистрибутива, использующего наработки PaX и чтобы они был
> включены по умолчанию.

Что из этого следует? Ты не намекай, ты прямым текстом говори.

> Отдельные наработки, типа того же W^X pt 1
> и 2 перекочевали в NetBSD (отключены по умолчанию) и в HardenedBSD

PaX к NetBSD никакого отношения не имеет. Всё, что и как туда "портировано" из PaX - на совести разрбаботчиков NetBSD.

> Отдельные специализированные [...] используют (или использовали в прошлом) активированный PaX

В Openwall Linux никогда не было ядер с PaX.

> сравнивать с операционными системами общего назначения не вижу смысла, разные поставленные цели
> могут требовать разных инструментов.

Пользователи grsecurity, включая меня, годами используют кастомные ядра с дисрибутивами общего назначения.

> Ну ты написал "прикручивать pledge через инъекцию библиотеки посредством LD_PRELOAD",
> я вот именно про это.

Теперь сходи и посмотри, какую часть твоего коммента я там строчкой выше процитировал. Ты же воспринимать прочитанное в контексте не умеешь, а особо ценное мнение в области защиты систем у тебя уже есть. Парадокс! Даннинга-Крюгера.

> Суть pledge - сделать удобный api для privilege revocation, а не слепить
> костыль для принудительного отключения prot_exec.

Сколько раз ты ещё намерен это повторить?

> В любом случае, ты зря думаешь, что я считаю себя экспертом.
> Про враппер прокомментирую отдельно ниже.

Ты ведешь себя соответствующим образом. Будто хочешь казаться. Самолюбование при даче непрошенных разъяснений так и прёт. Оценка ценности собственного мнения - так и закшаливает.

> Я не знаю, какие задачи эти люди решают -> не знаю, насколько
> оправдано их решение.

А я не спрашиваю твоих оценок их решениям. Я тебе указываю на факт, что у сложных механизмов защиты есть свои пользователи, помимо бездумно отключающих SELinux.

> я говорю, что они плохо подходят

Говори на здоровье. На заборах тоже кто-то высказывается.

> Если люди не хотят, чтобы за них был сделан выбор, они и
> в код посмотрят, и патч, если надо напишут, и всё вообще
> на свете сделают и проверят.

Ага, и операционку свою напишут. За пару вечеров. Тебе сколько лет, уважаемый? С понятием запретительно высоких издержек знаком?

> А _по_умолчанию_ должен быть максимально безопасный
> вариант, но в пределах допустимого стандартом, если заявлена поддержка оного.

Кому должен? Почему должен? Потому что ты так сказал? В OpenBSD могут делать всё, что захотят, в том числе промывать мозги своим доверчевым пользователям. А свои претензии на универсальные критерии можешь употребить по назначению.

> Важно, что это неудбно. Зачем использовать более сложный вариант при наличии
> более простого при равном итоге?

Это тебе важно, что это неудобно. Это тебе неудобно. Это тебе выбор не нужен. А кому-то другому, представь себе, и важно, и удобно, и наличие выбора ценно. Мама с папой за всех говорить не отучили.

>> Да неужели прогресс? Уже не "говно" и не "абсурд", а "ИМХО, неудобно".
> Говно - это paxd. Абсурд - это подход с настройкой возможности prot_exec
> извне приложения, потому и неудобно.

А, нет, не прогресс.

> Ага. Костыли для отключения костыля. Но спорить не буду - делает то,
> что обещает делать.

Да хоть спорь, хоть соглашайся. Ах, Моська, знать она сильна, что лает на слона!

> Вот тут есть маленько, продолбался.

Ты везде продолбался и продолжаешь. Но поймёшь это нескоро, похоже, если вообще поймёшь.

> В целом согласен

А это не важно, согласен или нет. Цель анализа в другом. Носом тыкать не стану, всё ты понимаешь прекрасно.

> хотя и большой проблемы в более позднем отзыве prot_exec
> не вижу - инициализация  обычно это в худшем случае секунды,
> это не успеют использовать. Но да, prot_exec отзовётся уже при первом
> вызове pledge, который нужно делать как можно раньше.

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

> Последнее не будет работать, т.к. pledge позволяет только уменьшать список доступных классов
> доступа (обратное было бы небезопасно) в пределах процесса.

Всё будет работать. Просто ты подумать не потрудился: а вдруг собеседник не глупее тебя и имел ввиду не включение-отключение, а поэтапную безвозвратную установку ограничений, но в заданных местах. Например, на этапе инициализации запретить использование PROT_EXEC, а после listen() - доступ к файлам.

> Настраивать ограничения для отдельной функции в стороннем (по отношению к приложению) конфиге
> мне в любом случае не кажется хорошей идеей.

А я не собираюсь обсуждать, насколько это хорошая идея.

> Использовать LD_PRELOAD - тоже. Хотя бы потому что LD_PRELOAD игнорируется для suid
> и sgid бинарников, лепить ещё один костыль для обхода этого -
> странно.

Только переменная среды игнорируется, а содержимое /etc/ld.so.preload - нет. Костыль лепить не нужно. А вот знать, о чём говоришь, или молчать, о чём знаешь мало - не повредило бы.

> очевидно, сложнее чем отсутствие какой либо настройки. При равном (в итоге)
> результате - зачем?

Сколько апломба-то, госссподи... Равный результат существует только у тебя в голове. Как и все якобы существенные трудности в случае с PaX. На практике нет никакого равного результата. С PaX я задаю ограничения для всей ситсемы, сразу, и затем либо ослабляю их для отдельных приложений, либо эти приложения не работают и поверхность атаки не открывают. В любом дистрибутиве. Для любых приложений, свободных и проприетарных. Это не только удобно мне, но и соответствует best practices. Не может pledge дать сравнимый по качеству результат. Просто потому что в случае PaX ограничения легко снимаются по белому списку, а в случае pledge - выставляются по чёрному списку. С совершенно несопоставимыми трудозатратами. Это факты.

А нравятся они тебе или нет, удобно тебе это или нет, ставишь ли ты выше требований безопасности априорную поддержку устаревших стандартов или нет - сугубо твоё личное дело.

>> судишь о вещах, о которых имеешь самое поверхностное представление.
> Каким именно образом? Я не использовал Hardened Gentoo, и не в курсе,
> что там paxd называется paxctld.

Не там, а практически везде. И не называется, а аналог. Даже в дебианах есть пакет paxctld, но нет пакета paxd. Это самые базовые факты "из жизни экосистемы", которые тебе неизвестны. Что такое paxmark и как он применяется, ты тоже не знаешь, раз Hardened Gentoo не пользовался. Точно так же ты почти ничего не знаешь ни о функциональности PaX/grsecurity, ни о реализации, ни о практических аспектах применения. Просто где-то что-то прочитал, в уме одну фантазию с другой сопоставил, плюс-минус предложенную доктрину принял и пошёл в интернете на PaX тяфкать. Сидишь тут, на серьёзных щах мне, пользователю grsecurity с многолетним стажем рассказываешь, как тут у меня, оказывается, всё неудобно, ненадёжно и какие мне патчи нужно написать/куда отправить, чтобы мои, б-ть, задачи решить. Это даже не смешно. Это убого.

> Это именно что сорта говна.

Воспитание твоё - сорт говна.

> Ссылку на остатки от paxd на гитхабе я тебе скинул - такой
> демон был. Так что пытаясь обличить меня в недостаточном знании вопроса,
> ты обличил в нём и себя, так как продемонстрировал, что не
> знаешь про paxd.

Я о нём даже не не знаю, а не помню. Автора знаю, пересекался с ним в IRC, но не более. Судя по описанию и интересам автора, это нишевый кусок софта для Arch Linux, которым я никогда не пользовался и который к PaX/grsecurity и передовым (для своего времени) начинаниям в построении защищённых дистрибутивов и тулчейна не имеет никакого отношения. Всё происходило в Hardened Gentoo, где флаги выставляются пакетным менеджером, представь себе. paxctld - демон от разработчика grsecurity. И вместо него ты упоминаешь какую-то нишевую альтернативу. Не отвертишься теперь.

> Хотя как по мне, можно ничего не знать
> ни про paxd, ни про paxctld - и то и другое
> костыли и так делать не надо. Надо хотя бы пакеты с
> правильными xattrs собирать.

Ага, надо, потому что ты, анонимный не-эксперт, сказал. Который не читал, но осуждает. И да будет тебе известно, рассуждальщик, что аналог "пакетов с xattrs" - это прошлое PaX. Когда-то флаги выставлялись через ELF-заголовки: https://wiki.gentoo.org/wiki/Hardened/PaX_flag_migration_fro...

Естественно, файлы с заголовками, модифицированными на поздней стадии сборки пакетов (или на ранней стадии установки пакетов, если делать это в дебианах через хуки dpkg), сохраняли значения флагов, будучи запакованы в архив любого формата. Но сообщество пользователей grsecurity, включая дистростроителей, в своё время отдало предпочтение флагам в xattrs и демону paxctld. Причём, не сговариваясь. Потому что это удобнее. Но тебя забыли спросить! Ты бы всем глаза открыл, уж я не сомневаюсь.

> кажется, вполне могу обосновать правильность своей позиции.

Нельзя обосновать правильность свей позиции в категориях а ля "неудобно", "ненадёжно", "неправильно" и т.п. без технической конкретики.

> Если это не провокация, то демонстрация невежества.

С твоей стороны. В очередной раз, и не только невежества.

> Заморачиваться лень, простой контрпример - KARL.

Не лень, а ничего ты толком не знаешь и ляпнуть лишнего боишься. Сравниваешь зрелый быстрый CFI и плагины для автоматического устранения уязвимого к Specter кода - с KARL! Ты ещё про securelevel вспомни.

> Да, я в курсе, что это не внуриядерный механизм

А это как раз совершенно вторично.

> а скрипты сбоку, но так или иначе, это именно пример защиты ядра.

Если бы ты прочитал и попытался усвоить прочитанное, то понял, что я не делал утверждений об отсутствии механизмов защиты ядра в OpenBSD, а высказался, что по уровню они не дотягивают даже до PaX начала нулевых.

> А то, что в OpenBSD стараются решать проблемы
> наведением корректности, а не "митигациями" - это хорошо.

Ты хоть сам понимаешь, что такое "митигации"? И чем они на практике от "наведения корректности" отличаются? Полнотой, там, комплементарностью, существованием в контексте модели угроз? Многоуровневостью? Учётом реальных практик эксплуатации уязвимостей? К тому же, из достижимой на практике корректности напрямую не следует никаких свойств безопасности.

> Не забывай, что в OpenBSD значительно более простое и компактное ядро, чем в Linux

Да, уж если б ты не напомнил, я бы и не вспомнил. Очень важное и глубокое уточнение. Спасибо. Как бы я без тебя. А если чуть серьёзнее, то хватаешься за любую возможность показаться умным.

> даже динамически загружаемые модули не умеет уже, например. И серьёзных дыр
> _в_ядре_ довольно давно не было (что, конечно же, может быть и
> не показательно).

Не было опубликовано. Это больше говорит об интересе, а вернее, отсутствии такового со стороны исследователей безопасности.

> В целом, за grsec я перестал следить после того, как они закрыли
> код.

А раньше следил по публикациям в интернете? ;)

> Сделали что-то хорошее - молодцы. Забавно, что ты соскочил со
> сравнения подхода по включению W^X pt2 на сравнение возможностей OpenBSD и
> PAX в целом.

На все твои субъективные доводы и очерденые перепевки од pledge я ответил. Где соскок? Ты мне ещё рамки ставить будешь, строчить простыни воды, а за короткую фразу претензии предъявлять?

> Это разные ОС, разные подходы и разные ядра.
> Точнее, PaX - не ОС, а набор патчей, к ядру linux
> (в основном). Который, на самом деле, тоже не ОС, а только
> ядро.

Очередная банальная тирада не по существу.

> Короче, неплохо, что PaX существует и в каких-то ситуациях он может быть
> полезен и применим, но не надо сравнивать опциональные меры безопасности (применимые
> не всегда) с безальтернативными (без злого вырезания функционала из кода не
> заставишь перестать работать).

Так это pledge опциональный. В твоих фантазиях он есть везде, а на деле - чуть менее, чем нигде. И ни через флаги, ни посредством MAC, мандатно, ты его не включишь, если для тебя и за тебя его уже не включили. Только ручками, только в каждом отдельно взятом случае. Ну или хаками, которые тебе не нравятся. Придумал себе критерии опциональности и безальтернативности, в отрыве от какой-либо модели угроз, и пыжишься. Пытаешься свободу выбора для владельца системы повернуть изъяном безопасности. Возможность в одно действие получить защиту, для которой в случае pledge требуется пройти путь от исходников до бинарников в системе - пытаешься выставить недостатком. В цирк иди работай, по специальности, зрителей веселить.

Для атакующего что pledge, что PAX_MPROTECT - обе защиты одинаково "безальтернативны".

> А я только про конкретный наброс.

Это не наброс, а констатация факта.

>> Сперва на "ты" перешёл в фамильярной форме
> Это не была попытка задеть, мы в интернете, тут общение на ты

Я к тебе на вы обратился.

> задело.

Мечтай. Руки развязало.

> Ты принимаешь это слишком близко к сердцу

Я принимаю это так, как считаю нужным и удобным лично мне. Огребаешь ты не за тыкания и физиологизмы, а за поведение в целом, каковое характерно для обширной группы лиц. Считай, что по случаю отдуваешься "за всех".

> называть [...] не говном отказываюсь.

А я тебя и не прошу. У меня другие методы.

> Хамством являются _необоснованные_ прямые личные оскорбления.

Загляни в словарь.

> Но мы уходим от изначальной темы совсем уж далеко

Мы только этим и занимаемся.

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

Вот за этим ты сюда и возвращаешься: убедить себя, что ты можешь потроллить или научить человека чему-то новому, задавать тон и тему разговора. Чтобы казаться себе умнее него, возвыситься за его счёт, инфантильно самоутвердиться. Отсюда твой апломб, неуважение к чужому мнению, а также неуёмное стремление давать непрошенные советы, ликбезы и нести прочий бред с умным видом. Но я знаю, что ты ощущаешь свою некомпетентность и что тебя это задевает. Больше тебе скажу, мой юный друг: если ты действительно веришь в тот бред, который несёшь, то со временем глупость его станет тебе очевидна. И это тоже заденет.

> А иногда это
> вызывает раздражение, когда начинает казаться, что троллят тебя. Там где ты
> поправил меня по существу - я сказал тебе спасибо, и это за дело.

Да грош цена твоему спасибо. Ты же ведёшь себя как малолетний невоспитанный хам, говнами всё вокруг клеймишь. Кого ты обмануть-то хочешь, меня или себя? Или крестик сними, или штаны надень.

> А в целом, меня устраивает, как я выражаю мысли.

Да кто бы сомневался.

> Ты пишешь сюда не потому что тебе очень приятно общаться со
> мной, а потому что у тебя есть возражения, вот давай на
> них и сосредоточимся.

Сейчас всё брошу и буду с тобой серьёзно дискутировать.

> И да, экспертом я себя не считаю.

А кем ты себя считаешь?

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

97. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 22-Фев-20, 06:22 
>> Да я и не скывался, лол.
> Ты хотел казаться. Тон в первом комментарии был соответствующий.

Это твои домыслы. В первом комментарии речь шла не про paxd и прочие костыли, чтобы хоть как-то жить с PaX. И там уже были такие "термины" как "уродство" - можешь перечитать и проверить.

> ЧТД.

Сейчас - да. В перспективе - нет. Повторяться не буду.

>> PAX MPROTECT (не включённый по-умолчанию примерно нигде, кстати) такого не позволяет, да.
> Он включён по умолчанию примерно везде, где система работает на ядре с grsecurity.

То есть примерно нигде - я всё сказал правильно. Да?
С момента закрытия кода надежды на мэйнстримный дистрибутив с grsec по-умолчанию из коробки окончательно рухнули. Зачем сравнивать нишевое решение с ОС общего назначения?

> Это решение, которое зарекомендовало себя с лучшей стороны. За ним стоят обоснованные решения разработчиков и многолетний опыт пользователей, среди которых и я.

Как это решение себя зарекомендовало, мы уже выяснили. А именно: кроме NetBSD решение не портированно примерно никуда, по-умолчанию не включено нигде у "серьёзных игроков".

>> у PAX MPROTECT всё те же per-binary исключения и выключенность по-умолчанию примерно везде.
> Определись уже, выключенность или включённость. Хотя бы в рамках одного коммента.

Выключенность, откуда у тебя вообще сомнения? Нет ни одной "серьёзной" ОС, где это включено по умолчанию. Grsec - не ОС, а набор патчей.

> Там, где он нужен, он [PAX_MPROTECT] именно лучше и именно правильнее.

История нас рассудит, посмотрим. Как по мне, смысла в костыле, пусть и довольно удачном, при наличии не ломающего стандарты решения, просто нет.

> Это не аргументы. Тебе неудобно, а мне удобно. Тебе непрактично, а мне практично. И это даже не патовая ситуация. Потому что ты теоретик, а я пользователь grsecurity с многолетним стажем его применения для личных и рабочих нужд.

Я писал и про то, почему это неудобно и почему непрактично. Про то, что можно сбросить больше привилегий и т.п., порезать доступ к fs через unveil и вот это всё.
Ты не поверишь, но я тоже года два имел десктоп с grsec ядром, и я имел опыт с grsec в продакшене (хостинг). И никаких проблем у меня не было (grsec выбирал не я, если что).
Но это не отменяет того, то проблемы есть, и если оно подходит для чего-то одного, типа хостинга, то не факт, что для другого.
Как нишевое решение grsec мне вполне понятен, но не нужно удивляться, что его не взяли в апстримный линукс и не нужно удивляться, что даже раньше почти не было "серьёзных" дистрибутивов с grsec ядром по-умолчанию.

Про pledge пока говорить рано (он ещё мб и провалится, я не ванга, будущего не знаю), но первые примеры с тем же ff и chrome выглядят неплохо.

>> Конкретно отзыв prot_exec, а не осмысленное внедрение pledge добавляется тривиально.
> Тривиально для пользователей, которым разработчики OpenBSD даже расстановку аналогов PaX-флагов решили не доверять? ;)

Ох, ну ты набросил прям как Том Сойер про забор. Понимаешь, я _рад_ что мне не надо будет расставлять PaX флаги, хорошо, что за меня это сделают авторы софта. Если бы они за меня проставляли PaX-флаги, я бы тоже не грустил. Но почему-то PaX никто не хочет внедрять в стандартную поставку ОС общего назначения. Вероятно, потому что он слишком хорош для них?

Ну и да, разрешения pledge не аналог PaX-флагов, что ты и сам тут констатировал.

> Так это ты здесь стонешь, как тебе всё неудобно и говно. Тогда как отсутствие выбора в озвученных рамках - это сухой факт.

Только если ты не умеешь писать код, только тогда у тебя нет выбора. Но с учётом твоих претензий на "продвинутость" подобное выглядит как-то жалко что ли.

>> попатчили бы уже то, что нужно. Но нет, испускать шум интереснее. Бог в помощь.
> Мне в системах с grsecurity не нужно ничего патчить. PAX_MPROTECT включён по умолчанию, исключения заданы, всё работает. Могу себе позволить повысказываться об особо важных и весомых мнениях, вроде твоего.

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

>>> Сделать патч, пересобрать, развернуть.
>> Отослать патч автору ПО, добиться включения в кодовую базу, забыть навсегда.
> То ли дело строчку в /etc/paxctld.conf прописать... Непосильная задача!

Во-первых - да, привет pax(ctl)d. Почему-то, массы не очень хотят настраивать это руками. Наверное, потому что это очень преочень просто?
Во-вторых, зачем что-то настраивать каждый раз (на каждой новой работе/проекте), если можно настроить _один_ раз вообще?

> Не нужно решать проблему, котрой нет. Это ты будешь носиться с патчами, если захочешь ограничить PROT_EXEC. А у меня в системах с grsecurity ограничения включены по умолчанию.

Конечно же, я не буду с этим носиться. Производственной нужды у меня сейчас нет, а локалхост переживёт. А если очень пригорит - попатчу для себя, это предельно легко. Или PaX возьму - я не гордый и не фанатик. Всё зависит от поставленной задачи.
Да, сейчас grsec может чуть дешевле предоставить гарантии защиты памяти для тех приложений, которым не нужен prot_exec. А в перспективе - телодвижений с pledge будет меньше, а PaX будет настраиваться всё тем же костыльным, наружным способом.

> С чего ты вообще взял, что я чего-то не знаю и нуждаюсь в твоих рассказах? Ты спросил, уточнил? Нет. Сразу побежал простыню строчить, потому что умным хочешь показаться. Это для тебя главнее, чем любые конструктивные обсуждения и факты. За что и огребаешь, если ещё не понял.

Я, для начала, не понял, что "огребаю". Ты очень высокого мнения о себе.
Нуждаешься ты или нет в моих рассказах - мне в принципе всё равно, к общению со мной я тебя не принуждаю, это добровольное дело. Но ты набросил и мне есть что сказать. И основная мысль этого "есть что сказать" такова: мерами "защит ядра" меряются только дети и идиоты. То, что в grsec, например, пытается решаться KASLR, в OpenBSD пытаеются решать KARL'ом. OpenBSD не реализует PaX, PaX не реализует OpenBSD, это разные решения и разные подходы, сравнивать их в лоб - дилетантство.

>> а также не просадить до невозможности производительность.
> FUD. Факты где? Фактов нет.

Факты того, что OpenBSD не стремятся просадить произвоительность? Ну вот тот же KARL сделали так как сделали, чтобы избежать накладных расходов на kernel ASLR.

> И сколько людей пользуются этой ОС общего назначения?

Откуда я знаю? Но если ты думаешь, что grsecurity фантастически популярен, ты выдаёшь желаемое за действительное. Я не думаю, что OpenBSD фантастически популярен.

>> Что касается патчей от PaX, то даже во времена открытого grsecurity не было ни одного "серьёзного" дистрибутива, использующего наработки PaX и чтобы они был включены по умолчанию.
> Что из этого следует? Ты не намекай, ты прямым текстом говори.

PaX - "слишком хорош" для этого. Слишком удобен для бескостыльного и негемморойного внедрения. Не надо чпокаться.

А как нишевое решение может быть и правда годен - если подходит по требованиям.

> Пользователи grsecurity, включая меня, годами используют кастомные ядра с дисрибутивами общего назначения.

Если вы поставили в условный debian ядро, не реализующее стандарт всецело (например, во имя усиления безопасности), уже нельзя говорить, что используется ОС общего назначения. КО.

> Теперь сходи и посмотри, какую часть твоего коммента я там строчкой выше процитировал. Ты же воспринимать прочитанное в контексте не умеешь, а особо ценное мнение в области защиты систем у тебя уже есть.

В контексте или без, то что ты предлагаешь - уродливый костыль, который делать ни в коему случае не надо, в OpenBSD такому уродству не место. Хотеось бы отозвать prot_exec везде - это сделали бы как в pax. Суть в том, что так делать не хотели ОСОЗНАННО, и чинить это типчным линуксвеем - НЕ НАДО. Ты думаешь, что нюансы, на которые ты пытаешься обратить внимание имеют какое-то значение, но напротив, они не принципиальны, ты предлагаешь уродливый костыль и удивляешься, что никто не в восторге. Это странно. Особенно в свете того, что ты сам оценил идею с LD_PRELOAD как смешную.

>> Суть pledge - сделать удобный api для privilege revocation, а не слепить костыль для принудительного отключения prot_exec.
> Сколько раз ты ещё намерен это повторить?

В теории - пока не дойдёт до собеседника. На практике, мне скоро станет лень и я сольюсь.

> Ты ведешь себя соответствующим образом. Будто хочешь казаться. Самолюбование при даче непрошенных разъяснений так и прёт. Оценка ценности собственного мнения - так и закшаливает.

Нет смысла пытаться задеть меня.

> А я не спрашиваю твоих оценок их решениям. Я тебе указываю на факт, что у сложных механизмов защиты есть свои пользователи, помимо бездумно отключающих SELinux.

На бесптичье, как говорится, и жопа соловей. Пока нет нормальных инструментов, и selinux сгодится.
И если бы ты читал то, что я тебе пишу, ты бы увидел, что я не отрицаю того, что решения типа селинукса имеют область применения. Только эта область применения не связана с защитой программ от самих себя (от дыр в них), она про сложные политики доступа к данным и ПО в сложных организациях.
Почему-то этой простой мысли ты понять никак не можешь, или не хочешь.

> Ага, и операционку свою напишут. За пару вечеров. Тебе сколько лет, уважаемый? С понятием запретительно высоких издержек знаком?

Смешно. Зачем так люто передёргивать и сравнивать проверки тривиального (не полноценный аудит, да) и написание ОС? Сказать по-существу нечего?

>> А _по_умолчанию_ должен быть максимально безопасный вариант, но в пределах допустимого стандартом, если заявлена поддержка оного.
> Кому должен? Почему должен? Потому что ты так сказал? В OpenBSD могут делать всё, что захотят, в том числе промывать мозги своим доверчевым пользователям. А свои претензии на универсальные критерии можешь употребить по назначению.

Тот, кто заявляет, что выпускает POSIX-совместимую ОС, тот и должен. Потому что иначе это ЛОЖЬ. А тот, кто её испускает - ЛЖЕЦ.

> Ты везде продолбался и продолжаешь. Но поймёшь это нескоро, похоже, если вообще поймёшь.

Продолжай убеждать себя в этом. Ты так много нападаешь на мою "экспертизу" и на мою личность вообще, но так мало пишешь по делу.. Один раз ты подловил меня с pledge, но почти всё остальное - переливание из пустого в порожнее и неспособность признать очевидное. Поэтому и "надрачивание".

>> В целом согласен
> А это не важно, согласен или нет. Цель анализа в другом. Носом тыкать не стану, всё ты понимаешь прекрасно.

Честно - не вполне. То ли ты не понимаешь, то ли троллишь. Есть и более грустные варианты, но опускаться до них я не буду.

>> хотя и большой проблемы в более позднем отзыве prot_exec не вижу - инициализация  обычно это в худшем случае секунды, это не успеют использовать. Но да, prot_exec отзовётся уже при первом вызове pledge, который нужно делать как можно раньше.
> Потому не видишь, что у тебя в голове вместо относительно глубокого и широкого понимания, условно достаточного для обоснованного вынесения суждений по этим вопросам - какой-то отдельный юз-кейс. Типа того же браузера.

Браузер - это только пример нужного приложения, которое требует нарушения W^X и для которого использование pledge и unvel может быть практичнее, чем PaX.
Что касается эксплуатации возможности переключения памяти в +x до того как это будет сделано pledge после инициализации, то я могу допустить, что такое в принципе возможно (можно хоть относительно недавний local root в xorg вспомнить, где дыра чуть ли не в разборе аргументов командной строки была, ну т.е. на стадии инициализации), но шансы на эксплуатацию подобного в реальном мире невелики. Обрати внимание, prot_exec по умолчанию не отзываю не лично я, а очень многие люди, не только разработчики OpenBSD. В роли д'артаньяна выступаешь сейчас ты, на белом коне. Жаль только, с высокомерным умничанием, вместо чего-то по существу.

> Всё будет работать. Просто ты подумать не потрудился: а вдруг собеседник не глупее тебя и имел ввиду не включение-отключение, а поэтапную безвозвратную установку ограничений, но в заданных местах. Например, на этапе инициализации запретить использование PROT_EXEC, а после listen() - доступ к файлам.

Просто если собеседник имел ввиду это, то не понятно, зачем он предлагал выносить это во внешний конфиг и настраивать ограничения для каждой процедуры отдельно. У такого подхода могут быть преимущества только в том случае, если можно зарезать каждую процедуру до МИНИМАЛЬНО ей нужного. А так как это нельзя, нет смысла городить описанное собеседником, достаточно N раз сбросить привилегии и всё. Как это и предлагается в pledge.

>>> Использовать LD_PRELOAD - тоже. Хотя бы потому что LD_PRELOAD игнорируется для suid
>> и sgid бинарников, лепить ещё один костыль для обхода этого - странно.
> Только переменная среды игнорируется, а содержимое /etc/ld.so.preload - нет. Костыль лепить не нужно. А вот знать, о чём говоришь, или молчать, о чём знаешь мало - не повредило бы.

Мы про какую ОС? В linux нет pledge, в openbsd нет ld.so.preload.

> Равный результат существует только у тебя в голове. Как и все якобы существенные трудности в случае с PaX. На практике нет никакого равного результата. С PaX я задаю ограничения для всей ситсемы, сразу, и затем либо ослабляю их для отдельных приложений, либо эти приложения не работают и поверхность атаки не открывают

Пока только в голове, да. Ну и для небольшого числа приложений. Это так и задумано. Я в кнопки "сделать безопасно", прости, не верю. И PaX mprotect оной не является.

> В любом дистрибутиве.

Ну что ты врёшь, а? Это ж элементарно всё проверяется. Из коробки этого нет нигде. И не было.
А после того, как код grsec закрыли, и те hardened-вариации дистрибутивов, что были - загнулись.
И вкорячив grsec-ядро, вот просто так, в обычный дистрибутив, ты получишь нерабочую систему. Оттуда все костыли типа paxd и выросли.

> Не может pledge дать сравнимый по качеству результат. Просто потому что в случае PaX ограничения легко снимаются по белому списку, а в случае pledge - выставляются по чёрному списку.

Естественно, pledge ещё "не дорос" до того, чтобы ломать приложения ради "безопасности". В реальном мире, а не в фантазиях секурити-гиков, вахтёрство и прочее "не пущщать" работает не очень. А 3.5 пользователей hardened gentoo, при всём уважении, никому особенно не интересны. Да и нет их больше, как и опенсорсного grsec.

> С совершенно несопоставимыми трудозатратами. Это факты.

Конечно. Ведь в случае pledge работу нужно выполнить 1-2 раза и разработчику/мэйнтейнеру. А потом больше никогда. Куда лучше накладывать PaX-патчи (где бы теперь взять их ещё?), собирать своё ядро, расставлять pax-флаги и поддерживать всё это в актуальном состоянии. Это факты.

> ставишь ли ты выше требований безопасности априорную поддержку устаревших стандартов или нет - сугубо твоё личное дело.

Не знаю, кто дал тебе право называть общеиспользуемые стандарты устаревшими, но пока есть нужные приложения, которые их используют соблюдать их надо. Нарушать стандарты можно и просто так, но тогда нужно не врать, про то, что всё будет работать, а кричать на каждом углу, что будет сломано то-то и то-то, чинить такими-то костылями. А не рассказывать про "гарантии безопасности", которых нет, как и совместимости с posix.
Но да, если проект не ставит цель поддерживать стандарты, глупо ему за это предъявлять.

> Не там, а практически везде. ...... Это даже не смешно. Это убого.

Честно - мне без разницы. Ты думаешь, что убого не знать, что paxctld по умолчанию, а не paxd, а я думаю, что само наличие такого демона - это убого.
Твои предположения о моём опыте использования grsecurity и моих знаниях о нём не тоже не интересны. Мне приходилось связываться с grsecurity, и так вышло, что с paxd, и речь не только об втором десктопе на арче, на котором у меня N лет было grsec ядро, пока можно было.
Так что право на мнение я имею. А твои постоянные попытки уличить меня во всяком куда больше говорят о тебе, чем обо мне.
Если тебе интересно, никаких проблем у меня с grsec в проде не было. Мне казалось, что мы сравниваем подходы, а ты мне продолжаешь рассказывать про неимоверную сложность pledge-патчей и неимоверную простоту и идеологическую верность pax-флагов. Это не смешно, и даже не убого, это просто феерически тупо.

>> Это именно что сорта говна.
> Воспитание твоё - сорт говна.

Это не новость. Найди, пожалуйста, технический аргумент, типа как про pledge в тот раз, или просто конструктив, как про paxctld. Воззвания к моей совести бессмысленны.

> Не отвертишься теперь.

Даже пытаться не буду. Мне признавать свою неправоту легко и приятно. Ну вот у меня был опыт связанный с paxd, так уж сложилось, и да, мне никогда сильно не было интересно, какие костыли идеологически верно лепить вместо него. Отвратителен сам подход.

> Всё происходило в Hardened Gentoo, где флаги выставляются пакетным менеджером, представь себе.

Ок, буду знать. Вау, кто-то сделал нормально, а не через Ж. Жаль, что hardened gentoo, ЕМНИП, не вполне самостоятельный дистрибутив.
Ну и жаль, что лично меня от gentoo тошнит, но к спору это уж точно отношения не имеет.

> Ага, надо, потому что ты, анонимный не-эксперт, сказал. Который не читал, но осуждает. И да будет тебе известно, рассуждальщик, что аналог "пакетов с xattrs" - это прошлое PaX. Когда-то флаги выставлялись через ELF-заголовки

А я знаю про это, про ELF-заголовки. Зачем ты опять гадаешь?

> Естественно, файлы с заголовками, модифицированными на поздней стадии сборки пакетов (или на ранней стадии установки пакетов, если делать это в дебианах через хуки dpkg), сохраняли значения флагов, будучи запакованы в архив любого формата. Но сообщество пользователей grsecurity, включая дистростроителей, в своё время отдало предпочтение флагам в xattrs и демону paxctld. Причём, не сговариваясь. Потому что это удобнее.

Нет, потому что править ELF-заголовок не при сборке пакета (как, видимо кроме Hardened Gentoo никто не делал) = заставлять пакетный менеджер ругаться на битые чексуммы у пакета. А так как никто не поспешил добавлять божественный pax в базовую поставку мейнстримных дистрибутивов пришлось лепить костыль с xattrs. Который можно не пихать в пакеты, где он дистроклепатеям нафиг не нужен, а запустить моднейший демон paxctld.
Маневрирование 80 уровня.

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

Я объяснял и почему неудобно, и почему не надёжно, не надо тут. И про то, что MAC применяется до запуска бинарника, а не во время, поэтому требует кучу доступных для чтения путей, и про необходимость настройки там, где её не должно быть, и про уродливые демоны для pax-флагов, и про возможность сбрасывать привилегии по разному в разных процессах программы.
Но зачем это читать, это же вода? Гораздо лучше придолбаться к обощающим характеристикам и делать вид, что я ничего более не писал.

>> Заморачиваться лень, простой контрпример - KARL.
> Не лень, а ничего ты толком не знаешь и ляпнуть лишнего боишься.

Да как скажешь.

> Сравниваешь зрелый быстрый CFI и плагины для автоматического устранения уязвимого к Specter кода - с KARL! Ты ещё про securelevel вспомни.

Я не сравниваю, а привожу контрпример. Не надо врать потому что. Ни тогда, ни сейчас.
А вот ты сравниваешь полноценную ОС и патчи (закрытые) к ядру Linux, в котором и без них куча всего интересного. Типа как dirty cow, когда никакой grsec ничем никому не помог, но это к слову.
И сравниваешь ты на уровне "кукурити-фич", т.е. в лоб, т.е. без учёта импакта и сложностей при внедрении и подобного. Это детский сад.
Я вполне допускаю, чтобы ты не думал, что grsec могут сделать что-то, решающее ту или иную проблему. Но пока это сторонние патчи (даже если и опенсорсные, как раньше) - это всё игрули для секуьюрити-энтузиастов и proof of concept. Я могу поверить, что те или иные проблемы решены, но не могу поверить в то, что это "бесплатно". А это имеет значение.

> Если бы ты прочитал и попытался усвоить прочитанное, то понял, что я не делал утверждений об отсутствии механизмов защиты ядра в OpenBSD, а высказался, что по уровню они не дотягивают даже до PaX начала нулевых.

Вот твоя цитата: "В OpenBSD же на ядерном поприще если и делается что, так только под лозунгами наведения корректности. Явный курс на безопасность они оставили ещё в начале нулевых и с тех пор даже не пытались на него вернуться.".
Ты утверждал, что с нулевых ничего не делается для безопасности ядра, я опроверг. Тупо тем, что вспомнил сразу.
Сравнивать openbsd с pax нулевых мне как раз малоинтересно, писями меряться - это детский сад. Какие-то отдельные решения можно сравнить, если очень хочется, но лично я бы потихоньку закругялся с флудом тут.

> Ты хоть сам понимаешь, что такое "митигации"? И чем они на практике от "наведения корректности" отличаются?

Я? Да ты што, откуда мне, ты ж один тут умный.

> К тому же, из достижимой на практике корректности напрямую не следует никаких свойств безопасности.

Всецело согласен, я даже выступал с подобной позицией против NetBSDшника в какой-то недавней теме тут, который "надрачивал" на "наведение корректности". Тем не менее, я останусь при том, что озвучил ранее: я рад, что openbsd крайне осторожны с внедрением средств смягчения последствий эксплуатации уязвимостей. Любой новый написанный код, в т.ч. "митигация" требует поддержки и может содержать дыры, внедрение и/или эксплуатация может быть "небесплатной" - и прочие остальные банальности.

> А если чуть серьёзнее, то хватаешься за любую возможность показаться умным.

Я не понимаю, это ты меня задеть пытаешься, или что?
А если чуть серьёзнее, то следствия из того, что я написал про ядра довольно очевидны, но тебе интереснее плохо завуалированные оскорбления.

> Не было опубликовано. Это больше говорит об интересе, а вернее, отсутствии такового со стороны исследователей безопасности.

Может и так. Но вот тут недавно очень умные, без всяких шуток и иронии, ребята нашли N дыр в компонентах OpenBSD, в том числе и довольно серьёзные. Так что я не стал бы утверждать о полном отсутствии интереса.

>> В целом, за grsec я перестал следить после того, как они закрыли код.
> А раньше следил по публикациям в интернете? ;)

Нет, в журнале "мурзилка". Дело в том, что в нашей школе статьи про grsec обычно публиковалися там.
Петросян.жпг

> Так это pledge опциональный. ...... пытаешься выставить недостатком.

Твои хаки, которые на самом деле костыли, можно заменить тривиальным использованием execpromises, про то, зачем нужен оный в мане всё написано. Т.е. написать pledge-враппер (на самом деле, тоже костыль) не очень сложно.
Но таких целей, насколько я знаю нет, потому что придётся выдавать приложениям куда больше прав, чем им по-факту в main loop нужно -> _потенциально_менее_безопасно_.
Pledge опциональный, да. В том плане, что нельзя принудить к его использованию. Но если он уже внедрён, то его нельзя отключить, разве что такая логика предусмотрена в самом приложении. И в этом смысле он безальтернативен, нет никакой sysctl, которая выключит pledge глобально, нет никакого аналога setenforce=0.

>>> Сперва на "ты" перешёл в фамильярной форме
>> Это не была попытка задеть, мы в интернете, тут общение на ты
> Я к тебе на вы обратился.
>> задело.
> Мечтай. Руки развязало.

Ну т.е. ты искал повод, чтобы начать кидаться говном, нашёл его, и с чистой совестью приступил - я всё верно понял? Поздравляю с успешно найденым оправданием для своего поведения! Лицемерненько так, ничо, мне нравится.

>> Ты принимаешь это слишком близко к сердцу
> Я принимаю это так, как считаю нужным и удобным лично мне.

Мне всё равно. Я желаю тебе этого не для себя, а для тебя - сон спокойнее будет.

> Огребаешь ты не за тыкания и физиологизмы, а за поведение в целом, каковое характерно для обширной группы лиц. Считай, что по случаю отдуваешься "за всех".

Твоё восприятие реальности оторвано от оной. Ты выдаёшь желаемое за действительное или провоцируешь меня. Неконструктивно.

>> называть [...] не говном отказываюсь.
> А я тебя и не прошу. У меня другие методы.

У тебя самомнение, а не "методы". Ничем, к сожалению, не подкреплённое.

>> Сложно удержаться от соблазна потроллить, когда человек просто не хочет открывать для себя новое, потому что уже есть привычные решения.
> Вот за этим ты сюда и возвращаешься: .... И это тоже заденет.

Если предполагается, что я сейчас буду что-то доказывать или оправдываться, то - нет. Я готов часами ходить кругами в спорах по существу вопроса, но любые нападки на мою персону мне не интересны. Можешь продолжать, если тебе нравится.

> Да грош цена твоему спасибо. Ты же ведёшь себя как малолетний невоспитанный хам, говнами всё вокруг клеймишь. Кого ты обмануть-то хочешь, меня или себя? Или крестик сними, или штаны надень.

Боже, да какой же ты обидчивый! Слушай, правда, если я так тебя обидел чем-то - извини. Но умоляю, или пиши по существу вопроса, или не пиши, мне ну совсем не интересны твои моралфажеские замечания. Ты тратишь своё время зря. Хам, не хам - это не твоё дело, тебе не жить со мной и детей не растить. Хочешь говорить про pax и openbsd - давай, нет - заканчиваем.

>> И да, экспертом я себя не считаю.
> А кем ты себя считаешь?

А ты-то кто ты такой, чтобы с меня спрашивать?
Я никем себя не считаю, это бесполезное занятие. Но я имею некий опыт и видел некоторое говно. Мало знаю про то, как делать надо, но довольно много про то, как делать не надо. Как-то так.

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

100. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (101), 22-Фев-20, 10:59 
> История нас рассудит, посмотрим. Как по мне, смысла в костыле, пусть и довольно удачном, при наличии не ломающего стандарты решения, просто нет.

Ты не читатель ты, судя по этому посту "писатель"...

https://www.opennet.ru/openforum/vsluhforumID3/119792.html#73

"Неизыблемое правило DAC - все исполняемое не должно изменятся, а изменяемое НИКОГДА не должно исполнятся.

Подсистема гарантирующая целостность ОС должна следить за неизменностью, как запускаемого кода с диска, так и исполняемого в оперативной памяти - незыблемое правило Integrity.

Стандарты, инструкции, которые противоречат этим правилам печатаете на мягкой бумаге и храните в туалете, может кому пригодятся."

PAX не костыль, а реализация требований DAC для оперативной памяти.

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

106. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 24-Фев-20, 20:11 
>> Ты хотел казаться.
> Это твои домыслы.

Не домыслы, а хорошо обоснованные выводы.

> были такие "термины" как "уродство" - можешь перечитать и проверить.

Уродство - слово литературное. Потом ты раскрылся и перешёл на физиологизмы. Красноречивая разница налицо.

>> ЧТД.
> Сейчас - да.

Сейчас - то есть, в реальности, а не в твоих фантазиях. В реальности PaX/grsecurity уже второй десяток лет обеспечивает защиту в рамках заданной модели угроз...

> В перспективе - нет.

...а наивные вьюноши из рядов пользователей OpenBSD продолжают видеть перспективу того, как blacklist-решения дадют 100% покрытие.

>> [PAX_MPROTECT] включён по умолчанию примерно везде, где система работает на ядре с grsecurity.
> То есть примерно нигде - я всё сказал правильно. Да?

То есть, примерно везде, где востребован уровень защиты наилучший из практически достижимых по совокупности требований на сегодняшний день.
Тебя к таким задачам не подпускают и в профессиональной среде у тебя соответсвующих контактов нет. И утверждение ты делаешь в куцих рамках своих компетенций и неосведомлённости.

> Зачем сравнивать нишевое решение с ОС общего назначения?

А кто сказал, что оно нишевое? Ты. А на каком основании? Может быть, есть общепринятые представления, классификация ОС? Нет. Может быть, ты эксперт и даёшь экспертное заключение? Тоже нет. Утверждение о нишевости - твоё личное мнение, которое ты очень хочешь выдать за авторитетное.

>> Это решение, которое зарекомендовало себя с лучшей стороны.
> Как это решение себя зарекомендовало, мы уже выяснили.

Вижу, тебе очень хочется, чтобы я в чём-то с тобой согласился. Но для этого нужно прилагать созидательные умственные усилия, а не те, что прилагаешь ты.

> решение не портированно примерно никуда, по-умолчанию не включено нигде у "серьёзных игроков".

У "серьёзных игроков" - это у тех, чья целевая аудитория - неосведомлённые массы? Это те "серьёзные игроки", кто про SELinux годами рассказывали, а как вышла статья в Уошингтон Пост, подсуетились и выродили KSPP для создания видимости заимствования наработок grsecurity? ;) Их нежелание связываться с PaX/grsecurity говорит только об одном: ЦА не выдаёт соответствующих потребительских запросов и не в состоянии оценить результат.

Между тем, эти "серьёзные игроки" пользуются многими средствами, которые пришли из PaX и в софт, и в процессоры (NX-бит, SMEP, SMAP). И всегда они плелись у PaX в хвосте. Повторюсь: ай, Моська, знать, она сильна, что лает на слона.

> Выключенность, откуда у тебя вообще сомнения? Нет ни одной "серьёзной" ОС, где
> это включено по умолчанию. Grsec - не ОС, а набор патчей.

Так это набор патчей работает вместо ядра ОС? Приложения в середе набора патчей выполняются? Мой юный друг, PaX - это только PaX, как и grsecurity. И там PAX_MPROTECT включён по умолчанию. А твои попытки съехать с темы говорят всё о том же: что настоящих аргументов у тебя нет.

>> Там, где он нужен, он [PAX_MPROTECT] именно лучше и именно правильнее.
> История нас рассудит, посмотрим.

Рассудит, безусловно. Но показательно, что тебя не интересует, как она рассуждала последние почти 20 лет.

> Как по мне, смысла в костыле, пусть и
> довольно удачном, при наличии не ломающего стандарты решения, просто нет.

Вот когда - а вернее, если вдруг - у "не ломающего стандарты решения" будет покрытие, как у PAX_MPROTECT, тогда и о наличии можно будет говорить. А пока только фантазии.

> Я писал и про то, почему это неудобно и почему непрактично.

Какая разница, чем ты свои _субъективные впечатления_ обосновываешь? Ты пытаешься возвести их в ранг объективных или хотя бы общепринятых. И тебя не устраивает, что твоё мнение - всего лишь твоё мнение. Хочешь что-то обосновать, выдвини фальсифицируемый тезис и дай ему обоснование. А неудобным и непрактичным можно назвать всё, что угодно. Это чисто субъективные критерии.

> Про то, что можно сбросить больше привилегий и т.п., порезать доступ к
> fs через unveil и вот это всё.

Посредством SECCOMP BPF тоже можно. Он также преимущественно ортогонален и комплементарен по отношению к PAX_MPROTECT, поэтому я его и не тяну за уши в этот разговор. Но тебе эти простые обстоятельств непонятны.

> Ты не поверишь, но я тоже года два имел десктоп с grsec
> ядром, и я имел опыт с grsec в продакшене (хостинг). И

Почему не поверю? Поверю. Прекрасное резюме, которое замечательно согласуется с тем, что я вижу, и задаёт стандарт всем твоим суждениям и претензиям. Вот, например, из твоего свежего ответа не мне:

> PAX MPROTECT прибивает процесс, который вызывает mprotect, добавляющий PROT_EXEC

Не прибивает, а возвращает EACCES. Поэтому некоторые приложения, вроде ClamAV или JVM из относительно свежих версий OpenJDK, которые проверяют результат соответствующих вызовов mprotect(), продолжают работать (без JIT).

> никаких проблем у меня не было (grsec выбирал не я, если что).
> Но это не отменяет того, то проблемы есть

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

> и если оно подходит для чего-то одного, типа хостинга, то не факт, что для другого.

Снова бессодержательное утверждение.

> Как нишевое решение grsec мне вполне понятен

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

> но не нужно удивляться, что его не взяли в апстримный линукс и не нужно удивляться, что
> даже раньше почти не было "серьёзных" дистрибутивов с grsec ядром по-умолчанию.

Я не удивляютсь, мне причины понятны. Но не сомневаюсь, что у тебя на этот счёт есть своё особо важное мнение.

> Про pledge пока говорить рано (он ещё мб и провалится, я не
> ванга, будущего не знаю), но первые примеры с тем же ff и chrome выглядят неплохо.

О нём уже можно сказать. 1. Что он ортогонален PAX_MPROTECT и аналогам. 2. Что это blacklist-решение. 3. Не предоставляет пользователю/администратору системы выбора в некоторых рамках. 4. Процесс внедрения требует бОльших трудозатрат. 5. Если приложение может работать как с PROT_EXEC, так и без него - выбор у пользователя либо отсутствует, либо для переключения требует явной предачи приложению соответствующих настроек тем или иным способом (в переменной среды, в аргументах). 6. Не является системой контроля доступа (в отличие от MAC или DAC) и, кроме прочего, не предоставляет средств контроля/наблюдения за качеством и полнотой своего применения.

> Понимаешь, я _рад_ что мне не надо будет расставлять PaX флаги, хорошо, что
> за меня это сделают авторы софта.

Понимаю. В праве на личное мнение я тебе не отказываю и не собирался. Читай внимательнее.

> Но почему-то PaX никто не хочет внедрять в стандартную поставку ОС общего назначения. Вероятно, потому
> что он слишком хорош для них?

Именно так. Слишком хорош. Отношения доверия между людьми по своей природе в существенной мере иррациональны, в вопросах безопасности в том числе. Неосведомлённые пользователи со своей стороны доверяют разработчикам и сообщают им запрос на потребительские свойства ОС, среди которых нет чётких требований безопасности и критериев оценки соответствия им. Разработчики со своей стороны ориентированы на обеспечение потребительских свойств в своих продуктах, а вопросам безопасности уделяют внимание лишь постольку, поскольку: в силу бытующих представлений, личных установок/заинтересованности и наличия/отсутствия соответствующих знаний, опыта, возможностей.

> Ну и да, разрешения pledge не аналог PaX-флагов, что ты и сам тут констатировал.

Ну и да. И что ты этим хочешь сказать в данном конкретном случае?

>> Так это ты здесь стонешь, как тебе всё неудобно и говно. Тогда как отсутствие выбора в озвученных рамках - это сухой факт.
> Только если ты не умеешь писать код, только тогда у тебя нет выбора.

У меня его нет _в озвученных рамках_ независимо от того, умею я писать код или нет. Учись читать внимателно. Тебе просто сложно принять, что у других людей есть свои соображения и требования, которые отличаются от твоих и тоже имеют полное право на существование.

> Но с учётом твоих претензий на "продвинутость" подобное выглядит как-то жалко что ли.

Жалко выглядят то, как ты не придаёшь значение вещам, очевидным и существенным для любого человека, сколько-нибудь компетентного в вопросах защиты систем, и которые я тебе озвучил уже несколько раз. Например, blacklist-природе pledge и требованиям к наличию whitelist-решения. Обрати внимание, другой комментатор тебе тоже сделал замечание по этому вопросу в контексте DAC.

>> Мне в системах с grsecurity не нужно ничего патчить. PAX_MPROTECT включён по умолчанию, исключения заданы, всё работает.
> Это видимо настолько сильный аргумент, что ты повторяешь его уже не в  первый раз.

Это, видимо, настолько сложный аргумент, что ты не в состоянии воспринять его смысл, сколько раз тебе не повторяй.

> Призывать тебя подумать и порассуждать более не буду, ибо ты не пытаешься.

Ты меня призываешь не подумать, а согласиться с тобой. Просто тебе в силу понятных причин пока не вполне очевидна разница между первым и вторым.

> Да, и я могу быть не прав, я это понимаю.

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

>>>> Сделать патч, пересобрать, развернуть.
>>> Отослать патч автору ПО, добиться включения в кодовую базу, забыть навсегда.
>> То ли дело строчку в /etc/paxctld.conf прописать... Непосильная задача!
> Во-первых - да, привет pax(ctl)d. Почему-то, массы не очень хотят настраивать это
> руками. Наверное, потому что это очень преочень просто?

Во-пераых, при чём здесь мыссы? Я говорил о наличии и отсутствии выбора в озвученных рамках для всех, а не только для масс. Во-вторых, массы много, чего не хотят. Аргумент о миллионах мух не принимается. Для масс содержимое paxctld.conf могло бы управляться пакетным менеджером, аналогично тому, как это было сделано даже в Hardened Gentoo. У тебя нет аргументов, и ты выдумываешь сложности.

> Во-вторых, зачем что-то настраивать каждый раз (на каждой новой работе/проекте), если можно
> настроить _один_ раз вообще?

Затем, что один раз вообще нигде ничего не настроено и настроено не будет никогда. Твои фантазии и реальность - вещи очень разные.

>> Не нужно решать проблему, котрой нет. Это ты будешь носиться с патчами, если захочешь ограничить PROT_EXEC. А у меня в системах с grsecurity ограничения включены по умолчанию.
> Конечно же, я не буду с этим носиться.

Это уже твоё дело. Ты мне придумываешь проблемы, которых у меня нет.

> Производственной нужды у меня сейчас нет, а локалхост переживёт. А если очень пригорит - попатчу для себя, это предельно легко.

_Предельно_ легко - это добавить строчку в конфиг, уже если возникла нужда ввести или снять ограничение.

> Или PaX возьму

Да кто ж тебе даст-то.

> я не гордый

Неправда.

> Всё зависит от поставленной задачи.
> Да, сейчас grsec может чуть дешевле предоставить гарантии защиты памяти для тех
> приложений, которым не нужен prot_exec.

И сейчас, и уже много-монго лет, как. А админы локалхостов на OpenBSD продолжают мечтать о перспективах.

> А в перспективе - телодвижений с
> pledge будет меньше, а PaX будет настраиваться всё тем же костыльным,
> наружным способом.

Откуда ты знаешь, как будет настраиваться PaX в перспективе? Ниоткуда. Wishful thinking. Очень уж тебе хочется правым казаться, хотя бы в перспективе. :))

> Я, для начала, не понял, что "огребаю". Ты очень высокого мнения о себе.

Я адекватного мнения о себе. И как ты не понял, ты показал не словом, но делом.

> Нуждаешься ты или нет в моих рассказах - мне в принципе всё равно

Именно так. Тебе всё равно, нуждаюсь ли я в твоих рассказах. Главное - это наличие желания показаться умным, которое и заставляет тебя их строчить.

> к общению со мной я тебя не принуждаю, это добровольное дело.

То есть, ты даже не понял смысл замечания о непрошенных рассказах.

> Но ты набросил и мне есть что сказать.

Я вижу, что тебе всегда есть, что сказать. Вот к качеству и релевантности сказанного возникают вопросы.

> И основная  мысль этого "есть что сказать" такова: мерами "защит ядра" меряются только дети и идиоты.

Это тебе так кажется. Например, тебе кажется, что про pledge с практической точки зрения можно рассужать без учёта наличия/отсутствия защит ядра. Ты не в состоянии воспринять эти аспекты в контексте тем, которые сам же поднял.

> То, что в grsec, например, пытается решаться KASLR

В grsecurity KASLR от-клю-чён. Это апстримная "защита" ядра - в кавычках защита, как и KARL. Ознакомься и не позорься:
https://grsecurity.net/kaslr_an_exercise_in_cargo_cult_security

> в OpenBSD пытаеются решать KARL'ом.

С тем же успехом. :))

> OpenBSD не реализует PaX, PaX не реализует OpenBSD, это разные решения и разные подходы, сравнивать их в
> лоб - дилетантство.

По сути PaX и OpenBSD пересекаются в мерах защиты с практически одинаковыми областью применения, моделью угроз и близкими механизмами реализации на современных процессорах. Дилетантство - этого не понимать, но рассуждать, с апломбом клея ярлыки. Эффект Даннинга-Крюгера в действии.

>>> а также не просадить до невозможности производительность.
>> FUD. Факты где? Фактов нет.
> Факты того, что OpenBSD не стремятся просадить произвоительность?

Нет, факты того, что в стремлении не просадить производительность они от кого-то отличаются, а конкретно от PaX и grsecurity.

> Ну вот тот же KARL сделали так как сделали, чтобы избежать накладных расходов на kernel ASLR.

Ну-ка, ну-ка, какие там накладные расходы на KASLR?

>> И сколько людей пользуются этой ОС общего назначения?
> Откуда я знаю? Но если ты думаешь, что grsecurity фантастически популярен, ты
> выдаёшь желаемое за действительное. Я не думаю, что OpenBSD фантастически популярен.

Grsecurity, в отличие от OpenBSD, не фантастически популярен, а фактически безальтернативен - там, где системно востребована бОльшая часть его функций. Говорить о популярности grsecurity на данный момент не приходится в силу закрытия публичного доступа, но в прошлом, я уверен, что по количеству машин, где использовался, он на порядКИ обгонял OpenBSD. Скорее всего, и сейчас. Впрочем, цифр на руках у меня нет. Как и у тебя.

>>> Что касается патчей от PaX, то даже во времена открытого grsecurity не было ни одного "серьёзного" дистрибутива, использующего наработки PaX и чтобы они был включены по умолчанию.
>> Что из этого следует? Ты не намекай, ты прямым текстом говори.
> PaX - "слишком хорош" для этого. Слишком удобен для бескостыльного и негемморойного
> внедрения. Не надо чпокаться.

Я выше озвучил свои соображения на эту тему. Тут лишь добавлю, что это твои домыслы и не более того. Фактов нет.

>> Пользователи grsecurity, включая меня, годами используют кастомные ядра с дисрибутивами общего назначения.
> Если вы поставили в условный debian ядро, не реализующее стандарт всецело (например,
> во имя усиления безопасности), уже нельзя говорить, что используется ОС общего
> назначения. КО.

Нельзя говорить, потому что ты так сказал? Где критерии? Где факты? Тебе просто очень хочется вывести PaX и grsecurity из ряда конкурентов OpenBSD. Приём не тобой придуман. Эту песню я слышал от разработчиков OpenBSD ещё в начале нулевых. А по факту в этой "ОС не-общего назначения" работает больше приложений, чем в OpenBSD. Прямо с ходу, без расстановки флагов, из пакетов дистрибутивов общего назначения. Вот такой критерий. Можешь теперь с ним не соглашаться, сколько душе угодно. Лучше всё равно не предложишь.

>> Теперь сходи и посмотри, какую часть твоего коммента я там строчкой выше процитировал. Ты же воспринимать прочитанное в контексте не умеешь, а особо ценное мнение в области защиты систем у тебя уже есть.
> В контексте или без, то что ты предлагаешь - уродливый костыль, который

То есть, не только не умеешь воспринимать написанное, но и не хочешь. В общем-то, закономерно.

> делать ни в коему случае не надо

Тебе не надо, а мне надо. "Ни в коем случае" - типичный нигилизм и неуважение к чужому мнению. Один ты умный с правильным мнением, да разработчики OpenBSD. У всех остальных мнение неправильное. Я тебе предложил более, чем достаточный перечень практических критериев, оспорить которые как таковые ты не сумел. Этим всё сказано.

> в OpenBSD такому уродству не место.

Пф, да ради бога.

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

109. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 25-Фев-20, 03:29 
Извини, но далее я буду стараться отвечать только на то, на что есть смысл отвечать. Можешь считать, что я слился и так далее - мне безразлично.

> Это где _пакетный менеджер_ ругается на битые чексуммы у _пакета_?

Там потерялось слово "файлов". Т.е. речь о:

> Если речь о средствах проверки целостности _файлов_ пакета

Да.

> И волновать это будет только тебя и только с моих слов.

Тогда у меня нет адеватных идей, зачем могли перейти на xattr. В моём понимании, это всегда было сдедствием отсутствия в стандартной поставке и нежеланием воевать с пакетным менеджером.

> Два инструмента - pledge и MAC - которые ортогональны и лишь частично пересекаются областью применения и природой накладываемых ограничений, ты сравниваешь напрямую. MAC хуже, PaX-флаги хуже, pledge лучше. И считаешь это технической конкретикой.

Я ещё уточнял, для чего pledge лучше. И если бы ты и это прочитал/процитировал, было бы не так феерично.
Я писал, что pledge лучше чем MAC подходит для защиты приложений от "самих себя", т.е. от эксплуатации дыр в них. Pledge - сорт privilege revocation, MAC - это принудительный контроль доступа, _очевидно_, что это разные решения разных проблем. Многие проблемы, которые можно решать при помощи MAC, при помощи pledge или аналогов решать нельзя в принципе, или какими-то адовыми костылищами. И это _нормально_.

> когда PaX с SELinux сравнил

Ты делаешь то, в чём постоянно обвиняешь меня - не учитываешь контекст. В сравнении была логика, но ты предпочёл попытаться поглумиться.

> Патчи работают сами, отдельно от ядра? Нет. Ядра работают сами, отдельно от приложений? Нет. Вот я и сравниваю OpenBSD со связкой grsecurity-ядро + дистрибутив общего назначения. А ты мне под надуманным предлогом пытаешься отказать в праве на такое сравнение.

Какой смысл сравнивать _нишевое_ решение и то, что позиционируется, как общее решение? Право ты, имеешь, и кто я вообще такой, чтобы в чём-то тебя ограничивать? Только а смысл?

> Ну да, а в OpenBSD в своё время была опубликована уязвимость к удалённому выполнению произвольного кода в ядре. Покажи мне аналогичную уязвимость в линуксе за время с тех пор по сегодня. Хотя бы такую, которая так же надёжно эксплуатировалась бы в простом линуксе, без grsecurity. И дело не в том, чтобы померяться уязвимостями, а какие выводы затем сделать по факту наличия или отсутствия предпринятых мер, дабы ситуация не повторилась.

Насколько я помню, меры были разве что в области проверки аналогичных по смыслу мест, аудиту и так далее. Интеграция тех или иных мер безопасности не бесплатна.
Я не знаю, насколько хорошо принятое опенбсдшниками решение поступить так, как они поступили, но аналогичных дыр, емнип, более и в OpenBSD не было. Может быть, потому что таки починили. Может - дыры ещё ждут своего открывателя.
Лучше бы OpenSMTPD починили, блин, с ним пока никакие дыры в ядре не нужны.

> Про государствннные дистрибутивы специального применения с grsecurity ты тоже не в курсе.

Никогда не сомневался в вероятном существовании чего-то подобного.

>> Но пока это сторонние патчи (даже если и опенсорсные, как раньше) - это всё игрули для секуьюрити-энтузиастов
> Ещё один технический аргумент от не-эксперта.

Ну а что, нет? Едва ли "гос дистрибутивы" - это тупо наложенные и активрованные pax-патчи, правда?
"Гос дистрибутивы" - это, вероятно, "готовое решение", патчи - playground для разработчиков и энтузиастов и база для чьего-то stable.
Я принципиально неправ?

>> Сравнивать openbsd с pax нулевых мне как раз малоинтересно, писями меряться - это детский сад.
> Я смотрю, история тебя интересует, только когда ты делаешь к ней многозначительную отсылку фразой "история нас рассудит, посмотрим". А когда речь заходит о уже свершившейся истории, о реальных успехах и неудачах, так сразу "детский сад". История тебе не интересна, потому что в неё вошли успехи PaX и бездействие OpenBSD

Почему же бездействие? Согласись, не факт, что из-за одного инцидента следует тащить в ядро некую конструкцию, а не просто зачинить то, что было сделано плохо?
Успехи PaX, безусловно есть, и в моём признании не нуждаются, но это довольно нишевые успехи.
Есть, например, OpenVMS, которая тоже нишевая и тоже умеет КУЧУ того, что OpenBSD не умеет, даже рядом не умеет. Но мы же не сравниваем их, не так ли?

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

Нет, безопасность через корректность это не бред. Просто закладываться _только_ на корректность - неправильно. И опенбсдшники этого не делают. Но и число интегрированных защит у них меньше, чем у grsecurity, например.

> Ну так и PaX/grsecurity крайне осторожны. Ты ведь намекаешь на обратное?

Я намекаю на то, что PaX/grsecurity - это набор патчей, который ни в одну публичную ОС общего назначения в стандартную поставку интегрирован не был.

> И зачем ты мне эти банальности рассказываешь? Ты ведь намекаешь на то, что grsecurity поступает иначе. А факты где? Фактов нет.

Какие могут быть факты, если grsecurity - это патчи, не используемые <и далее по тексту, см. выше>?
Не сомневаюсь, что разработчики grsec тестируют в том числе и производительность своих решений, но при всём уважении, полнота их тестов едва ли может быть абсолютной.
Но я не намекаю не то, что разработчики grsecurity поступают иначе, я намекаю на то, что есть смысл сравнивать openbsd и какой-нибудь дистрибутив linux, по-возмоности показательный. Но не ОС и набор патчей.

>> Так это pledge опциональный. ...... пытаешься выставить недостатком.
> Вооот, видишь, как ты удобно для себя вновь поскипал смысловую часть моей реплики.

и далее:
> Ты специально потёр всю смысловую часть в моей реплике, чтобы увильнуть от отвественности за свои слова.

Для справки: opennet выдал мне ошибку о том, что сообщение превышает 30000 символов и я вырезал всё, чтобы сэкономить. Ты напрасно ищешь в этом тайный смысл (но - бога ради).

> То есть, у такого враппера остаётся проблема, аналогичная игнорированию LD_PRELOAD.

Справедливо (тоже не проверял).

> Так зачем он такой нужен? [враппер]

Они никакой не ну..н.

> Тем, что у тебя получилось идею родить? Молодец, только идея совсем на поверхности лежала и сравнительными достоинствами, увы, не обладает, в отличие от сравнительных недостатков.

Потому что я не понимаю, зачем мудрить с "правильным" (в твоей терминологии) решении с хитрожопым враппером, если это всё равно _костыль_? По задумке, это не я придумал, можешь посмотреть в презентациях, pledge и должен явно вызываться в коде.
Я думал, что ты хотел костыль-воркэраунд и предложил тебе более простое решение. Как основное решение - никаких врапперов не предполагается. Не вижу смысла обсуждать это - неправилен сам подход.

> в прошлом пользователь grsecurity в течение двух лет, на Arch Linux.

Продакшен был на debian, но к его настройке я не имел отношения. Никаких проблем с эксплуатацией не было, хотя некоторые вещи были сделаны, по-видимому, странно.
Это ничего не значащий опыт - факт.

> Во-вторых, даже мнение о том, что PAX_MPROTECT является нарушением стандарта - всего лишь мнение.

Это очень удобная позиция. Поэтому я сразу добавляю всегда "и, что самое главное, ломает приложения". Если бы не ломал - чхали бы все на нарушения стандарта.

> Ты потому не увидел проблемы "в более позднем отзыве prot_exec", что не учёл, например, случаев атаки на setuid-процессы, когда уязвимость может обнаружиться в самом раннем коде, и эксплуатироваться будет локально, для повышения привилегий.

Да нет, я сразу именно про xorg и подумал. Только, емнип, pledge там так или иначе не помог бы.
И обрати внимание, что я сказал про то, что не вижу _большой_ проблемы, а также что я согласился с тобой, что с точки зрения безопасности его правильнее отзыать как можно раньше.

> И про уязвимости, например, в libc

Да нет, не туда ты. Я просто изначально стою на позициях, что 1) pledge - не серебрянная пуля 2) не аналог pax_mprotect.
Можно придумать ещё много примеров, когда pledge потенциально(?) не эффективен, и что? Неисполнимую память тоже пытаются обходить, я про всяческий ROP.
В значительной части случаев тех мер, которые позволяет pledge достаточно, отдельные кейсы типа тех suid-бинарников можно защитить как-то отдельно.

> браузел - лишь один из кейсов, а ты мне снова мычишь в ответ про pledge и unveil, как они могут быть практичнее, чем PaX, и про шансы на эксплуатацию в реальном (!) мире.

Браузер - это просто _показательный_ кейс, показывающий пример силы подхода.
Про реальный мир - из контекста же было понятно, что речь про использование не на специализированных системах, типа военного и гос сектора, а in the wild?
Я _в_курсе_ что PaX используется. Я сомневаюсь в его шансах стать решением по умолчанию хотя бы в одной ОС общего назначения. Насчёт pledge, напоминаю, тоже сомневаюсь, но сам подход мне видится более правильным и перспективным.

>>> была, ну т.е. на стадии инициализации), но шансы на эксплуатацию подобного
>> в реальном мире невелики.
> Очередное самораскрытие. .... И этот опыт нередок

Ну, может в какой-то степени, ок. Согласен. Специфика моего текущего окружения - отсутствие посторонних на машинах, поэтому локальные атаки для меня мало актуальны (мало != "не актуальны"). Возможно, недооценил специфики, например, хостинга.

> То есть, чтобы добиться практически эквивалетнтого по гибкости использования pledge без модификации и пересборки исходников.

Не, я правда не понимаю, зачем ты так хочешь. Потом автор что-то поменяет в коде программы и что-то может в этой конструкции развалиться. Её придётся поддерживать.
Это слишком сложно, тогда как добавить в код - просто (технически). Это не требует инфраструктуры.

> Преимущества такого подхода в том, что не нужно править исходники. Ты не согласен с тем, что это преимущество, но я чётко и неоднократно озвучил свои предпочтения и требования.

Само по себе это не преимущество и не недостаток. Ты же сам про контекст мне напоминал, не?
Да, нужно править исходники. Зато не нужна инфраструктура.
Твои требования и предпочтения - ради бога, я не утверждаю, что ты нуждаешься в OpenBSD. Я сравниваю конкретные подходы. И я в курсе, если ты не понял, что пока не так много программ защищено с использованием pledge, в то время как grsec используется давно и успешно, в своей области.

> Ха, действительно, в OpenBSD нет и, похоже, не было ld.so.preload.

Звучит, как будто это не ты допустил ошибку, а OpenBSD виновата.

> В любом случае, остаётся как минимум ещё один вариант

Ради бога. Может быть, я немного подумаю и догадаюсь, о чём ты, а может быть и нет - не сомневаюсь, что ты знаешь немало того, чего я не знаю.

> Чем, по-твоему, занимаются бизнесы, которые оплачивают подписку на grsecurity? Нет, часть клиентов предлагает специализированные дистрибутивы, о grsecurity в составе которых тебе даже гугль не расскажет.

Честно, хочешь верь, хочешь нет - ни секунды не сомневался в наличии чего-то подобного.
Дальше-то что? Это всё _приватное_. Какой смысл сравнивать специализированное решение и общее решение?
Комерчесские решение есть на базе всех или почти все *BSD систем, например, и что? Там, наверное, тоже немало всего интересного.
Ты хочешь, чтобы я признал (лол), что в grsec разработано больше всяческих техник защиты ядра и не только? Я никогда этого не отрицал, для начала!
Только вот говорить про то, что "OpenBSD не доросли до grsec" (или как ты там написал) - некорректно, потому что одно - ОС, другое набор патчей. В публичных дистрибутивах их уже нет, да и при опенсорсности - не было, приватные - отдельная история, т.к. являются спец. решениями (просто по своей сути, на случай, если ты захочешь потроллить меня вопросом "почему?").

> в том числе и такое, вроде Mathematica, которое для "ОС общего назначения" OpenBSD даже не выпускаются. ;)

А это, конечно, имеет такое отношение к обсуждаемым темам? Я в курсе, какая *nix ОС сейчас самая популярная, спасибо.

> что каждый пакет и каждая новая его версия была собрана именно с pledge

Процессы в ps помечаются "p". Это можно даже автоматизировать, если это важно. А так да, если важно - проверять.

> есть приложения, для которых PROT_EXEC через pledge в лучшем случае сделают опциональным (и придётся настраивать руками), в худшем - вообще не включат

Естественно. Я нигде не утверждал обратного.

> И получится, что запрет PROT_EXEC через pledge тоже нужно настраивать, но через аргументы командной строки, конфиги (множество разных) или переменные окружения.

Всё верно. Мы можем или также не включать, как в PaX или, _возможно_ попробовать сделать лучше.
Ну или не сделать, пример ты привёл - pledge не серебрянная пуля, я в курсе, что она решает не все на свете проблемы.

> У меня есть. Тебе - нигде.

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

> Видишь, тебе _отвратителен_ сам подход. Какие ты от меня технические аргументы в ответ на отвращение хочешь услышать-то?

Я писал и про то, что наличие дополнительного процесса, работающего со входными данными от пользователя и управляющего безопасностью приложений - это плохая практика. Потому что это логика сбоку от пакетного менеджера. Потому там могут быть ошибки. Потому что он может упасть, а с обновлением приедет пакет без pax-флагов.
Не сомневаюсь, что ты или проигнорируешь это или объявишь несущественным.

> То есть, примерно везде, где востребован уровень защиты наилучший из практически достижимых по совокупности требований на сегодняшний день.

Доказательств ты, разумеется, не предоставишь. Не, я охотно допускаю, что всё так, но сам факт.

> А кто сказал, что оно нишевое? Ты. А на каком основании? Может быть, есть общепринятые представления, классификация ОС? Нет. Может быть, ты эксперт и даёшь экспертное заключение? Тоже нет. Утверждение о нишевости - твоё личное мнение, которое ты очень хочешь выдать за авторитетное.

А это напрямую следует из их приватности и декларированных целей - предоставлять максимальную безопасность насмотря на стандарты (например).

>> PAX MPROTECT прибивает процесс, который вызывает mprotect, добавляющий PROT_EXEC
> Не прибивает, а возвращает EACCES. Поэтому

Да, это ты по делу, а я нет. Я не могу сказать, что на самом деле я тогда хотел сказать, или имел ввиду, но так или иначе, по факту я написал херню.
Но странно, ведь по контексту _нашей_ беседы, уж что что, а то, что я понимаю, что делает pax_mprotect следует. Стоит ли так передёргивать?
Впрочем, ты всё равно будешь - успехов.

> О нём уже можно сказать ... полнотой своего применения.

А где я опровергал что-то из написанного тобой тут?

> Для масс содержимое paxctld.conf могло бы управляться пакетным менеджером

Могло бы. Реальность иная и моей вины в этом нет. Это и есть аргументы, а не "выдуманные сложности".

> В grsecurity KASLR от-клю-чён.

Да, ошибка. Я что-то перепутал, был уверен в обратном.

> Нет, факты того, что в стремлении не просадить производительность они от кого-то отличаются, а конкретно от PaX и grsecurity.

А я не хочу ничего такого доказывать. Дистрибутивов общего назначение с grsec внутри нет - нет возможности наокпить опыт с сравнить производительность до и после.
Согласен, из контекста выглядит так, будто я конкретно в этом противопоставлял openbsd grsec'у. Нет, я просто перечислял, чиселок с grsec у меня нет, и я на это не намекал.

> Ну-ка, ну-ка, какие там накладные расходы на KASLR?

Копейки, но они есть. А KARL - не рантайм процедура.

> Нельзя говорить, потому что ты так сказал? Где критерии? Где факты? Тебе просто очень хочется вывести PaX и grsecurity из ряда конкурентов OpenBSD. Приём не тобой придуман. Эту песню я слышал от разработчиков OpenBSD ещё в начале нулевых. А по факту в этой "ОС не-общего назначения" работает больше приложений, чем в OpenBSD. Прямо с ходу, без расстановки флагов, из пакетов дистрибутивов общего назначения. Вот такой критерий. Можешь теперь с ним не соглашаться, сколько душе угодно. Лучше всё равно не предложишь.

Сравнивай условный debian до pax и с pax, зачем тут OpenBSD? Приложений под неё меньше, и для меня это не новость, но это по другим причинам. Ты ещё про то, что она масштабируется хуже, например, вспомни, ага.
Критерии - декларируемые цели / реализуемые по факту решения.

> Тебе не надо, а мне надо. "Ни в коем случае" - типичный нигилизм и неуважение к чужому мнению. Один ты умный с правильным мнением, да разработчики OpenBSD. У всех остальных мнение неправильное.

Конкретное решение (с pledge) мне кажется слишком очевидным, я, наверное, до этого сообщения воспринимал твой пример про LD_PRELOAD исключительно как троллинг и желание простого костыля. Цели задеть тебя не было, если ты об этом.

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

110. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 26-Фев-20, 10:47 
> Можешь считать, что я слился и так далее - мне безразлично.

Очевидно, что не безразлично. Но мне удобнее, чтобы ты не слился, а наоборот продолжал.

> Тогда у меня нет адеватных идей, зачем могли перейти на xattr.

За тем, что это более универсальный способ. Во-первых, setfattr есть практически во всех системах в отличие от paxctl. Во-вторых, чтобы работала проприетарщина вроде скайпа, которая сама проверяет целостность своего экзешника. И вот только в-третьих - твоя догадка о чексуммах, проверяемых стредствами вроде debsums.

>> Два инструмента - pledge и MAC - которые ортогональны и лишь частично пересекаются областью применения и природой накладываемых ограничений, ты сравниваешь напрямую. MAC хуже, PaX-флаги хуже, pledge лучше. И считаешь это технической конкретикой.
> Я ещё уточнял, для чего pledge лучше.

Ну разумеется, ты уточнял! Сравнивал тёплоё с мягким. Сам же мне пишешь про различия в назначении MAC и pledge, и сам же их в лоб сравниваешь, впрочем как и с PaX-флагами. До тебя всё никак не дойдёт, что все эти инструменты, включая твой любимый pledge, позволяют получить результат с _разными_ свойствами. Причём, с разными первостепенными свойствами, не побочными. Я тебе привёл SELinux, как пример инструмента, предоставляющего пользователю выбор в заданных рамках - настройки ПО (а не его модификации и пересборки). Это не про лучше-хуже, это про факт наличия/отсутствия выбора. Каковое отуствие в данном случае является следствием политики разработчиков OpenBSD. И вот о наличии/отсутствии уже можно говорить в категориях лучше/хуже - для тебя отсутствие лучше, для меня хуже. Обменяться мнениями и закрыть вопрос.

В линуксе задачи, аналогичные pledge, решает SECCOMP BPF. Не PaX-флаги, не SELinux, не другие LSM-модули, а именно SECCOMP BPF. И вот с ним можно было бы посравнивать pledge напрямую. Но чтобы это всё чётко понимать, в голове должен быть порядок, а не каша из поверхностных и ошибочных представлений, мотивации пубертатного подростка и дурного воспитания.

> И если бы ты и это прочитал/процитировал, было бы не так феерично.

Это тебе так кажется.

> Я писал, что pledge лучше чем MAC подходит для защиты приложений от "самих себя", т.е. от эксплуатации дыр в них.

А я тебе писал в ответ, что твоё лучше-хуже - не более, чем субъективное мнение. Тебе кажется, что ты в чём-то прав, а я этого не замечаю. На самом же деле всё я вижу, но всё, в чём ты можешь оказаться правым с теми или иными оговорками, у тебя находится в подчинённом положении аргументов к личному мнению с претензией на объективное, авторитетное, общепринятое или имеющее больше прав на существование.

> Pledge - сорт privilege revocation, MAC - это принудительный контроль доступа, _очевидно_, что это разные решения разных проблем.

Не разных проблем. А решения пересекающихся множеств проблем (задач), обладающие _разными_ свойствами, такими как мандатность, например. И PaX-флаги - тоже не являются аналогом подмножества pledge, и кроме того, что обладают свойствами DAC, позволяя пользователю задавать произвольные ограничения, также в рамках заданной модели угроз комплементарны по отношению к политике TPE и сочетании с ней дают решение, также в известных рамках обладающее свойством мандатности. И если ты мне захочешь рассказать, что под "разные решения" ты имел ввиду примерно выше мною изложенное... То нет, мой юный друг, это тебе так кажется и очевидно в ретроспективе, не более.

> Многие проблемы, которые можно решать при помощи MAC, при помощи pledge или аналогов решать нельзя в принципе, или какими-то адовыми костылищами. И это _нормально_.

Но я тебе скажу, откуда ноги у твоего энтузиазма растут, и почему ты несёшь чушь, приправленную какими-то задатками здравого рассуждения. Причина в том, что я сравнил свойства решений, в первую очередь наличие/отсутствие свободы выбора у пользователя. И ты воспринял это как нападки на pledge, на те титулы, которыми он награждён в твоей голове. Он ведь лучше! :)) Вот тебя до сих пор и не отпускает.

>> когда PaX с SELinux сравнил
> Ты делаешь то, в чём постоянно обвиняешь меня - не учитываешь контекст.
> В сравнении была логика, но ты предпочёл попытаться поглумиться.

Ты не понял, о чём речь. Ткну носом. Твоё высказывание: "Существование того же PaX во многом обусловлено тем, что selinux сложен и неудобен." Моя реплика: "Этот перл вообще без комментариев. Sapienti sat." Ты даже не понял, какую дремучую чушь ты брякнул. И даже не заметил, что таки брякнул, я так подозреваю. Потому что я сразу тебя носом мне ткнул. И сейчас не понимаешь, небось. Ну давай, расскажи мне, какая тут логика. Посмеюсь ещё раз (в буквальном смысле, в голос, а не "ха-ха, ваши доводы мне смешны").

>> Патчи работают сами, отдельно от ядра? Нет. Ядра работают сами, отдельно от приложений? Нет. Вот я и сравниваю OpenBSD со связкой grsecurity-ядро + дистрибутив общего назначения. А ты мне под надуманным предлогом пытаешься отказать в праве на такое сравнение.
> Какой смысл сравнивать _нишевое_ решение и то, что позиционируется, как общее решение?

Кем PaX позиционируется, как нишевое решение? Это OpenBSD по факту - нишевое решение. Я уже дал критерий разделения на нишевые ОС и ОС общего назначения: работоспособность приложений и само их наличие для ОС в рассмотрении. По этому критерию связка "ядро с grsecurity + дистрибутив общего назначения" нишевым решением является именно OpenBSD, даже если производительность за уши не притягивать, а связка "ядро с grsecurity + дистрибутив общего назначения" - решение общего назначения. А как там своё детище разработчики OpenBSD _поцизицонируют_ - вопрос детсятый. А как лично ты позиционируешь PaX/grsecurity - это даже не вопрос, а курьёз.

> Право ты, имеешь, и кто я вообще такой, чтобы в чём-то тебя ограничивать? Только а смысл?

Смысл есть. И тебе остаётся от него только бегать, бегать, бегать.

>> Ну да, а в OpenBSD в своё время была опубликована уязвимость к удалённому выполнению произвольного кода в ядре. Покажи мне аналогичную уязвимость в линуксе за время с тех пор по сегодня. Хотя бы такую, которая так же надёжно эксплуатировалась бы в простом линуксе, без grsecurity. И дело не в том, чтобы померяться уязвимостями, а какие выводы затем сделать по факту наличия или отсутствия предпринятых мер, дабы ситуация не повторилась.
> Насколько я помню, меры были разве что в области проверки аналогичных по смыслу мест, аудиту и так далее. Интеграция тех или иных мер безопасности не бесплатна.

Почти всё в этом мире не бесплатно. Но речь идёт не о потерях производительности или внесении видимых изменений в поведение системы, а о внедрении мер, аналогичных тем, что на то время уже несколько лет были в PaX, и которые разработчики OpenBSD ещё лет 10 не трудились внедрять даже после появления NX-бита в x86-процессорах.

> Я не знаю, насколько хорошо принятое опенбсдшниками решение поступить так, как они
> поступили, но аналогичных дыр, емнип, более и в OpenBSD не было.

Не было опубликовано. В линуксе тоже не было опубликовано, дальше что? Защиты ядра не нужны? ;) Ждём, пока опубликуют вторую, третью, десятую аналогичную уязвимость и не считаем локальные? Давай, озвучь свои авторитетные соображения на этот счёт.

>> Про государствннные дистрибутивы специального применения с grsecurity ты тоже не в курсе.
> Никогда не сомневался в вероятном существовании чего-то подобного.

Может и не сомневался, но не в курсе. И однако ж тебя сносит в шкодливые тирадки а ля "игрули для секуьюрити-энтузиастов и proof of concept". Между которыми ты наивно, почти искренне недоумеваешь, почему это мне не интересено беседовать с тобой чинно по существу. Потому что ты себя так позиционируешь. Да и не умеешь иначе, по большему счёту.

>>> Но пока это сторонние патчи (даже если и опенсорсные, как раньше) - это всё игрули для секуьюрити-энтузиастов
>> Ещё один технический аргумент от не-эксперта.
> Ну а что, нет? Едва ли "гос дистрибутивы" - это тупо наложенные и активрованные pax-патчи, правда?

Для создателей этих дистрибутивов, grsecurity - надёжная основа всему. А для тебя - "игрули [...] и proof of concept". И если говорить о специфике защиты ядер таких дистрибутивов, то да, это по большему счёту именно "наложенные и активрованные pax-патчи" - не тупо, разумеется, если речь не идёт об Astra Linux.

> "Гос дистрибутивы" - это, вероятно, "готовое решение", патчи - playground для разработчиков и энтузиастов и база для чьего-то stable.
> Я принципиально неправ?

Так ты во всём принципиально не прав, мой юный друг. Это для тебя, админа локалхоста, патчи были плейграундом. А по факту в grsecurity на сегодняшний день поддержка стабильных ядер лучше, чем в апстримном линуксе, и многие клиенты платят деньги именно за эту поддержку. Ты снова рассужаешь о том, о чём не имеешь ни малейшего понятия. Продолжай в том же духе, я доволен.

>>> Сравнивать openbsd с pax нулевых мне как раз малоинтересно, писями меряться - это детский сад.
>> История тебе не интересна, потому что в неё вошли успехи PaX и бездействие OpenBSD
> Почему же бездействие? Согласись, не факт, что из-за одного инцидента следует тащить в ядро некую конструкцию, а не просто зачинить то, что было сделано плохо?

Вот видишь, оказывается, сравнения в историческом контексте - это не детский сад, как тебе кажется. Видимо, воспоминания о детском саде у тебя ещё свежи в памяти, вот и просятся на язык.

И конечно же не соглашусь. "Не просто зачинить" - это называется proactive security. И сами разработчики OpenBSD если не придумали, то всячески старались до какого-то момента популяризировать этот подход. А "зачинить то, что было сделано плохо" - это называется reactive security, каковой подход опять-таки сами разработчики OpenBSD всячески критиковали. Но как запахло жаренным, так сразу и раскрылись. Читай: слились. Такова неприглядная правда о твоей любимой операционочке.

> Успехи PaX, безусловно есть, и в моём признании не нуждаются, но это довольно нишевые успехи.

Вот и расскажи, чем они нишевые. Ты ведь любишь заявлять, будто ты что-то по существу написал, а я не заметил. Вот и покажи, где ты попытался обосновать нишевость теперь уже успехов. А не попытался - так потрудись.

> Есть, например, OpenVMS, которая тоже нишевая и тоже умеет КУЧУ того, что OpenBSD не умеет, даже рядом не умеет. Но мы же не сравниваем их, не так ли?

Мы их не сравниваем, потому что под ядром OpenVMS не работают все приложения из состава дистрибутива Linux общего назначения, а под ядрами с grsecurity - работают.

>> Ты ляпнул в очередной раз, не подумав, про безопасность через корректность. А как запахло жаренным и стало ясно, что безопасность через корректность - это бред, и я за него с тебя спрошу
> Нет, безопасность через корректность это не бред.

Ты не путай безопасность через корректность вне контекста - с тем бредом, который ты ляпнул. Ты ж её _противопоставил_ "митигациям", как ты их назвал.

> Просто закладываться _только_ на корректность - неправильно.

Так определись уже, правильно или не правильно. Или ты рад тому, что разработчики OpenBSD неправильно делают? И что там остаётся, кроме корректности? Уж не "митигации" ли?

> И опенбсдшники этого не делают.

То есть, всё-таки "митигации".

> Но и число интегрированных защит у них меньше, чем у grsecurity, например.

Тут дело не в количестве, а в качестве. А именно, в соответствии оных защит современному технологическому уровню угроз. В случае с OpenBSD - в несоответствии.

>> Ну так и PaX/grsecurity крайне осторожны. Ты ведь намекаешь на обратное?
> Я намекаю на то, что PaX/grsecurity - это набор патчей, который ни в одну публичную ОС общего назначения в стандартную поставку интегрирован не был.

Это мы уже обсудили. Я изложил свои доводы, ты их проигнорировал. А с темы о влиянии "митигаций" на производительность ты пытаешься съехать, потому что фактических претензий к PaX/grsecurity в этом плане у тебя нет. Только FUD.

>> И зачем ты мне эти банальности рассказываешь? Ты ведь намекаешь на то, что grsecurity поступает иначе. А факты где? Фактов нет.
> Какие могут быть факты, если grsecurity - это патчи, не используемые <и далее по тексту, см. выше>?

Снова ужимки и прыжки. Перевожу твою реплику с обезьянего на человеческий: "Я очень неуверен себе и сказать по существу мне нечего, поэтому я буду как бы троллить, и если собеседник мне что-то скажет по существу, значит, я его затроллил! Ура!"

> Не сомневаюсь, что разработчики grsec тестируют в том числе и производительность своих решений, но при всём уважении, полнота их тестов едва ли может быть абсолютной.

Ничья полнота тестов в таких случаях не может быть абсолютной. Это математический факт. Дальше что?

> Но я не намекаю не то, что разработчики grsecurity поступают иначе, я намекаю на то, что есть смысл сравнивать openbsd и какой-нибудь дистрибутив linux, по-возмоности показательный. Но не ОС и набор патчей.

Ты намекаешь ровно на одно: что артументов по существу у тебя нет и ничего умнее, чем про "набор патчей", ты придумать не можешь.

> Для справки: opennet выдал мне ошибку о том, что сообщение превышает 30000 символов и я вырезал всё, чтобы сэкономить. Ты напрасно ищешь в этом тайный смысл (но - бога ради).

Это ты своим воображаемым зрителям в голове расскажешь. Я тебя в одно вырезанное и твой ответ носом ткнул уже.

>> То есть, у такого враппера остаётся проблема, аналогичная игнорированию LD_PRELOAD.
> Справедливо (тоже не проверял).
>> Так зачем он такой нужен? [враппер]
> Они никакой не ну..н.

Вот так и заканчиваются твои попытки что-то сказать по существу, а уж тем более родить концепцию технического решения. Такова твоя реальность. Продолжай рассказывать мне про набор патчей.

> Потому что я не понимаю, зачем мудрить с "правильным" (в твоей терминологии) решении с хитрожопым враппером, если это всё равно _костыль_?

Где я его правильным назвал, покажи? Зачем мудрить - я сказал. Чтобы удовлетворить _моим_ личным критериям (если представить, что я начал пользоваться OpenBSD и захотел воплотить решение). Тебе просто не нравится, что у кого-то могут быть личные критерии. В твоём представлении есть только твои критерии, которые правильные. А все остальные - неправильные, костыльные, уродливые, неудобные и т.п. И вот ничего ты с этим поделать не можешь. И это понятно: человек, который не научился ещё давать собственному мнению право на существование, а привык оглядываться на других - не может дать такое право и чужому мнению.

> По задумке, это не я придумал, можешь посмотреть в презентациях, pledge и должен явно вызываться в коде.

Я знаю, что по задумке должен, успокойся.

> Я думал, что ты хотел костыль-воркэраунд и предложил тебе более простое решение.

Чем оно более простое-то, госсподи? И ничего я не хотел. Может быть, захотел бы, если б OpenBSD пользовался, но не пользуюсь, да и не о том речь.

> Как основное решение - никаких врапперов не предполагается. Не вижу смысла обсуждать это - неправилен сам подход.

Ну так и не обсуждай. Я заставляю, что ли? Сам пустился в рассуждения, как враппер сделать. Потому что идея пришла и язык зачесался. Мне враппер как таковой вообще не нужен и не интересен. Был нужен как пример, чтобы раскрыть твою некомпетентность. Раскрыл. Всё.

>> в прошлом пользователь grsecurity в течение двух лет, на Arch Linux.
> Продакшен был на debian, но к его настройке я не имел отношения.

Ещё лучше.

> Это ничего не значащий опыт - факт.

Факт или нет, ты его всё равно не учитываешь. Но что касается фактов, нет ничего зазорного в том, чтобы пользваться чем-то хотя бы и только на локалхосте. Важно то, существенно ли отсутствие (более богатого) опыта. В твоё случае - существенно. Оно не позволяет тебе обозреть более широкий круг практических задач. Вот я тебе рассказал (а ты сделал вид, что не заметил), зачем paxctld нужен и чем он лучше хуков пакетного менеджера. Будь у тебя чуть более богатый опыт работы, ты бы сам сообразил и просто вспомнил, что кроме системных пакетов в продакшене нередко присутствует много, чего ещё, что может потребовать настройки PaX-флагов.

>> Во-вторых, даже мнение о том, что PAX_MPROTECT является нарушением стандарта - всего лишь мнение.
> Это очень удобная позиция. Поэтому я сразу добавляю всегда "и, что самое главное, ломает приложения". Если бы не ломал - чхали бы все на нарушения стандарта.

Не не просто добавляешь "ломает приложения" - ты убегаешь в эту расплывчатую формулировку. "Ломает" - как многозначительно звучит-то! А я говорю: системные вызовы возвращают ошибку и работают в рамках, допустимых стандартом.

Но тут есть одно обстоятельство, которое, как всегда, корнями уходит в твою некомпетентность. Ты ведь, как ты сам сказал, думал, что семантика работы PAX_MPROTECT - это аварийное завершение процессов, которые нарушили ограничения PROT_EXEC. А это не так. Но откуда у тебя такое заблуждение, я догадываюсь.

Первый фактор: ты мог наблюдать падение приложений, которые сами не следуют стандарту, то есть не проверяют результат вызова mprotect/mmap и работают из допущения, что память стала доступна для исполнения. Попытка выполнить инструкцию из неисполняемой памяти закономерно вызывает страничное исключение и процесс убивается кодом ядра, который давно есть сам по себе, а не добавляется в PaX или grsecurity.

К слову, когда в OpenBSD вводили W^X, были разговоры, что это сломает работу некоторых приложений, на что разработчики OpenBSD вполне обоснованно возражали, что если приложение не следует стандартам, нужно исправлять приложение, а не подстраиваться под его изъяны. Попробуй теперь этот факт подружить с иллюзиями в своей голове.

Второй фактор: ты мог включить (или за тебя могли включить, если ядра в арче могут поставляться в бинарниках - я не в курсе) опцию PAX_MPROTECT_COMPAT, с которой при включении PAX_MPROTECT вызовы mprotect/mmap с PROT_EXEC уже не возвращают ошибку. Эта опция сборки ядра оставлена для случаев, когда приложения написаны неправильно, а именно не проверяют результат вызова mprotect _и/или_ запрашивает PROT_EXEC для памяти, где он не нужен. В любом случае все претензии о сломанных приложениях можешь адресовать сугубо себе или сборщикам пакетов ядра, которые сделали выбор за тебя.

Поэтому, мой юный друг, это не только удобная, но и хорошо обоснованная позиция.

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

112. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 26-Фев-20, 15:54 
> Я обратил внимание и уверен, что это не более чем фигура речи. Кроме того, уязвимость, оставленная доступной для эксплуатации не может быть маленькой проблемой, если только речь не идёт о конкретных частных случаях.

Ты можешь быть уверен в чём угодно - я не против.
Во всех ОС общего назначения по-умолчанию аналог PAX MPROTECT не активирован => уязвимость оставлена для эксплуатации примерно везде.

> ага, не аналог, а лучше, удобнее, красивее! :)) И не на твой взгляд, а прям-таки объективно. В такой вот позиции ты стоишь.

Ну я сразу писал, почему "удобнее и красивее", а то, что ты прочитал не то, что я написал - это _твои_, а не мои проблемы.
Он позволяет решить примерно те же проблемы, что и PAX MPROTECT, однако, в тех случаях, когда он неприминим по объективным причинам, pledge позволяет ограничить процесс другими, не связанными с PAX MPROTECT защитами.
Конкретно возможность отозвать prot_exec - аналог PAX MPROTECT.

> примеры были не про потенциальную неэффективность ...., а к тому, что ограничения PROT_EXEC нужно включать как можно раньше.

Это одно и то же.
А вот возможность динамически включать pledge с бОльшей вероятностью позволит найти возможность понизить уровень защиты всё также динамически.
Захардкоженная реализация более дубовая и ради этой дубовости можно пожертвовать какими-то другими кейсами.

>> Неисполнимую память тоже пытаются обходить, я про всяческий ROP.
> И что теперь, ничего не предпринимать и удешевлять во всех смыслах стоимость проведения атаки?

Сопоставлять цели, средства и прочие возможности.
Универсального ответа тут, имхо, нет. Каждое принятое решение плохо хоть в чём-то, идеальных - нет.

> Да не нужно их отдельно защищать. То, что ты начал рассуждать об отсуствии "больших проблем", не отменяет факта, что pledge можно использовать и в самом раннем коде. Снова самораскрываешься же. Ничто не мешает вызывать pledge из кода ld.so, а запрос на запрет того же PROT_EXEC передавать, например, через ELF-заголовок, который добавлять в setuid/setgid-экзешник на этапе сборки или после.

Отдельно защищать - проще. Суидные бинарники по пальцам можно пересчитать. Городить инфру для общего случая - гораздо сложнее.

> Чтобы pledge там применить результативно, а не для галочки, нужно проектировать браузер под него или аналогичные средства, вроде SECCOMP. Чтобы какую-то существенную поверхность атаки браузера запускать в сэндбоксе. Чем разработчики хрома в гугле и занимаются, например.

Разработчики pledge говорят слово в слово также. И с ff так долго колупались как раз потому что он (якобы, не проверял) сделан в этом месте хуже.

> Может быть, потмоу, что я так не хочу? Ты просто не видишь разницы между желаниями и предполагаемыми целями при решении задачи. Ну или придуриваешься. Ты тоже варппер придумал, на базе execpromises. Зачем ты его хочешь? Ах, прямым текстом сказал, что не хочешь? Ну так и я тебе прямым текстом сказал, что не хочу.

Ну так почему бы не писать, что "ты так не хочешь", а не писать, как бы ты сделал враппер?
Я "предложил" свой враппер как пример "дешёвого" способа запустить что-то с pledge. Не хорошего или правильного, а именно дешёвого. Костыля.
Почему я не хочу в этом месте динамики - ответил выше.
Да, безусловно, это ограничивает область применения и может не подходить для решения лично твоих задач. И это _нормально_.

> Возьми да порассуждай, какие возможны варианты. Снова всё разжёвывать - от области применения до принципов реализации и настройки предпочтений пользователем?

Ну вот я и порассуждал. И пришёл к выводу, что это достаточно сложно. Не невозможно, а сложно. И не понятно зачем. Закрыть вектор атаки, который можно закрыть более простым способом?
Можно. Но мне (и, как я понимаю, разработчикам pledge) кажется это не оправданным.

> И всё-то для тебя слишком сложно, бедненький. Да, гибкость инструмента предполагает, что с его помощью можно решать и сложные задачи, и издержки соответсвующие нести. А можно решать и задачи попроще. Свобода выбора - она такая. Если самостоятельно патчить исходники, добавляя pledge, тоже что-то может сломаться. И?

Ну да, сложно. Если для тебя это всё на полностью серьёзных щщах просто - могу только искренне тебе позавидовать, без всякой иронии.
А вот мне - сложно. Разработчикам pledge, судя по всему, тоже.
Не теоретическое решение для спора на форуме, а полноценное, общее решение.

Да, отсутствие динамики снижает гибкость инструмента, но даёт ему другие плюсы. Pledge - не сорт MAC и не пытается им быть, он не пытается быть гибким, он пытается быть железобетонным. Это не значит, что MAC плохо, а pledge хорошо; не значит это и обратного.

Если самостоятельно патчить, то тоже, безусловно, может сломаться. Но это можно покрыть тестами и/или оставить на откуп разработчику ПО.

>> Это не требует инфраструктуры.
> Только в твоих фантазиях, где за пользователя всё в полном объёме сделали разработчики.

Ну нет. В одном случае нужен враппер и конфиги к нему, в другом - нет. То, что для pledge нужна инфра в ядре - очевидно, но я не про неё.

>> Да, нужно править исходники. Зато не нужна инфраструктура.
> Взаимоисключающие утверждения.

См. выше. Я про ОС.

> Сравниваешь в категориях лучше-хуже, красивее-уродливее, удобнее-неудобнее.

Нет. Сравниваю в категориях сброс привилегий vs принудительный контроль доступа. Это разные подходы, решающие проблемы по разному.
Что _удобнее_ решать одним, что-то другим. Под удобнее я подразумеваю очевидное: priv revocation позволяет сбросить изнутри самого процесса больше привилегий, чем можно отозвать снаружи.
В то время как изнутри процесса сделать настраиваемый MAC, конечно, можно, но внешнее универсальное решение будет лучше и правильнее, хотя бы потому что подходит для любого ПО без модификации.

> Я ошибся, признаю.

Спасибо.

> А вот своё утверждение, что для обхода игнорирования LD_PRELOAD придётся лепить ещё один костыль, ты сможешь обосновать, только записав в костыли все оставшиеся решения.

"костыль", согласись, очень условное понятие, и зависит оно от постановки целей и имеющихся в наличии возможностей? Так вот: я называю возможные тут решения костылями, потому что отсутствие динамики в контексте pledge - это задумка. А не потому что ты предлагаешь что-то, на мой взгляд, невообразимо плохое.

> Вот лучше б ты сразу думал. Дело не в том, чтобы больше знать или мериться, а в том, чтобы не лениться думать.

Я бы не отказался обладать достаточным кругозором, чтобы не задумываясь догадываться о возможных решениях, но конкретно в рамках данного вопроса это, как по мне, не самая актуальная повестка.

> Нет, не все "hardened-вариации" загнулись. Спонсорские (теперь клиентские) - остались. И появились новые. А на мантры "про специализированное решение и общее решение" я уже ответил.

Я не сомневаюсь, что приватные решения на базе grsec или чего-то ещё цветут и пахнут. Мантры - это не мантры, это рамки, в границах которых, на мой взгляд, есть смысл проводить сравнение.
Но не понимаю, что тебя так огорчает в специализированности решений, которые милы твоему сердцу (худ. оборот, не принимай близко).
Если сравнивать абстрактно, то прогрессивных митигаций и не только в grsec больше чем в OpenBSD.
Можно сравнить рынок спец. решений, долю grsec и OpenBSD там (про опёнок, например, лично я, в этом контексте слышал ну очень мало, и на уровне слухов. Типа где-то в гос. структурах он используется, только все стесняются признаться). У меня нет чиселок, но я почти уверен, что grsec там представлен в неизмеримо бОльшей степени, нежели OpenBSD.
А на "рынке" ОС общего назначения OpenBSD больше (но очевидно меньше, чем обычного Linux/FreeBSD и т.п.).

> Это факты. Какая мне вообще разница, кто их в комментах на опеннете признаёт и тем более ты?

Ну вот и я не понимаю, какая тебе разница. Это факты, которые я, заметь, не оспариваю.

> По чётко озвученным критериям - не доросли. И это тоже факт.

Если абстрагироваться от области применения, то это корректное утверждение. Какой смысл сравнивать сферических коней в вакууме?
Трактор лучше чем гелик? Комбайн лучше чем автобус?
Вот ты предлагаешь такую же постановку вопроса. Хотя по каким-то характеристикам трактор может быть лучше гелика и т.п.

> А pledge не сводится к запрету PROT_EXEC. Как мне узнать, какие ограничения pledge действуют? Какие "костыли" мне для этого нужно сделать? И почему не-костылей нету в шатном наборе утилит?

Кстати, не знаю. Может такого пока и нет, и я согласен, что это нужно. Пожалуйста, не сообщай, что ты не нуждаешься в моём согласии, я в курсе, мне надо как-то выразить отсутствие возражений - вот.

>> Естественно. Я нигде не утверждал обратного.
> Значит, приложения, для которых не включат PROT_EXEC, окажутся хуже защищены от эксплуатации уявзимостей посредством выполнения произвольного машинного, чем эти же приложения на системах с PaX. Даже в перспективе. ЧТД.

И я изначально топил за то, что pledge не ограничен prot_exec. И другими, связанными с защитой памяти флагами pax.
Ты можешь сказать, что это уже из другой оперы - да.
Но я-то изначально объяснял почему я считаю, что pledge имеет больше шансов быть дефолтным решением, чем PAX.
Это не аналоги, но 1) в openbsd нет pax 2) pledge реализует подмножество возможностей PAX MPROTECT 3) pledge можно использовать, даже когда отозвать prot_exec нельзя.
Безусловно, правильнее было бы сравнить pledge и seccomp. В том смысле, что это идеологически примерно равнозначные вещи.

> в PaX сделано лучше: там есть PAX_EMUTRAMP, а в OpenBSD аналогов нет.

Конкретно это, насколько я понимаю, в pax лучше.

> линуксе есть SECCOMP BPF, который уже позволяет гораздо более гибко задавать ограничения.

Seccomp гибче, но сложнее. Pledge проще и надёжнее. Как по мне, для такого инструмента избыточная гибкость скорее во вред.
Нужно просто помнить, что priv revocation - это только priv revocation, и там, где его возможностей не хватает, нужен другой инструмент. Тот же MAC, как пример.

> Важно, что он не решает проблем, которые решает PaX.

Всех - безусловно. Какое-то подмножество проблем - да. Про это подмножество речь в первом сообщении и шла.
И да, я считаю, что так, как эти проблемы решает pledge (неотзываемо из кода программы) - правильнее.

> Теперь те, кто заинтересован в получении доступа к grsecurity, могут попытаться договориться и заплатить, получив в ответ не просто тот же набор патчей, что получили бы раньше бесплатно, но и высококачественную поддержку, и возросшую скорость реакции проекта на появление новых классов и способов эксплуатации уязвимостей. Напоминаю, что комплексная защита от атак на микроархитектуру на данным момент есть толкьо в grsecurity и больше _нигде_, и является следсвием коммерциализации проекта.

Я понимаю. И что? Сколько раз мне ещё повторить, что я не считаю разработчиков grsec даунами-неудачниками, а grsec - бесполезной фигнёй?
И наличие поддержки - это тоже плюс, который я осознаю.
Но ты согласен, что это всё в любом случае не для всех и в т.ч. - по задумке?
В конце концов, чем закончились попытки протолкнуть grsec в ядро ты и без меня знаешь - ребята из grsec может быть и рады были делиться своими наработками с апстримом, сам апстрим не захотел этого as-is. А grsec'и - переписывать (и хорошо обосновали, почему). Но и апстрим обосновал почему он хочет иначе.
Как по мне, то, что пути основного Linux и grsec разошлись окончательно - это закономерно. Потому что linux - ОС общего назначения, а grsec ориентирован на безопасность и иногда это в ущерб каким-то кейсам.

> И это тоже твои субъективные оценки. И обосновать ты их попытался всё в тех же субъективных и непрозрачных категориях. Когда я говорю о лучших практиках, например, то апеллирую к _общепринятым_ нормам. А ты - сугубо к своим собственным.

Нет, это не мои субъективные оценки. Zero-conf всегда предпочтительнее необходимости настройки, если оно возможно.
А если для удобной настройки требуется ещё побочный демон - то это уже совсем громоздко. Неужели ты никогда не ошибался при конфигурировании софта?

> Последствия-то какие будут, если пакет какое-то время пробудет без PaX-флагов? Давай, думай, рассуждай.

А это уже как повезёт. Может быть и никаких. Само по себе позднее выключение prot_exec тоже не приводит ни к каким последствиям.
Это один из возможных векторов атаки, безусловно, не факт, что он будет использован. Но если его не будет - лучше.
Я понимаю, что также как и некоторые решение в pledge (делающие его неидеальным, которые ты приводил в пример, например), pax(ctl)?d - это компромис.
По озвученным мной причинам - неудачный и является костылём, т.е. конструкцией сбоку от основной.

> Доказательств чего? Что у grsecurity по совокупности и качеству реализаций защитных функций нет аналогов?

Нет, про "секурити-фичи" я и не пытался спорить. Доказательства - про повсеместность использования этого в соответствующих нишах.
Честно, мне они не нужны, я готов поверить на слово, да и без общения с тобой я думал примерно так про это, как ты в итоге и описал.
Я съехидничал не по делу - прикапываться к этому желания у меня нет.

> Это где такие цели задекларированы, покажи? Мало того, что твои выводы остаются сугубо твоими, не имеют веса и статуса, так ещё и на ложных фактах основаны.

Ну так я и потому "например" написал.
Так или иначе, на сайте того же grsec нет ни слова про соответствие стандартам, зато очень много про то, какие защиты он реализует.
Сопоставив это с фактами, можно сделать вывод. Можно, безусловно, притворяться, что grsec позиционируется как общее решение.

> Ага. И даже не попытался разобраться, почему херню написал. Я это сделал за тебя выше, не благодари.
> Из контекста нашей беседы, который, представь себе, включает и те аспекты, которые здесь затронуты не были, следует как раз то, что ты не понимаешь, что делает PAX_MPROTECT.

Давай без лишнего словоблудия. Я писал про то, что PAX MPROTECT "ломает" mprotect, подразумевая (уже не помню, писал я это явно или нет) что на попытку сделать w+x он возвращает ошибку.
Ты отметил, что я написал про убийство процесса и это моя ошибка - я её признал.

> Пытался оспорить тезис о трудозатратах, например.

Я не пытался оспорить, что внедрение pledge требует трудозатрат. Это написано в моём первом же сообщении в этом треде.
Трудозатраты (по задумке) перекладываются на разработчика ПО/мэйнтейнера. В редком случае - пользователя.
Настройка PaX - забота пользователя.
Да, я помню, что приложений под pledge не так много, а PaX давно и успешно используется на практике.
Я про перспективность решений. И да, я могу быть не прав. Почему я думаю, что прав - я написал.

> не аргумент ни в пользу чего-либо, кроме утверждений, которые меня не интересуют. Вроде отсутствия дистрибутива с PaX "для масс".

Да это как раз аргумент. Причём, самый сильный из возможных, потому что это не пустое теоретизирование, а срез реальности.
А приватное решение для N людей не равнозначно общему для эксплуатации in the wild. Что, конечно же, не значит, что оно плохое.

> Тут случай, когда осознание ошибки отнюдь не говорит о том, что она будет осмыслена.

А что я должен осознать? Статью, на которую ты сослался я когда-то читал. Будет время - освежу в памяти.
Я привёл неверный пример про grsec и kaslr и констатировал, что ты меня поправил.

> Глупое утверждение. Вот я сижу сейчас на дистрибутиве общего назначения, но ядро с grsecurty. Могу измерить призводительность, загрузиться со штатным дистрибутивным ядром, снова измерить.

Молодец. А вот когда мне по работе приходится сталкиваться с тем, как продакшен просаживается по производительности/ломается/глючит и т.п. даже от обычных релизов обычного ядра linux совсем не до шуток про то, как хорошо мне на локалхосте, где я уже не помню сколько лет обновляю ядро и не замечаю никаких проблем, ни с grsec, ни без.
Когда число инсталляций приближается к нескольким тысячам (десяткам тысяч) начинает стрелять даже палка.
А на ноуте у меня всё хорошо, да. И на том, что linux, и на том, что OpenBSD. И даже с условной Haiku, почти уверен, нормально будет.

> Ты же его в пример привёл, как в OpenBSD производительность берегут: что вот KARL позволяет какихт-то накладных расходов избежать. Так выходит, и пример у тебя копеечный.

Это пример того, что предпочтение отдаётся пассивным мерам защиты. Рандомизация libc - из той же серии. И я в курсе, что _всех_ возможных проблем это не решает.
Это лучше чем ничего и почти бесплатно в имплементации. Хотя имеет и понятные минусы - например, на дохлом роутере все эти перестройки библиотек и ядра непозволительно долгие и нудные и очень уж хочется отключить их.

> Для классификации ОС на общего назначения и специального я выдвинул свои критерии, _на базе общепринятых_. Согласно моим критериям, дистрибутив общего назначения с grsec-ядром является ОС общего назначения.

При всём уважении (кроме шуток, и да, да, я знаю, что тебе моё уважение не требуется), ты не прав.

> А OpenBSD не является ОС общего назначения

Является.

> Приложений под линукс всё больше, приложений под OpenBSD - всё меньше.

Их число тоже растёт. Но под линукс приложений больше и было бы очень тупо с моей стороны с этим спорить.

> Эмуляция линукса работает всё хуже (если ещё работает - не уточнял),

Её достаточно давно выпилили, в OpenBSD больше ничего такого нет.

> Да и проблемы параллелизмом у ядра OpenBSD на современных многоядерных многопоточных процессорах выводят её из группы ОС общего назначения, существенно сужая область применения.

Над многопоточностью работают, и работают активно. Но в целом, ты обозначил реально имеющиеся проблемы. Только эти проблемы никак не связаны с назначением ОС и безопасностью.
Линукс - ОС общего назначения, и более успешная по очень многим критериям, чем OpenBSD. Я с этим не спорю, доказывать обратное - игнорировать реальность.

> А у тебя критерий один: патчи, а не ядро, которых в стандартной поставке нет.

Потому что из этого следует очень многое. Обрати внимание: я не утверждаю (и не утверждал), что grsec не решает проблем и/или бесполезен. Или что там меньше "секурити-фич", или что они хуже.
Я увтерждаю, что применение grsec as-is по-умолчанию затруднено и никто, в итоге, не захотел делать дистрибутив общего назначения на базе grsec. Что автоматически лишает нас возможности сравнить опыт эксплуатации.
Не с OpenBSD - найди ещё поди продакшен с ней, а с обычным linux, разумеется.

> И вспомнил, потому что это действительно важно. Это существенно ограничивает область применения на практике. Ты не согласен с этим?

Конечно важно. Конечно ограничивает. Только масштабируется она хуже не из-за "секурити-фич" или их отсутствия. Т.е. всё правда, но причём тут это?
Если не понятна логика, почему я вспоминаю, что gsec это патчи, а опёнок - ОС, то заменяй в моих примерах опёнка на "обычный" дистрибутив линукс.

> Ну, про декларируемые цели ты мне ещё расскажешь, где ты их для PaX/grsecurity вычитал. А про реализуемые по факту решения я тебе уже всё сказал.

Ну вот, с их сайта: "grsecurity® is an extensive security enhancement to the Linux kernel that defends against a wide range of security threats through intelligent access control, memory corruption-based exploit prevention, and a host of other system hardening that generally require no configuration."
Ни слова про стандарты.

> А вот как в твои критерии укладываются дистрибутивы, вроде RHEL, где политики SELinux включены по умолчанию?

Никак. Если бы там были PaX патчи и всё было бы сделано для того, чтобы этим можно было пользоваться с эквивалентными возможностями не замечая их наличия (условно), то это тоже была бы ОС общего назначения.
Проблема не в реализованных механизмах, а в целеполагании.

> И которые пользователям "для нормальной работы" приходится отключать, как ты верно заметил. Это ОС общего назначения или специального?

Заявляется, что общего. По факту, насколько я могу судить, это так. SElinux можно отключать, да. Возможно, даже нужно, в каких-то ситуациях. Ну так это просто говорит о том, что, возможно, выбрана неудачная мера обеспечения безопасности по-умолчанию. В винде тоже есть какие-то ACL и какие-то "продвинутые" механизмы защиты, это не делает её специализированной ОС.

>> Тогда у меня нет адеватных идей, зачем могли перейти на xattr.
> За тем, что это более универсальный способ.

Само по себе это не преимущество.

> setfattr есть практически во всех системах в отличие от paxctl

В openbsd нету :) Осознанно. Не суть, да.

> чтобы работала проприетарщина вроде скайпа, которая сама проверяет целостность своего экзешника

Аргумент. Но вот в OpenBSD считают, что правильнее, если разработчики skype сами попатчат своё ПО, а не принудят тебя что-то делать, чтобы работало.
Ты можешь сказать, что они никогда этого не будут делать - может и так. Под опенбисиди скайпа вообще нет :)

> Сравнивал тёплоё с мягким. Сам же мне пишешь про различия в назначении MAC и pledge, и сам же их в лоб сравниваешь, впрочем как и с PaX-флагами.

Да, отчасти я сравниваю тёплоё с мягиким, всё верно.

> что все эти инструменты, включая твой любимый pledge, позволяют получить результат с _разными_ свойствами.

Я изначально придерживался именно такой позиции.

> Это не про лучше-хуже, это про факт наличия/отсутствия выбора. Каковое отуствие в данном случае является следствием политики разработчиков OpenBSD. И вот о наличии/отсутствии уже можно говорить в категориях лучше/хуже - для тебя отсутствие лучше, для меня хуже.

SElinux и MAC в контексте нашего спора это не лучше-хуже, а подходит для решения проблемы или не подходит. Для реализации политик MAC pledge не подходит. Никак.
SElinux может часть того, что может pledge, только "снаружи", а не "изнутри". Это не значит, что что-то одно "не нужно", это разные цели и разные инструменты.
И да, я считаю, и, как мне кажется, я это обосновал, что для _своих_задач_ pledge лучше подходит, нежели selinux для этих же задач.

> В линуксе задачи, аналогичные pledge, решает SECCOMP BPF. Не PaX-флаги, не SELinux, не другие LSM-модули, а именно SECCOMP BPF. И вот с ним можно было бы посравнивать pledge напрямую.

Всё так. Но всё началось с prot_exec, в OpenBSD он отзывается через pledge. Только поэтому разговор у нас про сравнение сортов тёплого с сортами мягкого. И я не могу ограничивать себя только подмножеством функций связанных с prot_exec, когда мы сравниваем pledge и pax mprotect. Просто потому что и то и другое сорт privilege revocation, пусть в pax это делается снаружи и принудительно.

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

142. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 04-Мрт-20, 20:42 
>> Я обратил внимание и уверен, что это не более чем фигура речи. Кроме того, уязвимость, оставленная доступной для эксплуатации не может быть маленькой проблемой, если только речь не идёт о конкретных частных случаях.
> Ты можешь быть уверен в чём угодно - я не против.

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

> Во всех ОС общего назначения по-умолчанию аналог PAX MPROTECT не активирован => уязвимость оставлена для эксплуатации примерно везде.

Аргумент к опыту миллиона мух не принимается. У них по той же причине "оставлен для эксплуатации" не только данный класс уязвимостей, но и все остальные. В том числе RCE. И это с точки зрения "миллионов мух", видимо, тоже не является "большой проблемой".

> Ну я сразу писал, почему "удобнее и красивее", а то, что ты прочитал не то, что я написал - это _твои_, а не мои проблемы.

Я прочитал как раз то: претензии одного мальчика на объективность собственного мнения, сформулированного в чисто субъективных категориях, которым подчинены остальные его аргументы.

> Он позволяет решить примерно те же проблемы, что и PAX MPROTECT [...] Конкретно возможность отозвать prot_exec - аналог PAX MPROTECT.

ПроблеМЫ? То есть, ты претендуешь на объективную оценку сходства множества проблем. А сходство там только одно: в некоторых ситуациях PAX_MPROTECT тоже запрещает использование PROT_EXEC. В чём различия и почему они существенны, ты не знаешь и не понимаешь.

>> примеры были не про потенциальную неэффективность ...., а к тому, что ограничения PROT_EXEC нужно включать как можно раньше.
> Это одно и то же.

Нет, не одно и то же. От того, что pledge нужно вызывать как можно раньше, он не становится потенциально неэффективен. Его _можно_ вызывать как можно раньше. Запрет pledge на PROT_EXEC уже подготовлен для активации на самой ранней стадии. Но ты не смотрел в исходники и этого не знаешь. Или не понимаешь. Чукча не читатель, чукча писатель.

> А вот возможность динамически включать pledge с бОльшей вероятностью позволит найти возможность понизить уровень защиты всё также динамически.

Снова возникло непреодолимое желание врапперы обсудить? Ты отвечаешь на реплику о каноническом использовании pledge, а не о динамическом: через добавление в исходники, а не через врапперы.

> Захардкоженная реализация более дубовая и ради этой дубовости можно пожертвовать какими-то другими кейсами.

Ты ещё за всех порешай, какими кейсами можно пожертвовать.

> Сопоставлять цели, средства и прочие возможности. Универсального ответа тут, имхо, нет. Каждое принятое решение плохо хоть в чём-то, идеальных - нет.

Вижу, тебе о судьбах мира в масштабах всей Земли захотелось порассуждать. Бессодержательность требует выражения.

> Отдельно защищать - проще. Суидные бинарники по пальцам можно пересчитать. Городить инфру для общего случая - гораздо сложнее.

Не знаю, какая там "инфра для общего случая" тебе в голову взбрела, а линковщик уже обрабатывает setuid-бинарники как особый случай. И запрет pledge на PROT_EXEC уже подготовлен для активации на ранней стадии. Я смотрю, ты совсем зарвался. Утверждаешь, что "отдельно защищать - проще", так предъяви конкретику, мальчик. Это ведь _твой личный_ тезис. Спрятаться под юбку к разработчикам OpenBSD или ещё к кому-то тут не получится. Тут за свои слова отвечать надо.

> Ну так почему бы не писать, что "ты так не хочешь", а не писать, как бы ты сделал враппер?

Из технических соображений о реализации враппера и её свойствах желание его писать не следует никак. Я уже обозначил, что не пользуюсь OpenBSD. Тебе этого мало? Влючай мозги.

> Да, безусловно, это ограничивает область применения и может не подходить для решения лично твоих задач. И это _нормально_.

Часть этих "лично моих" задач существует в рамках любой модели угроз с локальным непривилегированным присутствием атакующего в системе. Пример: защита от повышения привилегий путём эксплуатации уязвимостей в setuid-root экзешниках через выполнение произвольного машинного кода. У тебя другая модель? Озвучь. Реальность же такова, что сейчас эти задачи в OpenBSD не решаются никак. Ни в каждом случае, ни даже для базовой системы, защённость по умолчанию которой они выпячивали.

> Ну вот я и порассуждал. И пришёл к выводу, что это достаточно сложно. Не невозможно, а сложно.

Пришёл к выводу, но конечно же не считаешь нужным поделиться конкретными рассуждениями. И вот так у тебя во всём: или делишься и садишься в лужу, как с враппером, или бегаешь под юбку к кому-то. Якобы много знаешь, как делать не надо, а как делать надо - или не знаешь или стесняешься сказать.

> Ну да, сложно. Если для тебя это всё на полностью серьёзных щщах просто - могу только искренне тебе позавидовать, без всякой иронии.

Не "это всё", а конкретные вещи, в конкретных рамках.

> А вот мне - сложно. Разработчикам pledge, судя по всему, тоже.
> Не теоретическое решение для спора на форуме, а полноценное, общее решение.

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

>>> Это не требует инфраструктуры.
>> Только в твоих фантазиях, где за пользователя всё в полном объёме сделали разработчики.
> Ну нет. В одном случае нужен враппер и конфиги к нему, в другом - нет.

В одном случае нужен враппер с конфигами, а в другом - инфраструктура сборки, тестирования и доставки пакетов + время на выполнение работ и/или взаимодействие с третьими лицами.

> См. выше. Я про ОС.

Разумеется. Тебе ведь хочется задать искусственные рамки, чтобы пренебрегать обстоятельствами реального мира.

>> Сравниваешь в категориях лучше-хуже, красивее-уродливее, удобнее-неудобнее.
> Нет.

Не нет, а да. И главное, с претензией на объективность.

> Сравниваю в категориях сброс привилегий vs принудительный контроль доступа. Это разные
> подходы, решающие проблемы по разному.

Все эти "категории" у тебя находятся в подчинении у субъективны. Строчкой ниже наглядный тому пример.

> Что _удобнее_ решать одним, что-то другим.

Здесь ты говоришь об удобстве, а не о "сброс привилегий vs принудительный контроль доступа". И не уточняешь, что так удобно лично тебе, а снова пытаешься решать за всех.

> Под удобнее я подразумеваю очевидное: priv revocation позволяет сбросить изнутри самого процесса больше привилегий, чем можно отозвать снаружи.

А вот лично мне и множеству других людей гораздо важнее не то, что pledge позволяет сделать в теории и перспективе, а что он позволяет или не позволяет сделать на практике. А на практике и в частости в контексте ограничений PROT_EXEC он позволяет сделать ещё меньше, чем PAX_MPROTECT и PAX_EMUTRAMP - даже когда фактически используется приложением, а не в силу обратного. Например, если приложению нужно подключать .so-плагины на поздних стадиях, запрет PROT_EXEC уже нельзя включать через pledge. А вот PAX_MPROTECT - можно. Ты ничего из этого не знаешь и не понимаешь, но берёшься рассуждать и решать за всех. Продолжай в том же духе.

> В то время как изнутри процесса сделать настраиваемый MAC, конечно, можно, но внешнее универсальное решение будет лучше и правильнее, хотя бы потому что подходит для любого ПО без модификации.

На примере этой реплики хорошо видно, как ты сравниваешь средства решения задач, но не сами практические задачи в контексте практических же моделей угроз. Да и кругозора не хватает: ничего не знаешь об интеграции MAC и в частности SELinux с приложениями.

>> А вот своё утверждение, что для обхода игнорирования LD_PRELOAD придётся лепить ещё один костыль, ты сможешь обосновать, только записав в костыли все оставшиеся решения.
> "костыль", согласись, очень условное понятие, и зависит оно от постановки целей и имеющихся в наличии возможностей?

Представь себе, соглашусь. Вот только ты сам себе противоречишь, когда принимаешься решать за всех, что костыль, а что не костыль.

> Так вот: я называю возможные тут решения костылями, потому что отсутствие динамики в контексте pledge - это задумка.
> А не потому что ты предлагаешь что-то, на мой взгляд, невообразимо плохое.

Тут важнее другое. Не то, ЧТО ты назваешь костылём, а твой изначальный тезис, будто бы костыль придётся городить, то есть, создавать. Ты пытаешься подменить его другим и направить обсуждение в удобное для тебя русло. Тогда как мой исходный тезис остаётся прежним: для подключения враппера к экзешникам, включая setuid-root, можно использовать уже существующие и доступные средства и способы. Ничего нового, никакой "ещё один костыль" городить не нужно.

>> Вот лучше б ты сразу думал. Дело не в том, чтобы больше знать или мериться, а в том, чтобы не лениться думать.
> Я бы не отказался обладать достаточным кругозором, чтобы не задумываясь догадываться о возможных решениях, но конкретно в рамках данного вопроса это, как по мне, не самая актуальная повестка.

Резюмирую. 1. У тебя не хватает омпетенций для обсуждения затронутых тобой же вопросов по существу. 2. И прилагать умственные усилия ты не хочешь.

>> Нет, не все "hardened-вариации" загнулись. Спонсорские (теперь клиентские) - остались. И появились новые. А на мантры "про специализированное решение и общее решение" я уже ответил.
> Я не сомневаюсь, что приватные решения на базе grsec или чего-то ещё цветут и пахнут.

Они не приватные, а платные и доступны широкому кругу лиц.

> Мантры - это не мантры, это рамки, в границах которых, на мой взгляд, есть смысл проводить сравнение.

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

> Но не понимаю, что тебя так огорчает в специализированности решений, которые милы твоему сердцу (худ. оборот, не принимай близко).

Ты вообще мало, что понимаешь. В основном тебе только кажется. Вот и сейчас тебе кажется, что меня что-то огорчает.

> Если сравнивать абстрактно, то прогрессивных митигаций и не только в grsec больше чем в OpenBSD.

А если сравнивать конкретно, в рамках практических моделей угроз, то окажется, что в grsec их не только больше, но они ещё и более качественно выполнены: более полны, комплементарны и лучше отвечают требованиям.

> Можно сравнить рынок спец. решений, долю grsec и OpenBSD там

Неинтересно.

>> Это факты. Какая мне вообще разница, кто их в комментах на опеннете признаёт и тем более ты?
> Ну вот и я не понимаю, какая тебе разница. Это факты, которые я, заметь, не оспариваю.

Ну конечно не понимаешь, кто б сомнвался. Я их привожу для создания контекста. И технические доводы привожу ровно с той же целью. И вот сам контекст уже выполняет целый ряд нужных мне функций.

>> По чётко озвученным критериям - не доросли. И это тоже факт.
> Если абстрагироваться от области применения, то это корректное утверждение. Какой смысл сравнивать сферических коней в вакууме?

Задай этот вопрос себе. Ты же рвёшься абстрагироваться от конкретики, не я.

> Трактор лучше чем гелик? Комбайн лучше чем автобус?
> Вот ты предлагаешь такую же постановку вопроса. Хотя по каким-то характеристикам трактор  может быть лучше гелика и т.п.

Нет, это ты мне рассказываешь, что условный гелик становится условным трактором после условной смены замков, сигнализации и покрытия поверхностей защитным составом.

>> А pledge не сводится к запрету PROT_EXEC. Как мне узнать, какие ограничения pledge действуют? Какие "костыли" мне для этого нужно сделать? И почему не-костылей нету в шатном наборе утилит?
> Кстати, не знаю. Может такого пока и нет, и я согласен, что это нужно.

Это нужно, но этого нет. Опять перспективы вместо реальных рабочих решений.

>>> Естественно. Я нигде не утверждал обратного.
>> Значит, приложения, для которых не включат PROT_EXEC, окажутся хуже защищены от эксплуатации уявзимостей посредством выполнения произвольного машинного [кода], чем эти же приложения на системах с PaX. Даже в перспективе. ЧТД.
> И я изначально топил за то, что pledge не ограничен prot_exec. И другими, связанными с защитой памяти флагами pax. Ты можешь сказать, что это уже из другой оперы - да.

Я скажу, что лично мне не интересна альтернатива, которая не позволяет даже PROT_EXEC ограничить для целого ряда случаев. Построить защищённый JIT-компилятор она тоже не позволяет, в отличие от PAX_MPROTECT. Не вижу смысла в таком решении _вместо_ подхода PaX, если самым базовым практическим требованиям оно не удовлетворяет. Не имею ничего против pledge в качестве комплементарной меры, но на большее она в текущей реализации претендовать не может - ни в каноническом формате применения, ни с врапперами или другими механизмами настройки ограничений пользователем.

> Но я-то изначально объяснял почему я считаю, что pledge имеет больше шансов быть дефолтным решением, чем PAX.

В отрыве от реальных требований безопасности это бессмысленно обсуждать. Изначально ты выдвинул ряд тезисов - в том числе, что PaX хуже pledge. И не в перспективе, а прямо сейчас.

> Это не аналоги, но 1) в openbsd нет pax 2) pledge реализует подмножество возможностей PAX MPROTECT 3) pledge можно использовать, даже когда отозвать prot_exec нельзя.

В контексте практических моделей угроз и реально существующих приложений важно то, что в ряде случаев, когда PROT_EXEC можно ограничить с помощью PAX_MPROTECT и PAX_EMUTRAMP, через pledge в текущей реализации его "отозвать" нельзя.

> Безусловно, правильнее было бы сравнить pledge и seccomp. В том смысле, что это идеологически примерно равнозначные вещи.

У SECCOMP, кстати, та же проблема с PROT_EXEC: он не позволяет "отозвать" его достаточно гибко, в отличие от PAX_MPROTECT и PAX_EMUTRAMP. Поэтому, как и pledge, в качестве комплементарной меры годится, но не более.

>> в PaX сделано лучше: там есть PAX_EMUTRAMP, а в OpenBSD аналогов нет.
> Конкретно это, насколько я понимаю, в pax лучше.

И не только это. Я не поленился и посмотрел код pledge для ограничения PROT_EXEC - там банальный полный запрет после первого вызова kbind(). Расскажи мне теперь о перспективах, как в OpenBSD возьмут да доведут pledge до ума, до уровня PaX. Когда-нибудь. И вот тогда заживём.

>> линуксе есть SECCOMP BPF, который уже позволяет гораздо более гибко задавать ограничения.
> Seccomp гибче, но сложнее. Pledge проще и надёжнее.

Главная проблема SECCOMP BPF в том, что он позволяет фильтровать системные вызовы, но не меняет логику их работы. А вот pledge меняет. И это было бы плюсом в случае PROT_EXEC, если б реализация ограничений на его использование не сводилась к банальному безусловному запрету, аналогично SECCOMP BPF.

> Как по мне, для такого инструмента избыточная гибкость скорее во вред.

Как выяснилось, у него и базовой-то гибкости нет.

>> Важно, что он не решает проблем, которые решает PaX.
> Всех - безусловно. Какое-то подмножество проблем - да. Про это подмножество речь в первом сообщении и шла.

Ага, подмножество из одного элемента.

> И да, я считаю, что так, как эти проблемы решает pledge (неотзываемо из кода программы) - правильнее.

И считай себе наздоровье.

>> Теперь те, кто заинтересован в получении доступа к grsecurity, могут попытаться договориться и заплатить, получив в ответ не просто тот же набор патчей
> Я понимаю. И что?

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

> Сколько раз мне ещё повторить, что я не считаю разработчиков grsec даунами-неудачниками, а grsec - бесполезной фигнёй?

Видмо, столько раз, сколько раз ты за меня додумаешь. Не нравится - потрудись если не отследить и не понять, то хотя бы спросить у меня контекст и смысл.

> И наличие поддержки - это тоже плюс, который я осознаю.
> Но ты согласен, что это всё в любом случае не для всех и в т.ч. - по задумке?

Это стало не для всех по факту закрытия доступа. А по задумке, по области применения - для всех. Я уточнил у автора PaX, он подтвердил: "i've always worked on defenses that can be applied to anything" Так что свои домыслы с претензиями на авторитет можешь применить по назначению.

> В конце концов, чем закончились попытки протолкнуть grsec в ядро ты и без меня знаешь

Разумеется, знаю, но не без тебя, а в отличие от тебя. Потому что со стороны авторов PaX и grsec таких попыток не предпринималось. Никогда. И желания они такого не высказывали. Максимум - предлагали обсудить возмездную помощь апстриму в портировании.

> ребята из grsec может быть и рады были делиться своими наработками с апстримом, сам апстрим не захотел этого as-is.

Продолжай трепать языком о том, чего не знаешь.

> А grsec'и - переписывать (и хорошо обосновали, почему). Но и апстрим обосновал почему он хочет иначе.

Ты говоришь так, как будто апстрим что-то аргументированно обосновал. ;) Не было ничего, кроме претензий, что авторы PaX и grsec не хотят работать забесплатно и патчи свои на части для включения в апстрим разбивать.

> Как по мне, то, что пути основного Linux и grsec разошлись окончательно - это закономерно.

Разойдутся, когда/если grsec станет форком ядра.

> Потому что linux - ОС общего назначения, а grsec ориентирован на безопасность и иногда это в ущерб каким-то кейсам.

Это всё твои домыслы. По факту grsec задумывался и позиционируется именно как решение для широкого круга задач, в том числе и в рамках ОС общего назначения. Разумеется, ты не привык, что у пользователя есть выбор - его делают в OpenBSD за тебя. В случае с grsec всё иначе. Осознай, если сможешь.

>> И это тоже твои субъективные оценки. И обосновать ты их попытался всё в тех же субъективных и непрозрачных категориях. Когда я говорю о лучших практиках, например, то апеллирую к _общепринятым_ нормам. А ты - сугубо к своим собственным.
> Нет, это не мои субъективные оценки. Zero-conf всегда предпочтительнее необходимости настройки, если оно возможно.

Нет, именно твои субъективные. Ты очень хочешь примазаться к авторитету лучших практик, но на деле "zero-conf" предпочтительнее при прочих равных качествах результата, о чём речи и близко не идёт.

> А если для удобной настройки требуется ещё побочный демон - то это уже совсем громоздко. Неужели ты никогда не ошибался при конфигурировании софта?

Вот, в этом весь ты, как ты есть. Продолжаешь навязывать мне свои критерии. Где же твои оговорки в стиле и духе "мне кажется"? Вижу, все претензии на месте.

Ещё раз для альтернативно одарённых повторяю: мне лично paxctld нравится. Я лично перешёл на него с хуков dpkg. Потому что мне лично удобнее. И рамки запретов по умолчанию - тоже удобны. Ну а то, что ошибиться можно - так и в слове из трёх букв можно четыре ошибки сделать. Некоторые делают. И что? Попытаешься в очередной раз "объективно обосновать" свои впечатления в лице "совсем громоздко"? Про сложность paxctld.conf мне расскажешь? Тебя просто не устраивает, что эти твои субъективные критерии - именно субъективные. Потому что изначально ты заявил претензию на их объективность, а отказаться от неё - незрелое уязвлённое самолюбие не позволяет.

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

143. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 04-Мрт-20, 20:44 
>> Последствия-то какие будут, если пакет какое-то время пробудет без PaX-флагов? Давай, думай, рассуждай.
> А это уже как повезёт. Может быть и никаких.

Рассуждать отказался. Ну, кто бы сомневался.

> Само по себе позднее выключение prot_exec тоже не приводит ни к каким последствиям.

И это твоё замечание могло бы иметь смысл, если б меры защиты существовали сами по себе.

> Это один из возможных векторов атаки, безусловно, не факт, что он будет использован.

Отрицание реальных рисков безопасности и моделей угроз, основанных на давно известных практиках эксплуатации уязвимостей. Или ты опять что-то другое имел ввиду?

> Но если его не будет - лучше.

А лучше или хуже - какими факторами и критериями определяется?

> Я понимаю, что также как и некоторые решение в pledge (делающие его неидеальным, которые ты приводил в пример, например), pax(ctl)?d - это компромис.

Неидеальный - это бессодержательная характеристика, потому как ни что не идеально. Решения в pledge, как они есть сейчас, не учитывают совершенно конкретные юз-кейсы из самой широкой практики. Это факт.

> По озвученным мной причинам - неудачный и является костылём, т.е. конструкцией сбоку от основной.

А знаешь, какие ещё конструкции находятся "сбоку от основной"? DAC, включая umask, MAC, пакетные фильтры, rlimits, контейнеризация и сэнбоксинг. То есть, почти всё, кроме твоего любимого pledge, SECCOMP, set*id, set*cap, и т.п.. Тебе, видимо, очень понравился pledge, ты им по-детски очарован, как идеалом, и всё что не укладывается в его рамки, у тебя является костылём. Причём - и главное! - объетивным костылём. По объективному, как тебе кажется, критерию.

>> Доказательств чего? Что у grsecurity по совокупности и качеству реализаций защитных функций нет аналогов?
> Нет, про "секурити-фичи" я и не пытался спорить.

Вижу, ты и не в состоянии воспринять "секурити-фичи" не как набор фич, а как систему, с системными же свойствами, и существующую в каких-то объективных рамках. Продолжай повторять про фичи. Это, по сути, от тебя и требуется.

> Доказательства - про повсеместность использования этого в соответствующих нишах.

А я и не писал про повсеместность. Я присал про безальтернативность. Если кто-то в соответствующей нише использует другую ОС общего назначения не в силу ограничений и специфики (например, прикладное ПО под линуксом не работает, не удалось заключить контракт на доступ к grsec, или модель угроз, бюджет и архитектура позволяет, например, изолировать все компоненты воздушной подушкой) - так это говорит о его квалификации, и только. Но главное здесь не мои личные сомнения в чьей-то квалификации, а твоя неспособность понимать прочитанное.

>> Это где такие цели задекларированы, покажи? Мало того, что твои выводы остаются сугубо твоими, не имеют веса и статуса, так ещё и на ложных фактах основаны.
> Ну так я и потому "например" написал. Так или иначе, на сайте того же grsec нет ни слова про соответствие стандартам, зато очень много про то, какие защиты он реализует.

То есть, у тебя снова нет ничего, кроме домыслов, выдуманного примера и вольной интерпретации факта закрытия доступа к патчам, причины которого были озвучены публично и к назначению патчей отношения не имеют.

> Сопоставив это с фактами, можно сделать вывод. Можно, безусловно, притворяться, что grsec позиционируется как общее решение.

Выводы можешь делать любые. Грош им цена. Я уточнил у автора PaX, как позиционируются патчи, и получил однозначный ответ: для широкого применения. Поэтому и домыслы свои, и изначальный тезис о том, что специализированный характер ОС определяется декларируемыми целями - можешь распечатать и употребить по назначению.

>> Ага. И даже не попытался разобраться, почему херню написал. Я это сделал за тебя выше, не благодари.
>> Из контекста нашей беседы, который, представь себе, включает и те аспекты, которые здесь затронуты не были, следует как раз то, что ты не понимаешь, что делает PAX_MPROTECT.
> Давай без лишнего словоблудия.

Ты не умеешь без словоблудия, не льсти себе. И упрекаешь в нём меня, потому что тебе не понятны мои доводы, ведь для их понимания нужны знания и опыт, которых у тебя нет, а вопросы задавать ты не привык, потому что чужое мнение тебя не интересует - хочешь только, чтобы все выслушивали и прислушивались к твоему.

> Я писал про то, что PAX MPROTECT "ломает" mprotect, подразумевая (уже не помню, писал я это явно или нет) что на попытку сделать w+x он возвращает ошибку.
> Ты отметил, что я написал про убийство процесса и это моя ошибка - я её признал.

Этим принципы работы и детали реализации PAX_MPROTECT не исчерпываются. Из того, что ты тут в комментах писал, стало ясно, что ничего, кроме "запрета PROT_EXEC", ты в нём не видишь и разобраться не пытаешься.

>> Пытался оспорить тезис о трудозатратах, например.
> Я не пытался оспорить, что внедрение pledge требует трудозатрат. Это написано в моём первом же сообщении в этом треде.

Правильно, ты пытался и пытаешься оспорить _мой_ тезис о трудозатратах для _пользователя_.

> Трудозатраты (по задумке) перекладываются на разработчика ПО/мэйнтейнера. В редком случае - пользователя.

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

> Настройка PaX - забота пользователя.

Не обязательно, но тебе удобно подчёркивать и преувеличивать издержки по настройке PaX, которое пользовтель несёт, и риски, связанные с ошибками. Издержки PaX преувеличиваешь, издержки pledge преуменьшаешь. Так же картина - с недостатками. И обратная картина - с достоинствами. Двойные стандарты, на которые я и указал в ответе на твой первый коммент.

> Да, я помню, что приложений под pledge не так много, а PaX давно и успешно используется на практике.

Да мало ли, что ты там по отдельности понмимаешь, если уложить всё в систему и сделать согласованные выводы ты не в состоянии.

> Я про перспективность решений. И да, я могу быть не прав. Почему я думаю, что прав - я написал.

Твои рассуждения про перспективность тоже насквозь пропитаны двойными стандартами. Я тебе указал на опыт Hardened Gentoo, где флаги выставлялись пакетным менеджером - ты мне возразил, что это не дистрибутив общего назначения и что он прекратил своё существование в прежнем виде. То, что в перспективе этот опыт можно повторить - для тебя не аргумент. А как расписывать достоинства pledge, которые по большей части пока только в перспективе - так это ты рад стараться. И всё это в контексте претензий на объективные оценки в субъективных категориях.

>> не аргумент ни в пользу чего-либо, кроме утверждений, которые меня не интересуют. Вроде отсутствия дистрибутива с PaX "для масс".
> Да это как раз аргумент. Причём, самый сильный из возможных, потому что это не пустое теоретизирование, а срез реальности.

И срез реальности у тебя только такой, какой удобен тебе. Это, мой юный друг, называется иначе: произвольная интерпретация фактов в отрыве от контекста. То, что нет дистрибутива с PaX "для масс" - это факт. А вот всё, что из этого следует, в том числе неявные допущения о квалификации масс и разработчиков дистрибутивов в области безопасности - это твои домыслы. Которые можно сопоставить с более полным срезом реальности, на котором, как я уже говорил, мы увидим, что решения из PaX приходят и в ОС, включая OpenBSD, и в железо. И происходит это с отставанием во многие годы, в течение которых в публичном доступе регулярно появляются эксплойты на базе всё тех же техник эксплуатации и показывающие плачевное отставание средств защиты от средств нападения.

> А приватное решение для N людей не равнозначно общему для эксплуатации in the wild. Что, конечно же, не значит, что оно плохое.

Плохое или хорошее

>> Тут случай, когда осознание ошибки отнюдь не говорит о том, что она будет осмыслена.
> А что я должен осознать? Статью, на которую ты сослался я когда-то читал. Будет время - освежу в памяти.

Не осознать, а осмыслить. То есть, попытаться понять причины и следствия. Внимательный и ответственный человек после такой ошибки поставил бы под сомнение собственную компетентность и обоснованность суждений. Но тебя не заставил задуматься даже тот факт, что статью-то ты когда-то читал, но вот забыл и всё напутал. Напротив, в факте прочтения ты ищешь оправдание: мол, не так уж и узок твой кругозор, ну забыл, ну с кем не бывает.

> Я привёл неверный пример про grsec и kaslr и констатировал, что ты меня поправил.

Ты и про KARL неверный пример привёл. Но поскольку осознание, в чём он неверный, требует не просто принятия очевидного фатка, а проведения некоторой умственной работы, ты и дальше будешь юлить. И не только потому, что не привык думать, но и потому, что цели у тебя - не разобраться, а во мнении утвердиться, навязав его окружающим.

>> Глупое утверждение. Вот я сижу сейчас на дистрибутиве общего назначения, но ядро с grsecurty. Могу измерить призводительность, загрузиться со штатным дистрибутивным ядром, снова измерить.
> Молодец. А вот когда мне по работе приходится сталкиваться с тем, как продакшен просаживается по производительности/ломается/глючит и т.п. даже от обычных релизов обычного ядра linux совсем не до шуток про то, как хорошо мне на локалхосте, где я уже не помню сколько лет обновляю ядро и не замечаю никаких проблем, ни с grsec, ни без.

Снова подмена тезиса. Ты сказал о недоступности grsec для накопления опыта, теперь за источник опыта пытаешься выдать какую-то абстрактную практику его накопления в абстрактном продакшене. Накопление его другими способами тебя не устраивает. Чужой опыт работы с grsec в продакшене - тоже. Тебя устраивает ровно одно: что сославшись на отсутствие возможности накопления опыта можно продвигать FUD о возможных проблемах с производительностью. При этом сам же признаёшь, что проблемы с производительностью присутствуют и в обычном линуксе. Ну и на каких основаниях ты выпячиваешь именно риски и неудобства, связанные с применением grsec?

> Когда число инсталляций приближается к нескольким тысячам (десяткам тысяч) начинает стрелять даже палка.

И рассказываешь мне сказки про тысячи и тысячи инсталляций, чтобы придать значимость своим домыслам и двойные стандарты обосновать.

> А на ноуте у меня всё хорошо, да. И на том, что linux, и на том, что OpenBSD. И даже с условной Haiku, почти уверен, нормально будет.

У меня с grsec и в продакшене всё хорошо. Несоизмеримо больше проблем получаю от апстримного кода ядра. И то, что у тебя нет и не было контактов с людьми, у которых действительно тысячи инсталляций на grsec в продакшене - это чьи проблемы, grsec или твои?

>> Ты же его в пример привёл, как в OpenBSD производительность берегут: что вот KARL позволяет какихт-то накладных расходов избежать. Так выходит, и пример у тебя копеечный.
> Это пример того, что предпочтение отдаётся пассивным мерам защиты.

Это сейчас он у тебя стал примером того, как предпочтение отдаётся пассивным мерам защиты. А в изначальном тезисе ты делал упор на избегание издержек. Когда стало ясно, что копеечной экономией можно обосновать только копеечный же пример, ты спрыгнул на следующий тезис, о пассивных мерах.

> Рандомизация libc - из той же серии. И я в курсе, что _всех_ возможных проблем это не решает.

И теперь подкидываешь мне какие-то вторичные тезисы, о чём ты там в курсе. Уводишь разговор в сторону. Да, можно увести разговор в сторону, а вот от формата разговора ты никуда не убежишь, как от наглядного подтверждения факта, что на большее ты и не способен.

>> Для классификации ОС на общего назначения и специального я выдвинул свои критерии, _на базе общепринятых_. Согласно моим критериям, дистрибутив общего назначения с grsec-ядром является ОС общего назначения.
> При всём уважении (кроме шуток, и да, да, я знаю, что тебе моё уважение не требуется), ты не прав.

Тебе-то откуда знать, прав я или нет? Ты даже обосновать своё утверждение не потрудился и просто отверг все аргументы. Но продолжай. Это, в принципе, от тебя и тербуется. Про уважение можешь даже не заикаться, ты ему не обучен.

>> А OpenBSD не является ОС общего назначения
> Является.

Ты говоришь, что я вляется, а я говорю, что нет, она нишевая. Спорить о декларируемых целях не вижу смысла. Согласно заделкарированным целям и MS DOS является ОС общего назначения, даже когда-то являлся таковой в действительности. Но давно и безнадёэно морально устарел и фактически перешёл в разряд ОС специального назначения. OpenBSD движется по тому же пути.

>> Приложений под линукс всё больше, приложений под OpenBSD - всё меньше.
> Их число тоже растёт. Но под линукс приложений больше и было бы очень тупо с моей стороны с этим спорить.

Абсолютное число растёт, а относительное число падает, в купе с другими ограничениями делая OpenBSD по факту всё более и более нишевой.

>> Эмуляция линукса работает всё хуже (если ещё работает - не уточнял),
> Её достаточно давно выпилили, в OpenBSD больше ничего такого нет.

Тем более.

>> Да и проблемы [с] параллелизмом у ядра OpenBSD на современных многоядерных многопоточных процессорах выводят её из группы ОС общего назначения, существенно сужая область применения.
> Над многопоточностью работают, и работают активно.

Уже лет 20 работают, а воз и ныне там. И в течение всех этих 20 лет применимость OpenBSD существенно ограничивается характером нагрузок. И чем больше ядер и потоков в процессорах, тем существеннее эти ограничения. То есть, с годами только увеличиваются.

> Но в целом, ты обозначил реально имеющиеся проблемы. Только эти проблемы никак не связаны с назначением ОС и безопасностью.

С твоей точки зрения не связаны, а с моей - связаны. Чем твоё мнение лучше моего?

> Линукс - ОС общего назначения, и более успешная по очень многим критериям, чем OpenBSD. Я с этим не спорю, доказывать обратное - игнорировать реальность.

Ты мне пытаешься доказать, что линукс с grsec-ядром - это уже не ОС общего назначения, потому что твои критерии, основанные на домыслах и фактических ошибках, лучше моих, основанных на реальных процессах и обстоятельствах.

>> А у тебя критерий один: патчи, а не ядро, которых в стандартной поставке нет.
> Потому что из этого следует очень многое.

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

> Обрати внимание: я не утверждаю (и не утверждал), что grsec не решает проблем и/или бесполезен. Или что там меньше "секурити-фич", или что они хуже.

Про хуже/лучше - утверждал, противопоставляя PAX_MPROTECT с флагами своему любимому pledge.

> Я увтерждаю, что применение grsec as-is по-умолчанию затруднено и никто, в итоге, не захотел делать дистрибутив общего назначения на базе grsec.

Применение любого дистрибутива общего назначения чем-то, да затруднено. У каждого - своя специфика. Из факта существования каких-то затруднений не следует никаких выводов о том, по каким причинам не появился дистрибутив общего назначения с grsec.

> Что автоматически лишает нас возможности сравнить опыт эксплуатации.

Ты пытаешься подсунуть мне свои критерии оценки. И очередной FUD, что вот если б опыт был, то вскрылась какая-то неприятная правда о grsec.

>> И вспомнил, потому что это действительно важно. Это существенно ограничивает область применения на практике. Ты не согласен с этим?
> Конечно важно. Конечно ограничивает. Только масштабируется она хуже не из-за "секурити-фич" или их отсутствия. Т.е. всё правда, но причём тут это?

А это ты у голосов в голове спроси, при чём тут "секурити-фичи". Речь шла о критериях классификации ОС на специализированные, синонимично с нишевыми, и общего назначения. Я считаю, что OpenBSD - нишевая ОС, чья ниша в силу озвученных мной фактов с годами только уменьшается.

> Если не понятна логика

Снова путаешь непонимание с непринятием твоего мнения. Тебе-то моя логика понятна? Патчи сами по себе в ваккуме не работают, а в купе с основным кодом ядра и дистрибутивом образуют ОС. По моим критериям и согласно целям разработчиков grsec - ОС общего назначения. То, что она при этом обладает бОльшей защищённостью, не делает её специализированной. Как установка антивируса, файрвола и связанные с ними неудобства не превращают винду в специализированную ОС.

>> Ну, про декларируемые цели ты мне ещё расскажешь, где ты их для PaX/grsecurity вычитал. А про реализуемые по факту решения я тебе уже всё сказал.
> Ну вот, с их сайта:
> Ни слова про стандарты.

Ни слова про стандарты, да. Так где декларируемые цели-то? Разработчики grsec их не делкарируют, я - тоже. Получается, ты в лужу сел. Соврал и пытаешься отвертеться.

>> А вот как в твои критерии укладываются дистрибутивы, вроде RHEL, где политики SELinux включены по умолчанию?
> Никак. Если бы там были PaX патчи и всё было бы сделано  для того, чтобы этим можно было пользоваться с эквивалентными возможностями не замечая их наличия (условно), то это тоже была бы ОС общего назначения.

Так ведь там есть SELinux, не замечать который пользователю очень сложно - ты сам говорил про setenforce 0. Получается, что ОС общего назначения с интрузивными, создающими неудобства мерами безопасности - остаётся ОС общего назначения. А аналогичная по функциональности ОС с PaX, создающая _меньшие_ неудобства - уже специализированная. Получается, что ты сам себе противоречишь и старательно делаешь вид, как этого противоречия не замечаешь.

> Проблема не в реализованных механизмах, а в целеполагании.

Про целеполагание ты уже расписался, что кроме домыслов и ложных фактов (откровенной лжи) у тебя ничего нет. А разработчик PaX уточнил, что имеет и имел изначально целью именно повсеместное использование. Так что свою чушь про целеполагания можешь распечатать на одном рулоне туалетной бумаги с остальным бредом, из которого твои особо ценные мнения состоят.

>> Это ОС общего назначения или специального?
> Заявляется, что общего. По факту, насколько я могу судить, это так.

По какому факту? Потому что тебе так захотелось.

> В винде тоже есть какие-то ACL и какие-то "продвинутые" механизмы защиты, это не делает её специализированной ОС.

Тогда почему наличие PaX в ядре линукса автоматически делает его специализированной ОС?

>>> Тогда у меня нет адеватных идей, зачем могли перейти на xattr.
>> За тем, что это более универсальный способ.
> Само по себе это не преимущество.

Откуда тебе знать, что для других людей в их опыте работы с системой является преимуществом, а что нет? Ты кто такой, чтобы за других-то решать, не-эксперт апломбовый?

>> чтобы работала проприетарщина вроде скайпа
> Аргумент. Но вот в OpenBSD считают

В OpenBSD могут считать всё что угодно. По факту скайп работает в линуксе с PaX после перехода с PT_PAX на xattr. Конечно, тебе не нравится, когда в PaX что-то сделано для того, чтобы приложения работали, а не наоборот, "ломались". Тебе ведь и PaX не нравится, потому что он не OpenBSD и доступа к нему у тебя нет.

> Ты можешь сказать, что они никогда этого не будут делать - может и так. Под опенбисиди скайпа вообще нет :)

А даже не важно, будут они так делать или нет. Запрет на выполнение произвольного машинного кода в grsec может устанавливаться в качестве обязательной политики по умолчанию, для каждого непривилегированного пользователя или всех вместе. Для всех приложений или только для большинства, за исключениями, указанными суперпользователем. PaX-флаги, DAC и TPE позволяют это сделать. То есть, назначение PaX-флагов, не важно, в xattr или ELF-заголовках - шире, чем тот узкий набор кейсов, который помещается у тебя в голове, когда ты строчишь свои авторитетные мнения.

>> Сравнивал тёплоё с мягким. Сам же мне пишешь про различия в назначении MAC и pledge, и сам же их в лоб сравниваешь, впрочем как и с PaX-флагами.
> Да, отчасти я сравниваю тёплоё с мягиким, всё верно.

ЧТД. И даже не понимаешь в достаточной мере, как оно работает и какие области применения имеет.

>> что все эти инструменты, включая твой любимый pledge, позволяют получить результат с _разными_ свойствами.
> Я изначально придерживался именно такой позиции.

Это тебе кажется, что ты её придерживался. На самом деле акцент "с _разными_" для тебя - пустой звук. Для тебя они не разные, а лучше-хуже, костыльнее-некостыльнее, уродливее-красивее, слишком громоздкие и так далее, далее.

>> Это не про лучше-хуже, это про факт наличия/отсутствия выбора. Каковое отуствие в данном случае является следствием политики разработчиков OpenBSD. И вот о наличии/отсутствии уже можно говорить в категориях лучше/хуже - для тебя отсутствие лучше, для меня хуже.
> SElinux и MAC в контексте нашего спора это не лучше-хуже, а подходит для решения проблемы или не подходит.

Это пустые слова, которые противоречат тому, что ты уже сказал о PaX, и за которые ты по факту ответить не в состоянии.

> Это не значит, что что-то одно "не нужно", это разные цели и разные инструменты.

Вот только PaX-флаги для тебя - это костыль, а не часть DAC. И демон, который их устанавливает, не инструмент управления частью DAC, а тоже костыль.

> И да, я считаю, и, как мне кажется, я это обосновал, что для _своих_задач_ pledge лучше подходит, нежели selinux для этих же задач.

SELinux по определению решает не эти же задачи, а другие, в чём-то перескающиеся. Поэтому сравнение лучше/хуже инзачально нелепо. Я указал на SELinux как инструмент, который предоставляет пользователю право выбора в конкрентно взятом случае, а именно, запрете PROT_EXEC. Тебе это не понравилось и ты стал настаивать, что право выбора не нужно, и что pledge лучше, потому что позволяет сделать больше. А теперь попробуй, укажи мне хотя бы часть в этом резюме, которую я не смогу подтвердить цитатой из твоих реплик.

>> В линуксе задачи, аналогичные pledge, решает SECCOMP BPF. Не PaX-флаги, не SELinux, не другие LSM-модули, а именно SECCOMP BPF. И вот с ним можно было бы посравнивать pledge напрямую.
> Всё так. Но всё началось с prot_exec, в OpenBSD он отзывается через pledge.

Вот именно.

> Только поэтому разговор у нас про сравнение сортов тёплого с сортами мягкого.

Сравнивать тёплое с мягким начал ты, пустившись в рассуждения о том, что такое MAC, для чего он предназначен и не предназначен. Я же сравнивал и сравниваю только в пересечении, по конкретно озвученным критериям, и с указанием разницы в свойствах результата.

> И я не могу ограничивать себя только подмножеством функций  связанных с prot_exec, когда мы сравниваем pledge и pax mprotect.

Я заметил. И это очень харатерно и показательно.

> Просто потому что и то и другое сорт privilege revocation, пусть в pax это делается снаружи и принудительно.

Потому что ты не видишь реального смысла в обсуждении. Ты же пришёл сюда выставить на показ своё особо ценное мнение. Для тебя, как для пустого теоретика, реальные модели угроз, техники эксплуатации, риски, реальные меры защиты, их достоинства, изъяны, области применения, издержки, комплементарность, многоуровневость, полнота, обязательность - всё это пустые слова. Которые тебе знакомы и по отдельности даже как-то понятны, но в целостную картину как взаимосвязанные понятия не укладываются в твоей голове.

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

113. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 26-Фев-20, 15:58 
> Не разных проблем. А решения пересекающихся множеств проблем (задач), обладающие _разными_ свойствами, такими как мандатность, например.

Вопрос выбора абстракций/определений.
Как по мне, меры защиты должны быть реакцией на модель угроз. В случае, когда мы хотим сбросить полномочия процесса у нас одна модель угроз, в случае, когда мы хотим сложным образом ограничить доступ процесса к каким-то ресурсам - другая.
Разные проблемы - разные инструменты удобны. А то, что там что-то пересекается - это нормально, не вижу никакой проблемы в этом.

> Причина в том, что я сравнил свойства решений, в первую очередь наличие/отсутствие свободы выбора у пользователя.

Если ты это про то, что в OpenBSD нет MAC, то с этим можно согласиться, его там нет -> выбора нет.
Если ты про то, что pledge by desig дубовое и захардкоженное, то нет. 1) это задумка 2) выбор есть, но требует, безусловно, больше ресурсов.

> Существование того же PaX во многом обусловлено тем, что selinux сложен и неудобен." ... Ну давай, расскажи мне, какая тут логика.

Логика тут такая, что разработчики PaX используют pax mprotect и т.п., а не накручивают те же ограничения selinux'ом. Потому что PaX много-много проще. И его сложнее настроить неправильно.
То же и с gradm (или как там mac/rbac в grsec'е назывался?).
Зачем было бы делать альтернативу, если SElinux всем хорош?

> Кем PaX позиционируется, как нишевое решение?

Не PaX, а решения на базе него. Теми, кто эти решения реализует.
Просто по факту - это не паблик и не пытается им быть.

> Это OpenBSD по факту - нишевое решение.

OpenBSD по факту может меньше, чем linux, даже с PaX. Но это следствие отсутствия какого-то ПО и/или функционала, а не задумка.

> Я уже дал критерий разделения на нишевые ОС и ОС общего назначения: работоспособность приложений и само их наличие для ОС в рассмотрении.

Это неверный критерий. Сравнивай с обычными дистрибутивами Linux, если так проще будет.
Ну и всем критериям ОС общего назначения OpenBSD таки соответствует. По меньше, производительность, как правило, хуже и т.п. - всё так.
Если ты про то, что опенбисиди менее "продвинутая" ОС общего назначения, чем линукс, то мне нечего возразить.

> А как лично ты позиционируешь PaX/grsecurity

Никак.

> Смысл есть.

Пиписями меряться, да. Другого придумать не могу.

> Но речь идёт не о потерях производительности или внесении видимых изменений в поведение системы, а о внедрении мер, аналогичных тем, что на то время уже несколько лет были в PaX, и которые разработчики OpenBSD ещё лет 10 не трудились внедрять даже после появления NX-бита в x86-процессорах.

Если ты про W^X, то да, всё так. Потому что это сломало бы кучу ПО, база и порты не были к этому готовы. ЕМНИП.
Хотя из контекста не следует, что ты про W^X...
Так или иначе, я в курсе, что многих решений, что есть в PaX нет в OpenBSD или они появились позже. Что далее?
Само по себе это ни о чём не говорит же, ну. Вопрос в том, _почему_ они так решили (если что, в зависимости от, я могу и не знать, почему именно _они_ так решили).

> Не было опубликовано. В линуксе тоже не было опубликовано, дальше что? Защиты ядра не нужны? ;)

Я не думаю, что на этот вопрос можно ответить для общего случая. Смотря какие именно дыры, смотря какие именно защиты и сколько они "стоят".
Архитектор каждой отдельно взятой конструкции должен делать вывод исходя из целей и вышеозвученного.

> И если говорить о специфике защиты ядер таких дистрибутивов, то да, это по большему счёту именно "наложенные и активрованные pax-патчи" - не тупо, разумеется, если речь не идёт об Astra Linux.

Ничего не знаю про астру, но главное ты написал - "не тупо". ЧТД.
Не сомневаюсь, что grsec там используется к месту и никого не раздражает по объективным причинам. И настроен умными людьми для того, чтобы приложения работали в рамках предполагаемых условий.

> ты во всём принципиально не прав
> А по факту в grsecurity на сегодняшний день поддержка стабильных ядер лучше, чем в апстримном линуксе, и многие клиенты платят деньги именно за эту поддержку.

Прости, но не впечатлило. В сотый раз повторяю: я не считаю grsec крапом. И не считаю, что комерчесские клиенты grsec платят им за воздух.
Просто приватные дистрибутивы с "не тупо" наложенными и активированными патчами != самим патчам. И тем более != ОС общего назначения.
Это не значит, что они лучше или хуже - другие.

> "Не просто зачинить" - это называется proactive security. И сами разработчики OpenBSD если не придумали, то всячески старались до какого-то момента популяризировать этот подход. А "зачинить то, что было сделано плохо" - это называется reactive security, каковой подход опять-таки сами разработчики OpenBSD всячески критиковали.

Спасибо за безвозмездный ликбез, я в курсе. А как называется, когда в коде ищут проблемные места, типа как при дыре, и тупо убирают их, вместо proactive security?
Я точно не знаю.
В любом случае, ни один подход не должен быть религией. Если целеобразно уничтожить класс проблем, вероятно, следует внедрить проактивную меру, если не целесооразно - соответственно.
Было ли целесообразно в том конкретном случае - я не знаю.

> Вот и расскажи, чем они нишевые.

Тем, что нет публичных дистрибутивов (и далее по тексту). Тем, что те, что были, из коробки не работали как "обычные", были немаловажные нюансы.
Тем что готовых решений общего назначения не было (не утверждаю, что они принципиально невозможны).
У пользователей обычных ОС разнообразные требования, за grsec, обычно, приходят, когда хотят безопасности. Это и является очевидной спецификой.

> Ты не путай безопасность через корректность вне контекста - с тем бредом, который ты ляпнул. Ты ж её _противопоставил_ "митигациям", как ты их назвал.

Я не противопоставляю. Я просто не считаю, что _каждая_ дыра должна приводить к внедрению проактивных защит и/или митигаций. И хорошо, что в опенбсд предпочитают наводить порядок и корректность, а не плодить подпорки, пока это возможно. ИМХО.

> Так определись уже, правильно или не правильно. Или ты рад тому, что разработчики OpenBSD неправильно делают?

Разработчики OpenBSD стараются делать правильно. А когда правильно внедрять проактивные защиты, а когда нет - имхо, очень непростой вопрос. Я рад, что OpenBSD'шники практикуют технический, а не религиозный подход и применяют меры исходя из целесообразности. Да, они _разумеется_ могут ошибаться в своих решениях.

> Тут дело не в количестве, а в качестве. А именно, в соответствии оных защит современному технологическому уровню угроз. В случае с OpenBSD - в несоответствии.

Не только. Ещё в целях проекта, стоимости внедрения и так далее и тому подобное - сто раз уже писал.

> Это мы уже обсудили. Я изложил свои доводы, ты их проигнорировал.

А мне кажется, что проигнорировал меня ты. Если так и будем ходить по кругу, скорее всего, ни до чего не договоримся. Я это переживу, ты, уверен, тоже, но тогда лично я предпочту закрыть эту тему - мне ок, что у кого-то есть мнение отличное от моего.

> фактических претензий к PaX/grsecurity в этом плане у тебя нет

Чиселок у меня нет, и я нигде не заявлял обратного.

> Снова ужимки и прыжки.

Да никаких ужимок. То, что приемлемо для частного решения, может быть неприемлемо для общего. Этот простой факт ты почему-то никак не хочешь принять.

> Ничья полнота тестов в таких случаях не может быть абсолютной. Это математический факт. Дальше что?

Дальше - опыт практической эксплуатации. Который, в случае grsec несравним с стоковым линуксом. В случае OpenBSD нет отдельно "безопсности" и отдельно ОС, там всё сразу и тестируется (последняя стадия - в продакшене) на полной аудитории, а не на подмножестве.

> что артументов по существу у тебя нет и ничего умнее, чем про "набор патчей", ты придумать не можешь.

Я намекаю на очевидные следствия из этого факта.

> Чтобы удовлетворить _моим_ личным критериям (если представить, что я начал пользоваться OpenBSD и захотел воплотить решение).

Ты захотел "как в линукс", это не цель, и не критерий, это проецирование опыта и отсутствие кругозора. В твоём случае, я почти уверен, - просто троллинг.
Инструменты надо подбирать под задачи. Ты захотел от pledge того, для чего его не проектировали. И начал предлагать костыли. Хотя надо было выбрать другое решение. Вероятно.

> Ну так и не обсуждай. Я заставляю, что ли? Сам пустился в рассуждения, как враппер сделать. Потому что идея пришла и язык зачесался. Мне враппер как таковой вообще не нужен и не интересен.

А, ну то есть про враппер - это типа я начал? ;)
Я привёл ровно один пример, как бы сделал я, будь мне нужен костыль. Это ты мне рассказывал, как делать надо.

> Вот я тебе рассказал (а ты сделал вид, что не заметил), зачем paxctld нужен и чем он лучше хуков пакетного менеджера. Будь у тебя чуть более богатый опыт работы, ты бы сам сообразил и просто вспомнил, что кроме системных пакетов в продакшене нередко присутствует много, чего ещё, что может потребовать настройки PaX-флагов.

Нет, это просто было за рамками обсуждения.
И если бы paxctld предлагался бы как решение для того, что по задумке не под пакетным менеджером (там типа уже всё с правильными флагами и нужды в paxd нет), вопросов бы, как раз не было.
Но он предлагается именно как дополнение подпорка к пакетному менеджеру, в первую очередь. Кроме, видимо, hardened gentoo и приватных дистрибутивов.

> Не не просто добавляешь "ломает приложения" - ты убегаешь в эту расплывчатую формулировку. "Ломает" - как многозначительно звучит-то! А я говорю: системные вызовы возвращают ошибку и работают в рамках, допустимых стандартом.

1) Это вольная, игнорирующая реальность трактовка стандарта.
2) Не всё ПО умеет обрабатывать такие ошибки -> проблема актуальна.
3) Даже то ПО, что умеет такое обрабатывать, может начать работать медленнее - это _можнет_быть_ критично.

> как ты сам сказал, думал, что семантика работы PAX_MPROTECT - это аварийное завершение процессов, которые нарушили ограничения PROT_EXEC. А это не так.

Нет, ты ошибся, я так не думал. Я так почему-то один раз написал (ты цитировал, где) и объяснить, почему я написал так я не могу, наверное, думал о чём-то другом или пропустил какие-то этапы в рассуждениях.
Цель той писанины была не объяснить механику pax mprotect, а показать, почему и без него не факт что всё будет обязательно трагично.

> К слову, когда в OpenBSD вводили W^X, были разговоры, что это сломает работу некоторых приложений, на что разработчики OpenBSD вполне обоснованно возражали, что если приложение не следует стандартам, нужно исправлять приложение, а не подстраиваться под его изъяны. Попробуй теперь этот факт подружить с иллюзиями в своей голове.

Я такого не помню, помню зато, как тот же W^X pt 2 называли нарушением стандарта. Если ты напомнишь, где такое почитать - смогу высказаться по теме, пока - увы нет.
Если приложение нарушает стандарты, его безусловно нужно чинить. Но доступная на запись и исполнение память, к сожалению, не нарушает стандарты.
И в OpenBSD есть wxneeded (которым никто не гордится, да). Почти PaX-флаг, в первой инкарнации.

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

111. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 26-Фев-20, 10:50 
> Да нет, я сразу именно про xorg и подумал. Только, емнип, pledge там так или иначе не помог бы.

Сразу - это прям сразу? Значит, у тебя в голове вместо целостной картины не один, а два отдельных юз-кейса. Разница ого-го!

> И обрати внимание, что я сказал про то, что не вижу _большой_ проблемы, а также что я согласился с тобой, что с точки зрения безопасности его правильнее отзыать как можно раньше.

Я обратил внимание и уверен, что это не более чем фигура речи. Кроме того, уязвимость, оставленная доступной для эксплуатации не может быть маленькой проблемой, если только речь не идёт о конкретных частных случаях. А она не идёт.

>> И про уязвимости, например, в libc
> Да нет, не туда ты. Я просто изначально стою на позициях, что 1) pledge - не серебрянная пуля 2) не аналог pax_mprotect.

Ага, не аналог, а лучше, удобнее, красивее! :)) И не на твой взгляд, а прям-таки объективно. В такой вот позиции ты стоишь.

> Можно придумать ещё много примеров, когда pledge потенциально(?) не эффективен, и что?

Приведённые примеры были не про потенциальную неэффективность (уж куда-куда, а в код приложений с setuid-root pledge должны добавлять в первую очередь, и сделать это можно в коде ld.so), а к тому, что ограничения PROT_EXEC нужно включать как можно раньше.

> Неисполнимую память тоже пытаются обходить, я про всяческий ROP.

И что теперь, ничего не предпринимать и удешевлять во всех смыслах стоимость проведения атаки?

> В значительной части случаев тех мер, которые позволяет pledge достаточно, отдельные кейсы типа тех suid-бинарников можно защитить как-то отдельно.

Да не нужно их отдельно защищать. То, что ты начал рассуждать об отсуствии "больших проблем", не отменяет факта, что pledge можно использовать и в самом раннем коде. Снова самораскрываешься же. Ничто не мешает вызывать pledge из кода ld.so, а запрос на запрет того же PROT_EXEC передавать, например, через ELF-заголовок, который добавлять в setuid/setgid-экзешник на этапе сборки или после.

> Браузер - это просто _показательный_ кейс, показывающий пример силы подхода.

Нихрена он не показательный, если уж ты об этом хочешь поговорить. Доступ к файлам браузеру - нужен. Выделение исполняемой памяти - нужно. Доступ к видео, аудио и прочим вещам, порождение процессов - тоже нужно. Чтобы pledge там применить результативно, а не для галочки, нужно проектировать браузер под него или аналогичные средства, вроде SECCOMP. Чтобы какую-то существенную поверхность атаки браузера запускать в сэндбоксе. Чем разработчики хрома в гугле и занимаются, например.

> Про реальный мир - из контекста же было понятно, что речь про использование не на специализированных системах, типа военного и гос сектора, а in the wild?

Вся коммерция - in the wild. И персонал, который имеет доступ во все места инфраструктуры - тоже на дистрибутивах общего назначения сидит. Пока ты претендуешь на широкое применение своих оценок, никак ты не обоснуешь низкие шансы на эксплуатацию или возникновения такого интереса, а значит, и избыточность современных мер защиты.

> (мало != "не актуальны"). Возможно, недооценил специфики, например, хостинга.

Ты недооценил специфику любых целей, которые могут представлять интерес для более-менее продвинутой угрозы.

> Не, я правда не понимаю, зачем ты так хочешь.

Может быть, потмоу, что я так не хочу? Ты просто не видишь разницы между желаниями и предполагаемыми целями при решении задачи. Ну или придуриваешься. Ты тоже варппер придумал, на базе execpromises. Зачем ты его хочешь? Ах, прямым текстом сказал, что не хочешь? Ну так и я тебе прямым текстом сказал, что не хочу. Юродствовать любишь?

> Потом автор что-то поменяет в коде программы и что-то может в этой конструкции развалиться.

Возьми да порассуждай, какие возможны варианты. Снова всё разжёвывать - от области применения до принципов реализации и настройки предпочтений пользователем?

> Её придётся поддерживать. Это слишком сложно, тогда как добавить в код - просто (технически).

И всё-то для тебя слишком сложно, бедненький. Да, гибкость инструмента предполагает, что с его помощью можно решать и сложные задачи, и издержки соответсвующие нести. А можно решать и задачи попроще. Свобода выбора - она такая. Если самостоятельно патчить исходники, добавляя pledge, тоже что-то может сломаться. И?

> Это не требует инфраструктуры.

Только в твоих фантазиях, где за пользователя всё в полном объёме сделали разработчики.

>> Преимущества такого подхода в том, что не нужно править исходники. Ты не согласен с тем, что это преимущество, но я чётко и неоднократно озвучил свои предпочтения и требования.
> Само по себе это не преимущество и не недостаток.

Учись читать. Я пишу: "свои предпочтения и требования" - значит, не само по себе, а в рамках моих предпочтений и требований.

> Ты же сам про контекст мне напоминал, не?

Напоминал, да без толку.

> Да, нужно править исходники. Зато не нужна инфраструктура.

Взаимоисключающие утверждения.

> Твои требования и предпочтения - ради бога, я не утверждаю, что ты нуждаешься в OpenBSD. Я сравниваю конкретные подходы.

Сравниваешь в категориях лучше-хуже, красивее-уродливее, удобнее-неудобнее.


> И я в курсе, если ты не понял, что пока не так много программ защищено с использованием pledge, в то время как grsec используется давно и успешно, в своей области.

Я прекрасно понял, что ты в курсе, не волнуйся. А ещё я прекрасно понял, что осмыслить эти обстоятельства ты не в состоянии.

>> Ха, действительно, в OpenBSD нет и, похоже, не было ld.so.preload.
> Звучит, как будто это не ты допустил ошибку, а OpenBSD виновата.

Да? А должно звучать как констатация факта. Меня интересовало, был ли он там изначально, а не кого бы овинить. Хочешь указать на ошибку - укажи. Я ошибся, признаю. Но для моей позиции не принципиально, есть ld.so.preload или нет. А вот своё утверждение, что для обхода игнорирования LD_PRELOAD придётся лепить ещё один костыль, ты сможешь обосновать, только записав в костыли все оставшиеся решения. Которые ты не озвучил, потому что не придумал или не продумал ещё.

>> В любом случае, остаётся как минимум ещё один вариант
> Ради бога. Может быть, я немного подумаю и догадаюсь, о чём ты, а может быть и нет - не сомневаюсь, что ты знаешь немало того, чего я не знаю.

Вот лучше б ты сразу думал. Дело не в том, чтобы больше знать или мериться, а в том, чтобы не лениться думать.

>> Чем, по-твоему, занимаются бизнесы, которые оплачивают подписку на grsecurity? Нет, часть клиентов предлагает специализированные дистрибутивы, о grsecurity в составе которых тебе даже гугль не расскажет.
> Честно, хочешь верь, хочешь нет - ни секунды не сомневался в наличии  чего-то подобного.
> Дальше-то что? Это всё _приватное_. Какой смысл сравнивать специализированное решение и общее решение?

А дальше я тебе напомню контекст. Твоё утверждение: "А после того, как код grsec закрыли, и те hardened-вариации дистрибутивов, что были - загнулись." Нет, не все "hardened-вариации" загнулись. Спонсорские (теперь клиентские) - остались. И появились новые. А на мантры "про специализированное решение и общее решение" я уже ответил.

> Ты хочешь, чтобы я признал (лол)

Нет, я хочу, чтобы ты продолжал.

> что в grsec разработано больше всяческих техник защиты ядра и не только?

Это факты. Какая мне вообще разница, кто их в комментах на опеннете признаёт и тем более ты?

> Только вот говорить про то, что "OpenBSD не доросли до grsec" (или как ты там написал) - некорректно, потому что одно - ОС, другое набор патчей.

По чётко озвученным критериям - не доросли. И это тоже факт.

>> в том числе и такое, вроде Mathematica, которое для "ОС общего назначения" OpenBSD даже не выпускаются. ;)
> А это, конечно, имеет такое отношение к обсуждаемым темам? Я в курсе, какая *nix ОС сейчас самая популярная, спасибо.

Самое прямое.

>> что каждый пакет и каждая новая его версия была собрана именно с pledge
> Процессы в ps помечаются "p". Это можно даже автоматизировать, если это важно. А так да, если важно - проверять.

Список PaX-флагов я вижу чётко в /proc/[pid]/status для каждого процесса. А pledge не сводится к запрету PROT_EXEC. Как мне узнать, какие ограничения pledge действуют? Какие "костыли" мне для этого нужно сделать? И почему не-костылей нету в шатном наборе утилит?

>> есть приложения, для которых PROT_EXEC через pledge в лучшем случае сделают опциональным (и придётся настраивать руками), в худшем - вообще не включат
> Естественно. Я нигде не утверждал обратного.

Значит, приложения, для которых не включат PROT_EXEC, окажутся хуже защищены от эксплуатации уявзимостей посредством выполнения произвольного машинного, чем эти же приложения на системах с PaX. Даже в перспективе. ЧТД.

>> И получится, что запрет PROT_EXEC через pledge тоже нужно настраивать, но через аргументы командной строки, конфиги (множество разных) или переменные окружения.
> Всё верно. Мы можем или также не включать, как в PaX или, _возможно_ попробовать сделать лучше.

Ну так это по факту в PaX сделано лучше: там есть PAX_EMUTRAMP, а в OpenBSD аналогов нет. И это при том, что в линуксе есть SECCOMP BPF, который уже позволяет гораздо более гибко задавать ограничения. Захочешь реализовать полный аналог pledge на библиотечном уровне - пожалуйста. В функциональном плане OpenBSD проигрывает по всем параметрам. Могут выиграть только по охвату и простоте применения, и только в изолированном контексте SECCOMP vs pledge.

> Ну или не сделать, пример ты привёл - pledge не серебрянная пуля, я в курсе, что она решает не все на свете проблемы.

Важно, что он не решает проблем, которые решает PaX.

>> У меня есть. Тебе - нигде.
> Ну так это аргумент "в мою пользу", а не в твою. С тем что приватно бывает очень всякое я никогда не спорил.

Это ответ на твой вопрос, а не аргумент. Хочешь аргумент - пожалуйста. Теперь те, кто заинтересован в получении доступа к grsecurity, могут попытаться договориться и заплатить, получив в ответ не просто тот же набор патчей, что получили бы раньше бесплатно, но и высококачественную поддержку, и возросшую скорость реакции проекта на появление новых классов и способов эксплуатации уязвимостей. Напоминаю, что комплексная защита от атак на микроархитектуру на данным момент есть толкьо в grsecurity и больше _нигде_, и является следсвием коммерциализации проекта.

>> Видишь, тебе _отвратителен_ сам подход. Какие ты от меня технические аргументы в ответ на отвращение хочешь услышать-то?
> Я писал и про то, что наличие дополнительного процесса, работающего со входными данными от пользователя и управляющего безопасностью приложений - это плохая практика.

И это тоже твои субъективные оценки. И обосновать ты их попытался всё в тех же субъективных и непрозрачных категориях. Когда я говорю о лучших практиках, например, то апеллирую к _общепринятым_ нормам. А ты - сугубо к своим собственным.

> Потому что это логика сбоку от пакетного менеджера. Потому там могут быть ошибки. Потому что он может упасть, а с обновлением приедет пакет без pax-флагов.

Как упадёт, так и поднимется - вопрос наличия супервизора. Так-то и sshd тоже упасть может, и ПО, существование которого деньги приносит. Последствия-то какие будут, если пакет какое-то время пробудет без PaX-флагов? Давай, думай, рассуждай.

> Не сомневаюсь, что ты или проигнорируешь это или объявишь несущественным.

Ошибся. Я объявлю это надуманной проблемой. А твои попытки раздуть её до существенных масштабов - не более, чем таковыми. paxctld, как я уже писал, решает более широкий перечень задач, чем пакетный менеджер - так ты вообще этого не заметил. Вот уж действительно, в чём я не сомневался.

>> То есть, примерно везде, где востребован уровень защиты наилучший из практически достижимых по совокупности требований на сегодняшний день.
> Доказательств ты, разумеется, не предоставишь. Не, я охотно допускаю, что всё так, но сам факт.

Доказательств чего? Что у grsecurity по совокупности и качеству реализаций защитных функций нет аналогов? Так это ты своё невежество выпячиваешь, спрашивая у меня доказательства. Такие вещи знать надо.

>> А кто сказал, что оно нишевое? Ты. А на каком основании? Может быть, есть общепринятые представления, классификация ОС? Нет. Может быть, ты эксперт и даёшь экспертное заключение? Тоже нет. Утверждение о нишевости - твоё личное мнение, которое ты очень хочешь выдать за авторитетное.
> А это напрямую следует из их приватности и декларированных целей - предоставлять максимальную безопасность насмотря на стандарты (например).

Это где такие цели задекларированы, покажи? Мало того, что твои выводы остаются сугубо твоими, не имеют веса и статуса, так ещё и на ложных фактах основаны.

>>> PAX MPROTECT прибивает процесс, который вызывает mprotect, добавляющий PROT_EXEC
>> Не прибивает, а возвращает EACCES. Поэтому
> Да, это ты по делу, а я нет. Я не могу сказать, что на самом деле я тогда хотел сказать, или имел ввиду, но так или иначе, по факту я написал херню.

Ага. И даже не попытался разобраться, почему херню написал. Я это сделал за тебя выше, не благодари.

> Но странно, ведь по контексту _нашей_ беседы, уж что что, а то, что я понимаю, что делает pax_mprotect следует. Стоит ли так передёргивать?

Из контекста нашей беседы, который, представь себе, включает и те аспекты, которые здесь затронуты не были, следует как раз то, что ты не понимаешь, что делает PAX_MPROTECT. Это если говорить о полном понимании, с учётом всех известных и даже очевидных обстоятельств, вроде синергии с TPE. Речь не о каких-то деталях реализации, а о существенных аспектах, о большинстве которых ты был бы в курсе, если бы внимательно читал, запоминал и анализировал хотя бы текст help'ов в Kconfig.

> Впрочем, ты всё равно будешь - успехов.

Успехи достигнуты, но не в них суть.

>> О нём уже можно сказать ... полнотой своего применения.
> А где я опровергал что-то из написанного тобой тут?

Пытался оспорить тезис о трудозатратах, например. А вообще я лишь резюмировал, что уже можно сказать.

>> Для масс содержимое paxctld.conf могло бы управляться пакетным менеджером
> Могло бы. Реальность иная и моей вины в этом нет. Это и есть аргументы, а не "выдуманные сложности".

Мой юный друг, говорить о возможных перспективах позволительно не тебе одному. Уясни это. И твои "аргументы" (почему-то во множественном числе) - не аргумент ни в пользу чего-либо, кроме утверждений, которые меня не интересуют. Вроде отсутствия дистрибутива с PaX "для масс".

>> В grsecurity KASLR от-клю-чён.
> Да, ошибка. Я что-то перепутал, был уверен в обратном.

Тут случай, когда осознание ошибки отнюдь не говорит о том, что она будет осмыслена.

>> Нет, факты того, что в стремлении не просадить производительность они от кого-то отличаются, а конкретно от PaX и grsecurity.
> А я не хочу ничего такого доказывать.

Вот и славно.

> Дистрибутивов общего назначение с grsec внутри нет - нет возможности наокпить опыт с сравнить производительность до и после.

Глупое утверждение. Вот я сижу сейчас на дистрибутиве общего назначения, но ядро с grsecurty. Могу измерить призводительность, загрузиться со штатным дистрибутивным ядром, снова измерить. Ничто не мешало раньше и в известных рамках не мешает сейчас. Ты просто пыжишься и пытаешься создать видимость какой-то неопределённости. Spreading FUD.

> Согласен, из контекста выглядит так, будто я конкретно в этом противопоставлял openbsd  grsec'у. Нет, я просто перечислял, чиселок с grsec у меня нет, и я на это не намекал.

Значит, теперь намекаешь. Есть старые версии grsec, в конце концов, включая относительно недавнюю утечку исходников. Кому надо - опыт накопит.

>> Ну-ка, ну-ка, какие там накладные расходы на KASLR?
> Копейки, но они есть. А KARL - не рантайм процедура.

Так какие, конкретно? И в чём существенная разница c KARL? Ты же его в пример привёл, как в OpenBSD производительность берегут: что вот KARL позволяет какихт-то накладных расходов избежать. Так выходит, и пример у тебя копеечный.

> Сравнивай условный debian до pax и с pax, зачем тут OpenBSD? Приложений под неё меньше, и для меня это не новость, но это по другим причинам.

Для классификации ОС на общего назначения и специального я выдвинул свои критерии, _на базе общепринятых_. Согласно моим критериям, дистрибутив общего назначения с grsec-ядром является ОС общего назначения. Которая решает задачи общего назначения - тот же их перечень, что и линукс без grsecurity. А OpenBSD не является ОС общего назначения или является ей в меньшей степени, с тенденцией к уменьшению, поскольку круг задач, которые она позволяет решить, ограничен более узким перечнем доступных и работоспособных приложений. Приложений под линукс всё больше, приложений под OpenBSD - всё меньше. Эмуляция линукса работает всё хуже (если ещё работает - не уточнял), не поспевая за его развитием. Да и проблемы параллелизмом у ядра OpenBSD на современных многоядерных многопоточных процессорах выводят её из группы ОС общего назначения, существенно сужая область применения. А у тебя критерий один: патчи, а не ядро, которых в стандартной поставке нет. Ну, мой юный друг... OpenBSD в стандартной поставке ОС общего назначения тоже нет. ;)

> Ты ещё про то, что она масштабируется хуже, например, вспомни, ага.

И вспомнил, потому что это действительно важно. Это существенно ограничивает область применения на практике. Ты не согласен с этим?

> Критерии - декларируемые цели / реализуемые по факту решения.

Ну, про декларируемые цели ты мне ещё расскажешь, где ты их для PaX/grsecurity вычитал. А про реализуемые по факту решения я тебе уже всё сказал. А вот как в твои критерии укладываются дистрибутивы, вроде RHEL, где политики SELinux включены по умолчанию? И которые пользователям "для нормальной работы" приходится отключать, как ты верно заметил. Это ОС общего назначения или специального?

>> Тебе не надо, а мне надо. "Ни в коем случае" - типичный нигилизм и неуважение к чужому мнению. Один ты умный с правильным мнением, да разработчики OpenBSD. У всех остальных мнение неправильное.
> Цели задеть тебя не было, если ты об этом.

Нет, я о твоих претензиях на авторитетное мнение.

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

107. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 24-Фев-20, 20:13 
> Хотеось бы отозвать prot_exec везде - это сделали бы как в pax. Суть в том, что так делать не хотели
> ОСОЗНАННО, и чинить это типчным линуксвеем - НЕ НАДО.

А где я утверждал, что делали неосознанно и что чинить надо? В OpenBSD пусть хоть на головах ходят - их право и поприще. Ты настолько неуверен в собственном мнении, что видишь угрозу праву на его существование там, где её нет.

> Ты думаешь, что нюансы, на которые ты пытаешься обратить внимание имеют какое-то значение,
> но напротив, они не принципиальны

Для тебя непринципиальны, а для меня и не только для меня - приципиальны. Причём, уже на самом общем уровне, вроде whitelist vs blacklist. Твоё мнение имеет не больше прав на существование, чем мнения других, представь себе.

> ты предлагаешь уродливый костыль и удивляешься, что никто не в восторге. Это странно. Особенно в свете того

Это очень странно! Особенно в свете того, что я никому ничего не предлагаю и ничему не удивляюсь. :))) В голос просто. Чудесная у тебя каша в голове.

> что ты сам оценил идею с LD_PRELOAD как смешную.

Так ты и существенной разницы между paxctld и рантайм-врапперами не признаёшь?

>>> Суть pledge - сделать удобный api для privilege revocation, а не слепить костыль для принудительного отключения prot_exec.
>> Сколько раз ты ещё намерен это повторить?
> В теории - пока не дойдёт до собеседника.

То есть, ты считаешь, я не понимаю, что такое pledge и какая у него область применения?

> На практике, мне скоро станет лень и я сольюсь.

С твоими ожиданиями тебя ждёт только разочарование. Потому что очевидно, что между непониманием собеседником фактов и его нежеланием принять твою точку зрения ты ставишь знак равенства.

> Нет смысла пытаться задеть меня.

Смысл есть и хорошо виден. :)

>> А я не спрашиваю твоих оценок их решениям. Я тебе указываю на факт, что у сложных механизмов защиты есть свои пользователи, помимо бездумно отключающих SELinux.
> На бесптичье, как говорится, и жопа соловей. Пока нет нормальных инструментов, и selinux сгодится.

Снова скачешь с темы на тему - это ладно, я уже понял, что по-другому просто ещё не умеешь. Примечательно, что ты не знаешь (потому что я не озвучил, да), для решения каких задач упомянутые мной люди пользуются SELinux, но особо ценное мнение о том, что это ненормальный инструмент для решения их и вообще всех задач - у тебя уже есть. :))

> И если бы ты читал то, что я тебе пишу, ты бы увидел, что я не отрицаю того, что решения типа селинукса имеют  область применения.

Я это заметил, но ты же это пишешь не в вакууме, а присовокупляешь к рассуждениям, которыми пытаешься доказать другие тезисы. Один из таких тезисов, вон, прям цититой выше: о том, что SELinux не является нормальным инструментом. И я даже сомневаюсь, что ты заметил, как этот тезис выдвинул.

> Только эта область применения не связана с защитой программ от самих себя (от дыр в них)

Связана. В части запрета на использование PROT_EXEC и не только. И в существенной мере пересекается по функциональности с pledge, являясь при этом системой _мандатного_ контроля доступа. И даже позиционируется как таковой теми самыми "серьёзными игроками", на которых ты сам выше и ссылался.

> она про сложные политики доступа к данным и ПО в сложных организациях.
> Почему-то этой простой мысли ты понять никак не можешь, или не хочешь.

Мысль мне понятна, но фактически ошибочна. У SELinux более широкая область применения, и это факт. Ты снова путаешь понимание с принятием и согласием.

>> Ага, и операционку свою напишут. За пару вечеров. Тебе сколько лет, уважаемый? С понятием запретительно высоких издержек знаком?
> Смешно. Зачем так люто передёргивать и сравнивать проверки тривиального (не полноценный
> аудит, да) и написание ОС? Сказать по-существу нечего?

По существу я уже тебе несколько раз сказал. Забавно, что я даже не передёргиваю. Ты не только написал "и всё вообще на свете сделают и проверят", но и фактически ведёшь речь о том, что глобальный запрет на использование PROT_EXEC должен решаться посредством модификации кода каждого компонента. Это очень затратное предприятие - опять же, _в реальности_, а не в твоих фантазиях и перспективах - если посчитать все затраты в сумме. Не согласен - дело твоё.

>>> А _по_умолчанию_ должен быть максимально безопасный вариант, но в пределах допустимого стандартом, если заявлена поддержка оного.
>> Кому должен? Почему должен? Потому что ты так сказал? В OpenBSD могут делать всё, что захотят, в том числе промывать мозги своим доверчевым пользователям. А свои претензии на универсальные критерии можешь употребить по назначению.
> Тот, кто заявляет, что выпускает POSIX-совместимую ОС, тот и должен.

Во-первых, никто тебе ничего не должен. Во-вторых, даже мнение о том, что PAX_MPROTECT является нарушением стандарта - всего лишь мнение. В-третьих, никто не заявляет. Всё это у тебя в голове происходит. И никто давно побуквенно POSIX не следует. И официальная стандартизация никому не нужна, включая OpenBSD. Фактическое следование стандартам в OpenBSD тоже ставится под вопрос, в том числе, когда дело касается безопасности: https://lwn.net/Articles/625506/

> Потому что иначе это ЛОЖЬ. А тот, кто её испускает - ЛЖЕЦ.

Смотри, ты уже на капс перешёл. Обманули тебя? А кто? Покажи пальчиком, где ты лживые заявления прочитал.

>> Ты везде продолбался и продолжаешь. Но поймёшь это нескоро, похоже, если вообще поймёшь.
> Продолжай убеждать себя в этом.

Зачем мне себя убеждать, если ты меня давно убедил и продолжаешь?

> но так мало пишешь по делу..

Это у тебя такое впечатление сложилось. Научись воспринимать прочитанное - оно изменится.

> Один раз ты подловил меня с pledge, но почти всё остальное
> - переливание из пустого в порожнее и неспособность

Всё просто. Твоей "экспертизы" хватило только на то, чтобы заметить, как я тебя "подловил с pledge". Всё остальное для тебя неочевидно и непонятно, даже в разжёванном виде. А кроме того, не соответствует твоей картине мира, вызывает когнитивный диссонанс и эмоциональный отклик, который мешает восприятию и с которым ты пока не научился справляться. Поэтому учись. Учись воспринимать смысл написанного собеседником, понимаеть его рассуждения, сопоставлять их с фактами.

> признать очевидное.

Признать очевидное и согласиться с твоим мнение - разные вещи. Ты не видишь разницы.

> Поэтому и "надрачивание".

Нет. "Надрачивание" - потому что родители недовоспитал и ты принёс это сюда, почувствовав свободку "самовыражения", из какой-то клоаки. С двача какого-нибудь. Оттуда же "моралфажество" и прочие производные подросткового нигилизма. Вот придёшь на работу устраиваться - засунешь подальше себе весь свой нигилизм, прекрасно понимая, чем чревато "говно" и "надрачивать", проскочившее в речи на собеседовании. А тут ты просто ничего не теряешь и в рамках себя не держишь, но предметный разговор тебе, хаму, видите ли, подавай. :))

>>> В целом согласен
>> А это не важно, согласен или нет. Цель анализа в другом. Носом тыкать не стану, всё ты понимаешь прекрасно.
> Честно - не вполне. То ли ты не понимаешь, то ли троллишь.

Да всё ты вполне. Сам же сказал, что продолбался. И продемонстрировал невладение самыми азами, чем раскрыл свой общий низкий уровень компетентности во всех смежных областях, включая имеющие непосредственное отношение к обсуждаемым вопросам. И апломб твой оттуда же, из дремучего невежества. Эффект Даннинга-Крюгера в действии: достаточных (чтобы их учитывать или высказать) сомнений о том, что может быть какой-то другой технический способ, у тебя даже не возникло. А такие сомнения непременно возникают у человека, который, может быть, ни разу и не писал рантайм-врапперы, но неплохо знаком с другими низкоуровневыми аспектами работы программ. Ты, можно сказать, вообще всё этим про себя рассказал. Выложил всю свою подноготную, и не в первый раз уже. Sapienti sat.

> Есть и более грустные варианты, но опускаться до них я не буду.

Уже опустился. Нафантазировал себе в голове всяких удобных мыслей и погрел своё болезненное, ещё взрослеющее самолюбие у их огонька.

>>> хотя и большой проблемы в более позднем отзыве prot_exec не вижу
>> Потому не видишь, что у тебя в голове вместо относительно глубокого и широкого понимания, условно достаточного для обоснованного вынесения суждений по этим вопросам - какой-то отдельный юз-кейс. Типа того же браузера.
> Браузер - это только пример нужного приложения, которое требует нарушения W^X и
> для которого использование pledge и unvel может быть практичнее, чем PaX.

Вот тебе ещё пример самораскрытия. Ты потому не увидел проблемы "в более позднем отзыве prot_exec", что не учёл, например, случаев атаки на setuid-процессы, когда уязвимость может обнаружиться в самом раннем коде, и эксплуатироваться будет локально, для повышения привилегий. И конечно, когда я на это намекнул, а теперь и сказал, тебе это покажется _очевидным в ретроспективе_. И про уязвимости, например, в libc, а не только в Xorg, ты, наверное, что-то слышал и даже читал. Я сейчас напомнил и ты вспомнил, так? И знания, позволяющие тебе сделать более осторожные, нежели озвученные тобой, выводы, у тебя вроде бы тоже есть. Но знать - не значит понимать. Понимать надо уметь, это _навык_. И надо учиться его вырабатывать. А чтобы учиться, надо, в числе прочего, подвергать сомнению и анализу собственные размышления, выдвигать антитезисы и пробовать найти им подтверждение. А что мы видим на деле? Я тебе намекнул, что браузел - лишь один из кейсов, а ты мне снова мычишь в ответ про pledge и unveil, как они могут быть практичнее, чем PaX, и про шансы на эксплуатацию в реальном (!) мире. Что ты знаешь о реальном-то мире, художник перспектив, историк-футуролог? Феерия просто. Вот и подумай, нужно ли мне в чём-то себя убеждать в отношении тебя и твоих особо ценных мнений, на фоне _такого_.

> вспомнить, где дыра чуть ли не в разборе аргументов командной строки

И в коде более ранних стадий бывают уязвимости.

> была, ну т.е. на стадии инициализации), но шансы на эксплуатацию подобного
> в реальном мире невелики.

Очередное самораскрытие. Сначала ты ляпнул, не подумав, что "большой проблемы в более позднем отзыве prot_exec не вижу", а теперь либо оправдываешь этот неверный исходный тезись, либо выдвигаешь независимый, не менее глупый (причём, в обех возможных трактовках: технические шансы на успех или шансы на то, что цель окажется достаточно привлекательная/доступная для атак). Это ты про реальный мир снова рассказываешь человеку, который в своё время не раз проверял production-системы на подверженность подобным уязвимостям и наблюдал плачевный результат. И этот опыт нередок, он есть у всех, практически у всех, кто более-менее уделяет внимание этим вопросам и работает не первый год. И тут какой-то комментатор опеннетный со своей новаторской оценкой вероятности вылезает.

> Обрати внимание, prot_exec по умолчанию не отзываю не лично я, а очень многие люди, не только разработчики OpenBSD.

Апелляцию к авторитетному опыту миллиона мух в очередной раз не принимаю.

> В роли д'артаньяна выступаешь сейчас ты, на белом коне. Жаль только, с высокомерным умничанием, вместо чего-то по существу.

Это тебе только кажется, что я по существу не пишу. Потому что ты не воспринимаешь или отвергаешь мои аргументы, как отверг, например, отсылку к whitelisting'у как лучшей практике. И этим тоже хорошо себя показываешь. На самом же деле я тут бисер мечу, вёдрами.

>> Например, на этапе инициализации запретить использование PROT_EXEC, а после listen() - доступ к файлам.
> Просто если собеседник имел ввиду это, то не понятно, зачем он предлагал
> выносить это во внешний конфиг и настраивать ограничения для каждой процедуры
> отдельно.

Непонятно - спроси! Есть такая возможность: задавать собеседнику вопросы. Представляешь? И снова самораскрытие, снова базовые вещи тебе непонятны.

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

Обрати внимание, что про "для каждой процедуры" - это ты или додумал, или криво-косо сформулировал. В любом случае, в своём репертуаре. Идём дальше. Тебе не понятно, зачем я это предложил. Очевидно, затем, чтобы вместо модификации исходного кода приложений получить возможность последовательного включения ранзых ограничений на разных этапах работы программы. То есть, чтобы добиться практически эквивалетнтого по гибкости использования pledge без модификации и пересборки исходников. Иными слоами, ответ на вопрос "зачем?": ровно за тем же, зачем pledge вставляют в разные места в исходниках. Это сложно для понимания? Достаточно следить за ходом разговора и сопоставить в уме возможности такого враппера с тем, как pledge используется в исходниках.

> У такого подхода могут быть преимущества только в том случае,
> если можно зарезать каждую процедуру до МИНИМАЛЬНО ей нужного.

Преимущества такого подхода в том, что не нужно править исходники. Ты не согласен с тем, что это преимущество, но я чётко и неоднократно озвучил свои предпочтения и требования. Этого достаточно, чтобы хотя бы понять, о чём я говорю, не соглашаясь при этом со мной ни в чём. Но нет: гормоны бурлят, пелена эмоций застилает и разум, и взор.

> А так как это нельзя, нет смысла городить описанное собеседником, достаточно N раз
> сбросить привилегии и всё. Как это и предлагается в pledge.

Ровно это враппер и делал бы: сбрасывал привилегии pledge "N раз", но не на этапе подгрузки библиотеки, а в тех участках кода, где это нужно сделать. Может быть, тебе кажется, что ты троллишь, но со стороны твоё поведение выглядит как непроходимое упорство, переходящее в тупость.

>>>> Использовать LD_PRELOAD - тоже. Хотя бы потому что LD_PRELOAD игнорируется для suid
>>> и sgid бинарников, лепить ещё один костыль для обхода этого - странно.
>> Только переменная среды игнорируется, а содержимое /etc/ld.so.preload - нет. Костыль лепить не нужно. А вот знать, о чём говоришь, или молчать, о чём знаешь мало - не повредило бы.
> Мы про какую ОС? В linux нет pledge, в openbsd нет ld.so.preload.

Ха, действительно, в OpenBSD нет и, похоже, не было ld.so.preload. В любом случае, остаётся как минимум ещё один вариант: b81229ded53de571903ade8c5bbc7ca4099125cf (чтоб не подсказывать).

>> Равный результат существует только у тебя в голове. Как и все якобы существенные трудности в случае с PaX. На практике нет никакого равного результата. С PaX я задаю ограничения для всей ситсемы, сразу, и затем либо ослабляю их для отдельных приложений, либо эти приложения не работают и поверхность атаки не открывают
> Пока только в голове, да. Ну и для небольшого числа приложений. Это так и задумано.

Ты уж определись: или в прерспективе через pledge PROT_EXEC будет выключаться везде, где не нужно, или это так и задумано, что только в небольшом числе приложений.

> Я в кнопки "сделать безопасно", прости, не верю. И PaX mprotect оной не является.

Ну-ну. И теперь, чтобы хоть как-то реабилитироваться в своих глазах, ты приписываешь мне утверждение о том, что PAX_MPROTECT является аналогом кнопки "сделать безопасно".

>> В любом дистрибутиве.
> Ну что ты врёшь, а? Это ж элементарно всё проверяется. Из коробки этого нет нигде. И не было.

Это ты врёшь. Специально вырезал остальную часть моей реплики: "С PaX я задаю ограничения для всей системы, сразу, и затем либо ослабляю их для отдельных приложений, либо эти приложения не работают и поверхность атаки не открывают. В любом дистрибутиве." И делаешь вид, будто "В любом дистрибутиве." является утверждением о наличии в любых дистрибутивах поддержки PaX в том или ином виде. Вижу обрушение стандартов качества "троллинга" с твоей стороны. Решил слиться и уже не стараешься?

> А после того, как код grsec закрыли, и те hardened-вариации дистрибутивов, что были - загнулись.

Те, что ты знал, ты хотел сказать. Чем, по-твоему, занимаются бизнесы, которые оплачивают подписку на grsecurity? Используют его сугубо для внутренних нужд? Предоставляют услуги shared hosting'а? :)) Нет, часть клиентов предлагает специализированные дистрибутивы, о grsecurity в составе которых тебе даже гугль не расскажет.

> И вкорячив grsec-ядро, вот просто так, в обычный дистрибутив, ты получишь нерабочую
> систему. Оттуда все костыли типа paxd и выросли.

Снова самораскрытие. Почти всё будет работать, даже джава. А то немногое, что не будет - и не должно, пока я не выдам права. Дальше на моей системе "специального назначения" будет работать всё нужное мне ПО самого разного назначения, в том числе и такое, вроде Mathematica, которое для "ОС общего назначения" OpenBSD даже не выпускаются. ;)

>> Не может pledge дать сравнимый по качеству результат. Просто потому что в случае PaX ограничения легко снимаются по белому списку, а в случае pledge - выставляются по чёрному списку.
> Естественно, pledge ещё "не дорос" до того, чтобы ломать приложения ради "безопасности".
> В реальном мире, а не в фантазиях секурити-гиков, вахтёрство и прочее
> "не пущщать" работает не очень. А 3.5 пользователей hardened gentoo, при
> всём уважении, никому особенно не интересны. Да и нет их больше,
> как и опенсорсного grsec.

Ну, тут и далее очевидный "троллинг", ты не старался. Я тоже не стану, уже отвечал. Сливаешься?

>> С совершенно несопоставимыми трудозатратами. Это факты.
> Конечно. Ведь в случае pledge работу нужно выполнить 1-2 раза и разработчику/мэйнтейнеру.
> А потом больше никогда.

Работу нужно выполнить в первую пользователю, который непосредственно работает с системой и хочет включить ограничения, аналогичные MPROTECT, _для каждого пакета_ с бинарными экзешниками. А потом ему же, пользователю, нужно проконтролировать, что каждый пакет и каждая новая его версия была собрана именно с pledge, а не без него, потому что разработчик ошибся/забыл/откатил/не протестировал на OpenBSD/отказался добавлять его поддержку. ;) Либо не контролировать и тем самым автоматически установить отношения доверия по вопросу поддержки pledge с _каждым_ разработчиком/меинтейнером.

А кроме того, мой юный сливающийся друг, есть приложения, для которых PROT_EXEC через pledge в лучшем случае сделают опциональным (и придётся настраивать руками), в худшем - вообще не включат:
- Интерпретаторы с JIT и трамплинами на стеке для нишевых применений (FFI), которые тем не менее _могут_ работать без PROT_EXEC (иногда с падением производительности): Python, Java, Ruby
- Xorg (LLVM JIT), ClamAV
- Браузеры и аналоги, JS-движки, которые позволяют отключить JIT в настройках, а не на этапе сборки, как когда-то было с Firefox/Thunderbird

И получится, что запрет PROT_EXEC через pledge тоже нужно настраивать, но через аргументы командной строки, конфиги (множество разных) или переменные окружения. А кроме того, в OpenBSD нет ограниченной поддержки выполнения кода трамплинов на стеке, а ля PAX_EMUTRAMP, и для тех же интерпретаторов с FFI придётся отключать запрет на PROT_EXEC целиком. ;)

> Куда лучше накладывать PaX-патчи (где бы теперь взять их ещё?)

У меня есть. Тебе - нигде.

> собирать своё ядро

Это делается не ради MPROTECT. Я собираю ядра для каждой машины или группы мышин, как минимум ради RANDSTRUCT.

> расставлять pax-флаги и поддерживать всё это в актуальном состоянии. Это факты.

Да, это факты. И они полностью согласуются с моими выводами и фактами, а также критериями и требованиями. И противоречат твоим выводам, а также фактам, которые ты предпочитаешь не замечать (см. выше о бремени пользователя).

>> ставишь ли ты выше требований безопасности априорную поддержку устаревших стандартов или нет - сугубо твоё личное дело.
> Не знаю, кто дал тебе право называть общеиспользуемые стандарты устаревшими, но пока

Если в стандарте написано, что PROT_EXEC должен поддерживаться априорно и без исключений, то такой стандарт устарел по факту: PaX, SELinux, некоторые LSM-модули его уже нарушают. Но на деле речь не более, чем о твоей и разработчиков OpenBSD вольной трактовке стандарта, в которой ставится знак равенства между поддержкой и безусловной поддержкой.

> есть нужные приложения, которые их используют соблюдать их надо.

Для этих приложений стандарт соблюдается через выставление флагов.

> Нарушать стандарты можно и просто так, но тогда нужно не врать, про то, что всё будет работать

Толсто, убого.

> а кричать на каждом углу

Кричал ты на переменах пару лет назад (хорошо, если не в прошлую пятницу). А в документации всё написано.

> что будет сломано то-то и то-то, чинить такими-то костылями.

Как раз об этом.

> А не рассказывать про "гарантии безопасности", которых нет, как и совместимости с posix.

Во-первых, тебе никто или как минимум лично я ни о каких гарантиях не рассказывал. Во-вторых, в крайнем случае речь может идти о конкретных гарантиях, в заданных рамках ограничений, условий и модели угроз.

> Но да, если проект не ставит цель поддерживать стандарты, глупо ему за это предъявлять.

Так ты определись уже. То тебя, бедненького, обманывают все вокруг, про гарантии рассказывают... То вдруг оказывается, что проект не ставит цель поддерживать стандарты (так, как ты этого хочешь). OpenBSD тоже такой цели не ставит, но ты же ей пользуешься. Дальше что? Где они об этом кричат, покажи.

>> Не там, а практически везде. ...... Это даже не смешно. Это убого.
> Честно - мне без разницы. Ты думаешь, что убого не знать, что
> paxctld по умолчанию, а не paxd, а я думаю, что само
> наличие такого демона - это убого.

Я написал, что именно убого. Ты специально потёр всю смысловую часть в моей реплике, чтобы увильнуть от отвественности за свои слова.

> Твои предположения о моём опыте использования grsecurity и моих знаниях о нём
> не тоже не интересны.

Эти предположения основаны на фактах, на которые тебе нечего возразить. Пока я отдыхал на выходных, ты умудрился ляпнуть о том, при срабатывании запрета PAX_MPROTECT процесс убивается, а это не так. И вот это - твой уровень. Мне даже интересно, можно ли ещё ниже сдвинуть планку компетентности, чтобы ты смог хотя бы ей соответствовать...

> Мне приходилось связываться с grsecurity

О, да! К счастью! И ты уже раскрылся, мне даже вытягивать из тебя ничего не пришлось. :)

> и так вышло, что с paxd, и речь не только об втором десктопе
> на арче, на котором у меня N лет было grsec ядро, пока можно было.

Ага. Речь ещё о каком-то хостинге, тоже на арче. :))

> Так что право на мнение я имею.

Право на мнение ты имеешь априори, я тебе в нём не отказывал и не собираюсь.

> А твои постоянные попытки уличить меня во всяком куда больше говорят о тебе, чем обо мне.

Нееет, вот как раз-таки мои попытки уличить тебя во всяком заканчиваются успешно и говорят именно о тебе. А обо мне - лишь постольку, поскольку я считаю возможным неплодотворно тратить здесь своё время.

> Если тебе интересно, никаких проблем у меня с grsec в проде не было.

Это я уже слышал.

> Мне казалось, что мы сравниваем подходы

Ты даже не представляешь, сколько ещё всего тебе казалось и продолжает казаться. :))

> а ты мне продолжаешь рассказывать про неимоверную сложность pledge-патчей

Нет. Про суммарные накладные расходы на внедрение этих патчей, которые в реальном мире, а не твоих фантазиях, несёт пользователь.

> и неимоверную простоту и идеологическую верность pax-флагов.

Про и практичность и удовлетворение требованиям.

> Это не смешно, и даже не убого, это просто феерически тупо.

Прям фраза, которая резюмирует и свой контекст, и саму себя!

>> Воспитание твоё - сорт говна.
> Это не новость.

Ну ещё бы.

> Найди, пожалуйста, технический аргумент

Массу аргументов нашёл и привёл. Учись читать.

> типа как про pledge в тот раз, или просто конструктив, как про paxctld. Воззвания к моей совести бессмысленны.

Я не взываю к совести, а топчу твои претензии, указывю тебе твоё место, которое ты _сам_ себе выбрал.

>> Не отвертишься теперь.
> Даже пытаться не буду.

Так ведь и не получится.

> Мне признавать свою неправоту легко и приятно.

Это тебе так кажется. Потому что в вопросах, в которых ты неправ, но неадекватен, ты даже смысл прочитанного воспринимать не в состоянии.

> Ну вот у меня был опыт связанный с paxd, так уж сложилось,
> и да, мне никогда сильно не было интересно, какие костыли идеологически
> верно лепить вместо него. Отвратителен сам подход.

Видишь, тебе _отвратителен_ сам подход. Какие ты от меня технические аргументы в ответ на отвращение хочешь услышать-то? :)) Тут может быть только один "аргумент": не нравится - не пользуйся.

>> Всё происходило в Hardened Gentoo, где флаги выставляются пакетным менеджером, представь себе.
> Ок, буду знать. Вау, кто-то сделал нормально, а не через Ж. Жаль,
> что hardened gentoo, ЕМНИП, не вполне самостоятельный дистрибутив.

Ой, да брось. Не жаль тебе, а удобно, что ну хоть под предлогом не-вполне-самостоятельности дистрибутива его роль в контексте обсуждения можно попытаться свести на нет.

> Ну и жаль, что лично меня от gentoo тошнит, но к спору это уж точно отношения не имеет.

Почему? Чем "аргумент" "тошнит от gentoo" принципиально отличается от "аргумента" "отвратителен сам подход"?

>> Ага, надо, потому что ты, анонимный не-эксперт, сказал. Который не читал, но осуждает. И да будет тебе известно, рассуждальщик, что аналог "пакетов с xattrs" - это прошлое PaX. Когда-то флаги выставлялись через ELF-заголовки
> А я знаю про это, про ELF-заголовки. Зачем ты опять гадаешь?

Я не гадаю, а делаю вывод из твоих рассуждений. И как оказалось, лестный для тебя: потому что наличие у тебя каких-либо знаний к пониманию не приводит. Связывать одно с другим не умеешь.

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

108. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от недобрый (?), 24-Фев-20, 20:17 
>> Но сообщество пользователей grsecurity, включая дистростроителей, в своё время отдало предпочтение флагам в xattrs и демону paxctld. Причём, не сговариваясь. Потому что это удобнее.
> Нет, потому что править ELF-заголовок не при сборке пакета (как, видимо кроме
> Hardened Gentoo никто не делал) = заставлять пакетный менеджер ругаться на
> битые чексуммы у пакета.

Это где _пакетный менеджер_ ругается на битые чексуммы у _пакета_?

Если пакетный репо кастомный, то контрольные суммы модифицированных пакетов считаются в момент их публикации в репо. Если репо штатный, то и флаги будут выставлены в момент сборки штатной системой сборки. Если речь о средствах проверки целостности _файлов_ пакета после его установки в систему, то проверяет их не пакетный менеджер, а дополнительные средства вроде debsums, в выводе которых пользователь получит куцый список из нескольких файлов, который совпадёт с содержимым в paxctld.conf. И волновать это будет только тебя и только с моих слов.

> А так как никто не поспешил добавлять
> божественный pax в базовую поставку мейнстримных дистрибутивов пришлось лепить костыль
> с xattrs.

paxctld и XATTR_PAX_FLAGS - универсальное решение, которое позволяет управлять _всеми_ флагами в системе, в том числи для приложений, установленных из сторонних источников, включая внутренние и закрытые. Но у тебя в голове снова единственный юз-кейс: выставление флагов для файлов системных пакетов. Опыта нет, вот и несёшь чушь.

> Который можно не пихать в пакеты, где он дистроклепатеям нафиг не нужен, а запустить моднейший демон paxctld. Маневрирование 80 уровня.

Эмоции поумерить не пробовал? Флагами в тех же дебианах я свободно рулил через хуки, но paxctld позволил охватить более широкий круг кейсов однообразно и (де)централизованно (в зависимости от ситуации).

>>> кажется, вполне могу обосновать правильность своей позиции.
>> Нельзя обосновать правильность свей позиции в категориях а ля "неудобно", "ненадёжно", "неправильно" и т.п. без технической конкретики.
> Я объяснял и почему неудобно, и почему не надёжно, не надо тут.

Вот именно. Вместо того, чтобы обсуждать область применения, ограничения, плюсы, минусы, ты занимался и занимаешься обоснованием (как тебе кажется) своего мнения, которое у тебя с привлечением этих категорий и сформулировано. И не обоснуешь ты его ни техническими доводами (даже если б они не содержали фактических ошибок), ни эмоциональными (превалируют) - ни для кого, кроме себя.

> И про то, что MAC применяется до запуска бинарника, а не во время, поэтому требует кучу доступных для чтения путей

При при этом ты заявляешь (ниже по тексту), что понимаешь что-то в митигациях, в критериях их анализа и оценки. Два инструмента - pledge и MAC - которые ортогональны и лишь частично пересекаются областью применения и природой накладываемых ограничений, ты сравниваешь напрямую. MAC хуже, PaX-флаги хуже, pledge лучше. И считаешь это технической конкретикой. Замечательно. Пищи ещё.

> и про необходимость настройки там, где её не должно быть

Не должно быть, но она объективно есть. Продолжай путать свои фантазии с реальностью и удивляться ответам.

> и про уродливые демоны для pax-флагов

Уродливые демоны - у тебя в голове.

> и про возможность сбрасывать привилегии по разному в разных процессах программы.

Параноики тоже, знаешь, много, о чём написать и рассказать могут. Или альтернативные историки. С фактами, доводами, рассуждениями, выводами. Вот только целостная картина из их доводов не выстраивается. В твоём случае всё аналогично.

> Но зачем это читать, это же вода?

Я всю твою воду читаю, не волнуйся.

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

Я на всё отвечаю. Покажи пальчиком, что оставил без внимания. Какой конкретно технический довод, в каком контексте. А я тебе снова покажу, где ты не потрудился понять прочитанное.

>>> Заморачиваться лень, простой контрпример - KARL.
>> Не лень, а ничего ты толком не знаешь и ляпнуть лишнего боишься.
> Да как скажешь.

Скажу, что ты продолжаешь себя компрометировать. Раскрылся полностью и когда PaX с SELinux сравнил, и когда заявил про убийство процессов при срабатывании запрета PAX_MPROTECT.

>> Сравниваешь зрелый быстрый CFI и плагины для автоматического устранения уязвимого к Specter кода - с KARL! Ты ещё про securelevel вспомни.
> Я не сравниваю, а привожу контрпример. Не надо врать потому что.

И к чему этот контрпример? Пример защиты ядра, как опровержение моей фразы, что OpenBSD ничего для защиты ядра не делает не в рамках корректности? Ну так это единственный такой "контрпример", которым можно пренебречь по тем же причинам, что и KASLR. Ссылку с обоснованием этой позиции привёл выше - почитай.

Ты не к частям фраз привязывайся, к каким тебе удобее - ты мне эквивалент хоть какой-то серьёзной работы покажи, осмысленной в рамках соображений безопасности. Чтобы твой ненаглядный pledge работал в полноте, ядро должно иметь собственные защиты от эксплуатации уязвимостей в нём, соответствующие современному уровню сложности угроз. Где они? Где планы? Где хоть что-то?

> Ни тогда, ни сейчас.

Что "ни тогда, ни сейчас"? Хочешь сказать, есть ещё реплики, которые ты считаешь ложью? Ну так предъяви.

> А вот ты сравниваешь полноценную ОС и патчи (закрытые) к ядру Linux

Патчи работают сами, отдельно от ядра? Нет. Ядра работают сами, отдельно от приложений? Нет. Вот я и сравниваю OpenBSD со связкой grsecurity-ядро + дистрибутив общего назначения. А ты мне под надуманным предлогом пытаешься отказать в праве на такое сравнение.

> в котором и без них куча всего интересного. Типа как dirty
> cow, когда никакой grsec ничем никому не помог, но это к
> слову.

Ну да, а в OpenBSD в своё время была опубликована уязвимость к удалённому выполнению произвольного кода в ядре. Покажи мне аналогичную уязвимость в линуксе за время с тех пор по сегодня. Хотя бы такую, которая так же надёжно эксплуатировалась бы в простом линуксе, без grsecurity. И дело не в том, чтобы померяться уязвимостями, а какие выводы затем сделать по факту наличия или отсутствия предпринятых мер, дабы ситуация не повторилась.

> И сравниваешь ты на уровне "кукурити-фич", т.е. в лоб, т.е. без учёта
> импакта и сложностей при внедрении и подобного.

Здесь ты решил меня в своих грешках обвинить.

> Это детский сад.

Не льсти себе, в детском саду дети себя ведут адекватнее, чем ты.

> Я вполне допускаю, чтобы ты не думал, что grsec могут сделать что-то, решающее ту или иную проблему.

Ты это уже несколько раз повторил. Твоих бессвязных, фактически ошибочных и эмоциональных возражений это никак не отменяет и не сглаживает.

> Но пока это сторонние патчи (даже если и опенсорсные, как раньше) - это всё игрули для секуьюрити-энтузиастов

Ещё один технический аргумент от не-эксперта. Моськи лают - караван идёт. Grsecurity сначала пророчили смерть в забвении, а затем под тяжестью суммы исков в деле против Перенса. На деле же, невзирая ни на что, проект чувствует себя лучше, чем когда-либо. И если всё это благо на деньги от "секуьюрити-энтузиастов", могу их только поприветствовать. ;) Про государствннные дистрибутивы специального применения с grsecurity ты тоже не в курсе. Кто бы сомневался.

> и proof of concept.

Загляни в словарь.

> Я могу поверить, что те или иные  проблемы решены, но не могу поверить в то, что это "бесплатно".
> А это имеет значение.

А кто тебя убеждал, что это бесплатно? Только ты сам. Вот себе все претензии и адресуй. Личный рост начинается с азов, со взятия на себя ответственности за собственные заблуждения.

>> Если бы ты прочитал и попытался усвоить прочитанное, то понял, что я не делал утверждений об отсутствии механизмов защиты ядра в OpenBSD, а высказался, что по уровню они не дотягивают даже до PaX начала нулевых.
> Вот твоя цитата: "В OpenBSD же на ядерном поприще если и делается что, так только под лозунгами наведения корректности. Явный курс на безопасность они оставили ещё в начале нулевых и с тех пор даже не пытались на него вернуться.".
> Ты утверждал, что с нулевых ничего не делается для безопасности ядра, я опроверг.

Ну и где я тут утверждал, что "ничего не делается для безопасности ядра"? Перечитай по слогам, медленно. Явный курс оставили, это факт.

"Если и делается что, так только под лозунгами наведения корректности" - пренебрежительная характеристика, которую ты возвёл в рамки строгого фактического утверждения. Себе и предъявляй претензии. По факту в эту характеристику укладывается и KARL, о котором я уже высказал обоснованное мнение, и аналог mmap_min_addr, который даже в обычном линуксе появился не несколько лет раньше, чем в OpenBSD.

> Тупо тем, что вспомнил сразу.

Ещё раз: больше нечем.

> Сравнивать openbsd с pax нулевых мне как раз малоинтересно, писями меряться - это детский сад.

Я смотрю, история тебя интересует, только когда ты делаешь к ней многозначительную отсылку фразой "история нас рассудит, посмотрим". А когда речь заходит о уже свершившейся истории, о реальных успехах и неудачах, так сразу "детский сад". История тебе не интересна, потому что в неё вошли успехи PaX и бездействие OpenBSD.

> Какие-то отдельные решения можно сравнить, если очень хочется,
> но лично я бы потихоньку закругялся с флудом тут.

Закругляйся, кто ж тебе не даёт.

>> Ты хоть сам понимаешь, что такое "митигации"? И чем они на практике от "наведения корректности" отличаются?
> Я? Да ты што, откуда мне, ты ж один тут умный.

Из нас двоих - да. Прискорбный факт. Ты ляпнул в очередной раз, не подумав, про безопасность через корректность. А как запахло жаренным и стало ясно, что безопасность через корректность - это бред, и я за него с тебя спрошу... Так сразу, сам, без моей помощи, соскочил на личности, в очередной раз обрезав всю смысловую часть моей реплики. Это потому, что ты ведёшь разговор в кругу воображаемых зрителей. И тебя кажется, что ты свои "продолбы" такими незатейливыми способами сможешь скрыть или смягчить. Но это не так. Увы, не так.

>> К тому же, из достижимой на практике корректности напрямую не следует никаких свойств безопасности.
> Всецело согласен

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

> я даже выступал с подобной позицией против NetBSDшника в какой-то недавней теме тут, который "надрачивал" на "наведение корректности". Тем не менее, я останусь при том, что озвучил ранее: я рад, что openbsd крайне осторожны с внедрением средств смягчения последствий эксплуатации уязвимостей.

Ну так и PaX/grsecurity крайне осторожны. Ты ведь намекаешь на обратное? Вот только они работают и у них есть результаты, лучшие из достигнутых на сегодняшний день именно для ОС общего назначения. А у опенбсдшников - защита памяти ядра с середины 10-ых годов, "для корректности", и KARL.

> Любой новый написанный код, в т.ч. "митигация" требует поддержки и может содержать дыры, внедрение и/или эксплуатация может быть "небесплатной" - и прочие остальные банальности.

И зачем ты мне эти банальности рассказываешь? Ты ведь намекаешь на то, что grsecurity поступает иначе. А факты где? Фактов нет. Вот их-то я с тебя и спрашивал ещё в предыдущем комменте.

>> А если чуть серьёзнее, то хватаешься за любую возможность показаться умным.
> Я не понимаю, это ты меня задеть пытаешься, или что?

Это я до тебя доношу очевидное (но не тебе): что эти твои внутренние скрытые переживания - на самом деле очевидны, типичны и предсказуемы.

> А если чуть серьёзнее, то следствия из того, что я написал про ядра довольно очевидны, но тебе интереснее плохо завуалированные оскорбления.

В моих "оскорблениях" присутствует содержание по существу, но тебе интереснее бегать от этого содержания в жалобы на побочные реплики и формат, который ты сам же и задал.

>> Не было опубликовано. Это больше говорит об интересе, а вернее, отсутствии такового со стороны исследователей безопасности.
> Может и так. Но вот тут недавно очень умные, без всяких шуток и иронии, ребята нашли N дыр в компонентах OpenBSD, в том числе и довольно серьёзные. Так что я не стал бы утверждать о полном отсутствии интереса.

И я не стал бы утверждать. О полном. А вот об отсутствии относительного и существенного, достаточного для формирования у публики обоснованнной оценки реального положения вещей - утверждаю.

>>> В целом, за grsec я перестал следить после того, как они закрыли код.
>> А раньше следил по публикациям в интернете? ;)
> Нет, в журнале "мурзилка".

А знаешь, походу именно в журнале "Мурзилка". Перл про MPROTECT, убивающий процессы, его вполне достоен.

>> Так это pledge опциональный. ...... пытаешься выставить недостатком.

Вооот, видишь, как ты удобно для себя вновь поскипал смысловую часть моей реплики. Ну ничего, я верну её в контекст, дабы не повторяться:

Так это pledge опциональный. В твоих фантазиях он есть везде, а на деле - чуть менее, чем нигде. И ни через флаги, ни посредством MAC, мандатно, ты его не включишь, если для тебя и за тебя его уже не включили. Только ручками, только в каждом отдельно взятом случае. Ну или хаками, которые тебе не нравятся. Придумал себе критерии опциональности и безальтернативности, в отрыве от какой-либо модели угроз, и пыжишься. Пытаешься свободу выбора для владельца системы повернуть изъяном безопасности. Возможность в одно действие получить защиту, для которой в случае pledge требуется пройти путь от исходников до бинарников в системе - пытаешься выставить недостатком. В цирк иди работай, по специальности, зрителей веселить.

> Твои хаки, которые на самом деле костыли, можно заменить тривиальным использованием execpromises,
> про то, зачем нужен оный в мане всё написано.

Вот. И это всё, что ты смог "ответить" по существу. Мне даже добавлять ничего не нужно.

Далее ты делешься своими новыми замечательными идеями. Ну, давай их рассмотрим.

> Т.е. написать pledge-враппер (на самом деле, тоже костыль) не очень сложно.

Это ты имеешь ввиду не рантайм-враппер в форме библиотеки, а процесс-враппер, который будет устанавливать ограничения для экзешника целевой прораммы. В код не смотрел, но уверен, что для setuid/setgid-экзешников execpromises, установленные в непривилегированном процессе, работать не будут. То есть, у такого враппера остаётся проблема, аналогичная игнорированию LD_PRELOAD.

> Но таких целей, насколько я знаю нет, потому что придётся выдавать приложениям куда больше прав, чем им по-факту в main loop нужно -> _потенциально_менее_безопасно_.

Действительно, твой процесс-враппер не сможет сравниться по гибкости и строгости с рантайм-враппером. Но что гораздо важнее, такой процесс-враппер придётся запускать явно (под этим я имею ввиду в том числе включение в PATH директории враппера с линками с именами реальных экзешников, перед директориями с реальными экзешниками). Так зачем он такой нужен? Чем он лучше рантайм-враппера? Тем, что у тебя получилось идею родить? Молодец, только идея совсем на поверхности лежала и сравнительными достоинствами, увы, не обладает, в отличие от сравнительных недостатков.

> Pledge опциональный, да. В том плане, что нельзя принудить к его использованию. Но если он уже внедрён, то его нельзя отключить, разве что такая логика предусмотрена в самом приложении.

И это также является недостатком. Выше я пояснил, в каких случаях поддкржка pledge может не давать желаемых ограничений.

> И в этом смысле он безальтернативен, нет никакой sysctl, которая выключит pledge глобально, нет никакого аналога setenforce=0.

Это я уже слашал и не считаю существенным. Как и те общие политики SELinux, которые обычно отключают.

>> Мечтай. Руки развязало.
> Ну т.е. ты искал повод, чтобы начать кидаться говном, нашёл его, и

Говном я в тебя не кидался, за словами-то следи. Повод я не искал, ты мне его сам дал и за одно не стеснил в средствах, только и всего. За что ты огребаешь, я тебе уже объяснял.

> с чистой совестью приступил - я всё верно понял? Поздравляю с успешно найденым оправданием для своего поведения! Лицемерненько так, ничо, мне нравится.

Нет никакого лицемерия. Ты сам, своим поведением обеспечил к себе соответствующее отношение. Не перекладывай отвественность на меня.

>> Огребаешь ты не за тыкания и физиологизмы, а за поведение в целом, каковое характерно для обширной группы лиц. Считай, что по случаю отдуваешься "за всех".
> Твоё восприятие реальности оторвано от оной.

Это тебе так кажется. В силу как раз того, что данное утверждение очень применимо к тебе.

> Ты выдаёшь желаемое за действительное или провоцируешь меня. Неконструктивно.

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

>> А я тебя и не прошу. У меня другие методы.
> У тебя самомнение, а не "методы". Ничем, к сожалению, не подкреплённое.

Это всё слова, а на деле я вижу результат, как ты виляешь с темы на тему и трёшь смысловую составляющую моих реплик. Цепляешься за знакомые слова и силишься что-то ответить ради ответа.

> Если предполагается, что я сейчас буду что-то доказывать или оправдываться, то - нет.

Вообще не предполагается. Мне твоя реакция не интересна и не нужна. Как не нужна реакция таракана или комара, которого я давлю.

> Я готов часами ходить кругами в спорах по существу вопроса,

Кругами вокруг существа вопроса, ты хотел сказать.

> но любые нападки на мою персону мне не интересны. Можешь продолжать, если тебе нравится.

Ах, я забыл спросить твою персону, интересно ли ей! Ты старательно даешь мне все основания. Не фактом своего существования или содержанием личного мнения, а поведением и только им.

>> Да грош цена твоему спасибо. Ты же ведёшь себя как малолетний невоспитанный хам, говнами всё вокруг клеймишь. Кого ты обмануть-то хочешь, меня или себя? Или крестик сними, или штаны надень.
> Боже, да какой же ты обидчивый!

На тараканов не обижаюсь.

> Слушай, правда, если я так тебя обидел чем-то - извини. Но умоляю, или пиши по существу вопроса,
> или не пиши, мне ну совсем не интересны твои моралфажеские замечания.

Не обидел, а подобно таракану вызываешь некоторое отвращение. И не сам по себе, как самостоятельная единица, а лишь постольку, поскольку.

> Ты тратишь своё время зря.

Если трачу, значит, зачем-то мне это нужно.

> Хам, не хам - это не твоё дело, тебе не жить со мной и детей не растить.

Ха! Ты меня ещё этикету поучи. Дело непосредственно моё, покуда хамишь ты мне, а не кому-то ещё.

> Хочешь говорить про pax и openbsd - давай, нет - заканчиваем.

У тебя есть вариант: не заметить вообще всё, что я пишу по существу, и слиться. Что ж ты до сих пор не воспользовался им?

>>> И да, экспертом я себя не считаю.
>> А кем ты себя считаешь?
> А ты-то кто ты такой, чтобы с меня спрашивать?

Я не _с тебя_ спрашиваю, а у тебя. Разницу понимаешь? Но ты уже ответил на исходный вопрос: в прошлом пользователь grsecurity в течение двух лет, на Arch Linux.

> Я никем себя не считаю, это бесполезное занятие.

Да? А по апломбу-то и ведь не скажешь! Диванный эксперт, не меньше.

> Но я имею некий опыт и видел некоторое говно. Мало знаю про то, как делать
> надо, но довольно много про то, как делать не надо. Как-то так.

Ооо, "довольно много"! Всё ясно. Человек, который не знает азов и делает ложные фактические утверждения - много знает "про то, как делать не надо", потому что видел некоторое говно. Спасибо, прояснил.

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

9. Скрыто модератором  –13 +/
Сообщение от Аноним (9), 16-Фев-20, 09:15 
Ответить | Правка | Наверх | Cообщить модератору

15. Скрыто модератором  +5 +/
Сообщение от neAnonim (?), 16-Фев-20, 09:53 
Ответить | Правка | Наверх | Cообщить модератору

16. Скрыто модератором  +5 +/
Сообщение от Ананимус (?), 16-Фев-20, 10:14 
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

17. Скрыто модератором  +2 +/
Сообщение от Аноним (17), 16-Фев-20, 10:52 
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

28. Скрыто модератором  +1 +/
Сообщение от pda (?), 16-Фев-20, 18:09 
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

34. Скрыто модератором  +/
Сообщение от Michael Shigorinemail (ok), 16-Фев-20, 18:30 
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

40. Скрыто модератором  +/
Сообщение от Аноним (39), 16-Фев-20, 20:37 
Ответить | Правка | Наверх | Cообщить модератору

41. Скрыто модератором  +/
Сообщение от Michael Shigorinemail (ok), 16-Фев-20, 21:10 
Ответить | Правка | Наверх | Cообщить модератору

42. Скрыто модератором  –1 +/
Сообщение от Аноним (-), 16-Фев-20, 21:20 
Ответить | Правка | Наверх | Cообщить модератору

35. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (35), 16-Фев-20, 18:37 
А ещё лет 10 назад на опеннете:
Да кому ты нужен, зачем фаервол настраивать, зачем обновляться, и так работает.
Ответить | Правка | Наверх | Cообщить модератору

47. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (47), 17-Фев-20, 03:45 
10 лет назад ещё не изобрели китайцев? Некомпетентные люди существуют во все времена, что такого то.
Ответить | Правка | Наверх | Cообщить модератору

50. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (50), 17-Фев-20, 08:08 
Если помечено уже read-only кем-то третьим, то зачем же второй раз уже самому заботиться.


Не первый раз. Стандартная ошибка.

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

104. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 22-Фев-20, 22:33 
https://marc.info/?l=openbsd-tech&m=158237030723610&w=2

Трололо, там с первого раза не разобрались, будут дофикшивать.

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

125. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Аноним (126), 01-Мрт-20, 14:30 
https://www.opennet.ru/opennews/art.shtml?num=52418
Ответить | Правка | Наверх | Cообщить модератору

128. "Уязвимость в гипервизоре VMM, развиваемом проектом OpenBSD"  +/
Сообщение от Дон Ягон (ok), 01-Мрт-20, 23:16 
> https://www.opennet.ru/opennews/art.shtml?num=52418

Спасибо, видел. Мой комментарий был раньше, когда я ещё не знал, что Максим планирует написать про это новость.
(узнал только по факту)

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

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

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




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

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