В LLVM/Clang добавлена техника защиты стека SafeStack

В LLVM/Clang добавлена техника защиты стека SafeStack

В компилятор Clang добавлен код подсистемы SafeStack, предназначенной для защиты от типовых ошибок, вызванных повреждением памяти в результате работы со стеком и являющихся причиной большого числа эксплуатируемых уязвимостей (например, в 2014 году в Firefox было выявлено 55 подобных уязвимостей).

SafeStack позволяет предотвратить получение контроля над помещёнными в стек указателями в программах на C/C++ через сохранение указателей (адреса возврата, указатели на функции и т.п.) в отдельной изолированной области памяти, доступ к которой производится только с использованием специальных проверок корректности обращения к памяти. Таким образом, стек приложения разделяется на две части - защищённый стек для хранения указателей, адресов из регистров и локальных переменных, и незащищённый стек, в котором сохраняется всё остальное. В защищённый стек данные добавляются только после статической проверки и доступ к ним ограничен, что существенно усложняет организацию получения контроля над выполнением кода в результате совершения атак, пишет opennet.ru.

Накладные расходы от реализуемых в SafeStack дополнительных проверок несущественны и составляют 0.01-0.05%, что существенно меньше, чем при использовании методов на основе добавления меток в стек (stack cookies). Более того, в некоторых случаях наблюдается даже ускорение работы программы за счёт более эффективного использования кэша. Метод защиты отмечен как стабильный и уже опробованный при сборке Chromium, базовой системы FreeBSD и более 100 пакетов. Для включения SafeStack в clang добавлены новые опции "-fsafe-stack" и "-fno-safe-stack" (по умолчанию новый режим отключен), для отключения режима для отдельных функций реализован атрибут no_safe_stack. 

WordPress начнёт тормозить опасные обновления плагинов ещё на старте

WordPress запускает автоматическую проверку безопасности каждого нового релиза плагина перед его распространением через API WordPress.org. Обновления с высоким уровнем риска будут блокироваться автоматически, до того, как миллионы сайтов нажмут «Обновить» и впустят проблему внутрь.

Раньше команда WordPress проверяла новые плагины перед добавлением в каталог, но последующие версии выпускались без единого обязательного этапа контроля.

В результате безопасное расширение могло однажды получить уязвимость, бэкдор или нового владельца с очень интересными планами. Перед распространением каждый релиз уже проходит шестичасовую задержку в рамках инициативы Protect The Shire. За это время изменения анализируют несколько ИИ-моделей и Jetpack Scan.

Их выводы сверяются и объединяются в итоговый рейтинг риска. Если оценка оказывается высокой, обновление не попадёт в систему автоматической установки, а разработчики получат письмо с найденными проблемами.

Механизм успел показать зубы ещё до полноценного запуска. 28 июля он обнаружил бэкдор в новой версии неназванного плагина с примерно 20 тысячами активных установок. Релиз находился в периоде ожидания и не успел разлететься по сайтам. Через 26 минут после уведомления от Wordfence плагин закрыли для скачивания.

Высокий рейтинг при этом не доказывает злой умысел. Система одинаково серьёзно отнесётся и к намеренно встроенному вредоносу, и к случайной опасной ошибке. Разработчику предложат изучить замечания, исправить код и выпустить новую версию. Если та пройдёт порог, обновление отправится дальше.

Оспорить результат тоже можно, но WordPress честно предупреждает: исправить релиз обычно быстрее, чем ждать ручного рассмотрения.

RSS: Новости на портале Anti-Malware.ru