Wie sicher ist eine AppDomain-Sandbox mit SecurityPermissionFlag.Execution?

8

Ich habe einen Plug-in-Vektor, der mit System.AddIn erstellt wurde, der den Rumpf einer vordefinierten Methode akzeptiert, den Methodenkörper in den Textbausteincode einfügt, die Assembly generiert und die Methode ausführt.

Die Assembly verweist auf System und System.Core und ist mit

sandboxed %Vor%

Die einzige Ausnahme, auf die ich einen Hinweis finden kann, dass der Host einen Stack-Überlauf verursachen könnte, könnte eine beliebige Anzahl von kreativen Mitteln, z. Schließen des Körpers und Deklarieren einer rekursiven Methode etc ...

Und dann gibt es die möglichen Angriffsvektoren, die von den referenzierten Assemblies System und System.Core angezeigt werden.

Meine Frage ist: Wie sicher sind das und was sind Beispiele für bösartigen Code, der den Host möglicherweise zum Absturz bringen könnte, und Möglichkeiten, solche Angriffe zu verhindern?

UPDATE: Auch für diejenigen, die mit dem Managed AddIn Framework vertraut sind, wenden Sie dieselbe Frage auf AddInSecurityLevel.Internet an.

    
Sky Sanders 07.03.2010, 12:03
quelle

1 Antwort

4

Es ist normalerweise nicht schwer für ein Add-In, den Host zu bombardieren. Alles, was es zu tun hat, ist einen Thread zu starten und eine nicht behandelte Ausnahme auszulösen. Jesse Kaplan hat gebloggt über eine mögliche Gegenmaßnahme für diese Art von Misserfolgen. Sandboxing wurde von Shawn Farkas in diesem Blogpost behandelt.

    
Hans Passant 07.03.2010, 14:11
quelle