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

Anti-Malware TelegramПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

Firefox задействует Windows-службу BITS для фоновой загрузки патчей

В ближайшем будущем браузер Firefox будет использовать компонент операционной системы Windows, известный как BITS (Background Intelligent Transfer Service), для загрузки обновлений в фоновом режиме. Это первый шаг компании Mozilla на пути к независимому агенту обновлений, который будет загружать и устанавливать новые версии, даже если браузер закрыт.

В текущей реализации проверка вышедших обновлений происходит при запуске браузера. Если программа обнаружит наличие новой версии, она либо уведомит пользователя о ее доступности, либо скачает и установит ее автоматически.

Тем не менее разработчики Mozilla решили улучшить этот процесс за счет создания отдельного независимого приложения под названием «Update Agent». Этот агент будет запускаться в фоновом режиме и проверять наличие обновлений (даже если сам браузер в данный момент закрыт).

Есть мнение, что новый подход также минимизирует риски эксплуатации какой-либо уязвимости в популярном интернет-обозревателе — патчи будут доставляться практически сразу после их выхода, то есть окно, во время которого пользователь уязвим, станет значительно меньше.

Работать это будет следующим образом: Firefox создаст задачу в Планировщике Windows, которая будет запускать «Update Agent» через равные промежутки времени. Некоторым пользователям, вероятно, не понравится присутствие еще одной программы в фоне, однако здесь это разумная цена за безопасность, на наш взгляд.

Anti-Malware TelegramПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

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