Разделение привилегий
-
Основы разделения привилегий в программировании и безопасности
- Разделение привилегий — метод, ограничивающий доступ к ресурсам для снижения риска уязвимостей.
- Программа разделяется на две части, одна из которых сохраняет привилегии для выполнения задачи.
- Соединение двух частей через разъемы обеспечивает минимальный доступ к ресурсам при успешной атаке на большую часть программы.
-
Реализация разделения привилегий
- Традиционно разделение привилегий осуществляется через системные вызовы setuid(2) и setgid(2).
- Неправильное использование этих вызовов может привести к серьезным уязвимостям в сети.
- Сетевые службы и административные утилиты часто требуют определенных привилегий, которые отзываются после выполнения задачи.
-
Методы разделения привилегий
- Разделение функциональности программы на несколько частей с разными привилегиями.
- Взаимодействие программ через операционную систему ограничивает область потенциальных уязвимостей.
-
Примеры программного обеспечения с разделением привилегий
- OpenBSD и Postfix активно используют разделение привилегий для обеспечения безопасности.
- Dovecot и Solaris также предлагают функции для разделения привилегий.