Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В компьютерном программировании и компьютерной безопасности , разделение привилегий представляет собой метод , в котором программа разделена на часть , которые ограничены конкретные права , они требуют, чтобы выполнить задачу конкретной. Это используется для уменьшения потенциального ущерба от уязвимости компьютерной безопасности.

Общий метод для осуществления разделения полномочий, чтобы иметь компьютерную программу вилки в двух процессов . Основная программа отбрасывает привилегии , а меньшая программа сохраняет привилегии для выполнения определенной задачи. Затем две половины связываются через пару сокетов . Таким образом, любая успешная атака на более крупную программу получит минимальный доступ, даже если пара программ будет способна выполнять привилегированные операции.

Разделение привилегий традиционно достигается путем отделения реального идентификатора пользователя / идентификатора группы от эффективного идентификатора пользователя / идентификатора группы с помощью setuid (2) / setgid (2) и связанных системных вызовов , которые были указаны в POSIX . Если они размещены неправильно, разрывы могут привести к широкому проникновению в сеть.

Многие демоны сетевых служб должны выполнять определенные привилегированные операции, такие как открытие сырого сокета или Интернет-сокета в хорошо известном диапазоне портов . Административные утилиты также могут требовать определенных привилегий во время выполнения . Такое программное обеспечение имеет тенденцию разделять привилегии, полностью отменяя их после завершения критического раздела, и после этого меняет пользователя, под которым оно работает, на некоторую непривилегированную учетную запись. Это действие известно как удаление root в Unix-подобных операционных системах . Непривилегированная часть обычно запускается под ником "пользователь или эквивалентная отдельная учетная запись пользователя.

Разделение привилегий также может быть выполнено путем разделения функциональных возможностей одной программы на несколько более мелких программ, а затем назначения расширенных привилегий определенным частям с использованием разрешений файловой системы . Таким образом, различные программы должны взаимодействовать друг с другом через операционную систему, поэтому объем потенциальных уязвимостей ограничен (поскольку сбой в менее привилегированной части не может быть использован для получения привилегий, просто чтобы вызвать отказ в обслуживании. атака ).

Разделение привилегий - одна из основных функций безопасности OpenBSD . Реализация Postfix была сосредоточена на реализации полного разделения привилегий. В Solaris реализован отдельный набор функций для брекетинга привилегий .

См. Также [ править ]

  • Принцип наименьших привилегий
  • Безопасность на основе возможностей
  • Запутанная депутатская проблема
  • Повышение привилегий
  • Отзыв привилегии (вычисления)
  • Защитное программирование
  • Песочница (компьютерная безопасность)

Внешние ссылки [ править ]

  • Тео де Раадт : использование методов смягчения последствий в слайдах OpenBSD
  • Нильс Provos , Markus Friedl , Питер Honeyman : Эскалация Предотвращение Privilege бумаги
  • Нильс Провос : проект OpenSSH с разделением привилегий
  • Руководство для доверенных разработчиков Solaris: брекетинг эффективных привилегий