Категория > Новости > Все по песочницам! Запускаем приложения в отдельных виртуалках с помощью AppVM - «Новости»
Все по песочницам! Запускаем приложения в отдельных виртуалках с помощью AppVM - «Новости»15-08-2018, 18:00. Автор: Полина |
"); }else{ $('#mpu1-desktop').remove(); console.log('mpu1-desktop removed'); } }); Содержание статьи
Я действительно люблю Qubes. Если ты с ним не сталкивался, поясню: это дистрибутив, построенный на базе гипервизора Xen, который позволяет создавать домены — честные виртуальные окружения, внутри которых приложения работают в изоляции. Ты можешь создавать домены на базе разных дистрибутивов (образов), и они смогут общаться между собой: например, шейрить файлы. В Qubes доменов может быть сколько угодно: work, persoanl, vault — создавай и называй как хочешь. Звучит неплохо, но есть ли альтернативы и нужны ли они? Если бы не Xen (вместо гипервизора :)) и отсутствие возможности использовать созданные его разработчиками утилиты вне окружения дистрибутива, то я бы им даже пользовался. Но, на мой взгляд, Xen не подходит хотя бы тем, что в отличие от KVM он не в ядре в апстриме. Предлагать кому-то устанавливать Xen, только чтобы воспользоваться какой-то тулзой, — сомнительное удовольствие. В Qubes самом по себе тоже ничего плохого нет, но его нужно устанавливать и настраивать. Гораздо проще начать встраивать все хорошее из Qubes к себе в уютную Gentoo, чем ломать годами отлаженную систему. Однако идея безопасности через виртуализацию (security through virtualization) меня по-прежнему привлекала, поэтому что-то нужно было с этим делать. Зачем вообще использовать Qubes или запускать приложения в отдельных виртуальных машинах?Конечно же, для повышения безопасности! Чтобы минимизировать риски заражения через ненадежные программы. Например, ты знал, что любое приложение, которые ты запускаешь у себя, имеет доступ ко всем твоим авторизациям в Chrome на всех сайтах и может слить твои сессии и выполнить любые действия на любых сайтах от твоего имени? Или получить доступ к твоим файлам. Вот этого я и постарался избежать. Я покажу, как запускать любые, даже GUI-приложения в виртуальной машине, а также шейрить между ними файлы и буфер обмена. Последнее — это, конечно, в теории потенциальная дыра, но жить без этого будет сложновато. Чтобы реализовать такую схему работы, я написал AppVM и сейчас покажу, как с ним обращаться. Запущенные в AppVM приложения с GUI. Удобный менеджер запущенных приложений с информацией о потребляемой памяти WWW Если ты не знаком с Nix, то будет полезно прочитать cheatsheet, который поможет понять, каким образом ведется работа в системе. А для тех, кто хочет попробовать NixOS (дистрибутив) или Nix (пакетный менеджер, которым можно пользоваться на любом дистрибутиве), будет полезно прочитать другую статью на той же вики.
Из чего строимИзначально я видел решение в том, чтобы «собрать виртуальную машину для каждого приложения». Обернувшись блогами, как теплым клетчатым пледом, я начал искать готовые скрипты. Но все они мне показались весьма непривлекательными - за исключением примера, в котором использовался NixOS. Так и появилась первая версия AppVM, которая, по сути, была набором скриптов для установочного диска. А как же другие системы изоляции?В чем преимущество по сравнению с использованием SELinux или AppArmor, а быть может, еще и Firejail или bubblewrap? В лени. Виртуальные машины не только дают безопасность, их еще и проще использовать. Тебе не нужно ограничивать доступ к определенным ресурсам системы, если их просто нет. Предельно простой конфигурационный файл Nix определил систему:
Источник новости - google.com
Перейти обратно к новости |