Как защищены мгновенные приложения?

Как защищены мгновенные приложения, когда мы смотрим на разные аспекты?

  1. Защита во время выполнения?
    1. Защита памяти?
    2. Отличия от обычных процессов?
    3. Отличия от виртуальных машин?
  2. Защита хранилища?
    1. Защита двоичных файлов приложений?
    2. Защита постоянных данных?
  3. Контейнеры
    1. Что означает термин «контейнер» и подразумевается в отношении защиты и безопасности приложений?
    2. Отличия от обычных процессов?
    3. Различия с виртуальными машинами?
    4. Различия с другими контейнерами, особенно с «Docker»?
  4. Любые другие соответствующие защиты?
3
задан 20 June 2016 в 10:47

2 ответа

разработчик snapd здесь.

Меры защиты слова, кажется, подразумевают, что snapd содержит своего рода систему DRM для защиты двоичных файлов. Нет такой вещи. Snapd защищает Вашу систему от возможно недоверяемого программного обеспечения и различные пакеты программного обеспечения от влияния друг на друга.

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

Различия от обычных процессов - только некоторые, но они имеют все значение и возможное волшебство. Snapd использует несколько функций ядра Linux для предоставления поспешных процессов (процессы запущенных поспешных приложений) другой взгляд на файловую систему, так, чтобы они могли работать сверх фактически любого современного распределения. Кроме того, взаимодействием таких процессов с ядром и другими программами пространства пользователя управляет песочница, управляемая snapd. Точное поведение песочницы зависит от используемой системы и набор поспешных связей интерфейсов, установленных между снимками в системе.

Термин контейнер в значительной степени ничего не означает сегодня, это - просто маркетинговое модное словечко. Ядро Linux предлагает широкий спектр инструментов, который позволяет выделять различные части системы и заставлять некоторых из них казаться незатронутыми изменениями, внесенными другими процессами в другом месте. Это может колебаться от, "он похож на другую машину", к "он похож на эту машину" и постоянно развивается и расширяется в пределах того, что может быть сделано.

Различиями от других "контейнеров" как докер является набор тех используемых примитивов. Конкретно snapd использует устройство cgroup, морозильник cgroup, seccomp фильтр BPF, чтобы вынудить системные вызовы и большой набор профилей apparmor ограничивать доступ к механизмам IPC, сетевым механизмам, сигналам, возможности, чтение, пишут и другой доступ к файлам в системе. Докер или другие "контейнеры" обычно используют другой набор таких функций ядра и настраивают их по-другому.

От просто различие в восприятии snapd разработано для интеграции с хостом. Если Вы привязываетесь, устанавливают сервис, это будет непосредственно видимо менеджеру по сервису Вашей машины (systemd). Если Вы привязываетесь, устанавливают приложение CLI, Вы сможете выполнить его главным образом как любое другое приложение на Вашем хосте. Если Вы привязываетесь, устанавливают графическое приложение, оно интегрирует с Вами средство запуска, панели и другие типичные средства управления. Дело обстоит не так для докера, который разработан, чтобы позволить Вам выполнять, обычно, бездисплейные полезные нагрузки сети и оставлять интеграцию с пользователем.

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

Существует сложный отчет о snapd модели обеспечения безопасности, которую я мог рекомендовать для намного большего количества деталей, чем те, которых я представил здесь: https://developer.ubuntu.com/static/resources/ubuntu-core-16-security-whitepaper.pdf

3
ответ дан 1 December 2019 в 15:24

"Все еще большая часть корневого каталога в настоящее время позволяется, поскольку механизмы для посредничества доступа неполные или незрелыми. Со временем тот доступ будет ограничен и только предоставлен через мелкомодульное посредничество".

Для обеспечения немного большего количества контекста для этого по умолчанию снимку только позволяют получить доступ к его собственным данным и системным ресурсам, которые считают безопасными. Поспешный разработчик может запросить другие ресурсы (известный как "интерфейсы" в snapd), и некоторых автоматически предоставляют, и других предоставляет пользователь. Zygmunt обращается к "домашнему" интерфейсу здесь, и снимки не имеют его по умолчанию, но поспешный разработчик может запросить это. Этот домашний интерфейс считают переходным интерфейсом для поддержки определенных традиционных вариантов использования, и его автоматически предоставляют на традиционном (иначе классик) дистрибутивы (в противоположность дистрибутивам как Ядро Ubuntu, где он не автосоединен), и пользователь может принять решение отменить его. Как Zygmunt указывает, со временем использование домашнего интерфейса будет ограничено, и доступ к данным пользователя будет только предоставленный через мелкомодульное посредничество.

3
ответ дан 1 December 2019 в 15:24

Другие вопросы по тегам:

Похожие вопросы: