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

В России разработали защиту квантовых ключей от ослепления детекторов

Специалисты инженерно-квантовой лаборатории «СФБ Лаб» и Центра квантовых технологий МГУ разработали способ защиты систем квантового распределения ключей от ослепления детекторов. Метод позволяет не только заметить атаку, но и сохранить безопасную часть ключа. Решение защищено российским патентом, результаты исследования приняты к публикации в журнале Physical Review Applied.

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

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

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

Приёмник в случайные моменты незначительно меняет квантовую эффективность детекторов. Злоумышленник не знает их текущего состояния и не может подобрать универсальную энергию импульса: значения для разных режимов различаются более чем в десять раз.

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

Подход проверили на серийном детекторе. Он не требует усложнять оптическую схему и подходит для широкого класса коммерчески доступных устройств. Патент RU 2 856 208 C1 предусматривает варианты реализации для приёмников с одним и двумя детекторами.

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