Il marshalling dei tipi di riflessione potrebbe non funzionare su DCOM dopo l'installazione di un aggiornamento per la protezione dal Bollettino Microsoft 14-009 sulla sicurezza

Dopo aver installato l'aggiornamento che corrisponde al Bollettino Microsoft sulla sicurezza [MS14-009](https://technet.microsoft.com/security/bulletin/ms14-009 Microsoft .NET Framework, il marshalling dei tipi di reflection potrebbe non funzionare come previsto su DCOM. Inoltre, la funzionalità macro in Microsoft Visual Studio potrebbe non funzionare come previsto.

Per ulteriori informazioni sul bollettino MS14-009, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

2916607 MS14-009: Alcune vulnerabilità in .NET Framework possono consentire l'elevazione dei privilegi: 11 febbraio 2014

Sintomi

Bollettino sulla sicurezza [MS14-009](https://technet.microsoft.com/security/bulletin/ms14-009 .NET Framework blocca il marshalling per i tipi di riflessione. I tipi bloccati includono i seguenti e tutti i tipi derivati da questi tipi.

  • 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

Anche se la maggior parte delle applicazioni non sarà interessata da questa modifica, se un'applicazione deve usare la reflection su DCOM, è possibile ovviare a questa limitazione aggiungendo l'opzione <di configurazione AllowDComReflection nella sezione runtime> del file Application>.exe.config come indicato di < seguito:

  <?xml version ="1.0"?>
  <Configurazione>
      <Runtime>
          <AllowDComReflection enabled="1"/>
      </runtime>
  </configuration>

L'impostazione di questa opzione di configurazione consentirà a un'applicazione di utilizzare la reflection su DCOM.

Per ripristinare in modo sicuro la funzionalità delle macro di Visual Studio, aggiornare uno dei seguenti file di configurazione dell'applicazione, a seconda della versione di Visual Studio installata nel sistema.

Versione Cartella Nome file
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

Nota Per le installazioni a 32 bit, il percorso sarà in \Program Files\.

La modifica del file di configurazione è uguale per tutte le versioni interessate di Visual Studio. Aggiungere l'opzione AllowDComReflection nella sezione runtime <> come indicato di seguito:

<AllowDComReflection enabled="1"/>
Questo aggiornamento impedisce ai tipi di reflection di lasciare il codice gestito, ma non di immettere codice gestito. Pertanto, nella maggior parte dei casi, è necessario impostare l'opzione di configurazione solo sul lato client. È necessario utilizzare questo switch di configurazione solo per le applicazioni per le quali è necessario impostare lo switch. 

Nota: è comunque necessario proteggere la connessione al server.

Protezione degli endpoint

Poiché gli endpoint non attendibili potrebbero essere in grado di elevare le proprie autorizzazioni se viene usato il parametro di configurazione, è necessario assicurarsi che l'endpoint che invia i tipi di reflection possa considerare attendibile la connessione all'endpoint remoto.

Per informazioni sulla configurazione generale della sicurezza di DCOM, visitare il seguente sito Web Microsoft Developer Network (MSDN):

http://msdn.microsoft.com/en-us/library/windows/desktop/ms678426.aspx
            
Per informazioni per gli utenti di Enterprise Services (COM+), visitare il seguente sito Web MSDN:

http://msdn.microsoft.com/en-us/library/ms973847.aspx#entserv_topic6
            
Le informazioni contenute in questo articolo si applicano 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

Soluzione alternativa