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

12 марта 2018 года

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

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

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

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

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Разработчики OpenBSD развивают новый метод защиты стека», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.