Закон Кларка о радикальных идеях

Каждая радикальная идея — в науке, политике, искусстве — вызывает три стадии ответной реакции:

-Доктоp,помогите моему мужу. ...

Перед GTK+ 4 планируется сформировать внеплановый выпуск GTK+ 3.24
Sun, 24 Jun 2018 18:06:52 +0300

Компания Oracle передала сообществу Apache 1.5 млн строк кода NetBeans
Fri, 22 Jun 2018 09:25:33 +0300

Начальный план разработки Qt 6
Thu, 21 Jun 2018 22:26:33 +0300

Разработчики Netfilter официально объявили инструментарий iptables устаревшим
Thu, 21 Jun 2018 14:18:47 +0300

Blender тестирует децентрализованный PeerTube после блокировки видео на YouTube
Wed, 20 Jun 2018 20:35:28 +0300

Представлен проект Fedora CoreOS
Wed, 20 Jun 2018 19:05:49 +0300

В OpenBSD добавлен код программного отключения SMT (HyperThreading)
Wed, 20 Jun 2018 12:11:25 +0300

В рамках проекта Devilution предпринята попытка воссоздания кода игры Diablo
Tue, 19 Jun 2018 13:06:26 +0300

Проекту FreeBSD исполнилось 25 лет
Tue, 19 Jun 2018 12:18:37 +0300

Открыт код C++ компилятора Zapcc
Mon, 18 Jun 2018 11:26:24 +0300

Установочный скрипт проекта yandex-disk-indicator удалял раздел /usr
Sun, 17 Jun 2018 20:11:45 +0300

Mozilla рассматривает возможность создания системы голосовой навигации для браузера
Sun, 17 Jun 2018 13:27:14 +0300

Разбор ситуации с обвинением OpenBSD в нарушении эмбарго при исправлении уязвимости KRACK
Sat, 16 Jun 2018 08:46:44 +0300

Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
Thu, 14 Jun 2018 20:15:07 +0300

В Chrome будет прекращена поддержка установки дополнений по запросу сторонних сайтов
Thu, 14 Jun 2018 12:04:29 +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) - атакующий не пытается разместить свой код в памяти, а оперирует уже имеющимися в загруженных библиотеках кусками машинных инструкций, завершающихся инструкцией возврата управления (как правило, это окончания библиотечных функций). Работа эксплоита сводится к построению цепочки вызовов подобных блоков ("гаджетов") для получения нужной функциональности. Для автоматизации выявления гаджетов применяются специальные инструменты. Используя готовые блоки машинных инструкций (гаджеты) можно организовать достаточно сложные операции, в том числе организовать работу условных операторов и циклов.



63.2396 73.7247 0.5739 9.7368

НОВОСТИ: В OpenBSD добавлен код программного отключения SMT (HyperThreadi ... Wed, 20 Jun 2018 12:11:25 +0300

Вскоре после заявления Тео де Раадта о подозрении на наличие аппаратной уязвимости, связанной с реализацией в них технологии одновременной многопоточности (simultaneous multithreading), более известной под названием HyperThreading, в OpenBSD был разработан патч, позволяющий де-факто отключить SMT на уровне ОС. Изначально проблема состоит в том, что в немалом количестве современных системных прошивок (BIOS/EFI), в первую очередь — в ноутбуках, отсутствует опция для отключения SMT в принципе.

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