ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
769459 Топик полностью
fk0, легенда (18.07.2017 13:06, просмотров: 52) ответил Evgeny_CD на Т.е. наобороот - не все так плохо, как там описано? Еще чуток поживем?
Самое главное не сказал. Сам по себе факт перестановки куда-то стека не уязвимость. Ряду программ это нужно (ОС внутри ОС, своя система управления потоками и т.п.) И они так непосредственно это и делают -- выделяют память и переставляют туда регистр SP. Специальный "сегмент стека" не нужен. На самом деле не совсем так, таки нужен, потому, что в ряде случаев нужен исполняемый стек (из-за размещения трамплинов с сгенерированным кодом на стеке, но это отдельная история). Уязвимость в другом: ряд программ позволяют изменяя данные им параметры (переменные окружения, командную строку) создать временный буфер на стеке чрезмерного размера и наехать на сегмент данных им. И линукс этого не заметит. Но тут нет возможности заметить, в общем случае, если скачек достаточно большой. Это уязвимости этих программ. И их нужно исправлять, особенно библиотечные функции. А если ты пишешь программы с suid (exim, su...) то наверное нужно аккуратнее обращаться с внешними данными, может специальные опции компилятора использовать, может быть игнорировать локаль и значительную (не нужную) часть переменных окружения (в локали, например, в силу ее сложности, неизбежны баги, а нужна она только для сообщения на русском языке -- не критично).
[ZX]