The OpenNET Project / Index page

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



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

Оглавление

В состав OpenBSD-Current добавлен механизм защиты RETGUARD, opennews (ok), 07-Июн-18, (0) [смотреть все]

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


3. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Аноним (-), 07-Июн-18, 09:41 
В новости не разъяснено, генерируется ли cookie на этапе компиляции или во время исполнения. И если во время исполнения, то используется ли безопасный ГПСЧ. И если используется, то насколько падает производительность.
Ответить | Правка | Наверх | Cообщить модератору

4. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Аноним (-), 07-Июн-18, 09:48 
На этапе компиляции конечно. Генерация на лету была бы излишним усложнением и замедлением. Представляйте сколько нужно выполнить кода для генерации псевдослучайного числа?
Ответить | Правка | Наверх | Cообщить модератору

5. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Аноним (-), 07-Июн-18, 10:12 
Там в каком то примере просто использовалось значение esp/rsp (оно для эксплоита не известно, вычисляется в процессе выполнения)
Ответить | Правка | Наверх | Cообщить модератору

9. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Аноним (-), 07-Июн-18, 13:36 
Ну в таком случае что мёртвому припарка, только вредная: оверхед то даёт. Атакующий просто вытащит из метода захардкоденный cookie и положит на стэк.
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

10. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Аноним84701 (ok), 07-Июн-18, 14:40 
> Атакующий просто вытащит из метода захардкоденный cookie и положит на стэк.

Однако, чтобы "просто" вытащить и "просто" положить на стек для успешного RЕТа, нужно таки выполнить свой код. А для этого (по крайней мере, в сценариях, для которых и задумывался RETGUARD) придется успешно "РЕТнуть".

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

16. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Sw00p aka Jerom (?), 08-Июн-18, 01:47 
Во-первых, должно быть наличие баги (да, да - вот вам и успешный РЕТ), во-вторых, РОП для того и придуман, чтобы обходить ограничения не исполняемых (ридонли) сегментов памяти (стек, в случае его переполнения), строится цепочка стек фреймов (РОП геджетов) и происходит эксплуатация.

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

20. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Аноним84701 (ok), 08-Июн-18, 03:12 
> Во-первых, должно быть наличие баги (да, да - вот вам и успешный РЕТ),
> во-вторых, РОП для того и придуман, чтобы обходить ограничения не исполняемых (ридонли) сегментов памяти (стек, в случае его переполнения), строится цепочка стек фреймов (РОП геджетов) и происходит эксплуатация.

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

Если бага из другой разновидности, типа "call/jmp [foo_replaced_addr]", то и обходить сабж, как бы, не нужно.
Ваш Кэп.

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

32. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Sw00p aka Jerom (?), 08-Июн-18, 16:04 
Так суть механизма RETGUARD, не от закрытия каких-то багов, а от предотвращения дальнейшей эксплуатации бага (того же переполнения стека). А так если даже предотвращается эксплуатация, но никак не защитит от DOS и приведёт в любом случае к падению приложения. Если имеется возможность как-то получить результат ксора, то легко можно вычислить ту самую куку, которая непонятно когда вычисляется (формируется) на этапе компиляции или в рантайме, одна ли она для всех ретурнов или разная, и внизу в коментах задали наводящий вопрос - а как валидируется потом реальный адресс возврата (хотя его валидация не важна, приложение будет падать при "хер пойми ретурн адресе", а что когда он неожиданно укажет на валидное место?). Доказано - РОП идеальный механизм, которому нужно противодействовать только, как я думаю, попыткой переосмысления всей Фоннеймановской архитектуры, как минимум вынести хранения адресов возврата из стека куда нить в другое место :)
Ответить | Правка | Наверх | Cообщить модератору

17. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Аноним (-), 08-Июн-18, 01:49 
Если значение захардкодено, то вытащить из скачанного пакета не проблема.

>положить на стек для успешного RЕТа, нужно таки выполнить свой код.

чтобы работало rop, нужно положить на стек. а это типа митигация от ропа.

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

19. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +1 +/
Сообщение от Sw00p aka Jerom (?), 08-Июн-18, 01:58 
> чтобы работало rop, нужно положить на стек. а это типа митигация от
> ропа.

так уже всё в стеке при наличие баги о чём речь? роп - техника обхода так называемого не исполняемого стека.


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

13. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от КО (?), 07-Июн-18, 17:06 
>На этапе компиляции конечно. Генерация на лету была бы излишним усложнением и замедлением.

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

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

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

22. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +1 +/
Сообщение от PereresusNeVlezaetBuggy (ok), 08-Июн-18, 09:19 
> В новости не разъяснено, генерируется ли cookie на этапе компиляции или во
> время исполнения. И если во время исполнения, то используется ли безопасный
> ГПСЧ.

Во время исполнения. При загрузке программы для каждой функции генерируется персональная кука. С ГПСЧ у OpenBSD всё давно хорошо: https://www.openbsd.org/papers/hackfest2014-arc4random/index...

> И если используется, то насколько падает производительность.

Сборка базовой системы на предпоследней версии патча замедлялась примерно на 11% (результаты авторские, не мои), из них:

2% рантайм (то, что всем интересно)
4% запуск (из-за нагрузки на ГПСЧ)
5% компиляция + всё остальное

Тод Мортимер (основной автор) обещал попробовать ещё что-то подкрутить, подробностей пока нет.

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

29. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Crazy Alex (ok), 08-Июн-18, 11:37 
Ну вот. Существенно хуже, чем я ожидал, кстати.
Ответить | Правка | Наверх | Cообщить модератору

30. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 08-Июн-18, 11:40 
> Ну вот. Существенно хуже, чем я ожидал, кстати.

SSP обычная на момент внедрения отъедала около 5% в рантайме (правда, SSP, в отличие от retguard, используется не для всех функций), так что могло быть и хуже. :)

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

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

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




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

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