0.はじめに
インターネットが発明されて以来、外部からの攻撃、データ流出のニュースはあとを絶ちません。さらに近年普及している仮想化環境・クラウドコンピューティングではネットワーク接続における安全性がますます増加しています。
これまでのセキュリティのやり方はウィルス対策ソフトやファイアウォールなどソフトウェアによる方法がほとんどでした。一方で、攻撃の方法は多様化、高度化しており、BIOSに対して直接攻撃をかけるもの、VT-x技術を利用して利用中OSを仮想マシンにしてしまうrootkit hypervisorなどOS上のソフトウェアによる対策では防げない脅威が増加しています。
脅威を最小限にするため、スタンドアローン、外部と遮断することで安全性を保つのも一つの考え方です。しかしながら、仮想化やクラウドコンピューティングの生産性は非常に高いものであり、このような考え方が非効率的であることは明白です。
このような現状に対して、インテル トラステッド・エグゼキューション・テクノロジー(Trusted Execution Technology TXT)はOSより下位、ハードウェアレベルまで踏み込むことで信頼できる実行環境を確保するテクノロジーです。
1.トラステッド・エグゼキューション・テクノロジー(TXT)とは
1.1 目的
英語のWikipediaでわかりやすくまとめられていたので、以下の文章はそれを参考にしています。
Intel TXTの目的は下記の三点です。
a)Attestation(証明) - ハードウェアプラットフォームとOSの信頼性を証明する。
b)信頼できるOSが信頼できる環境で起動することを確認することで、信用できる(Trusted)OSであるとみなす。
c)未検証のOSでは得られないセキュリティ機能を信用できるOSに付加する。
Intel TXTは TrustedPlatform Module(TPM)と暗号化技術を使ってソフトウェアとプラットフォームの検証を行い、ローカルまたはリモートでの管理ソフトが信頼性の判断にその検証結果を使うことができる。この技術はより安全なコンピューティングを促進するためにTrusted Computing Group(TCG)により定められた業界イニシアチブに基づいている。TXTはソフトウェアによって行われるシステムやBIOSコードの破壊やプラットフォームの設定改変によって情報が奪われることを防いでいる。
つまり、TXTとはTPMという信頼できるハードウェア環境において実行されるシステム保護機能で、管理ソフトはTXTの検証結果を信頼性の検証に利用できる、といったところでしょうか。
1.2 Trusted Platform Module(TPM)
TXTの具体的な機能の前に、TXTに必要なTrustedPlatformModuleがなんなのかを見てみます。
コンピュータのマザーボードなどに装着される、セキュリティ関連の処理機能を実 装したLSIチップ。業界団体のTrusted Computing Group(TCG)が標準仕様を策定しており、パソコンの企業向けモデルなどに搭載されている。
RSA暗号の符号化・復号や、公開鍵と暗号鍵のペアの生成、SHA-1のハッシュ値の計算、デジタル署名の生成・検証などを行なうことができ、また、内蔵した不揮発メモリに生成した値などを保存しておくことができる。これらの機能により、ソフトウェアの改ざん検出、なりすましが困難な個体識別や端末認証、ハードディスクなどのストレージの安全な暗号化などを実装することができる。(IT用語辞典 e-Wordsより)
セキュリティ用の専用LSIチップということです。暗号化などを独立して行うことができるために信頼性が高いというところでしょうか。TXTはこのチップを利用するのだと考えられます。
1.3 TXTにより行われるMeasured Launch
ここではインテルのプレゼン資料を参考にTPMとTXTが行うことの概要を紹介します。
TPM、TXTは起動時に以下の順序でシステムの信頼性を検証して行きます。
各所に出てくる検証するという所での検証結果はPCRというマザーボード上にあるレジスタに保存されます。
0.PCRを全部クリアする。
1.Core Root of Trust(CRTM)と呼ばれるコードが自分自身の信頼性とBIOSの信頼性を検証する。
2.BIOSが起動する。(1によりBIOSは信頼できる)
3.BIOSが実行され、起動時にハードディスク上で最初に読み込まれるMaster Boot Record(MBR)が検証される。
4.MBRが実行される。(3によりMBRは信頼できる)
5.MBRがブートローダー(OSをディスクから読み込んで起動するプログラム)を検証する。
6.ブートローダーが起動する。(5によりブートローダーは信頼できる)
7a.ブートローダーがシステムソフトウェア(仮想マシンモニタなど)の信頼性を検証する。7b.TXTが実行されていると、SINIT AMモジュールがブートローダーとシステムソフトウェアを検証する。その値はPCRの17番、18番に保存される。
次にSINIT ACモジュールというソフトウェアにより、これまでの検証で保存されたPCR
の値をLaunch Control Policy(LCP)と比較する。LCPは既知の安全な起動順序を示すもので、ここまでの検証結果がLCPと合致すれば環境の信頼性は保証されることになる。
PCR値がLCPにおいて定義される値と合致しない場合、システムの改ざんを含めた環境の変化を示すため、エラーを報告し、修復のためにリセットを行う。
8.システムソフトウェアが起動する。
9.システムソフトウェアはアプリケーションの信頼性を検証する。
10.アプリケーションが起動する。
1から7a番まではマシンの起動時のみに行われStatic Chain of Trustと呼ばれ、BIOSの命令で行われるSRTM(Static Root of Trust Measurement)により実現されます。SRTMはTXTなしでもTPMとマザーボードで実現しています。
TXTが実現するのは8b以降のシステム起動後における信頼性を検証するDynamic Chain of Trustと呼ばれるもので、この部分はCPUの命令により行われるDRTM(Dynamic RTM)により実現します。
この考え方にもとづくと、最初に検証を行うCRTMが改ざんされていた場合、以降のプロセスの信頼性はなくなり、検証の意味がなくなります。そのため、CRTMは改ざんできないように物理的な書き込み保護機能で守られているそうです。
1.4 TXTのその他の機能
1.3では安全な環境で起動されていることを確認するMeasured Launchという機能を説明しました。TXTはMeasured Launchだけでなく、”動作している仮想マシンの挙動を別の監視用仮想マシンを使ってチェックすることで、異なるOSの脆弱性の影響を排除した「プロテクテッド・エグゼキューション」、メモリ内で不正な動きをするデータを発見したら、そのエリアを強制的にクリアする「TXT SCLEAN」など”(IT Media PC Usersより)があります。
プロテクテッドエグゼキューションは仮想マシンの対応が必要と考えられ、ハードウェアだけでなく、ソフトウェアによる安全環境確保にもTXTは使われているということがわかります。
2.まとめ
・intel TXTは既知の信頼でき環境を定義するLCPとTPMによる起動環境検証結果を比較することで、信頼できる環境においてシステムが起動していることを確認するMeasured Launchをシステム起動時に行う。
・Measured Launchに加え、「プロテクテッド・エグゼキューション」や「TXT SCLEAN」によって、システム実行中の安全を確保している。
・TXTによる保護は、マザーボードの対応、CPUの対応、ソフトウェアの対応を組み合わせることによって実現している。