2010-03-07 16 views
8

Ho un vettore di plug-in stabilito usando System.AddIn che accetta il corpo di un metodo predefinito, munge il corpo del metodo nel codice boilerplate, genera l'assembly ed esegue il metodo.Quanto è sicuro un appDomain in modalità sandbox con SecurityPermissionFlag.Execution?

Il gruppo fa riferimento a System e System.Core ed è tenuta stagna con

var pset = new PermissionSet(PermissionState.None); 
pset.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution)); 

L'unica eccezione che posso trovare riferimento a che potrebbero possibile abbattere l'host è un overflow dello stack, che potrebbe essere invocato un qualsiasi numero di mezzi creativi , per esempio chiudere il corpo e dichiarare un metodo ricorsivo ecc ...

E poi ci sono i possibili vettori di attacco esposti dagli assiemi di riferimento, System e System.Core.

La mia domanda è: quanto è sicuro questo e quali sono alcuni esempi di codice dannoso che potrebbe potenzialmente abbattere l'host e possibili modi per prevenire tali attacchi?

AGGIORNAMENTO: anche per coloro che hanno familiarità con AddIn Framework gestito, applicare la stessa domanda a AddInSecurityLevel.Internet.

risposta

4

Di solito non è difficile per un componente aggiuntivo bombardare l'host. Tutto ciò che deve fare è avviare una discussione e lanciare un'eccezione non gestita. Jesse Kaplan has blogged su una possibile contromisura per quel tipo di guasti. Sandboxing è stato coperto da Shawn Farkas nel this blog post.

Problemi correlati