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

Ошибочная раскладка помогла обойти первый рубеж защиты GPT-6 Astra

Разработчик под ником vechen обнаружил странность в GPT-6 Astra: модель понимает русский и украинский текст, случайно набранный в английской раскладке, но система предварительной модерации может увидеть в нём лишь безобидную кашу из букв.

В опубликованном эксперименте GPT-6 Astra High без дополнительных инструкций распознала смысл фразы, введённой латиницей вместо кириллицы.

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

Причина, предположительно, в разделении системы на несколько уровней. Сначала входной фильтр анализирует текст пользователя, после чего сама модель интерпретирует запрос и формирует ответ.

 

Впрочем, до полноценного джейлбрейка не дошло. Проверка «Код.ру» показала, что неправильная раскладка действительно может помочь опасному запросу добраться до модели, но финальный фильтр блокирует запрещённый ответ.

Метод работает не со всеми языковыми парами. Кириллический текст, набранный латиницей, Astra распознаёт стабильно, а сочетание английской и турецкой раскладок в тестах не сработало. Похожее поведение исследователь заметил и у Fable 5.

Напомним, на прошлой неделе мы писали, что первые пользователи GPT-6 Astra заметили, что модель распараллеливает задачи и нагружает компьютеры кучей процессов.

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