新年早々のセキュリティ対応

1月 7, 2018

さて、新年1/3にGoogleのProjectZeroから発表された大規模なセキュリティ問題。MeltdownをSpectre。その後続々と詳細があきらかになってきました。

CPU内の「投機的実行」と呼ばれている機能、他の言い方をするとアウトオーダー実行という機能です。一般的に、CPUは実行速度向上の為に、多段パイプライン構造を採用しておりますが、分岐する場合、予測が失敗するとパイプラインと詰め直しという無駄な作業を行います。それを防ぐために、分岐した場合の両方のパターンを先に実行しておきます(未来の予測実行)。で、どっちかに分岐が確定した場合、実行されない結果を切り捨てて実行を進めていきます。この際、パイプラインと別にバッファを設けておき、こちらでインストラクションを実行しておきます。また、命令毎に実行クロックやデータの読み出しクロックが異なるため、現実処理の実行を進めている待ち時間や、空いている別のコアでこの予測実行を進めておきます。この予測実行用バッファ内で、プロセスが分離されずに実行が進められるため、CPUキャッシュの読み出しや、書き込みが実行てきてしまい、悪意があるコードが混入していた場合、厄介な事になる、ということ。
そしてJavaScriptでも攻撃が出来てしまうということは、ブラウザでも実行が出来てしまうということで、非常に厄介です。なので、対策としては

  • ブラウザの更新
  • OSカーネルの更新

がとりあえずの対策と言うことになります。

  • カーネルメモリの参照を、ユーザーランドアプリケーションから隔離するという対策になります。(Meltdown)
  • 各ユーザーランドプロセスメモリアクセスを分離するという対策が必要ですが、こちらはまだ対策が進んでいないようです(Spectre)

さて、1/7現在、取れる対策は以下です。

  1. FirefoxやChromeなどのブラウザを最新バージョンにアップデートする
  2. Windows(10)はWindowsUpdateを適用(KB4056892)
  3. Apple製品はiOS 11.2やmacOS 10.13.2、tvOS 11.2にアップデート
  4. Androidはアップデートが降ってくるのを待つ。
  5. Linuxは、カーネル4.14.11以降にアップデートし、KPTIパッチ(CONFIG_PAGE_TABLE_ISOLATEオプション)を有効にしてビルドし直して再起動することでOK

とりあえずMeltdownについては抑えられる模様です。

うちも、サーバ2機、クライアント2台の更新を終えました。暫くはパッチリリースが続きそうですね。忙しくなりそうだなぁ…

Leave Your Comment

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード