Ejecute una aplicación que no sea de confianza de forma segura a través del comando sandbox-exec

Estoy tratando de ejecutar una aplicación potencialmente no confiable sin los siguientes permisos, a través del sandbox-execcomando:

  1. escritura de archivos (para evitar corrupción/inyección de archivos)
  2. red (para evitar comunicarme fuera de mi red)
  3. creación de procesos (para evitar bifurcaciones)
  4. acceso a los datos del sistema (para evitar la corrupción del sistema)

Supongamos que necesito ejecutar mi aplicación MyApp. Sé que es posible crear un perfil myprofile.sbcomo el siguiente, pero no estoy seguro de que todo esté incluido.

(version 1)
(allow default)
# bullet point #1
(deny file-write*)
(deny file-write-data)
# bullet point #2
(deny network*)
# bullet point #3
(deny process-fork)
(deny job-creation)
(deny process-exec)
# bullet point #4
(deny sysctl-write)
# logging every action possible
(trace "/tmp/myapp_output.sb")
(debug all)

En este punto, ejecuto el siguiente comando para ejecutar MyAppde manera segura:

sandbox-exec -f ./myprofile.sb MyApp

Si ejecuto comandos de muestra (por ejemplo, ping google.ito touch /tmp/file.txt), los comandos se ejecutan correctamente. ¿Por qué? ¿Me estoy perdiendo de algo?

Respuestas (1)

Sé que es una vieja pregunta, pero tal vez alguien encuentre útil la respuesta.

La operación de rastreo genera reglas en el archivo de salida dado.

Estas reglas son para operaciones que hubieran sido denegadas . (fuente: Guía de Apple Sandbox )

Lo que significa que las reglas de denegación no deniegan las operaciones si el operador de rastreo está en el archivo de perfil.

El enlace está roto. ¿Podrías actualizarlo?
Funciona desde aquí. Lamentablemente, no puedo encontrar otra copia del documento en la web, así que este es el único enlace que puedo proporcionar.