Resumen
Spectre es una nueva clase de vulnerabilidades de hardware que implican la ejecución especulativa de los canales laterales que pueden utilizarse para divulgar información sobre el programa que se encuentra bajo ataque. Para obtener más información, consulte este artículo del blog del equipo de Visual C++ y el aviso de seguridad 180002.
Si es un desarrollador cuyo código opera sobre datos que sobrepasan un límite de confianza, debe considerar instalar estas actualizaciones y compilar su código mediante la habilitación del conmutador de /Qspectre y luego la vinculación con las bibliotecas provistas que mitiga Spectre. /Qspectre y las bibliotecas proveen asistencia de mitigación para la variante 1 de Spectre - CVE-2017-5753.
Cómo obtener esta actualización
Actualización del conjunto de herramientas
Para todas las arquitecturas |
Bibliotecas de VC++ que mitiga Spectre
Para todos los sistemas compatibles basados en x86 |
|
Para todos los sistemas compatibles basados en x64 |
|
Para todos los sistemas compatibles basados en ARM |
Requisitos previos
Para aplicar esta actualización, debe tener instalada la Actualización 3 de Visual Studio 2015.
Información de reinicio
No es necesario reiniciar el equipo una vez aplicada esta actualización.
Información de reemplazo
Esta actualización no sustituye a ninguna otra publicada anteriormente.
Información adicional sobre esta actualización
Cuando se instala la actualización del conjunto de herramientas, se puede habilitar /Qspectre de forma manual desde las opciones de la línea de comandos de C/C++.
También se debería instalar las bibliotecas de VC++ que mitiga Spectre (una actualización por arquitectura) y luego vincularse a ellas de forma manual.
Las rutas son las siguientes:
x86: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre
x64: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre\amd64
ARM: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre\arm
Proporcionamos soporte de vinculación estática e implementación local de aplicación únicamente. No se modificaron los contenidos de las bibliotecas de ejecución redistribuibles de Visual C++ 2015. La implementación local de aplicación significa que se vincula con las bibliotecas nuevas de Spectre mediante la opción de DDL multiproceso (/MD o /MDd) y luego, cuando implementa el programa nuevo, puede incluir las ejecuciones mitigadas en el mismo directorio, a medida que el archivo .exe las carga. La versión de la ejecución que se implementa de manera central (la que se encuentra en C:\Windows\System32 o C:\Windows\SysWOW64) es la versión no mitigada. Si el archivo ejecutable no se encuentra en el mismo directorio, se recoge la versión de la ejecución que se implementa de manera central.
Para su facilidad de uso, también proveemos copias de la mayoría de las bibliotecas en los directorios de bibliotecas de Spectre. Sin embargo, no todas son las que mitiga Spectre. En la siguiente tabla, se especifican las bibliotecas que se mitigan. También tenga en cuenta que los archivos que tienen mitigaciones de Spectre deben ser consistentes en todas las arquitecturas, si la arquitectura admite la tecnología.
-
binmode.obj
-
chkstk.obj
-
commode.obj
-
comsupp.lib
-
comsuppw.lib
-
concrt.lib
-
delayimp.lib
-
invalidcontinue.obj
-
iso_stdio_wide_specifiers.lib
-
legacy_stdio_definitions.lib
-
legacy_stdio_wide_specifiers.lib
-
libcmt.lib
-
libconcrt.lib
-
libconcrt1.lib
-
libcpmt.lib
-
libcpmt1.lib
-
libvcruntime.lib
-
loosefpmath.obj
-
msvcmrt.lib
-
msvcprt.lib
-
msvcrt.lib
-
newmode.obj
-
noarg.obj
-
noenv.obj
-
notelemetry.obj
-
nothrownew.obj
-
oldnames.lib
-
ptrustm.lib
-
setargv.obj
-
threadlocale.obj
-
vcamp.lib
-
vccorlib.lib
-
vcomp.lib
-
vcruntime.lib
-
wsetargv.obj
-
onecore\iso_stdio_wide_specifiers.lib
-
onecore\legacy_stdio_definitions.lib
-
onecore\legacy_stdio_wide_specifiers.lib
-
onecore\libcmt.lib
-
onecore\libcpmt.lib
-
onecore\libcpmt1.lib
-
onecore\libvcruntime.lib
-
onecore\msvcprt.lib
-
onecore\msvcrt.lib
-
onecore\oldnames.lib
-
onecore\vccorlib.lib
-
onecore\vcomp.lib
-
onecore\vcruntime.lib
-
concrt140.dll
-
mfc140chs.dll
-
mfc140cht.dll
-
mfc140deu.dll
-
mfc140enu.dll
-
mfc140esn.dll
-
mfc140fra.dll
-
mfc140ita.dll
-
mfc140jpn.dll
-
mfc140kor.dll
-
mfc140rus.dll
-
mfc140u.dll
-
mfcm140u.dll
-
Microsoft.VisualC.STLCLR.dll
-
msvcp140.dll
-
vcamp140.dll
-
vccorlib140.dll
-
vcruntime140.dll
-
onecore\concrt140.dll
-
onecore\msvcp140.dll
-
onecore\vccorlib140.dll
-
onecore\vcruntime140.dll