新年そうそう大変です。


 ここ10年間に製造されたIntelのプロセッサに、設計上の欠陥が見つかりました。最悪の場合、パスワードやログインキー、キャッシュファイルなどが格納されたカーネルメモリーの内容を読み取られる恐れがあるとのことなのですが、Intel x86ハードウェアに存在する欠陥のため、マイクロコードアップデートでは対応不可能で、各OSがソフトウェアレベルで修正をかけるか、バグのない新たなプロセッサを導入する必要があるとのこと。

 このバグは、データベースアプリケーションからウェブブラウザのJavaScriptのようなものまで含めた普通のユーザープログラムでも、保護されたカーネルメモリーをある程度まで認識できるというもの。

 カーネルメモリーにはパスワード、ログインキー、ディスクからキャッシュされたファイルなど、秘密にしておくべき情報も格納されているため、通常はユーザープロセスやユーザープログラムからは隠された状態になっていますが、欠陥が存在することにより、ブラウザで実行中のJavaScriptや共有パブリッククラウドサーバー上で実行されているマルウェアによって情報を盗み見られる恐れが出てきます。

 対策の1つとして、カーネル・ページ・テーブル・アイソレーションを利用して、カーネルメモリーをユーザープロセスから完全に分離する方法が挙げられていますが、この方法だとIntelのプロセッサを搭載したPCの動作速度は落ちることになります。

(記事を一部引用しています)

 お正月というのにPCに関する大きな話題が入ってきました。これだけ見てもなんのこっちゃだと思いますので、少し解説します。
 コンピュータのCPUにはカーネルモードとユーザモードという二つのモードがあります。ユーザモードは通常のアプリケーションが動作するモードで、カーネルモードはWindowsのようなOSの基本機能を実行するモードと考えればわかりがいいと思います。
 一般的なアプリケーションは基本的にユーザモードで動作しユーザモードアプリケーション用のメモリ空間を提供され、そこで実行されます。
 OSの基本機能であるファイルの読み書き、ネットとの通信など基本的な機能はカーネルモードで動作しカーネルモードに割り当てられたメモリ空間で実行されます。
 ユーザモードで動作しているアプリケーションがファイルの読み書きをするときには、Windows APIを利用して書き込みをするわけですが、そのAPIを利用するとCPUのモードがカーネルモードに切り替わり、カーネルがデータをファイルに書き込むような動作をすることになります。
 このようにWindows APIを通じてカーネルに関する機能を利用することでユーザモードとカーネルモードをうまく分離することができるようになるという仕組みです。ソフトウェアがクラッシュしてもOSそのものが落ちることがないのは、このような機能をうまく利用しています。
 このとき大事なのは、ユーザモードで動作する他のアプリケーションのユーザモードアプリケーション用のメモリを読み込んだり書き込んだりすることができないことです。もちろんカーネル用のメモリについても読み込みや書き込みをすることができません。これによってアプリケーションのデータの秘密が保全されたり、カーネルが扱うデータの秘密が保全されることになる・・・はずでした。
 今回の脆弱性はOSの重要部分を扱うカーネルが使用するメモリ空間を見られてしまうという問題が発生しまったということです。OSの基本部分を取り扱うメモリですので、様々なパスワード、公開鍵暗号の秘密鍵などを取り扱う可能性高い場所ですので、それらのデータが流出してしまう可能性が考えられるということのようですね。
 今回の解決法の一つとしてカーネルページテーブルアイソレーションという方法が解決法になると言われていますが、これは恐らくユーザモードで動作しようとするたびに、カーネルが動作しているメモリ空間を別の場所の一時的に退避させ、ユーザモードアプリケーションからデータを見られなくする方法だと考えます。これですと、カーネルモードに移行するたびにデータを元の位置に戻し、ユーザモードに移行するたびにデータを別の場所に退避させるということが必要になるため30%もの速度低下になってしまうものと考えられます。
 今回のことはインテルにも一大事ですが、AmazonやGoogleなどにも致命的になりかねない可能性があります。AmazonやGoogleはクラウドをユーザに提供していますが、最近は一つの大きなサーバに仮想環境を搭載し複数のOSを走らせていることがほとんどです。今回の脆弱性を利用した場合、異なる企業の情報を読み書きできてしまう可能性があるので、秘密の漏洩に対応しなければならないクラウド提供会社としては、今回の問題に必ず対応しなければなりません。ということは、彼らの所有しているサーバ資源が30%目減りすることになります。恐らく彼らは緊急的にサーバを増設しなければならないはずで、これは非常に大きな負担になるだろうということになりそうです。
 最後にですが、いま問題があると言われているCPUや環境についてまとめておきます。
 CPUはここ10年以内に製造された製品が仮想メモリを実装しているCPUとのことです。ここ10年というとCore i3 i5 i7などが該当しますが、どこまでの製品が該当するかまで詳しくはわかっていません。
 環境はハードウェアに起因するものなのでOSには無関係です。Windows、Linux、Mac OSなどにも影響があります。
 WindowsやLinuxはパッチを提供するようですが、これによってアプリケーションの実行速度が30%ほど低下する可能性があるようです。
 インテルの対応は今のところ何も発表なく、AMDなどの他社のCPUには関係がないようです。
 というわけで、ここ数日でintel製のPCを購入しようとしている人はいったんキャンセルしたほうがいいかもしれません。詳細は本記事下部の記事元リンクからどうぞ。

(記事元)http://gigazine.net/news/20180103-intel-processor-design-flaw/