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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top