概要
スペクターは、攻撃を受けているプログラムに関する情報を漏えいするために使用される可能性のある、投機的実行サイド チャネルを伴う新しいクラスのハードウェア脆弱性です。 詳細については、この Visual C++ チーム ブログの記事 とセキュリティ アドバイザリ 180002 を参照してください。
信頼境界線を超えるデータ上で動作するコードの開発者の場合は、/Qspectre スイッチを有効にしてから提供されるスペクターの緩和策を施したライブラリにリンクすることで、これらの更新プログラムをインストールしてコードをリコンパイルすることを検討してください。 /Qspectre とライブラリは スペクター バリアント 1 - CVE-2017-5753 に対する緩和策に関するサポートを提供します。
この更新プログラムの入手方法
ツール セット更新プログラム
すべてのアーキテクチャ |
スペクターの緩和策を施した VC++ ライブラリ
サポートされているすべてのシステム (x86 ベース) |
|
サポートされているすべてのシステム (x64 ベース) |
|
サポートされているすべてのシステム (ARM ベース) |
必要条件
この更新プログラムを適用するには、Visual Studio 2015 の更新プログラム 3 がインストールされている必要があります。
再起動に関する情報
この更新プログラムの適用後、コンピューターの再起動が必要になる場合があります。
置き換えに関する情報
この更新プログラムを適用しても、これまでにリリースされた更新プログラムが置き換えられることはありません。
この更新プログラムの関連情報
ツール セット更新プログラムをインストールすると、C/C++ コマンドライン オプションから /Qspectre を手動で有効にできます。
また、スペクターの緩和策を施した VC++ ライブラリ (アーキテクチャごとに 1 つの更新プログラム) をインストールしてからそれらにリンクしてください。
パスは以下のとおりです。
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) オプションを使用して新しいスペクター ライブラリにリンクしてから、新しいプログラム展開時に、これらのライブラリをロードする .exe ファイルとして緩和策を施したランタイムを同じディレクトリ内に含めることを意味します。 ランタイムの一元的に展開されたバージョン (C:\Windows\System32 or C:\Windows\SysWOW64 にあるバージョン) は緩和策を施していないバージョンです。 実行可能ファイルが同じディレクトリ内にない場合は、一元的に展開されたバージョンを選択します。
使いやすくするために、スペクター ライブラリ ディレクトリ内のほとんどのライブラリのコピーも提供しています。 ただし、それらのライブラリには緩和策が施されていません。 以下の表に、どのライブラリに緩和策が施されているかを記載しています。 その技術がアーキテクチャに対してサポートされている場合、スペクターに対する緩和策を含むファイルがすべてのアーキテクチャ間で一貫している必要があります。
-
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