CIS 8: Виртуальная среда Comodo

Виртуальная среда Comodo Sandbox, приемы работы с ней, права и ограничения виртуализированных программ в Comodo Internet Security 8

Работа в виртуальной среде

Статус процесса, выполняющегося виртуально

Существует возможность запускать программы в виртуальной среде (Sandbox, «песочница»), чтобы их активность почти не затрагивала реальную систему. Если, например, вызвать контекстное меню на какой-либо программе и выбрать пункт «Запустить в Comodo Sandbox», то она запустится и во многих случаях будет полноценно работать, но не произведет нежелательных изменений. Запущенные ей программы также будут виртуализированы.

О том, что программа виртуализирована, можно судить по зеленой рамке вокруг ее окна, однако в некоторых случаях зеленая рамка отсутствует: в частности, у консольных приложений. Гарантированный способ узнать о виртуализации — нажать в главном окне CIS индикатор «Изолировано в Sandbox» и найти программу в открывшемся списке активных процессов: в столбце «Ограничение» должно быть указано «Полная виртуализация».

Окно программы, работающей в виртуальной среде

Очистка виртуальной среды

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

Чтобы завершить все виртуальные процессы и удалить все данные из виртуальной среды, следует нажать кнопку «Очистка Sandbox» (главное окно > «Задачи» > «Задачи Sandbox»). Для удобства эту кнопку можно добавить в виджет и на панель главного окна (через контекстное меню). Также напомню, что окно очистки песочницы можно вызвать командой:

"%PROGRAMFILES%\Comodo\COMODO Internet Security\cis.exe" --mainUI /TaskSBReset

Очистка песочницы

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

Области общего доступа

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

По умолчанию в CIS 8 такой папкой является каталог загрузок в профиле пользователя, а также каталог %PROGRAMDATA%\Shared Space. На мой взгляд, это не самые удачные местоположения: в частности, их не всегда видно в диалогах выбора файлов и каталогов. Поэтому предлагаю создать, например, папку SharedSpace в корне системного диска или на рабочем столе и исключить ее из виртуализации. Это можно сделать двумя способами: добавить эту папку в список «Не виртуализировать доступ к указанным файлам и папкам» на вкладке «Настройка Sandbox» или добавить ее в группу «Области общего доступа» на вкладке «Рейтинг файлов» > «Группы файлов».

Добавление папки обмена с виртуальной средой

Если виртуализированная программа сохранила результаты работы в иное место, следует запустить какой-либо файловый менеджер (проводник, Total Commander и т.п.) виртуально через контекстное меню и переместить нужные файлы в папку обмена. Также можно сделать специальные ярлыки для запуска файловых менеджеров в виртуальной среде.

Если необходимо, чтобы для какой-либо программы, выполняемой в виртуальной среде, даже после очистки Sandbox сохранялись изменения конфигурации и прочие данные, можно исключить из виртуализации используемые ей конфигурационные файлы и записи реестра. Эти исключения задаются в соответствующих опциях на вкладке «Настройка Sandbox». При указании путей реестра следует использовать полные названия корневых разделов, а не их аббревиатуры.

Особенности виртуализации Comodo

Параметры виртуальной среды

В версии CIS 8 введена поддержка аппаратной виртуализации, ее использование включается опцией «Включить режим усиленной защиты» на вкладке «HIPS» > «Настройка HIPS». Кроме аппаратной виртуализации, данная опция активирует дополнительные меры по предотвращению обхода защиты в 64-битных версиях Windows, поэтому ее включение необходимо в таких системах. Однако перед ее включением появляется также предупреждение о возможном конфликте с виртуальными машинами при работе в них с 64-битными гостевыми системами. Впрочем, на практике я пока не обнаружил конфликтов с VMware.

Включение поддержки аппаратной виртуализации Comodo

Опция «Включить автозапуск сервисов, установленных в Sandbox» на вкладке «Sandbox» > «Настройка Sandbox» имеет следующий смысл: если в виртуальной среде создать службу, то при каждом использовании виртуальной среды эта служба будет запускаться. Если лишь перезагрузить компьютер — автозапуск службы не произойдет. Но если запустить какую-либо программу в виртуальной среде, то вместе с ней запустится и эта служба. Так запускаться будут программы, установленные именно как службы, а не добавленные в автозагрузку иными способами. При очистке виртуальной среды эти службы, естественно, удаляются. Если нет необходимости в данной опции, рекомендую ее отключить. Ее отключение сменит тип запуска службы «Comodo Virtual Service Manager» с автоматического на ручной.

Отключить автозапуск сервисов, установленных в Comodo Sandbox

Опции на вкладке «Настройка Sandbox», связанные с обнаружением программ, требующих повышенных привилегий, относятся к компоненту Auto-Sandbox, а не собственно к виртуальной среде.

Размещение данных виртуальной среды

Когда в виртуальной среде какая-либо программа создает или изменяет файлы, в действительности эти файлы создаются в каталоге VTRoot на системном диске. Подкаталоги VTRoot соответствуют Native-именам разделов жесткого диска: HarddiskVolume1 для диска C:, HarddiskVolume2 для диска D: и т.д. Таким образом, виртуально созданному файлу C:\dir\file.exe будет соответствовать реальный файл %SYSTEMDRIVE%\VTRoot\HarddiskVolume1\dir\file.exe.

Виртуальному реестру соответствует раздел реального реестра HKLM\SYSTEM\VritualRoot (sic!). При работе виртуализированных программ данные реестра записываются в его подразделы.

При очистке виртуальной среды каталог VTRoot и раздел реестра VritualRoot удаляются.

Контроль HIPS над виртуализированными программами

Разбор компонента HIPS будет в другой статье, здесь же коснусь особенностей его работы с виртуальной средой.

Если программа выполняется в виртуальной среде, то ее активность не вызовет оповещений HIPS: все действия, на которые не наложен явный запрет, получат разрешения. Впрочем, эти действия затронут только виртуальную среду.

Также в виртуальной среде не действуют запреты на изменение защищенных файлов, каталогов и ключей реестра. Однако действуют другие запреты (если они явно заданы в правилах): на запуск приложений, на завершение процессов, на слежение за клавиатурой, на доступ к COM-интерфейсам и др.

При создании правила HIPS для приложения следует указывать его реальное местоположение. Однако путь к запрещаемому ресурсу в некоторых случаях понадобится указывать реальный, в некоторых — виртуальный. Так, чтобы запретить запуск определенной программы, следует указать ее виртуальный путь, а чтобы запретить прерывание работы программы, следует указать ее реальный путь. Например: в виртуальной среде созданы файлы C:\program.exe, C:\child.exe и C:\sacrifice.exe, и требуется запретить программе program.exe запускать программу child.exe, а также запретить ей прерывать работу программы sacrifice.exe. Тогда понадобится создать для программы c:\VTRoot\HarddiskVolume1\program.exe правило, запрещающее ей запускать программу C:\child.exe, и правило, запрещающее прерывать работу программы c:\VTRoot\HarddiskVolume1\sacrifice.exe.

Относительно COM-интерфейсов отмечу, что они могут по-разному идентифицироваться при обращении к ним в реальной и в виртуальной среде. Поэтому следует проверять работу правил для них в разных условиях. Вообще, защита COM-интерфейсов в виртуальной среде устроена довольно непредсказуемо:

  • некоторые COM-интерфейсы блокируются независимо от правил HIPS и независимо от списка защищенных объектов (например, BITS);
  • некоторые COM-интерфейсы блокируются, только если они занесены в список «HIPS» > «Защищенные объекты» > «Защищенные COM-интерфейсы», но независимо от правил HIPS (например, интерфейс LocalSecurityAuthority.Shutdown: из-за этого при конфигурации «Proactive Security» нельзя установить MSI-пакеты в вирутальной среде, а при конфигурации «Internet Security» — можно);
  • некоторые COM-интерфейсы блокируются, только если они занесены в список защищенных объектов, и только для тех приложений, которым они заблокированы в правилах HIPS (например, LocalSecurityAuthority.Tcb).

Защита от чтения

Виртуальная среда может защищать данные не только от изменения, но и от чтения: если в окне настройки открыть вкладку «Защита+» > «HIPS» > «Защищенные объекты» > «Папки с защищенными данными» и добавить в список какой-либо каталог, то виртуализированные приложения будут воспринимать его пустым. Полезно скрыть таким способом каталог с профилем интернет-браузера, различные хранилища паролей и т.п.

Через интерфейс CIS можно добавить в список «Папок с защищенными данными» лишь те каталоги, которые видны в проводнике. Если необходимо защитить данные в каком-либо скрытом каталоге, следует временно разрешить показ скрытых файлов и папок в проводнике (например, через «Панель управления»).

В список «Папок с защищенными данными» следует добавлять каталоги, расположенные только на локальных дисках. Формально можно добавить в этот список съемные носители или виртуальные шифрованные диски, но для них защита, как правило, не работает.

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

Контроль фаервола над виртуализированными программами

В отличие от HIPS, фаервол может выдавать оповещения о программах, выполняющихся в виртуальной среде. Если фаервол работает в режиме «Пользовательский набор правил», то сетевая активность виртуализированных программ будет контролироваться точно так же, как и выполняющихся в реальной среде. Если программа создана в виртуальной среде, то в оповещении будет представлен ее реальный путь, наподобие c:\VTRoot\HarddiskVolume1\test.exe.

Однако в версии CIS 8 поведение фаервола в «Безопасном режиме» стало различным для программ, выполняющихся в реальной и в виртуальной среде. Доверенная программа в этом режиме автоматически получает разрешение на исходящие соединения, если она не имеет запрещающих правил и выполняется в реальной среде. Но при выполнении в виртуальной среде сетевая активность контролируется аналогично режиму «Пользовательский набор правил»: независимо от рейтинга, программа получит разрешение только при наличии разрешающего правила; в отсутствие же правила появится оповещение.

Таким образом, для использования браузеров и подобных программ в виртуальной среде необходимо создать для них разрешающие правила, даже если выбран «Безопасный режим» фаервола. Ценой этого неудобства предотвращается утечка данных в ситуации, когда вредоносная программа запускает безопасную для доступа в интернет.

Разумеется, разрешающие правила не потребуются, если фаервол вообще отключен или настроен на разрешение всех запросов без оповещений.

Прочие возможности и ограничения программ в виртуальной среде

В виртуальной среде не действуют правила Auto-Sandbox: например, если некое приложение положено блокировать, то оно все же выполнится при запуске в виртуальной среде. Можно сказать, что в виртуальной среде вообще не осуществляется проактивная защита, за исключением явно заданных правил HIPS.

Хотя запуск программ в виртуальной среде относительно защищает от повреждения данных и заражения системы, виртуализированные программы способны выполнять такую деятельность, как слежение за нажатием клавиш, буфером обмена, экраном. Более того, виртуализированные программы все же могут нанести вред реальной системе, симулируя нажатие клавиш. Заблокировать эту активность можно правилами HIPS.

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

Считается, будто от утечки данных надежно спасает фаервол Comodo, однако, если не приняты дополнительные меры, определенные методы позволяют обойти его защиту «изнутри» и выйти в интернет, в том числе в виртуальной среде. Так что следует соблюдать осторожность, запуская сомнительные программы даже виртуально.

С другой стороны, некоторые ресурсы жестко заблокированы для виртуализированных программ, независимо от правил HIPS. Например, в виртуальной среде блокируется доступ к службе BITS, использование которой является одним из способов выхода в интернет в обход фаервола. Также блокируются различные операции виртуализированных процессов с процессами, выполняющимися в реальной среде.

Кроме обычной виртуализации, есть возможность запускать программы в виртуальной среде с дополнительными ограничениями, накладываемыми Auto-Sandbox. Особенность этих ограничений в том, что они наследуются дочерними процессами, в отличие от ограничений HIPS. Они будут рассмотрены в статье про Auto-Sandbox.

Способы открытия файлов и ссылок в виртуальной среде

Основной способ запуска программ в виртуальной среде — пункт контекстного меню «Запустить в Comodo Sandbox». В версии CIS 8 этот пункт введен для всех файлов и учтены параметры командной строки при запуске ярлыков. Поэтому больше нет необходимости менять этот пункт правкой реестра.

Установка программ в виртуальной среде и их запуск

В виртуальной среде можно устанавливать различные программы, пользоваться ими и сохранять результаты работы. Программы, установленные виртуально, будут доступными и после перезагрузки компьютера. Удаление этих программ вместе со следами их работы производится нажатием кнопки «Очистка Sandbox».

Установка в виртуальной среде может дать сбой в случае использования Windows Installer. Решение:

  • открыть вкладку «HIPS» > «Группы HIPS» > «COM-группы» и раскрыть группу «Псевдо COM-интерфейсы - Привилегированные»;
  • изменить строку LocalSecurityAuthority.Shutdown, например, на xxxLocalSecurityAuthority.Shutdown и нажать «Ok»;
  • выполнить установку программы в виртуальной среде;
  • аналогично вернуть в прежний вид строку LocalSecurityAuthority.Shutdown.

Если программа установлена в виртуальной среде, то для ее запуска потребуется сначала через контекстное меню открыть в Sandbox какой-либо файловый менеджер, найти исполняемый файл или ярлык этой программы и запустить ее. Поскольку при установке программы, как правило, создается ее ярлык на рабочем столе, было бы удобно сразу открывать виртуальное содержимое рабочего стола. Для этого создадим ярлык, указав в поле «Объект» команду:

"%PROGRAMFILES%\Comodo\COMODO Internet Security\virtkiosk.exe" -v %windir%\explorer.exe shell:Desktop

Зададим этому ярлыку желаемый значок и назовем, например, «Desktop (virtual)». Теперь этот ярлык будет запускать в виртуальной среде проводник с открытым в нем рабочим столом.

Ярлык для открытия рабочего стола в Sandbox

Открытие интернет-ссылок в песочнице

Можно оснастить интернет-браузер контекстным меню для открытия сомнительных ссылок в виртуальной среде. Приведу пример для браузера Firefox.

  • Будем использовать два браузера: основной, назначенный по умолчанию, и дополнительный, портативный.
  • Дополнительный браузер поместим в каталог наподобие C:\mySecretPath\FirefoxPortable (путь не должен содержать пробелы и т.п.).
  • Назначим в фаерволе политику «Только исходящие» файлам дополнительного браузера:
    • C:\mySecretPath\FirefoxPortable\App\Firefox\firefox.exe
    • C:\mySecretPath\FirefoxPortable\App\Firefox\plugin-container.exe
  • В основной браузер установим дополнение Open With.
  • В параметрах дополнения включим контекстное меню ссылок и добавим элемент с параметрами:
    • путь: %PROGRAMFILES%\COMODO\COMODO Internet Security\virtkiosk.exe
    • аргументы: -v c:\mySecretPath\FirefoxPortable\FirefoxPortable.exe
    • имя: ComodoSandbox.

Запуск программ в песочнице через интерфейс CIS

На «обратной стороне» главного окна CIS имеется кнопка «Запуск в Sandbox». Этой кнопкой можно также создать ярлык для запуска какого-либо приложения в виртуальной среде.

Создание ярлыка для запуска в песочнице

Также есть возможность создавать правила, чтобы определенные программы или их группы всегда запускались в виртуальной среде. Для этого следует включить Auto-Sandbox и добавить правило на вкладке «Sandbox» > «Авто-Sandbox».

Запуск программ в виртуальной среде с ограничениями

Существует возможность запускать программы не только в виртуальной среде, но и с дополнительными ограничениями. Для этого следует включить Auto-Sandbox и создать правило, предписывающее целевому приложению запускаться виртуально, при этом задав на вкладке «Опции» уровень ограничений. Данные ограничения наследуются дочерними процессами. Например, если задать файловому менеджеру FreeCommander уровень «Ограниченное», то он и запущенные из него программы будут работать в виртуальной среде и не получат доступа к буферу обмена. Также можно ограничить время выполнения этих программ и выделяемую им память.

Назначение виртуализации и ограничений

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

Понадобится создать простейшую программу ExecArg.exe, которая запускает файл, указанный в аргументах командной строки. Например, на AutoIt код такой программы будет состоять из единственной строчки: If $CmdLine[0] Then ShellExecute($CmdLine[1]). Готовая программа ExecArg.exe вместе с инструкцией и reg-файлами дана в архиве.

Поместим программу ExecArg.exe в каталог C:\ContextMenu и выполним настройку CIS:

  • на вкладке «Sandbox» > «Авто-Sandbox» включим использование этого компонента;
  • добавим правило Auto-Sandbox:
    • действие: «Запустить виртуально»;
    • цель: C:\ContextMenu\ExecArg.exe
    • уровень ограничений на вкладке «Опции»: «Ограниченное» (можно выбрать любое, кроме «Недоверенного», или не задавать вообще);
    • размер памяти: например, 256 MB;
    • время на выполнение: например, 120 сек.;
  • добавим файл ExecArg.exe в доверенные;
  • внесем изменения в реестр:
    Windows Registry Editor Version 5.00
    
    ; Считаем, что путь к CIS: C:\\Program Files\\Comodo\\COMODO Internet Security
    ; Заменить везде, если отличается;
    ; слэши ставить двойные: \\
    
    [HKEY_CLASSES_ROOT\*\shell\ComodoSandboxLimited]
    "MUIVerb"="Запустить в Comodo Sandbox ограниченно"
    "Icon"="C:\\Program Files\\Comodo\\COMODO Internet Security\\cavshell.dll,1"
    "Extended"=""
    
    [HKEY_CLASSES_ROOT\*\shell\ComodoSandboxLimited\command]
    @="C:\\ContextMenu\\ExecArg.exe \"%1\""
    
    

Теперь для запуска программы с ограничениями следует вызвать на ней, удерживая клавишу Shift, контекстное меню и выбрать пункт «Запустить в песочнице Comodo как ограниченное». Например, таким способом можно запускать вредоносные программы, блокирующие интерфейс ОС и препятствующие очистке песочницы.

Виртуальный рабочий стол

Кроме виртуального запуска отдельных программ, CIS имеет дополнительную оболочку: «Виртуальный рабочий стол». Эта оболочка имеет двоякое назначение, причем для прямо противоположных целей.

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

Впрочем, виртуальный рабочий стол все же спасает от атак, связанных с симуляцией клавиатурных нажатий.

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

Однако виртуальный рабочий стол не защищает от перехвата буфера обмена или доступа к файлам (например, к «кукам» браузера). Главное: он совершенно не защищен от запуска сомнительных программ внутри него самого. Активность всех программ виртуального рабочего стола протекает в виртуальной среде и неподконтрольна проактивной защите. И если при работе в нем произойдет запуск шпиона — нажатия клавиш могут быть перехвачены. Кроме того, конфиденциальные данные, удаленные путем очистки виртуальной среды, могут быть восстановлены.

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

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

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

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

  • перед использованием виртуального рабочего стола выполнить очистку виртуальной среды;
  • не копировать конфиденциальные данные в буфер обмена;
  • избегать запуска посторонних программ в виртуальном рабочем столе;
  • по возможности пользоваться виртуальной клавиатурой;
  • после закрытия виртуального рабочего стола выполнить очистку виртуальной среды.

Комментарии и отзывы

Добавляя комментарий, ознакомьтесь с Правилами сообщества