stringtranslate.com

Привилегия (вычисления)

В вычислительной технике привилегия определяется как делегирование полномочий для выполнения функций, связанных с безопасностью, в компьютерной системе. [1] Привилегия позволяет пользователю выполнять действие с последствиями для безопасности. Примерами различных привилегий являются возможность создания нового пользователя, установки программного обеспечения или изменения функций ядра.

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

Теория

Привилегии могут быть автоматическими, предоставленными или запрашиваемыми.

Автоматическая привилегия существует, когда нет необходимости иметь разрешение на выполнение действия. Например, в системах, где для использования системы требуется вход в систему, выход из системы не потребует привилегии. Системы, не реализующие защиту файлов, такие как MS-DOS , по сути, предоставляют неограниченную привилегию на выполнение любого действия с файлом.

Предоставленная привилегия существует в результате предоставления некоторых учетных данных органу, предоставляющему привилегии. Обычно это достигается путем входа в систему с именем пользователя и паролем , и если предоставленные имя пользователя и пароль верны, пользователю предоставляются дополнительные привилегии.

Привилегия запрашивается либо исполняемой программой, выдающей запрос на расширенные привилегии, либо запуском некоторой программы для подачи заявки на дополнительные привилегии. Примером пользователя, запрашивающего дополнительные привилегии, является команда sudoдля запуска команды как суперпользователя ( root ) или система аутентификации Kerberos .

Современные архитектуры процессоров имеют несколько режимов ЦП , что позволяет ОС работать на разных уровнях привилегий . Некоторые процессоры имеют два уровня (например, пользователь и супервизор ); процессоры i386 + имеют четыре уровня (#0 с наибольшими, #3 с наименьшими привилегиями). Задачи помечаются уровнем привилегий. Ресурсы (сегменты, страницы, порты и т. д.) и привилегированные инструкции помечаются требуемым уровнем привилегий. Когда задача пытается использовать ресурс или выполнить привилегированную инструкцию, процессор определяет, имеет ли она разрешение (если нет, генерируется прерывание «ошибка защиты»). Это не позволяет пользовательским задачам наносить вред ОС или друг другу.

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

Критика

Марк Миллер раскритиковал определение привилегий как плохо определенное и трудно поддающееся измерению, и предположил, что полномочия можно определить как набор действий, которые может выполнять программа, что более полезно. [2]

Unix

В системах типа Unix суперпользователь (обычно называемый «root») владеет всеми привилегиями. Обычным пользователям предоставляется только достаточно прав для выполнения их самых обычных задач. Системы UNIX имеют встроенные функции безопасности. Большинство пользователей не могут создать новую учетную запись пользователя или выполнить другие административные процедуры. Пользователь «root» — это особый пользователь, так называемый суперпользователь, который может делать в системе все, что угодно. Эта высокая степень полномочий необходима для полного администрирования системы UNIX, но она также позволяет ее пользователю совершать ошибки и вызывать системные проблемы.

Непривилегированные пользователи обычно не могут:

Windows NT

В системах на базе Windows NT привилегии делегируются в разной степени. Эти делегирования можно определить с помощью локального менеджера политик безопасности ( secpol.msc). Ниже приведен сокращенный список назначений по умолчанию:

Windows определяет ряд административных привилегий [3] , которые могут быть назначены индивидуально пользователям и/или группам. Учетная запись (пользователь) имеет только те привилегии, которые предоставлены ей напрямую или косвенно через членство в группах. После установки создается ряд групп и учетных записей, и им предоставляются привилегии. Однако эти привилегии могут быть изменены позднее или с помощью групповой политики . В отличие от Linux, никакой привилегии не предоставляется явно или постоянно определенной учетной записи.

Некоторые административные привилегии (например, получение права собственности на произвольные файлы или их восстановление) настолько сильны, что при использовании со злым умыслом они могут привести к компрометации всей системы. С контролем учетных записей пользователей (включенным по умолчанию, начиная с Windows Vista) Windows лишает токен пользователя этих привилегий при входе в систему. Таким образом, если пользователь входит в систему с учетной записью с широкими системными привилегиями, он/она все равно не будет работать с этими системными привилегиями. Всякий раз, когда пользователь хочет выполнить административные действия, требующие каких-либо системных привилегий, ему/ей придется делать это из процесса с повышенными привилегиями . При запуске процесса с повышенными привилегиями пользователь уведомляется о том, что его/ее административные привилегии утверждаются с помощью запроса, требующего его/ее согласия. Не удержание привилегий до тех пор, пока они действительно не потребуются, соответствует принципу наименьших привилегий .

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

Windows ME, Windows 98, Windows 95 на базе DOS и предыдущие версии не-NT Windows работали только с файловой системой FAT, не поддерживали разрешения файловой системы [4] и, следовательно, привилегии фактически аннулируются в системах на базе Windows NT, которые не используют файловую систему NTFS .

Номенклатура

Имена, используемые в исходном коде Windows, заканчиваются либо на "privilege", либо на "logonright". Это привело к некоторой путанице относительно того, как следует называть полный набор всех этих "прав" и "привилегий".

В настоящее время Microsoft использует термин «права пользователя». [5] В прошлом Microsoft также использовала некоторые другие термины, такие как «привилегированные права» [6] , «права пользователя входа в систему» ​​[7] и «nt-права». [8]

Смотрите также

Ссылки

  1. ^ "Глоссарий". CSRC . NIST . Архивировано из оригинала 13 февраля 2019 . Получено 12 февраля 2019 .
  2. ^ Миллер, Марк (2006). Надежная композиция: на пути к унифицированному подходу к контролю доступа и управлению параллелизмом. Кандидатские диссертации. Университет Джонса Хопкинса.
  3. ^ "Константы привилегий". Microsoft . 7 апреля 2022 г.
  4. ^ «Как работают разрешения». Microsoft . 3 июля 2013 г. Вы можете установить разрешения на уровне файлов, только если файлы хранятся на томе NTFS.
  5. ^ «Права пользователя». Библиотека Microsoft TechNet. 18 июня 2014 г. Права пользователя включают права входа в систему и привилегии.
  6. ^ «Права привилегий». Библиотека Microsoft MSDN. 23 апреля 2024 г.
  7. ^ «Как установить права пользователя на вход в систему с помощью утилиты ntrights». Поддержка Microsoft.
  8. ^ «Как установить права пользователя на вход в систему с помощью утилиты ntrights». Поддержка Microsoft.