摘要
Spectre 是一类新的涉及推理执行侧信道的硬件漏洞,可用于泄漏有关被攻击程序的信息。 有关更多信息,请参阅此 Visual C++ 团队博客文章和安全通报 180002。
如果你是开发人员,你的代码对跨信任边界的数据进行操作,则应考虑安装这些更新并通过启用 /Qspectre 开关重新编译代码,然后链接到提供的 Spectre 缓解的库。 /Qspectre 和库为 Spectre 变体 1 - CVE-2017-5753 提供缓解帮助。
如何获取此更新
工具集更新
对于所有体系结构 |
Spectre 缓解的 VC++ 库
对于所有受支持的基于 x86 的系统 |
|
对于所有受支持的基于 x64 的系统 |
|
对于所有受支持的基于 ARM 的系统 |
先决条件
若要应用此更新,必须安装 Visual Studio 2015 Update 3。
重启信息
应用此更新后可能需要重启计算机。
替换信息
此更新不会替换任何以前发布的更新。
有关此更新的更多信息
安装工具集更新时,可以从 C/C++ 命令行选项手动启用 /Qspectre。
还应安装 Spectre 缓解的 VC++ 库(每个体系结构一个更新),然后手动链接到它们。
路径如下:
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
我们仅提供静态链接支持和应用程序本地部署。 未修改 Visual C++ 2015 Runtime Libraries Redistributable 的内容。 应用程序本地部署意味着使用多线程 DLL(/MD 或 /MDd)选项链接到新的 Spectre 库,然后在部署新程序时,将缓解的运行时包含在与加载它们的 .exe 文件相同的目录中。 集中部署的运行时版本(C:\Windows\System32 或 C:\Windows\SysWOW64 中的版本)是非缓解版本。 如果可执行文件不在同一目录中,则会选取集中部署的运行时版本。
为了便于使用,我们还提供了 Specter 库目录中大多数库的副本。 但是,它们并非全部是 Spectre 缓解的版本。 下表指定了哪些库已缓解。 另请注意,如果该体系结构支持该技术,则具有 Spectre 缓解的文件应在所有体系结构中保持一致。
-
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