Песочница Sandboxie – запуск приложений в защищенной среде. Инструменты для запуска приложений в виртуальной среде

В процессе публикации последней части цикла статей «Ложь, большая ложь и антивирусы» выяснилась катастрофическая необразованность хабра-аудитории в области антивирусных песочниц, что они собой представляют и как работают. Что самое смешное в этой ситуации– в Сети практически начисто отсутствуют достоверные источники информации по данному вопросу. Лишь куча маркетоидной шелухи и текстов от не пойми кого в стиле «одна бабка сказала, слушай сюды». Придётся мне восполнять пробелы.

Определения.

Итак, песочница. Сам термин произошёл не от детской песочницы, как могут некоторые подумать, а от той, что пользуются пожарные. Это бак с песком, где можно безопасно работать с легковоспламеняющимися предметами либо бросать туда что-то уже горящее без боязни подпалить что-нибудь ещё. Отражая аналогию данного технического сооружения на софтверную составляющую, можно определить программную песочницу как «изолированную среду исполнения с контролируемыми правами». Именно так, например, работает песочница Java-машины. И любая другая песочница тоже, вне зависимости от предназначения.

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

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

Недостатки подобного подхода, кроме монструозного размера дистрибутива и сильного потребления ресурсов, кроются в неудобствах обмена данными между основной системой и песочницей. Более того, нужно постоянно возвращать состояние файловой системы и реестра к исходным для удаления заражения из песочницы. Если этого не делать, то, например, агенты спам-ботов будут продолжать свою работу внутри песочницы как ни в чём не бывало. Блокировать их песочнице нечем. Кроме того, непонятно, что делать с переносимыми носителями информации (флешки, например) или выкачанными из Интернета играми, в которых возможны зловредные закладки.

Пример подхода- Invincea.

2. Изоляция на основе частичной виртуализации файловой системы и реестра. Совсем необязательно таскать с собой движок виртуальной машины, можно подпихивать процессам в песочнице дубликаты объектов файловой системы и реестра, помещая в песочницу приложения на рабочей машине пользователя. Попытка модификации данных объектов приведёт к изменению лишь их копий внутри песочницы, реальные данные не пострадают. Контроль прав не даёт возможности атаковать основную систему изнутри песочницы через интерфейсы операционной системы.

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

Пример подхода- SandboxIE, BufferZone, ZoneAlarm ForceField, изолированная среда Kaspersky Internet Security, Comodo Internet Security sandbox, Avast Internet Security sandbox.

3. Изоляция на основе правил. Все попытки изменения объектов файловой системы и реестра не виртуализируются, но рассматриваются с точки зрения набора внутренних правил средства защиты. Чем полнее и точнее такой набор, тем большую защиту от заражения основной системы предоставляет программа. То есть, этот подход представляет собой некий компромисс между удобством обмена данными между процессами внутри песочницы и реальной системой и уровнем защиты от зловредных модификаций. Контроль прав не даёт возможности атаковать основную систему изнутри песочницы через интерфейсы операционной системы.

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

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

Пример подхода- DefenseWall, Windows Software Restriction Policy, Limited User Account + ACL.

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

Примеры подхода- GeSWall, Windows User Account Control (UAC).

Методы принятия решения о помещении под защиту.

Перейдём к методам принятия решения о помещении процессов под защиту песочницей. Всего их три базовых:

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

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

Недостатки– могут быть проблемы при установке программ, пришедших через песочницу (хотя белые списки и сильно облегчают эту задачу), необходимость вручную запускать процессы в основной, доверенной зоне для обновления программ, обновляющихся только внутри себя самих (например, Mozilla FireFox, Utorrent или Opera).

Примеры программ с таким подходом- DefenseWall, SandboxIE, BufferZone, GeSWall.

2. На основе прав пользователя. Так работает Windows Limited User Account и защита на основе SRP и ACL. При создании нового пользователя ему предоставляются права доступа к определённым ресурсам, а также ограничения на доступ к другим. При необходимости программы работы с запрещёнными для данного пользователя ресурсами необходимо либо перелогиниться в системе под пользователем с подходящим набором прав и запустить программу, либо запустить её одну под таким пользователем, без перелогинивания основного работающего пользователя (Fast User Switch).

Преимущества такого подхода- относительно неплохой уровень общей защищённости системы.

Недостатки- нетривиальность управления защитой, возможность заражения через разрешённые для модификации ресурсы, поскольку модуль принятия решения не отслеживает такие изменения.

3. На основе эвристических подходов. В этом случае модуль принятия решения «смотрит» на исполняемый файл и пытается по косвенным данным угадать, запустить его на основной системе или в песочнице. Примеры– Kaspersky Internet Security HIPS, Comodo Internet Security sandbox.

Преимущества данного подхода- он более прозрачен для пользователя, чем на основе правил. Проще в обслуживании и реализации для компании–производителя.

Недостатки- неполноценность подобной защиты. Кроме того, что эвристик модуля принятия решения может «промахнуться» на исполняемом модуле, такие решения демонстрируют практически нулевую сопротивляемость неисполняемым файлам, содержащим зловредные скрипты. Ну, плюс ещё парочка проблем (например, с установкой зловредных расширений изнутри самого браузера, из тела эксплойта).

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

Режимы использования антивирусных песочниц.

Их всего два основных.

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

2. Режим ручной защиты. Пользователь самостоятельно принимает решение о запуске того либо иного приложения внутри песочницы.

Песочницы, имеющие основной режим работы как «постоянную защиту» могут, также, иметь и ручной режим запуска. Равно как и наоборот.

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

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

Для неэвристических песочниц с изоляцией на основе частичной виртуализации характерен режим ручной защиты. Это связано с затруднённым обменом данными между процессами внутри песочницы и основной рабочей системой.

Примеры:

1. DefenseWall (песочница с изоляцией на основе правил) имеет основным режимом работы «постоянный на правилах». Однако, запуск вручную приложений внутри песочницы, равно как и вне неё, присутствуют.

2. SandboxIE (песочница и изоляцией на основе частичной виртуализации) имеет основным режимом работы «ручной». Но при покупке лицензии можно активировать режим «постоянный на правилах».

3. Comodo Internet Security sandbox (песочница с изоляцией на основе частичной виртуализации) имеет основной режим работы «постоянный эвристический». Однако, запуск приложений вручную внутри песочницы, равно как и вне неё, присутствуют.

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

Н екоторые массивные приложения (такие, как брендмауэры Outpost Security Suite и Online Armor Premium Firewall, а также скаченные из интернета исполняемые exe- и msi-файлы непонятного содержания) могут нарушить целостность и стабильность системы. Их установка в рабочую ОС может привести к появлению BSOD-экранов при загрузке ОС, изменению параметров браузера, и даже к распространению червей и троянов, что, вполне вероятно, повлечет за собой похищение злоумышленником паролей к аккаунтам соцсетей, используемых вами веб-служб, почтового ящика и пр.

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

Что такое песочница?

В области компьютерной безопасности песочницей называют специально выделенную среду, предназначенную для безопасного запуска приложений на ПК. Некоторые комплексные программные продукты включают в свой состав режим безопасной среды (песочницы). К таким приложениям относятся фаерволл Comodo Internet Security, антивирус Avast! (платная версия), разработки в области защиты данных от Лаборатории Касперского. Предмет нашей статьи-инструкции, программа Sandboxie, представляет собой полноценное средство для масштабного тестирования любых программ без внесения изменений в структуру и параметры рабочей операционки. Как с ней работать – читайте дальше.

Скачивание дистрибутива и установка Sandboxie

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

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

После загрузки дистрибутива, начнем процедуру инсталляции. Она проходит в 2 фазы. Сперва ставятся системные библиотеки и исполняемые файлы Sandboxie.

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

Первый запуск песочницы Sandboxie

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

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

Итак, когда мануал исчерпан, можем приступать к работе в изолированной среде. Запустить приложение можно, выбрав соответствующий пункт в меню «Пуск», либо воспользовавшись нажатием на соответствующую пиктограмму в виде «Приложения» (Win 8/8.1).

Альтернативный способ – двойной клик на иконке песочницы Sandboxie в панели задач.

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

Запуск браузера в режиме песочницы

Ну что ж, запустим браузер в защищенном режиме. Для этого можно воспользоваться ярлыком на рабочем столе, либо сделав правый клик на DefaultBox и выбрав в контекстном меню пункт «Запустить в песочнице» -> «Запустить web-браузер». Стоит отметить, что таким образом можно работать с браузером, установленным в системе в качестве активного по умолчанию.

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

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

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

То же самое касается и запускаемых программ.

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

Как убедиться, что скаченный файл в песочнице сохранен?

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

Можно ли извлечь файл из песочницы, поместив его в аналогичную папку на обычном служебном диске?

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

К доступным для сохранения папкам можно добавить и новые пути, указав их на форме Настройки песочницы, категория Восстановление -> раздел Быстрое восстановление.

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

Как установить в песочницу новое приложение?

Щелкните правой кнопкой мыши на соответствующем дистрибутиве, сохраненном в изолированной среде либо в стандартной ОС, и выберите в меню пункт «Запустить в песочнице»

Далее последует штатная процедура инсталляции, с которой можно разобраться буквально в два счета. Единственный нюанс: если вы хотите протестировать 64-разрядную программу, перед установкой добавьте в настройках песочницы Sandboxie путь к папке “C:\Program Files”, поскольку по умолчанию может присутствовать лишь путь к системному каталогу “C:\Program Files (x86)”. Сделать это можно опять же в меню Быстрое восстановление. Для вступления изменений в силу нажмите кнопку «Применить» и перезапустите инсталляцию, если процесс уже запущен.

Как запустить в песочнице программу?

Пользователю доступно два способа запуска приложения в защищенной среде.

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

Второй способ – это воспользоваться интеграцией Sandboxie с проводником Windows. Для этого нужно выполнить правый клик на нужной вам программе на обычном рабочем дисковом устройстве и выбрать вариант «Запустить в песочнице».

Итоги

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

Задолго до того, как идея Docker зародилась в головах его создателей, появился проект LXC (LinuX Containers) . Он был основан на все тех же технологиях разделения пространств имен (Linux Namespaces) и точно так же позволял создать минималистичное замкнутое на себя окружение исполнения (песочницу, контейнер) для запуска сервисов или небезопасных приложений. Однако LXC не был столь дружелюбным к новым пользователям и не обладал фишками Docker вроде слоеной файловой системы, возможности быстро выкачать и запустить уже готовое приложение и конфигами для автоматической сборки окружений.

Намного раньше во FreeBSD появилась технология jail, позволяющая создавать песочницы, подобные chroot, но с акцентом на более глубокий уровень изоляции. Долгое время jail была гордостью FreeBSD и даже послужила прообразом для технологии Solaris Zones. Однако сегодня она уже не может обеспечить тот уровень гибкости и управления ресурсами, которые предлагают LXC и Docker, так что в целом jail оказалась на обочине истории. Сегодня песочницы в Linux можно создавать множеством разных способов. Это и уже упомянутые LXC и Docker с их пространствами имен, это механизм seccomp, используемый Chrome для изоляции вкладок и плагинов, это технологии SELinux/ AppArmor, позволяющие тонко регулировать доступ приложения к чему бы то ни было. В этой статье мы познакомимся с самыми удобными для обычного пользователя инструментами, которые лучше всего подходят для решения повседневных задач, таких как:

  • запуск не вызывающего доверия приложения, способного навредить системе;
  • изоляция браузера, email-клиента и других приложений, чтобы их взлом не привел к утечке данных;
  • запуск «одноразовых» приложений, которые не должны оставлять следов в системе.

Песочница MBOX

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

Лучше всего эту концепцию демонстрирует пример с официальной страницы Mbox:

$ mbox - wget google .com

. . .

Network Summary :

& gt ; [ 11279 ] - & gt ; 173.194.43.51 : 80

& gt ; [ 11279 ] Create socket (PF_INET , . . . )

& gt ; [ 11279 ] - & gt ; a00 :: 2607 : f8b0 : 4006 : 803 : 0

. . .

Sandbox Root :

& gt ; / tmp / sandbox - 11275

& gt ; N : / tmp / index .html

[ c ] ommit , [ i ] gnore , [ d ] iff , [ l ] ist , [ s ] hell , [ q ] uit ? & gt ;

В данном случае под управлением Mbox запускается Wget. Mbox заботливо сообщает нам, что Wget обращается к адресу 173.194.43.51 и порту 80, и записывает файл index.html, который мы можем применить к основной системе (для этого нужно нажать «c»), игнорировать (i), просмотреть diff, выполнить другие операции или вообще завершить приложение. Проверить, как это все работает, можно, просто установив уже готовый пакет Mbox. В Debian/Ubuntu это делается так:

$ wget http : / / pdos .csail .mit .edu / mbox / mbox - latest - amd64 .deb

$ sudo dpkg - i mbox - latest - amd64 .deb

В Arch Linux Mbox доступен в AUR, поэтому установить его еще проще:

$ yaourt - S mbox - git

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

Еще одна полезная опция - -n. Она полностью запрещает приложению доступ в интернет.

Изолируем запуск приложений при помощи FIREJAIL

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

SANDBOX система изоляции приложений.

Если среди 95 профилей Firejail нет нужных тебе приложений, а идея писать профили самому не слишком тебя радует, то Sandbox - это твой выбор. Данный вид песочницы технически сильно отличается от двух уже описанных инструментов (он использует правила SELinux вместо seccomp и Namespaces), но в плане функциональности представляет собой нечто среднее.

Как и Mbox, Sandbox полностью отрезает приложение от внешнего мира, позволяя читать только stdin (то есть на вход запущенного в песочнице приложения можно передать данные другого приложения), а писать только в stdout (выводить данные на экран или перенаправлять другому приложению). Все остальное, включая доступ к файловой системе, сигналам, другим процессам и сети, запрещено. Простейший пример использования:

$ cat / etc / passwd | sandbox cut - d : - f1 & gt ; / tmp / users

Данная команда читает файл /etc/passwd, извлекает из него имена пользователей и записывает их в файл /tmp/users. Пользы от нее никакой, но она отлично демонстрирует принципы работы Sandbox. В песочнице запускается только команда cut, а сам файл /etc/passwd передается ей с помощью внешней команды. Вывод, с другой стороны, реализуется с помощью обычного перенаправления stdout.

В процессе публикации последней части цикла статей «Ложь, большая ложь и антивирусы» выяснилась катастрофическая необразованность хабра-аудитории в области антивирусных песочниц, что они собой представляют и как работают. Что самое смешное в этой ситуации– в Сети практически начисто отсутствуют достоверные источники информации по данному вопросу. Лишь куча маркетоидной шелухи и текстов от не пойми кого в стиле «одна бабка сказала, слушай сюды». Придётся мне восполнять пробелы.

Определения.

Итак, песочница. Сам термин произошёл не от детской песочницы, как могут некоторые подумать, а от той, что пользуются пожарные. Это бак с песком, где можно безопасно работать с легковоспламеняющимися предметами либо бросать туда что-то уже горящее без боязни подпалить что-нибудь ещё. Отражая аналогию данного технического сооружения на софтверную составляющую, можно определить программную песочницу как «изолированную среду исполнения с контролируемыми правами». Именно так, например, работает песочница Java-машины. И любая другая песочница тоже, вне зависимости от предназначения.

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

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

Недостатки подобного подхода, кроме монструозного размера дистрибутива и сильного потребления ресурсов, кроются в неудобствах обмена данными между основной системой и песочницей. Более того, нужно постоянно возвращать состояние файловой системы и реестра к исходным для удаления заражения из песочницы. Если этого не делать, то, например, агенты спам-ботов будут продолжать свою работу внутри песочницы как ни в чём не бывало. Блокировать их песочнице нечем. Кроме того, непонятно, что делать с переносимыми носителями информации (флешки, например) или выкачанными из Интернета играми, в которых возможны зловредные закладки.

Пример подхода- Invincea.

2. Изоляция на основе частичной виртуализации файловой системы и реестра. Совсем необязательно таскать с собой движок виртуальной машины, можно подпихивать процессам в песочнице дубликаты объектов файловой системы и реестра, помещая в песочницу приложения на рабочей машине пользователя. Попытка модификации данных объектов приведёт к изменению лишь их копий внутри песочницы, реальные данные не пострадают. Контроль прав не даёт возможности атаковать основную систему изнутри песочницы через интерфейсы операционной системы.

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

Пример подхода- SandboxIE, BufferZone, ZoneAlarm ForceField, изолированная среда Kaspersky Internet Security, Comodo Internet Security sandbox, Avast Internet Security sandbox.

3. Изоляция на основе правил. Все попытки изменения объектов файловой системы и реестра не виртуализируются, но рассматриваются с точки зрения набора внутренних правил средства защиты. Чем полнее и точнее такой набор, тем большую защиту от заражения основной системы предоставляет программа. То есть, этот подход представляет собой некий компромисс между удобством обмена данными между процессами внутри песочницы и реальной системой и уровнем защиты от зловредных модификаций. Контроль прав не даёт возможности атаковать основную систему изнутри песочницы через интерфейсы операционной системы.

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

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

Пример подхода- DefenseWall, Windows Software Restriction Policy, Limited User Account + ACL.

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

Примеры подхода- GeSWall, Windows User Account Control (UAC).

Методы принятия решения о помещении под защиту.

Перейдём к методам принятия решения о помещении процессов под защиту песочницей. Всего их три базовых:

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

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

Недостатки– могут быть проблемы при установке программ, пришедших через песочницу (хотя белые списки и сильно облегчают эту задачу), необходимость вручную запускать процессы в основной, доверенной зоне для обновления программ, обновляющихся только внутри себя самих (например, Mozilla FireFox, Utorrent или Opera).

Примеры программ с таким подходом- DefenseWall, SandboxIE, BufferZone, GeSWall.

2. На основе прав пользователя. Так работает Windows Limited User Account и защита на основе SRP и ACL. При создании нового пользователя ему предоставляются права доступа к определённым ресурсам, а также ограничения на доступ к другим. При необходимости программы работы с запрещёнными для данного пользователя ресурсами необходимо либо перелогиниться в системе под пользователем с подходящим набором прав и запустить программу, либо запустить её одну под таким пользователем, без перелогинивания основного работающего пользователя (Fast User Switch).

Преимущества такого подхода- относительно неплохой уровень общей защищённости системы.

Недостатки- нетривиальность управления защитой, возможность заражения через разрешённые для модификации ресурсы, поскольку модуль принятия решения не отслеживает такие изменения.

3. На основе эвристических подходов. В этом случае модуль принятия решения «смотрит» на исполняемый файл и пытается по косвенным данным угадать, запустить его на основной системе или в песочнице. Примеры– Kaspersky Internet Security HIPS, Comodo Internet Security sandbox.

Преимущества данного подхода- он более прозрачен для пользователя, чем на основе правил. Проще в обслуживании и реализации для компании–производителя.

Недостатки- неполноценность подобной защиты. Кроме того, что эвристик модуля принятия решения может «промахнуться» на исполняемом модуле, такие решения демонстрируют практически нулевую сопротивляемость неисполняемым файлам, содержащим зловредные скрипты. Ну, плюс ещё парочка проблем (например, с установкой зловредных расширений изнутри самого браузера, из тела эксплойта).

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

Режимы использования антивирусных песочниц.

Их всего два основных.

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

2. Режим ручной защиты. Пользователь самостоятельно принимает решение о запуске того либо иного приложения внутри песочницы.

Песочницы, имеющие основной режим работы как «постоянную защиту» могут, также, иметь и ручной режим запуска. Равно как и наоборот.

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

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

Для неэвристических песочниц с изоляцией на основе частичной виртуализации характерен режим ручной защиты. Это связано с затруднённым обменом данными между процессами внутри песочницы и основной рабочей системой.

Примеры:

1. DefenseWall (песочница с изоляцией на основе правил) имеет основным режимом работы «постоянный на правилах». Однако, запуск вручную приложений внутри песочницы, равно как и вне неё, присутствуют.

2. SandboxIE (песочница и изоляцией на основе частичной виртуализации) имеет основным режимом работы «ручной». Но при покупке лицензии можно активировать режим «постоянный на правилах».

3. Comodo Internet Security sandbox (песочница с изоляцией на основе частичной виртуализации) имеет основной режим работы «постоянный эвристический». Однако, запуск приложений вручную внутри песочницы, равно как и вне неё, присутствуют.

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

То мы решили кратенько затронуть эту тему.

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

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

Об одной из таковых мы сегодня и поговорим.

Sandboxie - обзор, настройка и загрузка

Как Вы поняли из заголовка и подзаголовка, мы будем вести речь о программе Sandboxie .

К сожалению, она условно-бесплатная, но тот же бесплатный период поможет Вам познакомится с этим типом инструментов поближе, что, возможно, в дальнейшем таки подтолкнет Вас к более подробному изучению , которая, в большинстве своём, существует в бесплатном виде и предоставляет больше возможностей.

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

Хотите знать и уметь, больше и сами?

Мы предлагаем Вам обучение по направлениям: компьютеры, программы, администрирование, сервера, сети, сайтостроение, SEO и другое. Узнайте подробности сейчас!

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

Как настроить и использовать программу-песочницу

Теперь давайте попробуем понять как с этим работать. Для начала Вы можете попробовать запустить, скажем, браузер, в "песочнице". Чтобы это сделать, собственно, либо воспользуйтесь ярлыком, который появился у Вас на рабочем столе, либо используйте в главном окне программы, элементы меню: "DefaultBox - Запустить в песочнице - Запустить Web-браузер ", либо, если Вы хотите запустить браузер, который не установлен в системе как браузер по умолчанию, то используйте пункт "Запустить любую программу " и укажите путь к браузеру (или программе).

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

Для очистки содержимого песочницы (если оно Вам не нужно), в главном окне программе или в трее (это где часы и прочие иконки) используйте пункт "DefaultBox - Удалить содержимое ".

Внимание ! Удалится лишь та часть , что писалась и работала в изолированной среде, т.е, допустим, сам браузер, удалён с компьютера не будет, а вот перенесенная в него.. ммм.. условно говоря, копия процесса, созданный кеш, сохраненные данные (вроде скаченных/созданных файлов) и тп, будут удалены, если Вы их не сохраните.

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

Кстати говоря, по нажатию на правую кнопку мышки на процессе в списке процессов окна Sandboxie Вы можете управлять доступом к разного рода ресурсам компьютера в в обход песочницы, выбрав пункт "Доступ к ресурсам ".

Грубо говоря, если Вы хотите рискнуть и дать, например, тому же Google Chrome, прямой доступ к какой-либо папке на компьютере, то Вы можете сделать это на соответствующей вкладке (Доступ к файлам - Прямой/полный доступ ) с использованием кнопки "Добавить ".

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

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

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

При попытке запуска некоторых программ Вы можете столкнуться с вышепоказанной проблемой. Не стоит её пугаться, достаточно, для начала, просто нажать в "ОК ", а, в дальнейшем, открыть настройки песочницы методом "DefaultBox - Настройки песочницы " и на вкладке "Перенос файлов " задать чуть больший размер для опции переноса файлов.

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

На сим, пожалуй, можно переходить к послесловию.

Послесловие

Ах да, чуть не забыли, само собой, что песочница потребляет повышенное количество ресурсов машины, т.к откусывает (виртуализирует) часть мощностей, что, естественно, создаёт нагрузку, отличную от запуска напрямую. Но, логично, что безопасность и/или конфиденциальность может того стоит.

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

На сим, пожалуй, всё. Как и всегда, если есть какие-то вопросы, мысли, дополнения и всё такое прочее, то добро пожаловать в комментарии к этой записи.