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

Google позволит включать продвинутую защиту Android без режима паранойи

Google готовит более гибкие настройки Advanced Protection — усиленного режима безопасности, появившегося в Android 16. Пользователям могут разрешить отдельно включать защиту USB, обнаружение вторжений и ограничения для небезопасных сетей Wi-Fi.

Будущие изменения обнаружили специалисты Android Authority при разборе Google Play Services 26.36.30.

В коде появилась секция Expert features — «Экспертные функции». Она описывается как дополнительный уровень защиты, способный накладывать отдельные ограничения.

В этот раздел Google, вероятно, перенесёт USB Protection. Функция запрещает устанавливать новые USB-соединения, пока экран смартфона заблокирован, защищая устройство от физического взлома.

Работает она на Pixel 6 и более новых моделях, но иногда мешает быстрой зарядке: та может не запускаться до разблокировки. Безопасно, зато телефон просит предъявить лицо даже зарядному кабелю.


Ещё одной опцией станет запрет автоматического подключения к открытым и другим небезопасным сетям Wi-Fi. Пользователь сможет отказаться от него, если регулярно подключается к публичным точкам доступа и готов самостоятельно оценивать риски.

Третьим пунктом станет обнаружение вторжений. Сейчас связанная с ним функция Intrusion Logging уже остаётся добровольной: она собирает журналы безопасности и хранит их резервную копию в облаке с оконечным шифрованием.

Остальные компоненты Advanced Protection после включения режима нельзя отключить по отдельности, что прямо отражено в документации Google.

Новая схема позволит сохранить базовый набор усиленной защиты, не соглашаясь на все ограничения одновременно. Впрочем, Google пока не анонсировала Expert features официально, поэтому сроки запуска неизвестны, а найденные настройки ещё могут измениться.

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