Песочница для mac os

Что такое «sandboxd» и что он делает в моем Mac

Открыли «Мониторинг системы» и обнаружили непонятный процесс под названием «sanboxd»? Давайте вместе разбираться что это такое. «sandboxd» — это демон (от анг. daemon), процесс, который выполняет определенную задачу в фоновом режиме, как правило у всех daemon-процессов буква «d» в окончании. Если конкретнее, sandboxd отвечает за работу процесса «песочницы». Запустите терминал и введите команду «man sandboxd» (без кавычек) и вы получите описание процесса:

sandboxd performs services on behalf of the Sandbox kernel extension.

«App Sandbox is an access control technology provided in macOS, enforced at the kernel level. It is designed to contain damage to the system and the user’s data if an app becomes compromised.»
Приложение sandbox — это технология контроля доступа в MacOS, которая действует на уровне ядра системы. Она предназначена, уберечь систему и данные пользователя от повреждений, на случай если приложение будет скомпрометировано.

Приложения, которые работают из «песочницы» делают запрос на доступ к файлам и функциям системы, например, на доступ к веб-камере — этот процесс добавляет дополнительный уровень безопасности ОС. Использование «песочницы» является одним из самых основных требований к приложениям, которые распространяются через Mac App Store — это одна из причин по которой некоторого софта нет в Mac App Store. Процесс «sandboxd» не расходует много системных ресурсов.

И самое главное, не забудьте подписаться на наш канал в Telegram

Источник

Как MacOS App Sandboxing защищает пользователей

Как MacOS App Sandboxing защищает пользователей

Появившаяся в 2007 году и требуемая к 2012 году, песочница — это инструмент, используемый macOS для ограничения ущерба, который может нанести взломанное приложение. Apple утверждает, что хотя «песочница» приложения не предотвращает атаки на ваше приложение, она сводит к минимуму вред, который может принести успешное приложение. «Песочница» приложения macOS защищает пользователей, ограничивая количество проблем, которые может вызвать приложение.

Что такое песочница приложения macOS?

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

Подумайте об автомобиле. Водитель защищен множеством функций безопасности, таких как антиблокировочная система, подушки безопасности, зоны сминания и многое другое. В 2007 году, во время внедрения App Sandboxings, аналогичных компьютерных систем не было. Как было сказано во вступительной презентации, где были ремни безопасности для компьютеров? Песочница защищает пользователей, как автомобили, защищает их водителей: устранение сбоев с помощью систем уменьшения ущерба. Независимо от того, вызваны ли они злонамеренной активностью или ошибками кодирования, ущерб уменьшается.

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

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

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

Читайте также:  При установке обновлений windows синий экран

Приложения могут выходить за пределы своей изолированной программной среды, но только с разрешения операционной системы. Возьмите диалоговое окно «Сохранить и открыть» в macOS. Приложение внутри своей песочницы не может получить прямой доступ к ресурсам файловой системы на вашем жестком диске. Например, он не может нарисовать открытую панель в

/ Documents. Вместо этого приложение должно запросить API-интерфейс Powerbox с классами NSOpenPanel и NSSavePanel для доступа к панели.

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

Эта функциональность активируется с помощью права (в частности, com.apple.security.files.user-selected.read-write). Разработчики приложений устанавливают права, которые объявляют, что приложение делает.На основе заявленных прав операционная система разрешает приложению ограниченный по функциональности уровень функциональности.

Этот мыслительный процесс лежит в основе всей модели и механизма изолированной среды приложения: приложения должны объявлять намерение и запрашивать разрешение у ОС босс высокого уровня для выполнения чего-либо опасного.

Приложения в песочнице против приложений без песочницы

С 1 июня 2012 года все сторонние приложения, распространяемые через Mac App Store, должны быть помещены в песочницу. Несмотря на то, что «песочница» предоставляет широкий спектр функциональных возможностей приложения, вы обнаружите, что приложения Mac App Store часто более ограничены, чем их компоненты без песочницы.

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

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

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

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

Заключение

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

Такие приложения, как TextExpander, SnagIt и TotalFinder, имеют решающее значение для моей повседневной работы. Чтобы избежать подобного широкого распространения, будущим системам безопасности требуется гибкость и мощность, сбалансированная с прозрачностью.

Источник

Использование Sandbox на Mac OS X Server для изоляции пользовательских веб-приложений

Небольшое лирическое введение

Появился как-то у меня заказчик, который захотел странного, а именно простой в управлении хостинг, который позволил бы пользователям загружать и изолированно запускать веб-приложения на базе микрофреймворка Camping. И я ему сделал его на предложенном виртуальном сервере под управлением FreeBSD 9.0 с помощью nginx, thin server, и ezjail как средства управления jail’ами (все довольно тривиально, но если будет кому-нибудь интересно — опишу). А через неделю заказчик признался мне, что он вообще-то поклонник решений от Apple и хотел бы видеть ту же систему работающей на его основном сервере под управлением Mac OS X. И я с радостью согласился адаптировать решение, так как раньше не имел удовольствия соприкоснуться с этой системой и хотел ее хоть немного изучить. Было только одно «но» — на MacOS X Server нет jail(8). Так вот, в поисках решения для максимально безопасного запуска загружаемого пользователем приложения (я не мог и не хотел использовать chroot по ряду причин) я нашел чрезвычайно гибкий и прекрасно интегрированный в систему инструмент — Sandbox.

Читайте также:  Toshiba windows recovery disk download

Построение основы для хостинга

Sandbox

Sandbox оказался удивительным инструментом. В чем-то напоминающий AppArmor, в чем-то SeLinux, а в чем-то совершенно уникальный способ держать приложение «в узде» и не давать ему больше возможностей, чем ему реально надо для работы. Способ, которым применяются политики Sandbox — это запуск приложения в «песочнице» с передачей в качестве опции пути к заранее написанному для этого приложения профилю (текстовому файлу, содержащему описание политик безопасности). К некоторому сожалению, Sandbox несколько беднее документирован, чем я привык (подробность FreeBSD Handbook развращает), однако в сети нашлось немало примеров написания конкретных профилей, что значительно облегчило задачу. Мне было необходимо написать профиль для легкого сервера ruby-приложений Thin, каким именно образом он используется, я опишу ниже. Любой профиль начинается с декларации версии языка разметки и, желательно, политики по умолчанию (очевидно запретительного характера в нашем случае). Все директивы или их наборы заключены в круглые скобки. Имена политик (или «операции» — operations) поддерживают маски (wildcard — *), расширяющие сферу применения правил. Фильтры (filters, их всего 6: path network file-mode xattr mach signal) задаются согласно правилам (о синтаксисе смотрите подробнее здесь). Например, path может задаваться строкой буквально (literal), регулярным выражением (regex) и, да простят меня за кальку с английского, «подпутем» (subpath). Все комментарии начинаются с символа ‘;’:

Для запуска пользовательских Camping-приложений был выбран Thin. Почему Thin, а не Mongrel, Passenger, uWSGI или что-то еще? Он поддерживал все необходимые функции и оказался не очень требовательным к ресурсам (серьезных исследований, впрочем, я не проводил). Кроме того, я не смог придумать как приготовить Passenger таким образом, чтобы он как-то изолированно запускал приложения, хотя вероятнее всего это как-то возможно (я не беру вариант с запуском многих копий nginx от лица разных пользователей, такой вариант рассматривался, но был отметен) и если кто-нибудь в комментариях предложит работающее решение, буду рад ознакомиться. Мой комбайн-фаворит для практически любых дел — uWSGI из последнего tip — отказался нормально работать с rack-приложениями на FreeBSD (о чем был оповещен разработчик и все было починено в течение пары дней, но, увы, поезд ушел), а на MacOS X вообще не собирался ни в какую. Mongrel попробовать не успели, остановившись на Thin, уж больно хорошо пошло с ним дело. Итак, вот строка запуска некоего основанного на Camping rack-приложения в контейнере Thin:

Опция ‘tag’ дает приятную возможность увидеть в top и ps кто именно скушал все ресурсы (системный пользователь используется один для всех запусков).

Nginx

Все тривиально. Никакой статики. Имя виртуального «пользователя» хостинга эквивалентно выделенному ему поддомену:

Скриптовая обвязка

Для разработки обвязки я использовал sh, потому что люблю простые и переносимые вещи. Критика приветствуется, скрипты остались довольно сыроватыми. Предполагается, что скрипты запускаются от имени суперпользователя (root).
Управление виртуальными пользователями — users_management.sh:

Управление пользовательскими приложениями — application_management.sh:

Заключение

Sandbox это достаточно мощная «песочница», которая, я думаю, может послужить популяризации Mac OS X в качестве серверной платформы.

Источник

Есть ли программа-песочница, такая как Sandboxie для Mac?

Установите Windows Sandbox с проблемой Поддержка виртуализации Windows отключена в прошивке

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

Читайте также:  Установка кали линукс с флешки как полноценную ос

В macOS я знаю три способа сделать это:

  1. Сделайте резервную копию Time Machine, а затем установите программу. После его использования восстановите из резервной копии, и все останется неизменным, как было раньше.
  2. Используйте виртуальную машину для его запуска; однако я бы не хотел этого делать, так как это сильно усложняет ситуацию.
  3. Используйте AppCleaner, чтобы удалить файлы, оставленные программой. Однако это ничего не делает для файлов, которые программа (возможно, злонамеренно?) Изменила, и если вы установите программу с правами администратора или пакет, она, скорее всего, установит в систему файлы, которые AppCleaner не сможет получить. вне. Кроме того, я не уверен, что он на 100% точен для обычных приложений.

Так есть ли способ сделать это на Mac без использования виртуальной машины?

MacOS имеет встроить функцию песочницы который может вам помочь, но не имеет такой же функциональности, как Sandboxy.

Это сообщение в блоге Паоло Фабио Заино от 2015 года объясняет, как запускать приложения в песочнице Mac OS X. Он резюмирует это так:

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

Цитата из его сообщения в блоге:

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

Вот пример (замените MyApp именем вашего приложения):

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

Где myapp — это имя приложения, которое вы хотите запустить в песочнице.

Если мой общий файл песочницы будет для вас слишком общим и вам нужны более практические примеры (уже реализованные), запустите приложение терминала и просмотрите все примеры, уже любезно предоставленные Apple:

В этом каталоге вы найдете множество файлов, например

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

  • Добро пожаловать в Ask Different! Мы пытаемся найти лучшие ответы, и эти ответы предоставят информацию о том, почему они лучшие. Объясните, почему вы думаете, что ваш ответ поможет OP или лучше, чем другие. Ссылки — это хорошо, но ответы должны быть автономными, а не просто ссылкой на другой сайт. Посмотрите, как ответить, чтобы узнать, как дать качественный ответ. — Из обзора
  • Я бы не стал сравнивать это с тем, что Sandboxie делает для Windows. Вы описываете изменения, внесенные в macOS, чтобы включить то, что было сделано Linux с улучшенной безопасностью. en.wikipedia.org/wiki/Security-Enhanced_Linux В macOS вам необходимо вручную реализовать элементы управления, тогда как Sandboxie выполняет их автоматически. Sandboxie позволяет откатить любые изменения, внесенные приложением.
  • Правильно, функция MacOS Sandbox — это не то же самое, что Sandboxie. Следует ли мне удалить свой ответ?
  • Нет, пожалуйста, не удаляйте его, так как в вашем ответе описаны альтернативные функции песочницы, которые другие могут найти полезными (я нашел это полезным). Вы можете изменить свой ответ, сказав: «Однако это не совсем похоже на Sandboxie . »

Ну вот и вот это приложение — https://www.macupdate.com/app/mac/19025/sandbox

Sandbox, но я не уверен, что это работает с последней версией. Таким образом, все приложения должны быть изолированы в песочнице в соответствии с усиленными мерами безопасности, но это относится только к ПРИЛОЖЕНИЯм в Mac Store, но не ко всем другим приложениям, которых нет в магазине!

Источник

Оцените статью