Estoy intentando ejecutar una aplicación potencialmente no confiable sin los siguientes permisos, a través del comando sandbox-exec
:
- escritura de archivos (para evitar la corrupción / inyección de archivos)
- red (para evitar la comunicación fuera de mi red)
- creación de procesos (para evitar bifurcaciones)
- 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.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 forma segura:
sandbox-exec -f ./myprofile.sb MyApp
Si ejecuto comandos de ejemplo (por ejemplo, ping google.it
o touch /tmp/file.txt
), los comandos se ejecutan correctamente. ¿Por qué? ¿Me estoy perdiendo algo?