Menyusun tipe refleksi mungkin tidak berfungsi melalui DCOM setelah Anda menginstal pembaruan keamanan dari buletin keamanan MS14-009

Setelah Anda menginstal pembaruan yang sesuai dengan buletin keamanan Microsoft MS14-009 untuk Microsoft .NET Framework, penyusunan jenis refleksi mungkin tidak berfungsi seperti yang diharapkan melalui DCOM. Selain itu, fungsionalitas makro di Microsoft Visual Studio mungkin tidak berfungsi seperti yang diharapkan.

Untuk informasi selengkapnya tentang MS14-009, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

2916607 MS14-009: Kerentanan dalam .NET Framework dapat memungkinkan peningkatan hak istimewa: 11 Februari 2014

Gejala

Buletin keamanan MS14-009 untuk .NET Framework memblokir penyusunan untuk tipe refleksi. Tipe yang diblokir antara lain hal-hal berikut ini dan juga tipe apa pun yang berasal dari jenis-jenis ini.

  • Sistem.Tipe
  • Sistem.Refleksi.Perakitan
  • System.Reflection.MemberInfo
  • System.Reflection.Module
  • System.Reflection.MethodBody
  • System.Reflection.ParameterInfo
  • System.Reflection.TypeInfo
  • System.Reflection.MethodInfo
  • System.Reflection.FieldInfo

Penyebab

Meskipun sebagian besar aplikasi tidak akan terpengaruh oleh perubahan ini, jika aplikasi harus menggunakan refleksi melalui DCOM, Anda dapat mengatasi batasan tersebut dengan menambahkan sakelar konfigurasi AllowDComReflection di <bagian runtime> file Application>.exe.config Anda < sebagai berikut:

  <?xml version ="1.0"?>
  <konfigurasi>
      <durasi>
          <AllowDComReflection enabled="1"/>
      </durasi>
  </konfigurasi>

Mengatur sakelar konfigurasi ini akan memungkinkan aplikasi menggunakan refleksi melalui DCOM.

Untuk memulihkan fungsionalitas makro Visual Studio dengan aman, perbarui salah satu file konfigurasi aplikasi berikut, tergantung pada versi Visual Studio yang diinstal pada sistem.

Versi Folder Nama file
Visual Studio 2005 Paket Layanan 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

Catatan: Untuk penginstalan 32-bit, jalur akan berada di bawah \Program Files\.

Modifikasi file konfigurasi sama untuk semua versi Visual Studio yang terpengaruh. Anda harus menambahkan sakelar AllowDComReflection di <bagian runtime> sebagai berikut:

<AllowDComReflection enabled="1"/>
Pembaruan ini memblokir tipe refleksi agar tidak meninggalkan kode terkelola, tetapi tidak memasukkan kode terkelola. Oleh karena itu, dalam kebanyakan kasus, Anda hanya perlu mengatur sakelar konfigurasi di sisi klien. Anda harus menggunakan sakelar konfigurasi ini hanya untuk aplikasi yang sakelarnya harus diatur. 

Catatan: Anda tetap harus mengamankan koneksi ke server.

Mengamankan titik akhir

Karena titik akhir yang tidak tepercaya mungkin dapat meningkatkan izinnya jika sakelar konfigurasi digunakan, Anda harus memastikan bahwa titik akhir yang mengirimkan tipe refleksi dapat memercayai koneksi ke titik akhir jarak jauh.

Untuk informasi tentang konfigurasi keamanan DCOM umum, buka situs web Jaringan Pengembang Microsoft (MSDN) berikut:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms678426.aspx
            
Untuk informasi bagi pengguna Enterprise Services (COM+), kunjungi situs web MSDN berikut:

http://msdn.microsoft.com/en-us/library/ms973847.aspx#entserv_topic6
            
Informasi dalam artikel ini berlaku untuk:

  • 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

Solusi