Принцип наименьших привилегий по сравнению с изоляцией привилегий пользовательского интерфейса
Это всегда смущало меня. Вот оператор, который заявляет "Принцип наименьших привилегий", тогда как еще один оператор заявляет, используйте UIPI для защиты приложений от процессов с низким уровнем целостности.
Как приложение, я не могу выполнять какие-либо привилегированные операции, но для защиты своего пользовательского интерфейса (используя UIPI) я буду вынужден повышать целостность своего приложения.
Противоречивые. У кого-нибудь есть лучшее объяснение этому?
Я осознаю разницу между ними. Я не ищу что это. Я смотрю на то, как балансировать между ними.
Например,
Я разрабатываю приложение, я не делаю никаких привилегированных операций, поэтому мое приложение может работать с низким уровнем целостности. Таким образом, в соответствии с принципом наименьших привилегий, я рад выполнить мое приложение с низким уровнем целостности. Но если я запускаю свое приложение с низким уровнем целостности, я склонен к атакам со стороны UIPI. Любой может отправлять сообщения и вызывать DOS-атаку. Это заставляет меня задуматься, должен ли я запустить свое приложение с высокой степенью целостности, чтобы никакие другие приложения со средней целостностью не могли атаковать мое приложение. Но это идет вразрез с "принципом наименьших привилегий"
1 ответ
Обязательный контроль целостности был добавлен в Vista и имеет 6 основных уровней целостности, но только 3 из них используются для обычных пользовательских процессов; Низкий, Средний и Высокий.
По умолчанию процессы Win32 выполняются на среднем уровне целостности (при запуске из Проводника и т. Д.), Поэтому большинство приложений Win32 уже защищены от процессов с низким уровнем целостности (приложения UWP, Edge, IE и Chrome).
UIPI проверяет уровни целостности отправителя и получателя и разрешает взаимодействие, если отправитель>= получатель. Есть несколько исключений. Подписанные приложения UIAccess в системных каталогах имеют специальный доступ, и вы можете вручную добавить исключения в свое приложение для определенных сообщений, если это необходимо.
Вы можете просмотреть уровень целостности процессов с помощью Process Explorer.
Приложения, работающие со средней IL, являются доверенными с точки зрения пользователей, вам не нужно беспокоиться о защите от них. Приложениям с высоким уровнем IL доверяют пользователь / администратор и машина. Вы не должны работать с высоким IL, если вам не нужны те дополнительные права, которые идут с ним. Low IL предназначен для приложений с высоким риском, таких как веб-браузеры и программы для чтения PDF.
Это нигде не задокументировано, но текущая реализация позволяет вам создавать свои собственные уровни, чтобы вы могли запускать ваше приложение с уровнем целостности где-то между низким и средним.