2010-03-07 12 views
8

Tengo un vector plug-in establecido usando System.AddIn que acepta el cuerpo de un método predefinido, transfiere el cuerpo del método al código repetitivo, genera el ensamblaje y ejecuta el método.¿Qué tan seguro es un AppDomain con sandboxed con SecurityPermissionFlag.Execution?

El conjunto hace referencia a System y System.Core y es un recinto de seguridad con

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

La única excepción que puedo encontrar referencia a que podrían posible reducir el anfitrión es un desbordamiento de pila, que puede invocarse cualquier número de medios creativos , p.ej cerrando el cuerpo y declarando un método recursivo, etc ...

Y luego están los posibles vectores de ataque expuestos por los ensamblados a los que se hace referencia, System y System.Core.

Mi pregunta es: ¿Cuán seguro es esto y cuáles son algunos ejemplos de códigos maliciosos que podrían desanimar al host y posibles formas de prevenir tales ataques?

ACTUALIZACIÓN: también para aquellos que estén familiarizados con el Framework administrado AddIn, aplique la misma pregunta al AddInSecurityLevel.Internet.

Respuesta

4

Por lo general, no es difícil para un complemento bombardear al host. Todo lo que tiene que hacer es iniciar un hilo y hacer que arroje una excepción no controlada. Jesse Kaplan has blogged sobre una posible contramedida para ese tipo de fallas. Sandboxing fue cubierto por Shawn Farkas en this blog post.

Cuestiones relacionadas