|
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ... Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо... Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг... Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п... Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
|
В шестнадцатеричных числах видны промежутки размером 0x1000 между каждым уровнем, что допускает создание промежуточных уровней для использования приложениями со специальными возможностями интерфейса пользователя и будущего развития. На рис. 15 перечислены политики IL объектов и типы доступа, которые они ограничивают, и их соответствие общим типам доступа, определенным для объекта. Рис 15 Политики уровней целостности
Например, политика “Нет записи” предотвращает получение процессом с более низким IL любого доступа, представляемого типом GENERIC_WRITE. По умолчанию для большинства объектов, включая файлы и параметры реестра, применяется политика “Нет записи”, которая запрещает процессу доступ для записи к объектам, имеющим более высокий IL, даже если список управления доступом на уровне пользователей (DACL) объекта предоставляет пользователю такой доступ. Другая политика применяется только к объектам-потокам и объектам-процессам. Эта политика, “Нет записи” плюс “Нет чтения”, запрещает процессу с более низким IL встраивать код и считывать данные — например пароли — из процесса, имеющего более высокий IL. Windows назначает каждому процессу IL, помещая его в маркер вместе с кодами SID групп, к которым относится пользователь, выполняющий процесс. На рис. 16 показаны примеры процессов, которым назначены разные IL. Рис 16 Примеры назначения процессам уровней целостности
Процессы обычно наследуют IL своего родителя, но процесс может также запустить процесс с другим IL, как это делает служба AIS, когда запускает процесс с повышенными правами. Уровни целостности процесса можно просмотреть с помощью встроенной служебной программы Whoami, указав параметр /all, или с помощью программ Process Explorer или AccessChk (обе от Sysinternals). Обозреватель процессов может отображать коды IL процесса наряду со столбцом “Уровень целостности”. Каждый защищаемый объект обладает IL, который может быть явным или неявным. Процессы, потоки и маркеры всегда имеют явно назначенный IL, который обычно совпадает с IL, сохраненным в маркере соответствующего процесса. Большинство объектов не имеет явного IL, поэтому к ним по умолчанию применяется средний (Medium) уровень целостности. Уровень IL, отличный от среднего, имеют только объекты, создаваемые процессом, работающим с низким (Low) IL. Такие объекты также имеют низкий IL. Просмотреть IL файлов можно с помощью встроенного средства iCacls (%SystemRoot%\System32\iCacls.exe), а IL файлов, параметров реестра, служб и процессов — с помощью служебной программы Sysinternals AccessChk. Нарис. 17 показано, что IL каталога, к которому должен иметь доступ обозреватель Internet Explorer в защищенном режиме — Low. Рис. 17 IL каталога “Избранное” пользователя в окне программы AccessChk Если у объекта есть явный IL, он хранится в записи управления доступом (ACE) нового типа, представленного в Windows Vista, — Label ACE, в списке управления системным доступом (SACL) дескриптора безопасности объекта (см. рис. 18). SID в ACE соответствует IL объекта, а с помощью флагов ACE кодируется политика целостности объекта. До Windows Vista в SACL хранились только ACE-записи аудита, которые требуют привилегии “Управление аудитом и журналом безопасности” (SeSecurityPrivilege), но для чтения записей типа Label ACE необходим только доступ “Разрешение на чтение” (READ_CONTROL). Чтобы процесс мог изменить IL объекта, он должен иметь доступ “Смена владельца” (WRITE_OWNER) к объекту и IL, равный или более высокий, чем у объекта. При этом процесс может установить IL, только равный его собственному IL или ниже. Новая привилегия “Изменение метки объекта” (SeRelabelPrivilege) дает процессу возможность изменить IL любого объекта, к которому процесс имеет доступ, и даже установить IL выше собственного IL процесса. Однако по умолчанию эта привилегия не назначается никакой учетной записи. Рис. 18 Запись Label ACE объекта Когда процесс пытается открыть объект, то перед тем как функция ядра SeAccessCheck выполнит стандартную проверку DACL Windows, происходит проверка целостности. Согласно применяемым по умолчанию политикам целостности, процесс может открыть объект для записи только если выполняются два условия: его IL равен или выше, чем IL объекта, и DACL предоставляет процессу необходимые типы доступа. Например, процесс с низким IL не сможет открыть процесс со средним IL для записи, даже если DACL предоставляет процессу такое право. Применяемая по умолчанию политика целостности позволяет процессам открыть любой объект — за исключением объектов-процессов и объектов-потоков — для чтения, если DACL объекта предоставляет им такой доступ. Это означает, что процесс, работающий с низким IL, может открыть любые файлы, доступные для учетной записи пользователя, под которой он работает. С помощью IL-уровней обозреватель Internet Explorer защищенного режима предотвращает блокировку изменения параметров учетной записи пользователя вредоносной программой, но не может помешать ей читать документы пользователя. Объекты-процессы и объекты-потоки — исключения, поскольку их политика целостности содержит также компонент “Нет чтения”. Это означает, что IL процесса должен быть равен или выше, чем IL процесса или потока, который данному процессу необходимо открыть, а DACL должен предоставить ему доступ требуемых типов. На рис. 19 предполагается, что DACL-списки разрешают необходимый доступ. Здесь показаны варианты доступа процессов, работающих со средним и низким IL, к другим процессам и объектам. Рис. 19 Доступ к объектам и процессам Подсистема сообщений Windows также использует уровни целостности для реализации UIPI, препятствуя отправлению процессом всех сообщений, кроме нескольких информационных оконных сообщений, в окна, принадлежащие процессу с более высоким IL. Это позволяет предотвратить ввод в окна процессов с повышенными правами процессами обычных пользователей и разрушение процесса с повышенными правами отправкой ему неправильно сформированных сообщений, вызывающих переполнение внутреннего буфера. Процессы могут разрешать прохождение дополнительных сообщений сквозь защиту, вызывая API-функцию ChangeWindowMessageFilter. UIPI-изоляция также блокирует доступ к окнам процессов с более высоким IL с тем, чтобы, например, процесс обычного пользователя не мог захватить нажатия клавиш пользователем в административных приложениях.
|