Como tornar os assemblies APTCA inacessíveis a código parcialmente confiável

O atributo de AllowPartiallyTrustedCallersAttribute (APTCA) permite que o código parcialmente confiável para acessar o código totalmente confiável em assemblies assinados. Quando o atributo de APTCA é aplicado a um assembly, marca que o assembly como permitir chamadores parcialmente confiáveis para a duração do assembly. Isso pode apresentar uma vulnerabilidade de segurança se um assembly, depois que esteve instalado, expõe recursos protegidos no código parcialmente confiável. Para corrigir esse problema, você pode definir um valor do Registro para indicar que o atributo de APTCA nesse assembly deve ser ignorado.

Importante

A capacidade de remover a confiança parcial de um assembly depende de uma chave do Registro, conforme descrito no procedimento a seguir.Se um aplicativo estiver sendo executado sob uma conta que não tenha permissão de (ACL) da lista de controle de acesso acessar essa chave de Registro, a configuração será contraproducente e habilitará chamadores parcialmente confiáveis para acessar o assembly.Isso causa uma elevação não intencional de privilégios.Você deve garantir que os direitos de ACL estão configurados para essa chave de modo que possa ser lido para todos os assemblies.

Para remover a confiança parcial de um assembly

  1. Crie uma chave na chave de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA no Registro do sistema. Use um nome de chave que contém informações de nome forte do assembly. Esse nome deve incluir o nome simples, o número de versão, a cultura (que podem ser neutros), o token de chave pública, e a versão do arquivo de assembly. Por exemplo, o seguinte é uma chave válida: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA\Microsoft.Office.Interop.Visio, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, FileVersion=11.0.3216.0.

  2. Crie um valor de DWORD com um nome de APTCA_FLAG e um valor de 1 para remover a visibilidade de confiança parcial desse assembly.