В этой статье не процитировать какие - либо источники . ( апрель 2012 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
В компьютерном программировании и компьютерной безопасности , разделение привилегий представляет собой метод , в котором программа разделена на часть , которые ограничены конкретные права , они требуют, чтобы выполнить задачу конкретной. Это используется для уменьшения потенциального ущерба от уязвимости компьютерной безопасности.
Общий метод для осуществления разделения полномочий, чтобы иметь компьютерную программу вилки в двух процессов . Основная программа отбрасывает привилегии , а меньшая программа сохраняет привилегии для выполнения определенной задачи. Затем две половины связываются через пару сокетов . Таким образом, любая успешная атака на более крупную программу получит минимальный доступ, даже если пара программ будет способна выполнять привилегированные операции.
Разделение привилегий традиционно достигается путем отделения реального идентификатора пользователя / идентификатора группы от эффективного идентификатора пользователя / идентификатора группы с помощью setuid (2) / setgid (2) и связанных системных вызовов , которые были указаны в POSIX . Если они размещены неправильно, разрывы могут привести к широкому проникновению в сеть.
Многие демоны сетевых служб должны выполнять определенные привилегированные операции, такие как открытие сырого сокета или Интернет-сокета в хорошо известном диапазоне портов . Административные утилиты также могут требовать определенных привилегий во время выполнения . Такое программное обеспечение имеет тенденцию разделять привилегии, полностью отменяя их после завершения критического раздела, и после этого меняет пользователя, под которым оно работает, на некоторую непривилегированную учетную запись. Это действие известно как удаление root в Unix-подобных операционных системах . Непривилегированная часть обычно запускается под ником "пользователь или эквивалентная отдельная учетная запись пользователя.
Разделение привилегий также может быть выполнено путем разделения функциональных возможностей одной программы на несколько более мелких программ, а затем назначения расширенных привилегий определенным частям с использованием разрешений файловой системы . Таким образом, различные программы должны взаимодействовать друг с другом через операционную систему, поэтому объем потенциальных уязвимостей ограничен (поскольку сбой в менее привилегированной части не может быть использован для получения привилегий, просто чтобы вызвать отказ в обслуживании. атака ).
Разделение привилегий - одна из основных функций безопасности OpenBSD . Реализация Postfix была сосредоточена на реализации полного разделения привилегий. В Solaris реализован отдельный набор функций для брекетинга привилегий .
См. Также [ править ]
- Принцип наименьших привилегий
- Безопасность на основе возможностей
- Запутанная депутатская проблема
- Повышение привилегий
- Отзыв привилегии (вычисления)
- Защитное программирование
- Песочница (компьютерная безопасность)
Внешние ссылки [ править ]
- Тео де Раадт : использование методов смягчения последствий в слайдах OpenBSD
- Нильс Provos , Markus Friedl , Питер Honeyman : Эскалация Предотвращение Privilege бумаги
- Нильс Провос : проект OpenSSH с разделением привилегий
- Руководство для доверенных разработчиков Solaris: брекетинг эффективных привилегий