Come fa un modulo sandbox a conoscere la differenza tra codice attendibile e non attendibile

1

Quali criteri utilizza una sandbox per determinare se il codice di esecuzione (lettura / scrittura del registro) può essere considerato affidabile o meno?

    
posta Joe T 05.01.2018 - 06:10
fonte

2 risposte

1

Una sandbox ben progettata è semplice: tutto il codice al suo interno non è affidabile e deve chiedere alla sandbox se vuole accedere a qualcosa di esterno.

    
risposta data 05.01.2018 - 06:36
fonte
1

Una sandbox è un ambiente che limita ciò che il codice può fare. Tali restrizioni potrebbero ad esempio limitare l'accesso ai file a directory specifiche, l'accesso alla rete a specifici indirizzi IP o porte o l'uso di chiamate di sistema solo a quelli elencati in bianco. Il tipo di restrizioni impostate per la sandbox dipende dal caso d'uso specifico.

E poiché la sandbox limita il codice che può farlo può essere utilizzato per eseguire codice non affidabile, cioè codice che potrebbe essere dannoso quando viene eseguito all'interno di un ambiente senza restrizioni. In altre parole: la sandbox non fa distinzione tra codice non attendibile e codice attendibile. Invece ogni codice all'interno della sandbox è considerato non affidabile e questo è il motivo per cui verrà eseguito all'interno di una sandbox in primo luogo.

Esistono molti casi d'uso diversi per sandbox e anche molte diverse implementazioni. Ad esempio un programma potrebbe mettere se stesso oi suoi figli in un ambiente limitato (vedi chroot , pledge o seccomp per esempi) al fine di limitare il danno che può essere fatto in caso di bug nel programma. Oppure un prodotto antivirus potrebbe mettere un software sospetto in una sandbox per monitorare e limitare il suo comportamento. Oppure hai un'esecuzione sanboxed di Javascript all'interno del browser che limita il tipo di risorse a cui lo script può accedere e con quali siti può comunicare.

    
risposta data 05.01.2018 - 07:00
fonte

Leggi altre domande sui tag