Índice:
- Definição - O que significa o Code Access Security (CAS)?
- Techopedia explica Code Access Security (CAS)
Definição - O que significa o Code Access Security (CAS)?
O Code Access Security (CAS) é um mecanismo de segurança pelo qual o Common Language Runtime (CLR) da estrutura .NET pode restringir o código gerenciado para executar operações com um conjunto limitado de permissões.
O CAS impõe políticas de segurança na estrutura .NET, impedindo o acesso não autorizado a recursos e operações protegidos. Diferentemente dos métodos de segurança tradicionais, nos quais as credenciais do usuário são obtidas, o CAS foi projetado para solucionar os problemas enfrentados ao obter código de fontes externas, que contêm bugs e vulnerabilidades. Esses erros e vulnerabilidades podem tornar o sistema de um usuário vulnerável a códigos maliciosos, que podem estar executando tarefas sem que o usuário saiba. O CAS realmente conhece e permite apenas as operações que o código de um determinado usuário pode e não pode executar. Esse recurso é aplicável a todos os códigos gerenciados direcionados ao CLR.
O CAS fornece segurança baseada em evidências construída em uma camada acima da segurança fornecida pelo sistema operacional Windows. Enquanto o Windows se baseia nas permissões do usuário, o CAS se baseia nas evidências para a montagem. O assembly contém as permissões definidas na política de segurança e forma a base para permitir que o código execute as ações necessárias.
Techopedia explica Code Access Security (CAS)
O CAS baseia-se nos seguintes elementos, entre outros:
- Permissões: esses são os direitos básicos necessários para acessar um recurso protegido ou executar uma operação protegida.
- Conjunto de permissões: este é um conjunto de permissões, como "confiança total", "nada", "Internet", "intranet local" e outras.
- Grupo de códigos: este é um agrupamento lógico de código com uma condição especificada para associação, como LocalIntranet_zone e Internet_zone.
- Evidência: são informações relacionadas a montagem, como diretório de aplicativos, editor, URL e zona de segurança.
- Política de segurança: este é um conjunto de regras configuradas por um administrador para determinar as permissões concedidas para um código expresso hierarquicamente em quatro níveis, como domínio da empresa, máquina, usuário e aplicativo.
A operação privilegiada de execução de código exige o CLR para uma ou mais permissões. A permissão real é calculada usando a união de permissões definida nos grupos de códigos e, em seguida, uma interseção no nível da política. O CLR garante que as permissões exigidas estejam nas permissões concedidas do método desse assembly. Se a permissão não for concedida, uma exceção de segurança será lançada.
O CAS fornece dois modos de segurança para definir permissões para o código:
- A segurança declarativa é implementada através da definição de atributos de segurança no nível de montagem, classe ou membro. O modo declarativo é usado quando as chamadas precisam ser avaliadas em tempo de compilação.
- A segurança imperativa usa chamadas de método de tempo de execução para criar instâncias de classes de segurança. O modo imperativo é usado quando as chamadas precisam ser avaliadas em tempo de execução.
O CAS possui limitações, incluindo o mau funcionamento de um aplicativo movido para outro sistema quando a política de segurança é diferente. Além disso, não há controle no código não gerenciado e no desenvolvimento de aplicativos para atender às necessidades de diferentes cenários de configurações de segurança nos sistemas do usuário.
Para usar efetivamente a tecnologia de segurança refinada do CAS, os desenvolvedores devem escrever código de tipo seguro, usar sintaxe declarativa ou imperativa com base no contexto, solicitar permissões no tempo de execução para execução do código e usar bibliotecas seguras.
