Esegui un'applicazione non sicura in modo sicuro tramite il comando sandbox-exec

5

Sto provando a eseguire un'applicazione potenzialmente non sicura senza le seguenti autorizzazioni, tramite il comando sandbox-exec :

  1. scrittura di file (per evitare la corruzione / iniezione di file)
  2. rete (per evitare di comunicare al di fuori della mia rete)
  3. creazione processo (per evitare fork)
  4. 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?

    
posta auino 14.03.2017 - 11:00
fonte

1 risposta

1

So che è una vecchia domanda, ma forse qualcuno trova utile la risposta.

L'operazione traccia genera regole nel file di output specificato.

These rules are for operations that would have been denied. (source: Apple Sandbox Guide)

Il che significa che le operazioni non vengono negate dalle regole di negazione se l'operatore trace si trova nel file del profilo.

    
risposta data 29.09.2017 - 18:58
fonte

Leggi altre domande sui tag