В 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. 

Homebrew 7 научился искать уязвимости и обзавёлся полноценным интерфейсом

Разработчики выпустили Homebrew 7.0.0 — крупное обновление популярного пакетного менеджера для macOS. В программу встроили сканер уязвимостей, усилили песочницу, ускорили установку пакетов и довели до полноценного релиза графический интерфейс BrewUI.

Новая команда brew vulns проверяет установленные формулы, отдельный пакет либо все зависимости из Brewfile.

Homebrew определяет исходный проект и версию программы, отправляет данные пакетным запросом в OSV.dev, получает сведения об известных уязвимостях и проверяет, не закрыла ли команда проблему собственным бэкпортированным патчем.

Для этого проект запустил отдельную базу рекомендаций безопасности в формате OSV. Она учитывает версии и ревизии пакетов, распространяемых именно через Homebrew. Это важно: номер исходной программы может остаться прежним, хотя исправление уже добавлено сопровождающими.

Данные публикуются через API формул и отдельный индекс под лицензией CC0, поэтому их смогут использовать сторонние инструменты и корпоративные команды безопасности. Подробности разработчики раскрыли в анонсе Homebrew 7.0.0.

В релиз также вошёл BrewUI — нативный графический интерфейс для macOS 26 Tahoe и новее. Он позволяет искать пакеты, устанавливать их и разбираться с зависимостями без заклинаний в командной строке. Ветераны терминала могут продолжать смотреть на новичков свысока, но аргументов стало меньше.

Песочницу тоже затянули потуже: доступ к домашним каталогам пользователей теперь закрыт по умолчанию, а загрузка зависимостей с сетевым доступом отделена от офлайн-установки. Кроме того, Homebrew научился параллельно скачивать, подготавливать и устанавливать пакеты, благодаря чему обновления должны проходить быстрее.

Усиление защиты особенно кстати: злоумышленники регулярно маскируют вредоносы под Homebrew и продвигают поддельные сайты через рекламу.

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