摘要
Spectre 是涉及理論式執行端通道的新等級硬體弱點,攻擊者可能會用來洩漏遭到攻擊之程式的相關資訊。 如需詳細資訊,請參閱這個 Visual C++ 團隊部落格文章 (英文) 和資訊安全諮詢 180002。
如果您是開發人員,並且您的程式碼會在信任邊界間的資料上運作,應考慮安裝這些更新,並且啟用 /Qspectre 參數,然後連結到所提供、可防範 Spectre 的程式庫,以重新編譯您的程式碼。 /Qspectre 和程式庫會針對 Spectre Variant 1 - CVE-2017-5753 提供緩和措施的協助。
如何取得此更新
工具組更新
適用於所有架構 |
防範 Spectre 的 VC++ 程式庫
適用於所有支援的 x86 系統 |
|
適用於所有支援的 x64 系統 |
|
適用於所有支援的 ARM 型系統 |
先決條件
若要套用此更新,您必須已安裝 Update 3 for Visual Studio 2015。
重新啟動資訊
套用這個更新之後,您必須重新啟動電腦。
取代資訊
此更新不會取代任何先前發行的更新。
此更新的其他相關資訊
當您安裝工具組更新時,可以從 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 執行階段程式庫可轉散發套件的內容並未修改。 「應用程式本機部署」是指,使用 Multithreaded DLL (/MD 或 /MDd) 選項連結到新的 Spectre 程式庫,然後在部署新程式時,在與 .exe 檔案相同的目錄加入防範的執行階段。 集中部署的執行階段版本 (位於 C:\Windows\System32 或 C:\Windows\SysWOW64 的版本) 是未防範的版本。 如果可執行檔不在相同的目錄,則系統會挑選集中部署的執行階段版本。
為了方便使用,我們也會在 Spectre 程式庫目錄中提供大多數程式庫的副本。 然而,這些副本並非全部可防範 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