The OpenNET Project / Index page

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



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

Оглавление

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

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


14. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Аноним (-), 07-Июн-18, 17:32 
Я первый раз слышу про RETGUARD. Читая вот это:

> Суть метода защиты RETGUARD заключается в искажении адреса возврата обработчиков функций. Перед началом обработчика функции добавляется вызов XOR, комбинирующий адрес возврата с генерируемым для каждой функции случайным значением Cookie, которое затем сохраняется в стек. Перед командой возврата управления из функции (ret) значение Cookie извлекается из стека и при помощи операции XOR повторно применяется к адресу возврата, что восстанавливает его исходное значение и позволяет убедиться в том, что адрес перехода не изменился. Для усложнения атак код проверки дополнительно снабжается добавочным заполнением в виде инструкций int03 перед каждой инструкцией ret

возникло несколько вопросов:

вопрос №1: насколько сложно изменить значение cookie?
вопрос №2: как после второго XOR для восстановления происходит валидация неизменности адреса возврата?

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

18. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Sw00p aka Jerom (?), 08-Июн-18, 01:52 
> вопрос №2: как после второго XOR для восстановления происходит валидация неизменности
> адреса возврата?

а вот это никого не волнует)) если пихать в роп гаджетах разные адреса возвратов, то при ксоре получется адрес возврата "хер пойми куда" и произойдёт, что? сегфолт? а если по вероятности адрес после ксора укажет куда нужно, что тогда?

добавлю ещё один вопрос - кука одна на один процесс?


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

24. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 08-Июн-18, 09:24 
>> вопрос №2: как после второго XOR для восстановления происходит валидация неизменности
>> адреса возврата?
> а вот это никого не волнует)) если пихать в роп гаджетах разные
> адреса возвратов, то при ксоре получется адрес возврата "хер пойми куда"
> и произойдёт, что? сегфолт? а если по вероятности адрес после ксора
> укажет куда нужно, что тогда?

Значит, не повезло. Retguard — не серебряная пуля; как и классическая SSP эта мера эффективна только вместе с другими, суммарно увеличивая сложность эскалации атаки на многие порядки.

> добавлю ещё один вопрос - кука одна на один процесс?

Одна на каждую функцию, генерится при запуске программы.

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

23. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +1 +/
Сообщение от PereresusNeVlezaetBuggy (ok), 08-Июн-18, 09:22 
> Я первый раз слышу про RETGUARD. Читая вот это:
>> Суть метода защиты RETGUARD заключается в искажении адреса возврата обработчиков функций. Перед началом обработчика функции добавляется вызов XOR, комбинирующий адрес возврата с генерируемым для каждой функции случайным значением Cookie, которое затем сохраняется в стек. Перед командой возврата управления из функции (ret) значение Cookie извлекается из стека и при помощи операции XOR повторно применяется к адресу возврата, что восстанавливает его исходное значение и позволяет убедиться в том, что адрес перехода не изменился. Для усложнения атак код проверки дополнительно снабжается добавочным заполнением в виде инструкций int03 перед каждой инструкцией ret
> возникло несколько вопросов:
> вопрос №1: насколько сложно изменить значение cookie?

Она живёт в read-only памяти.

> вопрос №2: как после второго XOR для восстановления происходит валидация неизменности
> адреса возврата?

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

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

36. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от КО (?), 09-Июн-18, 16:39 
>значением Cookie, которое затем сохраняется в стек.
>>Она живёт в read-only памяти.

ну, пожалуй, read-only stack _действительно_ защитит от возвратного программирования, но при таком подходе печенки излишни. :)

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

37. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 10-Июн-18, 15:14 
>>значением Cookie, которое затем сохраняется в стек.
>>>Она живёт в read-only памяти.
> ну, пожалуй, read-only stack _действительно_ защитит от возвратного программирования,
> но при таком подходе печенки излишни. :)

А кто сказал, что эта кука лежит на стеке? Она лежит в памяти по некоему ASLR-нотому адресу. Чтобы утащить куку, да ещё от нужной функции, нужно сделать то, для чего и нужно утащить куку, причём не обрушив программу — при следующем запуске процесса куки будут уже другие. Это не обычный SSP, где куку можно утащить со стека простым чтением за границами буфера.

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

40. "В состав OpenBSD-Current добавлен механизм защиты RETGUARD"  +/
Сообщение от Анонимный Аноним (?), 10-Июн-18, 17:57 
Патчу уже около года: https://marc.info/?l=openbsd-tech&m=150317547021396&w=2
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

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

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




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

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