После установки обновления из бюллетеня по безопасности MS14-009 (Майкрософт) для Microsoft .NET Framework маршалинг разных типов отражений может перестать выполняться через DCOM как положено. Кроме того, функциональность макросов в Microsoft Visual Studio может быть не такой, как ожидается. Чтобы узнать больше о бюллетене по безопасности MS14-009, щелкните следующий номер статьи базы знаний Майкрософт:

2916607 MS14-009: уязвимости .NET Framework могут привести к несанкционированному повышению привилегий, 11 февраля 2014 г.

Проблема

Бюллетень по безопасности MS14-009 для .NET Framework блокирует маршалинг разных типов отражений. Блокируются типы, перечисленные ниже, а также любые другие, которые основываются на них.

  • 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

Причина

Это изменение не повлияет на большинство приложений. Но если приложение должно использовать отражение через DCOM, вы можете обойти это ограничение, добавив параметр конфигурации AllowDComReflection в раздел <runtime> файла <Application>.exe.config таким образом:<?xml version ="1.0"?> <configuration> <runtime> <AllowDComReflection enabled="1"/> </runtime> </configuration> Включение этой конфигурации позволит приложению использовать отражение через DCOM.Чтобы безопасно восстановить функциональность макросов в Visual Studio, обновите один из указанных ниже файлов конфигурации приложения (в зависимости от установленной версии Visual Studio).

Версия

Папка

Имя файла

Visual Studio 2005 с пакетом обновления 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

Примечание. Если у вас установлена 32-разрядная версия, путь будет начинаться с \Program Files\.Изменение файла конфигурации одинаково для всех задействованных версий Visual Studio. Следует добавить параметр конфигурации AllowDComReflection в раздел <runtime> таким образом:<AllowDComReflection enabled="1"/> Это обновление препятствует выходу разных типов отражений из управляемого кода, но не мешает входу в него. Таким образом, в большинстве случаев достаточно установить упомянутый параметр конфигурации на стороне клиента. Этот параметр конфигурации следует использовать только для приложений, для которых он должен быть задан. Примечание. Соединение с сервером должно быть защищенным.

Обеспечение безопасности конечных точек

Поскольку ненадежные конечные точки могут привести к превышению прав при включенной конфигурации, необходимо убедиться в безопасном соединении между точкой, которая отправляет отражения, и удаленной точкой. Дополнительные сведения об общей настройке безопасности DCOM см. на следующем веб-сайте Microsoft Developer Network (MSDN):

http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms678426.aspx Сведения для пользователей корпоративных служб (COM+) см. на указанном ниже веб-сайте MSDN (на английском языке):

http://msdn.microsoft.com/ru-ru/library/ms973847.aspx#entserv_topic6 Данные сведения также применимы к:

  • Microsoft .NET Framework 1.0 с пакетом обновления 3 (SP3)

  • Microsoft .NET Framework 1.1 с пакетом обновления 1 (SP1)

  • Microsoft .NET Framework 2.0 с пакетом обновления 2 (SP2)

  • Microsoft .NET Framework 3.5

  • Microsoft .NET Framework 3.5 с пакетом обновления 1 (SP1)

  • Microsoft .NET Framework 3.5.1

  • Microsoft .NET Framework 4

  • Microsoft .NET Framework 4.5

Временное решение

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.