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

Android 17 закручивает гайки: после 20 ошибок ПИН-код уже не перебрать

Google решила всерьез осложнить жизнь тем, кто пытается подобрать ПИН-код к чужому смартфону. В Android 17 компания радикально ужесточила защиту экрана блокировки, сократив допустимое число неверных попыток ввода практически в 90 раз.

В старых версиях системы злоумышленник теоретически мог сделать до 1800 попыток ввода ПИН-кода или пароля в течение пяти лет.

В Android 17 этот лимит сократили всего до 20 попыток. После двадцатой ошибки система полностью перестанет принимать новые варианты.

Ограничения начинают действовать практически сразу. Теперь в первую минуту разрешено лишь шесть неверных попыток, в течение шести минут — семь, за 25 минут — восемь, а за сутки — всего двенадцать.

По мнению Google, прежние лимиты оставляли слишком много пространства для атак. Многие пользователи выбирают простые ПИН-коды, связанные с датой рождения, годовщиной или другими легко угадываемыми комбинациями. Если злоумышленник знает подобную информацию, вероятность успешного подбора заметно возрастает.

Впрочем, о забывчивых владельцах смартфонов тоже подумали. Если пользователь несколько раз подряд случайно вводит один и тот же неправильный ПИН-код, Android 17 не будет считать такие ошибки отдельными попытками. Система распознает повторение и сообщит, что одинаковые неверные комбинации не засчитываются в общий лимит.

Google также немного переработала интерфейс блокировки. Вместо длинных таймеров вроде «Попробуйте снова через 1800 секунд» теперь будут отображаться привычные сообщения наподобие «Попробуйте снова через 30 минут».

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

Для обычных пользователей изменения будут почти незаметны, а вот любителям подбирать чужие ПИН-коды станет значительно сложнее.

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