Что такое уровень целостности windows

Обновлено: 02.07.2024

Обязательный контроль целостности ( MIC ) - это основная функция безопасности Windows Vista и более поздних версий, которая добавляет запущенные процессы обязательного контроля доступа на основе их уровня целостности (IL). IL представляет уровень надежности объекта. Цель этого механизма - ограничить права доступа для потенциально менее надежных контекстов (процессов, файлов и других защищаемых объектов) по сравнению с другими контекстами, работающими под той же учетной записью пользователя, которые являются более надежными.

Содержание

Реализация

Обязательный контроль целостности определяется с использованием нового типа записи управления доступом (ACE) для представления IL объекта в его дескрипторе безопасности . В Windows списки управления доступом (ACL) используются для предоставления прав доступа (чтение, запись и выполнение) и привилегий пользователям или группам. IL присваивается токену доступа субъекта при инициализации. Когда субъект пытается получить доступ к объекту (например, к файлу), контрольный монитор безопасности сравнивает уровень целостности в маркере доступа субъекта с уровнем целостности в дескрипторе безопасности объекта . Windows ограничивает разрешенные права доступа в зависимости от того, является ли IL субъекта выше или ниже, чем у объекта, и в зависимости от флагов политики целостности в новой записи управления доступом (ACE). Подсистема безопасности реализует уровень целостности как обязательную метку, чтобы отличать его от дискреционного доступа под контролем пользователя, который предоставляют списки контроля доступа.

Windows Vista определяет четыре уровня целостности: низкий ( SID : S-1-16-4096), средний ( SID: S-1-16-8192), высокий ( SID: S-1-16-12288) и системный ( SID). : S-1-16-16384). По умолчанию процессы, запущенные обычным пользователем, получают средний уровень IL, а процессы с повышенными правами - высокий уровень IL. Путем введения уровней целостности MIC позволяет изолировать классы приложений, обеспечивая такие сценарии, как «песочница» для потенциально уязвимых приложений (таких как приложения с выходом в Интернет ). Процессы с низким IL называются процессами с низким уровнем целостности, которые имеют меньший доступ, чем процессы с более высоким IL, где контроль доступа осуществляется в Windows.

Объекты со списками контроля доступа, такие как именованные объекты , включая файлы , ключи реестра или даже другие процессы и потоки , имеют запись в системном списке контроля доступа, управляющую доступом к ним, которая определяет минимальный уровень целостности процесса, который может использовать объект. Windows гарантирует, что процесс может записывать или удалять объект, только если его уровень целостности равен или выше запрошенного уровня целостности, указанного объектом. Кроме того, из соображений конфиденциальности объекты процессов с более высоким IL находятся вне границ даже для доступа на чтение из процессов с более низким IL.

Следовательно, процесс не может взаимодействовать с другим процессом с более высоким IL. Таким образом, процесс не может выполнять такие функции, как внедрение DLL в процесс более высокого уровня IL с помощью CreateRemoteThread() функции Windows API или отправлять данные другому процессу с помощью WriteProcessMemory() функции.

заявка

Internet Explorer 7 представляет настройку «Защищенного режима» на основе MIC для управления открытием веб-страницы как процесса с низким уровнем целостности (при условии, что операционная система поддерживает MIC) на основе настроек зоны безопасности, тем самым предотвращая некоторые классы безопасности. уязвимости. Поскольку Internet Explorer в этом случае работает как процесс с низким IL, он не может изменять объекты системного уровня - вместо этого операции с файлами и реестром виртуализируются. Adobe Reader 10 и Google Chrome - два других известных приложения, которые внедряют эту технологию, чтобы уменьшить свою уязвимость для вредоносных программ.

Microsoft Office 2010 представил изолированную среду песочницы «Защищенный просмотр» для Excel, PowerPoint и Word, которая запрещает потенциально небезопасным документам изменять компоненты, файлы и другие ресурсы в системе. Защищенный просмотр работает как процесс с низким уровнем целостности и в Windows Vista и более поздних версиях Windows использует MIC и UIPI для дальнейшего ограничения песочницы.

Однако в некоторых случаях процесс с более высоким IL действительно должен выполнять определенные функции в отношении процесса с более низким IL, или процесс с более низким IL должен получать доступ к ресурсам, к которым может получить доступ только процесс с более высоким IL (например, при просмотре веб-страницы в защищенном режиме, сохранить файл, загруженный из Интернета, в папку, указанную пользователем). Процессы с высоким и низким IL по-прежнему могут взаимодействовать друг с другом с помощью файлов, именованных каналов , LPC или других общих объектов. Общий объект должен иметь такой же низкий уровень целостности, как процесс с низким IL, и должен совместно использоваться процессами с низким и высоким IL. Так как MIC не препятствует процессу с низким IL совместно использовать объекты с процессом с более высоким IL, он может вызвать ошибки в процессе с более высоким IL и заставить его работать от имени процесса с низким IL, тем самым вызывая атаку приседания . Однако Shatter-атаки можно предотвратить, используя изоляцию привилегий пользовательского интерфейса, которая использует MIC.

Контроль целостности учетных данных (MIC) предоставляет механизм управления доступом к защищаемым объектам. Этот механизм является дополнением к контролю доступа на уровне пользователей и оценивает доступ до проверки доступа к списку управления доступом на уровне пользователей (DACL) объекта.

Для вычисления доступа MIC использует уровни целостности и обязательную политику. Субъектам безопасности и защищаемым объектам назначаются уровни целостности, определяющие их уровни защиты или доступа. Например, участник с низким уровнем целостности не может записывать в объект с уровнем целостности Medium, даже если DACL этого объекта допускает доступ на запись к участнику.

Windows определяет четыре уровня целостности: низкая, средняя, высокая и система. Обычные пользователи получают доступ к среднему уровню, а пользователи с повышенными правами получают высокий уровень. Запущенные процессы и созданные объекты получают уровень целостности (средний или высокий) или низкий, если уровень исполняемого файла низкий; Системные службы получают целостность системы. Объекты, для которых отсутствует метка целостности, обрабатываются операционной системой как средняя; Это предотвращает изменение непомеченных объектов кодом с низким уровнем целостности. кроме того, Windows гарантирует, что процессы, работающие с низким уровнем целостности, не смогут получить доступ к процессу, связанному с контейнером приложения.

Метки целостности

Метки целостности определяют уровни целостности защищаемых объектов и субъектов безопасности. Метки целостности представлены идентификаторами безопасности целостности. SID целостности для защищаемого объекта хранится в системном списке управления доступом (SACL). Список SACL содержит обязательную системную запись управления доступом _ _ _ ACE (ACE), которая, в свою очередь, содержит SID целостности. Любой объект без идентификатора безопасности целостности обрабатывается так, как если бы он имел среднюю целостность.

SID целостности для субъекта безопасности хранится в его маркере доступа. Маркер доступа может содержать один или несколько SID целостности.

Подробные сведения об определенных идентификаторах безопасности см. в разделе известные идентификаторыбезопасности.

Создание процесса

Когда пользователь пытается запустить исполняемый файл, новый процесс создается с минимальным уровнем целостности пользователя и уровнем целостности файла. Это означает, что новый процесс никогда не будет выполняться с более высокой целостностью, чем исполняемый файл. Если пользователь с правами администратора выполняет программу низкой целостности, маркер для нового процесса работает с низким уровнем целостности. Это помогает защитить пользователя, запускающего ненадежный код от вредоносных действий, выполняемых этим кодом. Данные пользователя, которые являются обычным уровнем целостности пользователя, защищаются от записи к этому новому процессу.

Обязательная политика

Элемент ACE ACE " _ обязательная _ _ система " в списке SACL защищаемого объекта содержит маску доступа, которая задает доступ для участников с уровнем целостности ниже, чем у объекта. Значения, определенные для этой маски доступа, являются _ обязательной системной _ меткой " _ нет _ записи _", " системная _ обязательная _ метка _ не _ читается _" и " системная _ обязательная _ метка _ не _ выполняется _". По умолчанию система создает каждый объект с маской доступа к системной _ обязательной _ метке _ без _ записи _.

Каждый маркер доступа также указывает обязательную политику, которая задается локальным администратором безопасности (LSA) при создании маркера. Эта политика указывается с помощью _ обязательной структуры _ политики маркера , связанной с токеном. Эту структуру можно запросить, вызвав функцию GetTokenInformation со значением параметра токенинформатионкласс , равным токенмандаториполици.

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

Основы

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

УровеньНазваниеОписание
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“:

Process Explorer, добавляем колонку Integrity Level

Теперь посмотрим на уровни целостности запущенных приложений:

  • notepad.exe — средний обязательный уровень (2).
  • microsoftEdge.exe и calculator.exe — appContainers (1).
  • cmd.exe — высокий обязательный уровень (3).

Используя утилиту “Psexec” из пакета Sysinternals можно запустить программу с пониженным уровнем целостности. Например, запустим “Блокнот” на низком уровне

В запущенном “Блокноте” попробуйте теперь открыть файл (например, один из файлов с расширением .XML) в каталоге %SystemRoot%\System32. Обратите внимание на то, что вы можете просматривать каталог и открывать любой содержащийся в нем файл.

Попробуйте сохранить файл в C:\Users\username\AppData\LocalLow. В этот каталог сохранить файл должно получиться, так как он имеет тоже низкий уровень целостности.

Эта статья описывает возможности системы
Windows Integrity Control (WIC), впервые представленной в
Windows Vista, рассказывает о том, как защищаются
объекты (типа папок и файлов), о разных
уровнях защиты, об управлении WIC при помощи
утилиты ICACLS.

Целостность системы - кому ты можешь
доверять?

При создании последней версии
операционной системы компании, Windows Vista,
разработчики из Microsoft пытались
сконструировать самую защищенную ОС из
семейства Windows. Одна из функций, помогающая
обезопасить ОС - Windows Integrity Control (WIC).

Предназначение WIC - защита объектов, таких
как файлы, принтеры, именованные каналы,
записи реестра и т.д., от атак, вредоносного
софта и даже непреднамеренных ошибок
пользователя. Концепция WIC основана на
определении доверительных, надежных
отношений между объектами и
контролировании взаимодействия между ними
на основе их уровня доверия.

Уровни WIC являются обязательными и стоят
над назначаемыми правами контроля, такими
как, например, права NTFS на файлы и папки,
которые нам все прекрасно знакомы. Главная
цель системы контроля - убедиться в том, что
только объекты с уровнем, равным или большим,
чем у объекта, могут взаимодействовать с ним.
В сущности, если объекту доверяют в меньшей
степени, то ему запрещено взаимодействие с
объектами более высокого ранга.

Опять же, разрешения WIC стоят над
нормальными разрешениями. Это означает, что
даже в том случае, если файл или процесс
имеет полный контроль над другим объектом,
но его уровень меньше, чем у того, с кем он
пытается взаимодействовать, то WIC
переопределит разрешения и в доступе будет
отказано.

Определение надежности при помощи WIC

Для наблюдения за взаимодействием между
объектами, Windows в первую очередь определит
надежность, или уровень целостности (integrity
lev), каждого объекта. WIC назначает один из
шести уровней для каждого объекта
операционной системы:

  • Untrusted - анонимные процессы
    автоматически попадают в эту категорию.
  • Low - стандартный уровень при работе с
    Интернетом. Если IE запущен в Protected Mode, все
    файлы и процессы, ассоциированные с
    ним, назначаются в эту категорию.
    Некоторые папки, такие как, например, Temporary
    Internet Folder, также по умолчанию наделяются
    Низким уровнем доверия.
  • Medium - в данном контексте работает
    большинство объектов. Стандартные
    пользователи получают Средний уровень и
    все объекты, специально не назначенные в
    другие группы, получают его по умолчанию.
  • High - получают Администраторы. Это
    сделано специально для того, чтобы они не
    только могли взаимодействовать и
    изменять объекты низших уровней доверия,
    но и работать с другими объектами
    Высокого уровня, чего стандартные
    пользователи делать не могут.
  • System - очевидно, что такой уровень
    зарезервирован за системой. Ядро Windows и
    его сервисы получают Системный уровень.
    Очевидно, что такой класс программ не
    дает себя изменять даже Администраторам
    с Высоким уровнем разрешения.
  • Installer - высший уровень целостности,
    определяемый WIC. Его объекты могут
    удалять, деинсталлировать файлы всех
    предыдущих уровней.

С точки зрения влияния на безопасность
Windows Vista, эти уровни безопасности защищают
объекты высшего уровня от умышленного или непреднамеренного
изменения или удаления менее важными
объектами. Установив Средний уровень
надежности в качестве значения по
умолчанию для стандартных пользователей и
для всех объектов, Vista защищает важнейшие
компоненты компьютера от влияния угроз
Интернета, которые (как мы уже сказали) по
умолчанию получают малый доступ.

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

В целом, уровни управления WIC очень похожи
на разрешения NTFS. Главное отличие состоит в
том, что права NTFS раздаются человеком, они
назначаются, а уровни WIC - обязательны. Проще
говоря, права доступа на папки и файлы
назначаются их владельцем или
администратором, в то время как
интегративные уровни WIC назначаются и
определяются операционной системой.

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

Защита Vista от угроз из Интернета

В то время как стандартные пользователи
работают на Среднем уровне, а
администраторы на Высоком, WIC подразумевает,
что Internet и ассоциированные с ним файлы и
процессы полностью враждебны, доверять им
нельзя и потому они получают Низкий уровень
доверия.

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


Спросите любого эксперта, занимающегося анализом вредоносного кода под Windows, с какими системными привилегиями работает и к каким стремится вредоносное ПО? Он ответит, не задумываясь, – права Администратора. Существуют ли исследования, способные это подтвердить? К сожалению, мне не удалось найти какой-либо внятной аналитики по данному вопросу, однако, никогда не поздно побыть в роли Капитана Очевидность и предоставить факты на суд общественности.

Я не ставил своей целью сделать обзор техник повышения привилегий в системе, таких статей полно в сети. Каждый год находятся новые механизмы, и каждая техника заслуживает отдельного обзора. В этот раз мне захотелось взглянуть на картину в целом, на всём многообразии линейки ОС Windows начиная с Windows Vista и без разбиения на конкретные операционные системы.

Небольшой экскурс в историю

Модель безопасности операционной системы Windows XP существенно отличается от модели безопасности операционной системы Windows Vista и выше. В Windows XP существуют две учётные записи пользователей: стандартная и учётная запись администратора. Подавляющее большинство пользователей работали с правами администратора, даже несмотря на то, что для решения повседневных задач эти права им не требовались. Они заражались вредоносным ПО, которое получало права текущего пользователя и, чаще всего, это были именно права администратора системы. Таким образом, у вредоносного ПО не было серьёзных проблем с получением повышенных привилегий в системе под управлением Windows XP.

Такой механизм существовал вплоть до появления семейства Windows Vista в котором Microsoft представила новую модель безопасности – механизм целостности Windows.

Вредоносный код и механизм целостности Windows

Integrity Level в Windows 10

Механизм целостности Windows

Новый механизм целостности Windows является основным компонентом защиты архитектуры безопасности Windows. Он ограничивает права доступа для приложений, работающих под управлением той же учётной записи, но при это являющимися менее надёжными. Проще говоря, этот механизм присваивает уровень целостности процессам, а также другим защищаемым объектам в ОС Windows. Уровень целостности ограничивает или предоставляет права доступа одних объектов к другим.

Читайте также: