Após instalar a atualização que corresponde ao boletim de segurança da Microsoft MS14-009 para o Microsoft .NET Framework, o marshaling de tipos de reflexão não funciona como esperado via DCOM. Além disso, a funcionalidade de macro no Microsoft Visual Studio não funciona como esperado.
Para obter mais informações sobre o MS14-009, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:
2916607 MS14-009: Vulnerabilidades no .NET Framework pode permitir a elevação de privilégio: 11.02.14
Sintomas
O boletim de segurança MS14-009 para o .NET Framework bloqueia o marshaling para tipos de reflexão. Os tipos que são bloqueados incluem os seguintes, além de todos os tipos derivados deles.
-
System.Type
-
System.Reflection.Assembly
-
System.Reflection.MemberInfo
-
System.Reflection.Module
-
System.Reflection.MethodBody
-
System.Reflection.ParameterInfo
-
System.Reflection.TypeInfo
-
System.Reflection.MethodInfo
-
System.Reflection.FieldInfo
Causa
Embora a maioria dos aplicativos não serão afetados por esta mudança, se um aplicativo tiver que usar reflexão via DCOM, você pode contornar a limitação adicionando a opção de configuração AllowDComReflection na seção <tempo de execução> do seu arquivo <Application>.exe.conf conforme a seguir:
<?xml version ="1.0"?> <configuration> <runtime> <AllowDComReflection enabled="1"/> </runtime> </configuration>
Definir esta opção de configuração permitirá que um aplicativo use a reflexão via DCOM.
Para restaurar com segurança a funcionalidade das macros do Visual Studio, atualizar um dos seguintes arquivos de configuração do aplicativo a seguir, dependendo da versão do Visual Studio que está instalada no sistema.
Version |
Pasta |
Nome do arquivo |
---|---|---|
Visual Studio 2005 Service Pack 1 (SP1) |
\Program Files (x86)\Common Files\Microsoft Shared\VSA\8.0\VsaEnv |
Vsmsvr.exe.config |
Visual Studio 2008 |
\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv |
Vsmsvr.exe.config |
Visual Studio 2010 |
\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv |
Vsmsvr10.exe.config |
Observação Para as instalações de 32 bits, o caminho estará em \Program Files\.
A modificação do arquivo de configuração é a mesma para todas as versões afetadas do Visual Studio. Você deve adicionar a opção AllowDComReflection na seção <tempo de execução> conforme a seguir:
<AllowDComReflection enabled="1"/>
Essa atualização impede que tipos de reflexão deixem código gerenciado, mas não impede que eles insiram código gerenciado. Portanto, na maioria dos casos, você só precisa definir a opção de configuração no lado do cliente. Você deve usar esta opção de configuração somente para estes aplicativos para o qual a opção tem que ser configurada.
Observação Você ainda deve proteger a conexão com o servidor.
Protegendo os pontos de extremidade
Como pontos de extremidade não confiáveis podem elevar suas permissões, se a opção de configuração for usada, você deverá se certificar de que o ponto de extremidade que está enviando tipos de reflexão possa confiar na conexão com o ponto de extremidade remoto.
Para obter mais informações sobre a configuração de segurança do DCOM geral, vá para o seguinte site do Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/pt-br/library/windows/desktop/ms678426.aspx
Para obter informações referentes a usuários do Enterprise Services (COM+), acesse o seguinte site do MSDN:
http://msdn.microsoft.com/pt-br/library/ms973847.aspx#entserv_topic6
As informações neste artigo aplicam-se a:
-
Microsoft .NET Framework 1.0 SP3
-
Microsoft .NET Framework 1.1 SP1
-
Microsoft .NET Framework 2.0 SP2
-
Microsoft .NET Framework 3.5
-
Microsoft .NET Framework 3.5 SP1
-
Microsoft .NET Framework 3.5.1
-
Microsoft .NET Framework 4
-
Microsoft .NET Framework 4.5