Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Тео де Раадт предложил изменения для ограничения доступа к ФС через функцию openat

Дата публикации: 05-10-2026 06:18:13

Тео де Раадт предложил включить в OpenBSD новый механизм для уменьшения поверхности атаки, реализованный через расширение возможностей системного вызова openat. Патчи с реализацией дополнительных флагов для openat и open, ограничивающих возможность перехода к верхним каталогам через "/.." и обращения по абсолютным путям, подготовлены для ядра, libc, а также некоторых приложений из базовой системы. Изменения пока не включены в состав OpenBSD-current и находятся на стадии обсуждения среди разработчиков.

Основное содержимое страницы с новостью.

Тео де Раадт предложил включить в OpenBSD новый механизм для уменьшения поверхности атаки, реализованный через расширение возможностей системного вызова openat. Патчи с реализацией дополнительных флагов для openat и open, ограничивающих возможность перехода к верхним каталогам через "/.." и обращения по абсолютным путям, подготовлены для ядра, libc, а также некоторых приложений из базовой системы. Изменения пока не включены в состав OpenBSD-current и находятся на стадии обсуждения среди разработчиков.

Семейство системных вызовов openat(2) работает как аналог open(2) за исключением того, что если в параметре "path" указан относительный путь, то открываемый файл определяется относительно каталога, связанного с файловым дескриптором "fd", а не относительно текущего рабочего каталога. Если передать в openat абсолютный путь, например:

 
   int dirfd = open("/tmp", O_RDONLY | O_DIRECTORY);                       
   int hfd = openat(dirfd, "/etc/hosts", O_RDONLY);

функция openat() проигнорирует "dirfd" и, как следствие, абсолютный путь обработается обычным образом.

Поэтому замена open() на openat() сама по себе не усиливает безопасность программы. Такой вызов может ускорить разбор пути, но не ограничивает доступ к файловой системе. Не гарантируют защиту и флаги, запрещающие абсолютные пути (например, RESOLVE_BENEATH и/или RESOLVE_IN_ROOT для openat2 в Linux): программист должен добавлять их ко всем подходящим вызовам, а при захвате управления процессом атакующий может воспользоваться другими путями открытия файлов.

В ходе работы над утилитой openrsync у Тео возникла необходимость ограничить её возможности по обходу файловой системы, но сделать это при помощи функций unveil() и pledge() не представлялось возможным. Тогда возникла идея о механизме, подобном openat(), но со свойствами безопастности, дополняющими pledge/unveil или даже работающими при их отсуствии.

Основная идея - сделать ограничения частью самого дескриптора каталога. Для этого предлагается флаг F_BELOW, который можно установить через fcntl(), либо флаг O_BELOW для open(). Ограниченный таким образом дескриптор "dirfd" будет разрешать только переходы вниз по дереву каталогов: вызовы openat() с абсолютным путём или с переходом вверх через ".." будут завершаться ошибкой ENOENT. В случае атаки, приводящей к выполнению кода, таблица файловых дескрипторов процесса будет содержать менее функциональные "dirfd", что будет ограничивать поверхность атаки.

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Защита от атак на цепочки поставок через компоненты с открытым исходным кодом07.8324-09-2026
2Návrh VRR Target Limiteru pro grafické ovladače v Linuxu08.8622-09-2026
3Уязвимости в LXD, Incus, GitLab, Radicle, ядре Linux, WordPress, OpenVPN, Flatpak, NTFS-3G, FreeRDP, CUPS, Dovecot012.4927-09-2026
4Microsoft в предстоящем обновлении упростит доступ к папкам в Windows 11 с помощью символа тильда ~012.1405-10-2026
5В России предложили ввести дополнительные меры борьбы с дебоширами в самолетах08.9829-09-2026
6Проект Федерального закона "О внесении изменений в Федеральный закон "О связи" и отдельные законодательные акты Российской Федерации" (текст не внесен в ГД ФС РФ)010.701-10-2026
7В ГД предложили освободить детей от налога, возникающего при поездке на форумы01001-10-2026
8Nvidia stellt Sicherheitsnetz für autonome KI-Agenten vor014.6328-09-2026
9misc/codex - 0.155.1_108.7902-10-2026
10Минфин предложил стимулировать расходы бизнеса на защиту от атак БПЛА06.3401-10-2026

Классификация: Экономика. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 7.37. Источник: www.opennet.ru.