Разработчики OpenBSD развивают новый метод защиты стека

Тео де Раадт (Theo de Raadt) представил новый метод защиты стека Stack-register, в рамках которого традиционные типы разрешения доступа к памяти (например, возможность чтение, запись и выполнения кода) расширены новым полномочием — MAP_STACK, которое реализуется программно на уровне ядра ОС. Суть предложенного метода в том, что когда память используется как стек, она обязательно должна быть отражена через mmap с использованием флага MAP_STACK.

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

Новая система защиты пока имеет экспериментальный характер и проходит тестирование в свежих снапшотах OpenBSD. В тестовом режиме вместо фактического завершения процесса осуществляется вывод предупреждений в лог. За несколько дней тестировния уже выявлены и устранены проблемы, проявляющиеся при сборке портов go и SBCL, а также при выполнении двух тестов из набора src/regress. Тестирование портов продолжается и если не возникнет новых проблемных моментов, новый метод защиты может быть включен в состав OpenBSD 6.3.

Кроме того, сообщатся о расширении применения системы syspatches для обновления OpenBSD через бинарные патчи. Отныне через syspatches будут поддерживаться не только обновления для текущего релиза, но и для прошлого выпуска, поддержание которого в актуальном виде теперь возможно без пересборки из исходных текстов. Например, помимо обновлений для OpenBSD 6.2 теперь через бинарные патчи можно обновлять и прошлую ветку OpenBSD 6.1. После выхода OpenBSD 6.3 аналогично будет продолжена поддержка для ветки OpenBSD 6.2. Как и раньше бинарные патчи формируются только для архитектур amd64 и i386.

Article source: http://www.opennet.ru/opennews/art.shtml?num=48243

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.