Обязательный контроль целостности
Информация в этой статье или некоторых её разделах устарела. |
Обязательный контроль целостности (англ. Mandatory Integrity Control, MIC) представляет собой новую функцию безопасности, внедрённую в Astra Linux и Windows Vista и реализованную в следующей линейке операционных систем Windows, которая добавляет управление доступом с помощью уровней целостности (англ. Integrity Levels, IL). Уровень целостности представляет собой уровень надежности субъекта или объекта доступа. Цель этого механизма заключается в использовании политик управления целостностью и уровнями целостности задействованных субъектов и объектов для ограничения доступа процессам, которые считаются потенциально менее надежными, по сравнению с доверенными процессами, работающими под той же учетной записью пользователя.
компонент WindowsAstra Linux | |
Обязательный контроль целостности | |
---|---|
Тип компонента | Безопасность |
Включён в | Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Astra Linux Special Edition |
Название сервиса | Mandatory Integrity Control, MIC |
Описание сервиса | Контроль доступа к файлам и процессам |
Состояние | Активное |
РеализацияПравить
Обязательный контроль целостности определяется с помощью нового типа записи управления доступом (ACE) для представления уровня целостности объекта в его дескрипторе безопасности. В Windows списки управления доступом (ACL) обычно используются для предоставления прав доступа (разрешения на чтение, запись и выполнение) пользователям или группам. При инициализации маркеру доступа процесса присваивается уровень целостности. Когда поток пытается получить доступ к объекту (например, файлу), монитор ссылок сравнивает уровень целостности в маркере доступа процесса или потока с уровнем целостности в дескрипторе безопасности объекта. Windows ограничивает разрешенные права доступа в зависимости от того, является ли уровень целостности субъекта выше или ниже, чем уровень целостности объекта, в зависимости от заданной политики целостности в записи управления доступом (ACE). Подсистема безопасности использует уровни целостности для мандатного разграничения доступа, в отличие от дискреционного разграничения доступа, который реализован с помощью традиционных DACL.
В Windows Vista и более поздних определены 5 уровней целостности IL[1]:
Недоверенный (SID: S-1-16-0),
Низкий (SID: S-1-16-4096),
Средний (SID: S-1-16-8192),
Высокий (SID: S-1-16-12288)
Системный (SID: S-1-16-16384).
По умолчанию процессы, запускаемые обычным пользователем (в том числе администратором), получают средний уровень целостности, а процессы запущенные через UAC с правами администратора — высокий.[2] С помощью задания различных уровней целостности, обязательный контроль целостности позволяет изолировать потенциально уязвимые приложения (например, приложения, ориентированные на работу в Интернете, офисные приложения, которые используются для открытия документов, полученных из недоверенных источников и т.д.). Процессы с низким уровнем целостности имеют меньший доступ (ограничены права на запись в объекты системы), чем процессы с более высокими уровнями целостности, т.к. обязательный (мандатный) контроль доступа осуществляется самой ОС Windows.
Объекты с ACL, такие как именованные объекты, включая файлы, ключи реестра или другие процессы и потоки, имеют запись в ACL, которая определяет уровень целостности этого объекта. Она определяет минимальный уровень целостности процесса, который может использовать данный объект. Для объектов Windows по умолчанию задана мандатная политика целостности No-Write-Up (запрет на запись вверх), которая определяет, что процесс может записывать или удалять объект только тогда, когда его уровень целостности равен или превышает уровень целостности объекта.[2] Поэтому, процесс, имеющий уровень целостности Low, не может открыть для записи файл, имеющий уровень целостности Medium, даже если DACL предоставляет процессу право записи.
Кроме того, процессы с низким уровнем целостности не могут открыть для чтения объекты процессов с более высоким уровнем целостности, поскольку для объектов процессов по умолчанию задана мандатная политика целостности No-Read-Up (запрет на чтение вверх).[3] Следовательно, процесс не может взаимодействовать с другим процессом, имеющим более высокий уровнем целостности. Процесс не может выполнять такие функции, как внедрение dll в процесс высшего уровня целостности, используя API-функцию создания удаленного потока[4], или отправить данные в другой процесс, используя функцию записи памяти процесса[5].
ПрименениеПравить
Хотя процессы наследуют уровень целостности процесса, создавшего его, уровень целостности можно настроить во время создания процесса. Помимо ограничения отправки оконных сообщений в технологии изоляции пользовательских интерфейсов (UIPI), обязательный контроль целостности используется такими приложениями, как Adobe Reader, Google Chrome, Internet Explorer и« проводник Windows», чтобы изолировать документы от уязвимых объектов в системе.[1]
Internet Explorer 7 применяет параметр «Защищенный режим» на основе обязательного контроля целостности, чтобы контролировать, открыта ли веб-страница как процесс с низким уровнем целостности или нет (при условии, что операционная система поддерживает обязательный контроль целостности) на основе настроек зон безопасности, тем самым предотвращая некоторые классы уязвимостей в безопасности. Поскольку Internet Explorer в этом случае работает как процесс с низким уровнем целостности, он не может изменять объекты системного уровня — файлы и операции реестра вместо этого «виртуализируются». Adobe Reader 10 и Google Chrome — это два других известных приложения, которые внедряют эту технологию, чтобы снизить их уязвимость для вредоносных программ.[6]
В Microsoft Office 2010 была представлена изолированная среда («песочница») под названием «Защищенный просмотр» для Excel, PowerPoint и Word, которая запрещает потенциально опасным документам изменять компоненты, файлы и другие ресурсы в системе.[7] «Защищенный просмотр» работает как процесс с низким уровнем целостности, а в Windows Vista и более поздних выпусках Windows использует обязательный контроль целостности и технологию изоляции пользовательских интерфейсов (UIPI) для дальнейшего ограничения «песочницы».[8]
Однако в некоторых случаях процесс с более высоким уровнем целостности должен выполнять определенные действия по отношению к процессу с более низким уровнем целостности, или для процесса с более низким уровнем целостности требуется доступ к ресурсам, доступ к которым может получить только процесс с более высоким уровнем целостности (например, при просмотре веб-страницы в защищенном режиме, сохранении файла, загруженного из Интернета, в папку, указанную пользователем). Процессы с высоким и низким уровнями целостности все еще могут взаимодействовать друг с другом, используя файлы, именованные каналы, LPC или другие разделяемые объекты. Разделяемый объект должен иметь низкий уровень целостности и разделяться как процессами низкого уровня целостности, так и высокого. Поскольку обязательный контроль целостности не мешает процессу с низким уровнем целостности разделять объекты с процессом с более высоким уровнем целостности, он может задействовать уязвимости в нём и заставить его работать от своего имени, приводя к Squatting-атаке. Тем не менее, «подрывные атаки» могут быть предотвращены за счет использования изоляции привилегий пользовательского интерфейса, которая использует преимущества обязательного контроля целостности.
См. такжеПравить
ПримечанияПравить
- ↑ 1 2 Matthew Conover. "Анализ модели безопасности Windows Vista" (англ.). symantec.. Symantec Corporation. Дата обращения: 29 декабря 2017. Архивировано из оригинала 16 мая 2008 года.
- ↑ 1 2 Mandatory integrity control in Windows Vista (англ.), Steve Riley on Security. Архивировано 29 сентября 2007 года. Дата обращения: 29 декабря 2017.
- ↑ PsExec, User Account Control and Security Boundaries (англ.), Mark's Blog. Архивировано 15 апреля 2010 года. Дата обращения: 29 декабря 2017.
- ↑ CreateRemoteThread function (Windows) (англ.). msdn2.microsoft.com. Дата обращения: 29 декабря 2017. Архивировано 23 октября 2007 года.
- ↑ WriteProcessMemory function (Windows) (англ.). msdn2.microsoft.com. Дата обращения: 29 декабря 2017. Архивировано 8 октября 2007 года.
- ↑ Introducing Adobe Reader Protected Mode (англ.). blogs.adobe.com. Дата обращения: 29 декабря 2017. Архивировано 11 декабря 2013 года.
- ↑ Plan Protected View settings for Office 2010 (англ.). technet.microsoft.com. Дата обращения: 29 декабря 2017. Архивировано 2 февраля 2017 года.
- ↑ Keizer, Gregg. Microsoft struts Office 2010 'sandbox' security (англ.), Computerworld. Архивировано 2 февраля 2017 года. Дата обращения: 29 декабря 2017.
СсылкиПравить
- Введение в API защищенного режима Архивная копия от 30 декабря 2017 на Wayback Machine
- Техническая ссылка на механизм целостности Windows Vista на MSDN Архивная копия от 21 августа 2008 на Wayback Machine
- Введение для контроля целостности Windows: в статье рассмотрена проблема безопасности
- Выход из защищенного режима Microsoft Internet Explorer