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

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

В Firefox 62 модернизирован поиск на странице открытия новой вкладки
Mon, 20 Aug 2018 09:45:45 +0300

Debian GNU/Linux исполнилось 25 лет
Thu, 16 Aug 2018 07:51:55 +0300

Выявлены следы работы Valve над инструментарием для запуска Windows игр в Linux
Thu, 16 Aug 2018 07:42:23 +0300

Опубликован RFC для TLS 1.3
Mon, 13 Aug 2018 20:41:22 +0300

Компания Tesla намерена открыть код систем обеспечения безопасности
Mon, 13 Aug 2018 07:13:08 +0300

Представлен порт Qt 1 для современных систем
Mon, 13 Aug 2018 07:06:50 +0300

Dropbox прекращает поддержку всех ФС в Linux, за исключением Ext4
Sun, 12 Aug 2018 08:45:31 +0300

Инициатива по развитию открытого ПО для киноиндустрии
Fri, 10 Aug 2018 23:12:43 +0300

Разработчики bzip2 потеряли контроль над доменом bzip.org
Fri, 10 Aug 2018 10:00:02 +0300

Google назвал нового руководителя Android Open Source Project
Wed, 08 Aug 2018 23:28:27 +0300

Компания Lenovo подключилась к инициативе доставки обновлений прошивок для Linux
Tue, 07 Aug 2018 22:38:07 +0300

Выпуск языка программирования Dart 2.0
Tue, 07 Aug 2018 20:39:46 +0300

Доверие к Let's Encrypt обеспечено во всех списках корневых сертификатов
Mon, 06 Aug 2018 23:46:28 +0300

Тенденция "Bullshit Web"
Sun, 05 Aug 2018 08:30:14 +0300

Mozilla включает телеметрию для вкладок в режиме приватного просмотра
Sat, 04 Aug 2018 08:32:50 +0300

Новости OPENNET
Новости

В состав компилятора Clang, используемого для сборки базовой системы OpenBSD, интегрирован механизм защиты RETGUARD, нацеленный на усложнение выполнения эксплоитов, построенных с использованием заимствования кусков кода и приёмов возвратно-ориентированного программирования (ROP, Return-Oriented Programming).

Механизм включен только при сборке для архитектуры AMD64.

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

При штатном ходе выполнения изначальный адрес перехода остаётся неизменен, но при выполнении эксплоита осуществляется переход на составляющий эксплоит блок заимствованных машинных инструкций (гаджет), точка входа в который как правило не совпадает с началом функции. Так как управление передано не на начало, а в определённую часть тела функции, первый "xor" будет пропущен и "xor" перед выходом исказит переданный эксплоитом адрес возврата. При защите функций ядра RETGUARD оценивается как эффективный для блокирования 50% из всех ROP-гаджетов и 15% уникальных гаджетов, по сравнению с ядром OpenBSD 6.3.

Метод реализован в виде патча к компилятору clang, который на этапе компиляции производит автоматическую подстановку кода проверки адреса возврата во все функции. Для функций системной библиотеки и ядра, написанных на языке ассемблер, требуется применение отдельных патчей. Для активации нового метода защиты в приложениях не требуется отдельных действий, достаточно пересобрать их предлагаемым в базовой системе OpenBSD-Current компилятором Clang, в который уже включены все необходимые патчи. Для отключения сборки с RETGUARD в Clang добавлена опция "-fno-ret-protector".

Напомним, что техника заимствования кусков кода используется для эксплуатации переполнений буфера в условиях, когда в страницах памяти стека и буфера установлен запрет на исполнение кода. Для организации выполнения кода атакующего в таких условиях логика выполнения shell-кода формируется с использованием методов возвратно-ориентированного программирования (ROP) - атакующий не пытается разместить свой код в памяти, а оперирует уже имеющимися в загруженных библиотеках кусками машинных инструкций, завершающихся инструкцией возврата управления (как правило, это окончания библиотечных функций). Работа эксплоита сводится к построению цепочки вызовов подобных блоков ("гаджетов") для получения нужной функциональности. Для автоматизации выявления гаджетов применяются специальные инструменты. Используя готовые блоки машинных инструкций (гаджеты) можно организовать достаточно сложные операции, в том числе организовать работу условных операторов и циклов.



0 0

НОВОСТИ: Выпуск Launchpad Daemon 1.5, программного аналога MIDI-контролле ... Mon, 13 Aug 2018 23:16:18 +0300

Доступен новый выпуск Launchpadd, программного аналога MIDI-контроллера для создания музыки с помощью кнопок (Pads) для смартфонов и планшетов на платформе Android. Программа поддерживает клиент-серверный режим, в котором ноты отправляются на компьютер, а далее в любую программу, которая поддерживает миди сокеты.

???????@Mail.ru Opera Firefox INFOBOX - хостинг Google Chrome