Estoy tratando de ejecutar una aplicación potencialmente no confiable sin los siguientes permisos, a través del sandbox-exec
comando:
Supongamos que necesito ejecutar mi aplicación MyApp
. Sé que es posible crear un perfil myprofile.sb
como 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 MyApp
de manera segura:
sandbox-exec -f ./myprofile.sb MyApp
Si ejecuto comandos de muestra (por ejemplo, ping google.it
o touch /tmp/file.txt
), los comandos se ejecutan correctamente. ¿Por qué? ¿Me estoy perdiendo de algo?
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.
auino
peterfoldi