Существует ли программа для песочницы, такая как Sandboxie для Mac?

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

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

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

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

Ответы (2)

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

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

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

Цитируя его сообщение в блоге:

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

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

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

;; This is my first sandbox configuration file!
(version 1) 
(deny default)

;; Let's allow file read and write in specific locations and not 
;; all over my filesystem!
;; Please note you can add more (regex "^/Users/user_name/xxxxxxxxxxx") lines depending 
;; on what your MyApp needs to function properly.
(allow file-write* file-read-data file-read-metadata
  (regex "^/Users/user_name/[Directories it requires to write and read from]")
  (regex "^/Applications/MyApp.app")
  (regex "^(/private)?/tmp/"))

;; You can also add a sperate section for reading and writing files outside your
;; user_name account directory.
(allow file-read-data file-read-metadata
  (regex "^/dev/autofs.*")
  (regex "^/System/Library")
  (regex "^/Applications/MyApp.app")
  (regex "^/usr/lib")
  (regex "^/var")
  (regex "^/Users/user_name"))

;; If your MyApp requires to access sysctl (in read)
(allow mach* sysctl-read)

;; If you want to import extra rules from 
;; an existing sandbox configuration file: 
(import "/usr/share/sandbox/bsd.sb")

;; If you want to decide in which filesystem paths 
;; MyApp is forbidden to write:
(deny file-write-data
   (regex #"^(/private)?/etc/localtime$"
     #"^/usr/share/nls/"
   #"^/usr/share/zoneinfo/"))

;; If your MyApp wants to run extra processes it's be allowed to run only
;; child processes and nothign else
(allow process-exec 
  (regex "^/Applications/MyApp.app"))

;; If your MyApp requires network access you can grant it here:
(allow network*)

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

sandbox-exec -f myapp-sandbox-conf /Applications/MyApp.app/Contents/MacOS/MyApp-bin

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

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

ls /usr/share/sandbox

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

sshd.sb

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

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

Ну есть такое приложение - https://www.macupdate.com/app/mac/19025/sandbox

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

Похоже, что это приложение больше не существует по данной ссылке
В последний раз проблемы появлялись со времен OS X 10.6.x в 2008 году: web.archive.org/web/20160609020915/http://www.macupdate.com:80/…