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

akok

Команда форума
Администратор
Ассоциация VN
Сообщения
24,588
Реакции
13,563
Когда стандартный пользователь входит в компьютер 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.oszone.net
 
ОС Windows Vista идет с отличным инструментом, помогающим защитить ваши системные файлы, папки и реестр от взлома, этим инструментом является виртуализация контроля пользовательских учетных записей (User Account Control Virtualization). UAC виртуализация помогает запрещать приложениям запись в защищенные места системных ресурсов, направляя ‘Записи - Writes’ в места, к которым пользователь имеет доступ, и которые являются его личным профилем. Результатом такой виртуализации является то, что пользователь может выполнять эти приложения, но данные, написанные этими приложениями, не отправляются в системную директорию, что позволяет защитить общую стабильность всей операционной системы. Виртуализация также означает, что несколько пользователей теперь могут выполнять приложения на одном компьютере, поскольку все их личные данные записываются в их личный пользовательский профиль. В этой статье я покажу вам, как контролировать UAC виртуализацию с помощью групповой политики, системного реестра и диспетчера задач.

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

В любом GPO можно найти параметры, которые контролируют UAC, в разделе Конфигурация компьютера. Поскольку UAC является параметром, связанным с безопасностью, вы найдете его в стандартной вкладке Опции безопасности, расположенной в директории Конфигурация компьютера\Параметры Windows\Настройки безопасности\Локальные политики\Опции безопасности, как показано на рисунке 1.
Изображение удалено
Рисунок 1: UAC параметры расположены во вкладке опций безопасности в разделе конфигурации компьютера

Параметры UAC в GPO расположены в нижней части списка опций безопасности (Security Options), который появляется в правой панели. Чтобы посмотреть список, просто выберите вкладку опций безопасности в левой панели, как показано на рисунке 2.
Изображение удалено
Рисунок 2: Параметры UAC расположены в нижней части списка опций безопасности

Здесь вы найдете все рычаги управления, которые нужны для настройки UAC на Vista и Windows Server 2008 компьютерах. Обратите внимание, что можно контролировать то, как ведет себя UAC, когда администратор входит в систему, а также когда в систему входит обычный пользователь. Самая последняя опция управляет тем, как ведет себя виртуализация, связанная с UAC. Этот параметр отмечен ‘User Account Control’; Virtualize file and registry write failures to per-user locations (Виртуализация ошибок записи файлов и реестра в директории пользователей).

Включение этого параметра политики, по сути, виртуализирует эти параметры. Если этот параметр не настроен для компьютеров Vista, и вы хотите установить его, вам сначала нужно будет включить эту политику, как показано на рисунке 3.
Изображение удалено
Рисунок 3: Для виртуализации записи файлов и реестра включите политику

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

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

Виртуализация диспетчера задач
Теперь, когда мы убедились в том, что UAC виртуализирует обновления реестра и файлов, необходимо убедиться, что каждый процесс выполняет виртуализацию корректно. Чтобы видеть и контролировать UAC виртуализацию, можно запустить диспетчера задач (Task Manager). Самым простым способом запуска диспетчера задач является нажатие правой клавишей на панели Пуск и выбор опции Меню диспетчера задач. Когда диспетчер изначально запускается, вы находитесь во вкладке Приложения. Вам нужно перейти во вкладку Процессы, чтобы увидеть виртуализацию.

Теперь, когда вы находитесь во вкладке Процессов в диспетчере задач, вы не увидите никаких первичных признаков виртуализации. Однако просмотр того, что виртуализируется, является довольно простым. Для просмотра того, что виртуализируется, выберите опцию Вид, затем нажмите на опции Выбор столбцов. В конце списка у вас будет опция для виртуализации, как показано на рисунке 4.
Изображение удалено
Рисунок 4: Добавление столбца виртуализации в вид Процессов диспетчера задач

Когда вы сохраняете вид с новым столбцом, у вас должен появиться столбец под названием Виртуализация в главном окне диспетчера задач во вкладке Процессы, как показано на рисунке 5.
Изображение удалено
Рисунок 5: Столбец виртуализации добавлен во вкладку процессов в диспетчере задач

Если вы хотите видеть все процессы и их виртуализацию, вам нужно нажать на кнопку ‘Показывать процессы всех пользователей’, которая также включит все системные процессы. Вы заметите, что виртуализация процессов, принадлежащих учетным записям SYSTEM, Network service и Local Service, запрещена.

Работа с реестром (Reg hack) для добавления расширений
Как видно на рисунке 5, ни один из исполняемых файлов, запущенных напрямую, не виртуализируется. Это происходит потому, что .exe, .bat, .scr, .vbs и другие расширения исключены из стандартной виртуализации. Это может вызвать проблемы, если программе необходимо обновляться самостоятельно. Стандартный пользователь не сможет сделать это, поскольку приложение будет выполняться в защищенной области.

Если у вас есть расширения приложений, которые вы хотите удалить из изначального списка невиртуализируемых расширений, это можно сделать путем изменения реестра. Чтобы добавить расширение в список исключений невиртуализируемых расширений, введите его в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Luafv\Parameters\ExcludedExtensionsAdd Registry value. Чтобы добавить расширение(ия), вам нужно создать значение ExcludedExtensionsAdd Registry. Когда вы добавляете новое значение, используйте многострочный тип значения реестра (multi-string Registry value type). Расширения добавляются без предшествующей точки, поэтому расширение .exe будет записываться просто как exe. После изменения всего списка расширений перезагрузите компьютер, чтобы изменения вошли в силу.

Виртуализация в режиме реального времени (Real-time Virtualization)
Если вы хотите виртуализировать приложение или процесс, который еще не виртуализирован, это можно сделать сразу. Для выполнения этой задачи вам нужно находиться в диспетчере задач. В диспетчере задач перейдите во вкладку Процессы, как мы делали это ранее. Затем выберите процесс, который хотите виртуализировать. Правой клавишей нажмите на процессе, а затем нажмите на опции меню Виртуализация. У вас появится диалоговое окно подтверждения, как показано на рисунке 6.
Изображение удалено
Рисунок 6: Диалоговое окно подтверждения того, что вы хотите виртуализировать процесс

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

Заключение
Возможность контролирования различных аспектов UAC виртуализации предоставляет администраторам управление над тем, какие приложения будут виртуализироваться. В любом GPO контроль над всеми аспектами UAC довольно прост в использовании и установке в Active Directory. После включения UAC и виртуализации файлов и реестра ваши компьютеры Windows Vista будут виртуализировать процессы, которые до этого не виртуализировали. Можно посмотреть в диспетчере задач, что виртуализируется, в результате вы получите четкую картину того, что виртуализируется, а что – нет.

Источник: www.oszone.net
 
Назад
Сверху Снизу