====== 03 Meltdown Spectre ====== 今更、プロセッサ(CPU)に起因する脆弱性Meltdown Spectreのメモ https://www.fujitsu.com/jp/solutions/business-technology/security/secure/column/201802-1/index.html kernel http://ftp.riken.jp/Linux/cern/centos/7.1/centosplus/x86_64/Packages/ ===== ■脆弱性概要 ===== ・Meltdown (CVE-2017-5754) ・Spectre (CVE-2017-5715, CVE-2017-5753) ==== Spectre(スペクター) ==== あるプロセスの投機的実行で、読まれてはいけない情報をCPUのキャッシュメモリに読み込むように仕向ける 別プロセスでキャッシュの情報を参照することで、読まれてはいけない情報を読むことが可能となる ==== Meltdown(メルトダウン) ==== ある程度時間がかかる繰り返し処理などで、一定時間後アクセスが禁止されている領域をアクセスするような処理を書いておく 例外が発生するであろう処理の後に、アクセス履歴をCPUのキャッシュ内に残すような処理を書いておく アクセスが禁止されている領域にアクセスすると、例外が発生して処理が中断される アウトオブオーダー実行により、例外発生前に2.の処理が実行される 4.のCPUのキャッシュを読み取ることにより、物理メモリのどの場所にアクセスが禁止されている情報があるかを判断して、参照することが可能となる ===== ■詳細情報ページ ===== https://meltdownattack.com/ http://jvn.jp/vu/JVNVU93823979/ ===== ■対策方法 ===== [[https://qiita.com/1Kano/items/d07d8272a03bc38edd66]] Linuxカーネルを、脆弱性を解決したバージョンにアップデート ◇Red Hat Enterprise Linux及びCentOSの場合、以下のバージョンが修正後のバージョンとなります。 [Red Hat Enterprise Linux 7 / CentOS 7] kernel-3.10.0-693.11.6.el7 https://access.redhat.com/errata/RHSA-2018:0007 [Red Hat Enterprise Linux 6 / CentOS 6 ] kernel-2.6.32-696.18.7.el6 https://access.redhat.com/errata/RHSA-2018:0008 # cat /etc/default/grub GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernel=auto vconsole.font=latarcyrheb-sun16 spectre_v2=retpoline nopti" ===== Windows ===== 18272以降であれば、[[https://techcommunity.microsoft.com/t5/windows-kernel-internals/mitigating-spectre-variant-2-with-retpoline-on-windows/ba-p/295618|KB4482887]]でRetpolineで対応可能。 Windows Insider Builds (builds 18272 or newer, x64-only). WindowsのSpectre, Meltdown軽減パッチを無効化する方法 https://kagasu.hatenablog.com/entry/2019/02/11/182533 {{tag>windows cpu}}