2017年12月1日金曜日

Shuttle SZ170R8のBIOSをupdateし、Intel MEのvulnerabilitiesに対応する

Skylake以降のIntel CPUに (明示的にdisableできない状態で)搭載されているIntel ME (Intel Management Engine)にて、remote control vulnerabilitiesが発見されて問題になっている。これがどんなものかについては以下のlinksを見てほしい:

* [Intel® Product Security Center](https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00086&languageid=en-fr)

そもそも、Intel MEとは?については以下のsiteが参考になる:

* [インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor…](https://www.slideshare.net/codeblue_jp/me-32214055)

各vendorsが対応に追われているが、11/26にShuttleも対応BIOSを公開した (cf. [Shuttle Global - SZ170R8](http://global.shuttle.com/main/productsDownload?productId=1995))ので、手持ちのSZ170R8に適用した。

手順の概要


* 起動用のUSB flash keyを作る
* SZ170R8をUSB flash keyからboot
* FreeDOSのcommand promptからflash.batを実行

以上の手順でBIOSのversionが2.07→2.08に更新される。なお、Windows usersは別途"Driver"のpageにあるChipset → ME_Intel_Z170の11.8.50.3399も適用のこと。

適用後の確認


適用後、Intelが公開している、Intel ME関連のvulnerabilityをcheckするscriptを実行して確認 (環境はDebian GNU/Linux (4.15-rc1)):

> % sudo intel_sa00086.py
> ...
> *** Intel(R) ME Information ***
> Engine: Intel(R) Management Engine
> Version: 11.8.50.3399
> SVN: 3
>
> *** Risk Assessment ***
> Based on the analysis performed by this tool: This system is not vulnerable. It has already been patched.

きちんとpatchされていると確認できた。

なお、適用前のIntel MEのversionは11.6.10.1196だった。

今後の予定


Intel MEは、主となるcomputer systemから独立した、別個の(another) computer systemであり、普段userが触れているOS (WindowsやLinux)からはそれが何をしているのか感知できない。そのような場所に今回のような外部からaccessibleなvulnerabilitiesがあり、しかもIntel MEの機能を必要としないuserが明示的にそれをdisableできないのは問題である。

そこで、Intel MEのfirmwareを無効化したBIOSの作製に挑戦してみたい。SZ170R8でBIOS記録用として用いられているWinbondのflash chipと、SOIC用のsocket adapterを注文したので、届き次第Raspberry Pi 3を使って実験する予定だ。

cf. [Neutralizing the Intel Management Engine on Librem Laptops – Purism](https://puri.sm/posts/neutralizing-intel-management-engine-on-librem-laptops/)

0 件のコメント:

コメントを投稿