Уровни целостности

Из статьи вы узнаете, что такое уровни целостности (Integrity Level). Мало кто знает, что не только права определяют возможности того или иного приложения.

Основы

Допустим пользователь запустил две программы, так как они запущенны от одного и того-же пользователя, то и права у них должны быть одинаковыми. Но это не всегда так. Отличаться такие процессы могут уровнями целостности, всего их в системе шесть.

УровеньНазваниеОписание
0НенадежныйИспользуется процессами, запущенными группой Anonymous. При этом блокируются большинство доступов по записи.
1Низкий (Low / AppContainers)На этом уровне работают UWP-программы и защищенный режим Internet Explorer. Блокируется доступ по записи к большинству объектов системы, таких как файлы и разделы реестра.
2Средний (Medium)Используется обычными приложениями, запущенными при включенной системе UAC.
3Высокий (High)Используется приложениями, запущенными через повышение уровня полномочий при включенной системе UAC. Или обычными приложениями при выключенной системе UAC и при наличии у пользователя прав администратора.
4Системный (System)На этом уровне работают службы и другие приложения системного уровня (WininitWinlogonSmss и т. д.);
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 .