Привилегия (вычисления)
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2012 г. ) |
В вычислительной технике привилегия определяется как делегирование полномочий для выполнения функций, связанных с безопасностью, в компьютерной системе. [1] Привилегия позволяет пользователю выполнять действие, имеющее последствия для безопасности. Примеры различных привилегий включают возможность создания нового пользователя, установки программного обеспечения или изменения функций ядра.
Пользователи, которым делегированы дополнительные уровни контроля, называются привилегированными. Пользователи, у которых нет большинства привилегий, определяются как непривилегированные, обычные или обычные пользователи.
Теория
[ редактировать ]Привилегии могут быть автоматическими, предоставленными или запрошенными.
Автоматическая привилегия существует, когда нет необходимости иметь разрешение на выполнение действия. Например, в системах, где людям необходимо войти в систему, чтобы использовать ее, выход из системы не потребует каких-либо привилегий. Системы, не реализующие защиту файлов, такие как MS-DOS , по существу предоставляют неограниченные права на выполнение любых действий с файлом.
Предоставленная привилегия существует в результате предоставления определенных учетных данных органу, предоставляющему привилегии. Обычно это достигается путем входа в систему с именем пользователя и паролем , и если указанные имя пользователя и пароль верны, пользователю предоставляются дополнительные привилегии.
Привилегия применяется либо исполняемой программой, выдающей запрос на дополнительные привилегии, либо запуском какой-либо программы для подачи заявки на дополнительные привилегии. Пример пользователя, подающего заявку на дополнительные привилегии, предоставлен sudo
Команда для запуска команды от имени суперпользователя ( root ) или системы аутентификации Kerberos .
Современные процессорные архитектуры имеют несколько режимов ЦП , что позволяет ОС работать на разных уровнях привилегий . Некоторые процессоры имеют два уровня (например, пользовательский и супервизор ); Процессоры i386 + имеют четыре уровня (№0 с наибольшим количеством привилегий, №3 с наименьшим количеством привилегий). Задачи помечены уровнем привилегий. Ресурсы (сегменты, страницы, порты и т. д.) и привилегированные инструкции помечаются требуемым уровнем привилегий. Когда задача пытается использовать ресурс или выполнить привилегированную инструкцию, процессор определяет, есть ли у нее разрешение (если нет, генерируется прерывание «ошибка защиты»). Это предотвращает повреждение ОС или друг друга пользовательскими задачами.
В компьютерном программировании исключения, связанные с нарушениями привилегированных инструкций, могут быть вызваны, когда доступ к массиву осуществляется за пределами границ или когда недопустимый указатель был разыменован, когда недопустимая ячейка памяти, на которую ссылаются, является привилегированной областью, например, входом/выходом одного управляющего устройства. Это особенно вероятно произойдет в таких языках программирования, как C , которые используют арифметику указателей или не проверяют границы массива автоматически.
Критика
[ редактировать ]Марк Миллер раскритиковал формулировку привилегий как плохо определённую и трудноизмеримую и предположил, что полномочия можно определить как набор действий, которые может делать программа, что более полезно. [2]
Юникс
[ редактировать ]В Unix-подобных системах всеми привилегиями обладает суперпользователь (обычно известный как root). Обычным пользователям предоставляется достаточно разрешений для выполнения наиболее распространенных задач. Системы UNIX имеют встроенные функции безопасности. Большинство пользователей не могут ни создать новую учетную запись пользователя, ни выполнить другие административные процедуры. Пользователь «root» — это специальный пользователь, называемый суперпользователем, который может делать в системе что угодно. Эта высокая степень полномочий необходима для полного администрирования системы UNIX, но она также позволяет пользователю совершать ошибки и вызывать системные проблемы.
Непривилегированные пользователи обычно не могут:
- Настройте ядра ; параметры
- изменять системные файлы или файлы других пользователей.
- изменить владельца любых файлов;
- изменить уровень запуска (в системах с инициализацией в стиле System V );
- изменить файловый режим любых файлов;
- настроить ограничения или дисковые квоты ;
- запускать, останавливать и удалять демоны ;
- сигнализировать о процессах других пользователей;
- создавать узлы устройств ;
- создавать или удалять пользователей или группы;
- монтировать и отключать тома (хотя обычным пользователям становится все чаще разрешаться монтировать и отключать съемные носители, такие как компакт-диски - обычно это выполняется через FUSE );
- выполнить содержимое любого
sbin/
каталог (хотя становится обычным просто ограничивать поведение таких программ при запуске обычными пользователями); - привязать порты ниже 1024.
Windows НТ
[ редактировать ]В системах на базе Windows NT привилегии делегируются в различной степени. Эти делегирования можно определить с помощью локального менеджера политики безопасности ( secpol.msc
). Ниже приведен сокращенный список назначений по умолчанию:
- «NT AUTHORITY\System» — ближайший эквивалент суперпользователя в Unix-подобных системах. Он обладает многими привилегиями классического суперпользователя Unix (например, доверенным лицом каждого созданного файла);
- «Администратор» — один из ближайших эквивалентов суперпользователя (root) в Unix-подобных системах. Однако этот пользователь не может обойти столько средств защиты операционной системы, сколько может суперпользователь;
- члены группы «Администраторы» имеют привилегии, практически равные «Администратору»;
- члены группы «Опытные пользователи» имеют возможность устанавливать программы и выполнять резервное копирование системы.
- члены группы «Пользователи» эквивалентны непривилегированным пользователям в Unix-подобных системах.
Windows определяет ряд административных привилегий [3] которые могут быть назначены индивидуально пользователям и/или группам. Учетная запись (пользователь) имеет только те привилегии, которые ей предоставлены прямо или косвенно через членство в группах. После установки создается ряд групп и учетных записей, которым предоставляются привилегии. Однако эти разрешения можно изменить позже или с помощью групповой политики . В отличие от Linux, никакие привилегии не предоставляются неявно или навсегда определенной учетной записи.
Некоторые административные привилегии (например, получение права владения или восстановление произвольных файлов) настолько мощны, что, если их использовать со злым умыслом, они могут привести к компрометации всей системы. При управлении учетными записями пользователей (включенном по умолчанию, начиная с Windows Vista) Windows лишает токен пользователя этих привилегий при входе в систему. Таким образом, если пользователь входит в систему под учетной записью с широкими системными привилегиями, он/она все равно не будет работать с этими системными привилегиями. Всякий раз, когда пользователь хочет выполнить административные действия, требующие каких-либо системных привилегий, ему/ей придется делать это из процесса с повышенными правами . При запуске процесса с повышенными правами пользователь уведомляется о том, что его/ее административные привилегии утверждаются посредством запроса, требующего его/ее согласия. Не иметь привилегий до тех пор, пока они действительно не потребуются, соответствует принципу наименьших привилегий .
Процессы с повышенными правами будут выполняться с полными привилегиями пользователя , а не с полными привилегиями системы . Несмотря на это, привилегии пользователя все равно могут быть больше, чем требуется для этого конкретного процесса, и, следовательно, не совсем минимальные привилегии .
Windows ME, Windows 98, Windows 95 и предыдущие версии Windows, отличные от NT, на базе DOS работали только с файловой системой FAT и не поддерживали разрешения файловой системы. [4] и поэтому привилегии фактически аннулируются в системах на базе Windows NT, которые не используют файловую систему NTFS .
Номенклатура
[ редактировать ]Имена, используемые в исходном коде Windows, оканчиваются либо на «привилегии», либо на «права входа». Это привело к некоторой путанице в отношении того, как следует называть полный набор всех этих «прав» и «привилегий».
Microsoft в настоящее время использует термин «права пользователя». [5] В прошлом Microsoft также использовала некоторые другие термины, такие как «права привилегий». [6] , «права пользователя для входа в систему» [7] и «нт-права». [8]
См. также
[ редактировать ]- Разрешения файловой системы
- Ядро (операционная система)
- Принцип наименьших привилегий
- Суперпользователь
- Повышение привилегий
Ссылки
[ редактировать ]- ^ «Глоссарий» . ЦРСЦ . НИСТ . Архивировано из оригинала 13 февраля 2019 года . Проверено 12 февраля 2019 г.
- ^ Миллер, Марк (2006). Надежная композиция: на пути к унифицированному подходу к контролю доступа и управлению параллелизмом . Кандидатские диссертации. Университет Джонса Хопкинса.
- ^ «Константы привилегий» . Майкрософт .
- ^ «Как работают разрешения» . Майкрософт .
Вы можете установить разрешения на уровне файлов, только если файлы хранятся на томе NTFS.
- ^ «Права пользователя» . Библиотека Microsoft TechNet.
Права пользователя включают права и привилегии входа в систему.
- ^ «Привилегированные права» . Библиотека Microsoft MSDN.
- ^ «Как установить права входа пользователя в систему с помощью утилиты ntrights» . Поддержка Майкрософт.
- ^ «Как установить права входа пользователя в систему с помощью утилиты ntrights» . Поддержка Майкрософт.