Защита системных файлов с помощью виртуализации UAC (часть 1)

Published on Февраль 5, 2009 by   ·   Комментариев нет

Когда стандартный пользователь входит в компьютер Windows, есть некоторые действия и деятельность, которые нужно защитить. Эта защита не всегда успешна, поскольку некоторые версии Windows не защищают общую систему так, как хотелось бы. Действия, которые нужно защитить, включают в себя изменения и записи в системные папки и системные расположения в реестре. Это необходимо для защиты общей стабильности и безопасности ОС. Windows Vista предоставляет отличное решение для помощи в защите этих ключевых областей системы. Vista использует управление пользовательскими учетными записями (User Account Control) и виртуализацию для обеспечения защиты и безопасности. В этой статье будет рассмотрено, как UAC использует виртуализацию для защиты системы.

Историческое поведение приложений бизнеса (LOB)

Директория программных файлов (Program Files) (обычно расположенная на C:\Program Files и обозначаемая %ProgramFiles%) является тем каталогом, где в большинстве производственных сценариев хранятся исполняемые файлы приложений. Параметры LOB приложений хранятся в ключе HKEY_LOCAL_MACHINE\Software в системном реестре в большинстве случаев. Большинство из этих мест защищено ОС, то есть системе и администратору разрешен доступ с записью, а пользователям дан доступ только чтения и выполнения.

LOB приложения должны разрабатываться так, чтобы записывать в указанную пользователем папку данных приложения, которая расположена в профиле пользоваться. Обычно она располагается в C:\Users\<username>\AppData и обозначается %AppData%. Если есть какие-то специфические пользовательские параметры, которые необходимо хранить, они должны располагаться в ключе реестра HKEY_CURRENT_USER\Software. Оба этих расположения созданы для каждого отдельного пользователя и защищены так, что лишь этот пользователь имеет доступ к данным, которые записаны по умолчанию.

Однако многие (я бы даже сказал БОЛЬШИНСТВО) LOB приложения сделаны не в соответствии с вышеописанной технологией. Вместо этого они хранят специфичные для пользователя данные в папке %ProgramFiles% и в HKEY_LOCAL_MACHINE\Software. К сожалению, обычные пользователи не имеют доступа для записи в эти директории, что заставило многие компании добавлять обычных пользователей в группы локальных администраторов, чтобы они могли выполнять эти приложения. Конечно, это не идеальное решение, так как пользователь в таком случае может изменять что угодно на компьютере, а не только определенные параметры LOB приложения в этих директориях системы.

Специфика виртуализации UAC

Поскольку LOB не легко изменить, и тем не менее пользователям необходимо выполнять эти приложения, Vista использует другой подход для решения этой проблемы. В Vista, UAC протягивает руку помощи, виртуализируя файловую систему и пространство имен системного реестра. UAC виртуализирует наследственные приложения, позволяя стандартному пользователю оставаться «стандартным пользователем» и в то же время выполнять приложения. Определение наследственного в этом случае включает тридцати двух разрядные процессы, работающие без административных привилегий, и не включает явный файл Windows Vista. Если процесс или операция не отвечает этим критериям, он(а) не виртуализируется. Следующие процессы и операции также не виртуализируются:

  • Стандартные приложения Vista
  • Файлы с такими исполняемыми расширениями, как .EXE, .BAT, .VBS и .SCR. Можно добавлять дополнительные исключения расширения файлов в HKLM\System\CurrentControlSet\Services\Luafv\Parameters\ExcludedExtensionsAdd
  • 64-разрядные приложения и процессы
  • Приложения с запрошенной директивой уровня исполнения (Execution Level directive) в своем исполняемом проявлении, как большинство исполняемых файлов Vista
  • Процессы или приложения, работающие с правами администратора
  • Приложения в режиме Kernel
  • Операции, не имеющие происхождения в интерактивных сеансах, такие как совместное использование файлов
  • Приложения, изменяющие ключ реестра флажком Don’t_Virtualize (не виртулизировать)

Виртуализация файловой системы и реестра, конечно, не распространена на всю систему. Есть лишь ограниченное количество мест, которые виртуализируются, и все они необходимы для работы и безопасности ОС. Вот практически полный список расположений, которые виртуализируются:

  • \Program Files и подпапки
  • \Program Files (x86) на 64-разрядных системах
  • \Windows и все подпапки, включая System32
  • \Users\%AllUsersProfile%\ProgramData
  • \Documents and Settings (symbolic link)
  • HKLM\Software

Верификация UAC виртуализации

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

Первый указатель находится в интерфейсе проводника Windows Explorer GUI. В зависимости от того, какая папка или файлы были виртуализированы, появляются дополнительные опции меню в Windows Explorer. На рисунке 1 показано, что отображает Windows Explorer, когда у вас есть виртуализированные файлы в папке C:\Windows.

Защита системных файлов и реестра

Рисунок 1: Выделенное красное поле указывает, что есть виртуальные файлы

Дополнение функции ‘Файлы совместимости (Compatibility Files)’ в меню Windows Explorer появляется только при наличии виртуальных файлов. Новая опция меню появляется только для тех папок, которые содержат виртуальные папки или файлы.

Когда опция Compatibility Files в меню выбрана, она направит окно Windows Explorer к виртуальным файлам и содержащим их папкам. Рисунок 2 демонстрирует, как выглядит содержимое этих виртуальных файлов и папок.

Виртуализация файлов и реестра

Рисунок 2: Опция Compatibility Files в меню хранится в папке VirtuaStore

Как видно, опция меню Compability Files открывает папку VirtualStore, расположенную в профиле пользователей. Как видно из рисунка 2, это <username>\AppData\VirtualStore.

Заключение

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

Источник www.windowsecurity.com


Смотрите также:

Tags: ,

Readers Comments (Комментариев нет)




Да человек я, человек! =)




Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]