Уровни целостности
Основы
Допустим пользователь запустил две программы, так как они запущенны от одного и того-же пользователя, то и права у них должны быть одинаковыми. Но это не всегда так. Отличаться такие процессы могут уровнями целостности, всего их в системе шесть.
| Уровень | Название | Описание |
|---|---|---|
| 0 | Ненадежный | Используется процессами, запущенными группой Anonymous. При этом блокируются большинство доступов по записи. |
| 1 | Низкий (Low / AppContainers) | На этом уровне работают UWP-программы и защищенный режим Internet Explorer. Блокируется доступ по записи к большинству объектов системы, таких как файлы и разделы реестра. |
| 2 | Средний (Medium) | Используется обычными приложениями, запущенными при включенной системе UAC. |
| 3 | Высокий (High) | Используется приложениями, запущенными через повышение уровня полномочий при включенной системе UAC. Или обычными приложениями при выключенной системе UAC и при наличии у пользователя прав администратора. |
| 4 | Системный (System) | На этом уровне работают службы и другие приложения системного уровня (Wininit, Winlogon, Smss и т. д.); |
| 5 | Защищенный (Protected) | В настоящее время этот уровень не используется. Может устанавливаться только из режима ядра. |
| Распространяется уровень целостности в соответствии со следующими правилами: |
- Процесс обычно наследует уровень целостности своего родителя.
- Если исполняемый файл имеет один уровень целостности, и какой-то процесс запускает этот файл, то создается новый процесс с наименьшим уровнем целостности или файла, или родительского процесса. То есть родительский процесс может создать дочерний процесс с меньшим уровнем целостности.
Практика
Посмотреть уровни целостности на которых работают процессы можно используя Process Explorer . Например, запустите Microsoft Edge и Calc.exe (в Windows 10) — это приложения UWP. Затем откройте окно командной строки от имени администратора и откройте в обычном режиме программу Блокнот (notepad.exe).
И наконец, запустите Process Explorer. Чтобы видеть уровни целостности нужно для отображения выбрать колонку Integrity Level:

Теперь посмотрим на уровни целостности запущенных приложений:
- notepad.exe — средний уровень (2).
- microsoftEdge.exe и calculator.exe — appContainers (1).
- cmd.exe — высокий уровень (3).
Используя утилиту Psexec из пакета Sysinternals можно запустить программу с пониженным уровнем целостности. Например, запустим Блокнот на низком уровне:
PsExec64.exe -l notepad.exe
В запущенном «Блокноте» не получится сохранить файл даже в папке Документы (Documents). Но получится сохранить в папку C:\Users\username\AppData\LocalLow, так как он имеет тоже низкий уровень целостности.
Если понравилась статья, подпишись на мой канал в VK или Telegram .