概要
- IntelのCPUに重大な脆弱性(Intel SA-00086)が見つかった (北米時間2017/11/20公開情報)
- 各ベンダからwindows用のセキュリティパッチツールが公開されている
- Linux(debian)しか入っていない自作PCで,このパッチを適用したので,参考情報としてここに共有する
- あくまで参考情報なので,自己責任で実行していただきたい
追記
DamashiGamiさんのコメントによれば,インストールメディアで代用出来るようだ.
Windows8のDVDを持っていたので,実際に試してみた.
起動して,DVDで起動して言語選択画面が表示された後「Shift+F10」を押すとコマンドプロンプトが出た.
その後は,C:
コマンドでUSBメディアに移動し,記事の中にあるように,
drvload heci.inf
とFWUpdLcl.exe -F ME.bin
をすればアップデートできた.
背景
2017/11/20にIntelのCPUに重大な脆弱性(Intel SA-00086)が見つかった.
詳細はIntelによる公式情報を読んていただくとして,手っ取り早く自分のマシンで対応が必要か調べるには
Intel-SA-00086 Detection Toolを実行すれば良い.
SA00086_Linux.tar.gz
をダウンロードし,sudo ./intel_sa00086.py
とし,
Detection Error: This system may be vulnerable.
が表示されたならば対応が必要だ.
私のマシンでは表示されたので,対応が必要となった.
Windows PEを利用したパッチ
私が使っているマシンのマザーボードはASUSのH170-PROだ.
ASUSから対応ツール(MEUpdateTool)が公開されており,Windowsマシンならば,zipマシンを解凍し出てくるexeファイルを実行するだけでよいみたいだ.
しかし,私はOSにDebianを使っている.そう一筋縄ではいかない.
わざわざWindows OSを入れて実行するのは面倒なので,なんとか簡便に済まないかを調べた所,Windows PEを使う方法があるらしい.
ここに書かれている方法をアレンジして実行すれば良い.
H170-PROでのパッチ
必要となるものは
- USBメモリ
- 公式からダウンロードしたisoファイルかWindows 7 以降のインストールメディア (32bit用)
- Asus公式サイトからダウンロードしたMEUpdateTool (zipファイル)
- Intel公式サイトからダウンロードしたIntel Management Engine Driver (zipファイル)
- aptで入るwimtools (mkwinpeimgコマンド用)
- コマンドラインの操作技術
- USBにイメージを焼くためのRufusを実行できるwindowsマシン
- UNetbootinを使えばLinux上でもUSBにイメージを焼け,windowsマシンは不要かもしれない(未検証)
となる.
これらを使って,パッチファイルを実行するためのミニWindows環境をUSBメモリ内に構築する.
事前にWindows PEについて知っておくとスムーズに事が進む.
手順は次のとおりだ.
- isoファイルかCDを用意し,マウントする
- 以下では
/path/to/mounted/windows
にマウントしたと仮定する
- 以下では
- MEUpdateToolのzipファイルをunzipする
- 以下では
~/me_update_tool
に解凍したと仮定する
- 以下では
- Intel Management Engine Driverのzipファイルをunzipし,
WINDOWSDriverPackages/MEI
を~/me_update_tool
にコピーする -
mkwinpeimg
コマンドでimgファイルを作成するmkwinpeimg -W /path/to/mounted/windows -O ~/me_update_tool intel-patch.img
- できたimgファイルをUSBメモリに焼く
- 元記事ではddコマンドで良いと書いてあるが,それで焼くと,ファイルシステムが
ISO 9660
になってしまい,USBブートに失敗した - イメージをwindowsマシンにコピーし,Rufusを使ってUSBメモリに焼いた
- 元記事ではddコマンドで良いと書いてあるが,それで焼くと,ファイルシステムが
- マシンにUSBメモリを刺し,再起動する
- F2キーを押し,BIOS設定画面に入り,USBメモリから起動する
- コマンドプロンプトが表示されるので,以下のコマンドを実行する
cd \
cd MEI
drvload heci.inf
cd \
cd FW
FWUpdLcl.exe -F ME.bin
これで,最後まで処理が進めば,対処完了だ.
exit
コマンドで再起動がかかるので,その後USBを抜き,あとは普通にLinuxを起動すれば良い.
Linux起動後,sudo ./intel_sa00086.py
とし,This system is not vulnerable.
と表示されれば,無事終わっていることが確認できる.
なお,この記事は一部記憶を頼りに書いているので,適宜補足してもらえると助かります
余談
あまりネット上に情報がなかったので,色々とハマってしまった.
- 最初64bit用OSを使ってしまい,exeが
必要なサブシステムがありません
というエラーで動かなかった - ddでUSBメモリに焼いたものでは,Windows PEが起動しなかった.ファイルシステムが
ISO 9660
ではなくNTFS
でないとダメみたいだ -
drvload heci.inf
をしないと,FWUpdLcl.exe
がうまく動かない - heci.infファイルだけコピーするとうまくいかない.他のファイルも必要.