21 votos

¿Existe un programa de sandboxing como Sandboxie para Mac?

Con Sandboxie para Windows, puedes ejecutar aplicaciones en las que no confías del todo en un sandbox; éste rastrea todos los archivos que el programa crea y modifica, y aunque los archivos van técnicamente al sistema, puedes revertir los cambios borrando este sandbox. Esto elimina todos los archivos creados por el programa y restaura los archivos modificados a su estado anterior. En cierto modo, es como una restauración del sistema cuando se restaura el sistema a un punto anterior; en este caso, sólo se restaurarían los archivos que el programa en cuestión afectó, por lo que es mucho más fácil de usar. Al menos, así es como yo entiendo que funciona.

En MacOS, hay tres formas (más o menos) de hacer esto que conozco:

  1. Haga una copia de seguridad de Time Machine y luego instale el programa. Después de usarlo, restaura desde la copia de seguridad y todo saldrá intacto como estaba antes.
  2. Usar una VM para ejecutarlo; sin embargo, me gustaría evitar hacer esto ya que complica mucho las cosas
  3. Utilice AppCleaner para eliminar los archivos que el programa dejó atrás. Sin embargo, esto no hace nada por los archivos que el programa (¿tal vez maliciosamente?) modificó, y si instalas un programa con privilegios administrativos o un paquete, lo más probable es que instale archivos en el sistema que AppCleaner no podrá sacar. Además, no estoy seguro de que sea 100% preciso para las aplicaciones normales, de todos modos.

Entonces, ¿hay alguna manera de hacer esto en un Mac sin usar una VM?

9voto

xhalarin Puntos 21

MacOS tiene un construir en la función de Sandbox que puede ayudarte pero no tiene exactamente la misma funcionalidad que Sandboxy.

Este Entrada del blog de Paolo Fabio Zaino de 2015 explica cómo ejecutar aplicaciones en un sandbox de Mac OS X. Lo resume así:

mediante el uso de sandboxing, se puede restringir el acceso de una aplicación a los recursos del sistema operativo como el sistema de archivos o la red, etc.

Citando su entrada en el blog:

¿Cómo hacer un sandbox de una aplicación?

En primer lugar, para que Mac OS X sepa qué recursos requiere tu aplicación requiere para poder ejecutarse correctamente necesitamos crear un archivo de archivo de configuración. Esta actividad requerirá algo de tiempo y pruebas porque cada aplicación tiene diferentes requisitos

Este es un ejemplo (cambie MyApp por el nombre de su aplicación):

;; 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*)

Una vez que hayamos terminado con nuestro archivo de configuración de la caja de arena para nuestro aplicación, podemos simplemente ejecutarlo usando el siguiente comando desde la línea de comandos:

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

Donde myapp es el nombre de la aplicación que desea ejecutar en un sandbox.

Si mi archivo genérico de la caja de arena será demasiado genérico para usted y usted quiere ejemplos más prácticos (ya implementados) entonces ejecute su aplicación de terminal aplicación y eche un vistazo a todos los ejemplos ya amablemente proporcionado por Apple:

ls /usr/share/sandbox

En este directorio encontrarás un montón de archivos como

sshd.sb

Para mirar y tener más conocimiento/tutorial para escribir su propio sandbox para su aplicación específica.

0 votos

¡Bienvenido a Ask Different! Estamos tratando de encontrar las mejores respuestas y esas respuestas proporcionarán información sobre por qué son las mejores. Explica por qué crees que tu respuesta ayudará al OP o es mejor que otras. Proporcionar enlaces es bueno, pero las respuestas deben ser autónomas y no sólo un enlace a otro sitio. Ver Cómo responder sobre cómo dar una respuesta de calidad. - De la revisión

1 votos

Yo no compararía esto con lo que hace Sandboxie para Windows. Describes los cambios realizados en MacOS para incluir lo que hizo Security-Enhanced Linux. es.wikipedia.org/wiki/Seguridad_Linux_mejorada En MacOS tendría que implementar manualmente los controles mientras que Sandboxie hace estos controles automáticamente. Sandboxie le permite revertir cualquier cambio realizado por la aplicación.

0 votos

Correcto, la función Sandbox de MacOS no es la misma que Sandboxie. ¿Debo borrar mi respuesta?

2voto

boni aditya Puntos 31

Bueno, existe esta aplicación - https://www.macupdate.com/app/mac/19025/sandbox

Sandbox, pero no estoy seguro si esto funciona bien con la última edición. ¡Como tal, todas las aplicaciones necesitan ser sandboxed de acuerdo con las medidas de seguridad mejoradas, pero esto sólo se aplica a las APPS en la Mac Store, pero no para todas las otras aplicaciones no en la tienda!

3 votos

Parece que esta aplicación ya no existe en el enlace dado

0 votos

Los problemas aparecieron por última vez desde OS X 10.6.x en el año 2008: web.archive.org/web/20160609020915/http://www.macupdate.com:80/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X