Quão seguro é um appDomain Sandbox com segurança flag.execution?
-
25-09-2019 - |
Pergunta
Eu tenho um vetor de plug-in estabelecido usando o System.addin que aceita o corpo de um método predefinido, impede o corpo do método no código da caldeira, gera o conjunto e executa o método.
As referências de montagem System
e System.Core
e está com caixa de areia com
var pset = new PermissionSet(PermissionState.None);
pset.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
A única exceção que posso encontrar referência a que poderia reduzir o host é um estouro de pilha, que pode ser invocado qualquer número de meios criativos, por exemplo, fechando o corpo e declarando um método recursivo etc ...
E há os possíveis vetores de ataque expostos pelos assemblies referenciados, System
e System.Core
.
Minha pergunta é: quão seguro é isso e quais são alguns exemplos de código malicioso que podem potencialmente derrubar o hospedeiro e possíveis maneiras de evitar tais ataques?
Atualização: também para aqueles familiarizados com a estrutura Addin gerenciada, aplique a mesma pergunta a AddInSecurityLevel.Internet
.
Solução
Geralmente não é difícil para um suplemento bombardear o anfitrião. Tudo o que precisa fazer é iniciar um segmento e fazer com que ele faça uma exceção não atendida. Jesse Kaplan blogou sobre uma possível contra-medição para esse tipo de falha. Sandboxing foi coberto por Shawn Farkas em esta postagem do blog.