Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Segurança de acesso do código

Os sistemas de computadores altamente conectados atualmente estão expostos com frequência ao código que se origina de várias fontes possivelmente desconhecidas. O código pode ser anexado ao email, contido em documentos ou baixado pela Internet. Infelizmente, muitos usuários de computadores sofreram em primeira mão os efeitos de código móvel mal-intencionado, incluindo vírus e worms, que podem danificar ou destruir os dados e os custos de tempo e dinheiro.

A maioria dos mecanismos de segurança comuns dá direitos aos usuários com base em suas credenciais de logon (geralmente uma senha) e em recursos restritos (quase sempre diretórios e arquivos) que eles têm permissão de acessar. No entanto, essa abordagem não aborda várias questões: os usuários obtêm o código de várias fontes, alguns dos quais podem não ser confiáveis; o código pode conter bugs ou vulnerabilidades que permitem ser alvos de ataques pelo código mal-intencionado; e o código às vezes faz coisas que o usuário não sabe o que fazer. Como resultado, os sistemas de computadores podem ser corrompidos e os dados confidenciais podem ser distribuídos quando usuários não confiáveis executem software mal-intencionado ou cheio de erros. A maioria dos mecanismos de segurança de sistemas operacionais exigem que todas as partes dos códigos sejam completamente confiáveis para serem executadas, com exceção talvez dos scripts de páginas da Web. Portanto, ainda há a necessidade de um mecanismo de segurança amplamente aplicável que permita que um código originado de um sistema de computador execute com proteção em outro sistema, mesmo quando não há nenhuma relação de confiança entre os sistemas.

O .NET Framework fornece um mecanismo de segurança chamado segurança de acesso do código para ajudar a proteger os sistemas do computador do código móvel mal-intencionado, para permitir que o código de fontes desconhecidas funcionem com proteção e para ajudar a evitar que código confiável comprometa intencionalmente ou acidentalmente a segurança. A segurança de acesso ao código permite que o código seja confiável em graus variáveis dependendo de onde o código é originado e outros aspectos da identidade do código. Segurança de acesso do código também impõe os níveis variação de confiança no código, que minimiza a quantidade de código que deve ser totalmente confiável para executar. O uso da segurança de acesso ao código pode reduzir a probabilidade de que seu código será empregado errado pelo código mal-intencionado ou preenchido com erro. Ele pode reduzir sua responsabilidade, porque você pode especificar o conjunto de operações que seu código deve ser autorizado a executar. A segurança de acesso do código também pode ajudar a minimizar o dano que pode resultar das vulnerabilidades de segurança em seu código.

Observação Observação

As mudanças importantes foram feitas para a segurança de acesso ao código em .NET Framework 4. A alteração mais notável foi a transparência de segurança, mas também há outras alterações significativas que afetam a segurança de acesso a código. Para obter informações sobre essas alterações, consulte Alterações na segurança do .NET Framework.

A segurança de acesso de código afeta principalmente o código da biblioteca e aplicativos parcialmente confiáveis. Os desenvolvedores de bibliotecas devem proteger seu código de acesso não autorizado de aplicativos parcialmente confiáveis. Aplicativos parcialmente confiáveis são aplicativos carregados de fontes externas, como a Internet. Aplicativos instalados na sua área de trabalho ou na intranet local são executados em confiança total. Aplicativos de confiança total não são afetados pela segurança de acesso do código a menos que sejam marcados como transparente de segurança, porque eles são totalmente confiáveis. A única restrição para aplicativos de confiança total é que os aplicativos que são marcados com o atributo de SecurityTransparentAttribute não podem chamar códigos que estejam marcados com o atributo SecurityCriticalAttribute . Os aplicativos parcialmente confiáveis devem ser executados em uma área restrita (por exemplo, no Internet Explorer) para que a segurança de acesso do código possa ser aplicada. Se você fizer download de um aplicativo da Internet e tentar executá-lo do seu desktop, você receberá um NotSupportedException com a mensagem: "Foi feita uma tentativa para carregar uma montagem a partir de um local de rede que teria causado a montagem para a área restrita em versões anteriores do .NET Framework. Esta versão do .NET Framework não habilita a política CAS por padrão, portanto, esse carregamento pode ser perigoso”. Se você tiver certeza de que o aplicativo pode ser confiável, você poderá habilitá-lo a ser executado como a confiança total usando <loadFromRemoteSources> elemento. Para obter informações sobre como executar um aplicativo em uma área restrita, consulte Como executar código parcialmente confiável em uma área restrita.

Todo o código gerenciado que acessa o common language runtime recebe os benefícios da segurança de acesso ao código, mesmo se o código não faça uma única chamada de segurança de acesso ao código. Para obter mais informações, consulte Noções Básicas sobre Segurança de Accesso a Código.

A ajuda de segurança de acesso ao código limita o acesso que o código tem a recursos e operações protegidos. No .NET Framework, a segurança de acesso ao código executa as seguintes funções:

  • Defina permissões e conjuntos de permissões que representam o direito de acessar vários recursos do sistema.

  • Habilita o código para exigir que seus chamadores tenham permissões específicas.

  • Habilita o código para exigir que os chamadores possuam uma assinatura digital, permitindo que apenas os chamadores de uma determinada organização ou site chamem o código protegido.

  • Impor restrições no código em tempo de execução comparando as permissões concedidas de cada chamador na pilha de chamadas com as permissões que os chamadores devem ter.

Para determinar se o código está autorizado a acessar um recurso ou executar uma operação, o sistema de segurança de tempo de execução passa pela pilha de chamadas, comparando as permissões concedidas de cada chamador com a permissão que está sendo exigida. Se qualquer chamador na pilha de chamadas não tiver a permissão necessária, uma exceção de segurança é lançada e o acesso é recusado. O stack walk é designado para ajudar a evitar ataques de atração, nos quais um código menos confiável chama um código confiável e o usa para executar ações não autorizadas. Solicitar permissões de todos os chamadores em tempo de execução afeta o desempenho, mas é essencial para ajudar a proteger o código de ataques de sedução por códigos menos confiáveis. Para otimizar o desempenho, você pode fazer com que o código execute menos passagens pela pilha; entretanto, você deve lembrar-se de que não expõe uma fraqueza de segurança sempre que faz isso.

A ilustração a seguir mostra a exame de pilha que resulta quando um método no assembly A4 requer que os chamadores têm a permissão P.

Exame da pilha de segurança

Code access security

Título

Descrição

Noções básicas da segurança de acesso do código

Descreve segurança de acesso a código e seus usos mais comuns.

Código transparente de segurança, nível 2

Descreve o modelo de transparência de segurança no .NET Framework 4.

Usando bibliotecas de código parcialmente confiável

Descreve como ativar bibliotecas para uso com código não gerenciado e como usar bibliotecas de código não gerenciado.

Gravando bibliotecas de classe seguras

Descreve as considerações de segurança para bibliotecas de classes.

Criando suas próprias permissões de acesso do código

Descreve como criar permissões personalizadas.

Conceitos principais de segurança

Fornece uma visão geral de diversos termos e conceitos chave usados no sistema de segurança do.NET Framework.

Segurança baseada em função

Descreve como incorporar a segurança baseada em funções.

Serviços criptográficos

Descreve como incorporar criptografia em seus aplicativos.

Ferramentas de segurança (.NET Framework)

Descreve as ferramentas usadas para implementar e administrar o sistema de segurança do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft