Sto provando a eseguire un'applicazione potenzialmente non sicura senza le seguenti autorizzazioni, tramite il comando sandbox-exec
:
- scrittura di file (per evitare la corruzione / iniezione di file)
- rete (per evitare di comunicare al di fuori della mia rete)
- creazione processo (per evitare fork)
- accesso ai dati di sistema (per evitare il danneggiamento del sistema)
Supponiamo di dover eseguire la mia applicazione MyApp
.
So che è possibile creare un profilo myprofile.sb
come il seguente, ma non sono sicuro che tutto sia incluso.
(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)
A questo punto, eseguo il seguente comando per eseguire MyApp
safe:
sandbox-exec -f ./myprofile.sb MyApp
Se eseguo comandi di esempio (ad esempio ping google.it
o touch /tmp/file.txt
), i comandi vengono eseguiti correttamente. Perché? Mi manca qualcosa?