Oracle Solaris のベリファイドブートによって、システムのブートプロセスがセキュリティー保護されます。この機能は、次のような脅威からシステムを保護します。
カーネルモジュールの破損
正当なカーネルモジュールになりすました悪意のあるプログラム (トロイの木馬ウイルス、スパイウェア、ルートキットなど) の挿入または置換
未承認のサードパーティーカーネルモジュールのインストール
Oracle Solaris では、ベリファイドブートは、システムのみではなく Oracle Solaris カーネルゾーンでも構成可能です。詳細は、Oracle Solaris カーネルゾーンの作成と使用 の ベリファイドブートを使用した Oracle Solaris カーネルゾーンのセキュリティー保護を参照してください。
ベリファイドブートは LDOMS でも構成できます。詳細は、『Oracle VM Server for SPARC 3.4 管理ガイド』の「ベリファイドブートの使用」を参照してください。
Oracle Solaris では、ブート検証は elfsign の署名または鍵を使用して実行されます。Oracle Solaris カーネルモジュールは、工場でこれらの鍵を使用して署名されます。ファイル形式から、これらのモジュールは ELF オブジェクトとも呼ばれます。署名は、オブジェクトファイルで選択した ELF レコードの SHA-256 チェックサムを使用して作成されます。SHA-256 チェックサムは、RSA-2048 の非公開鍵と公開鍵のペアを使用して署名されます。公開鍵は /etc/certs ファイルで配布されていますが、非公開鍵は配布されていません。
すべての鍵は、システムのブート前環境に格納されています。これは、Oracle Solaris をブートする前に実行されるソフトウェアまたはファームウェアです。このファームウェアは、platform/.../unix をロードおよびブートします。
ブート前環境は、次のようにシステムのカテゴリごとに異なります。
Oracle Integrated Lights Out Manager (ILOM) のベリファイドブートがサポートされている SPARC システム - 鍵および構成設定は ILOM に格納されます。
Oracle ILOM はオペレーティングシステムのファイルシステム外部にあるため、ベリファイドブートの構成は、オペレーティングシステムのユーザー (管理者 (root) 特権を持つユーザーを含む) による改ざんから保護されます。したがって、このシステムカテゴリでは、ベリファイドブートがよりセキュアです。
ベリファイドブートの構成が承認なしで変更されることを回避するには、ILOM へのアクセスがセキュアであることを確認する必要があります。ILOM のセキュリティー保護の詳細は、http://www.oracle.com/goto/ILOM/docs にあるドキュメントを参照してください。
SPARC M5 シリーズ、SPARC M6 シリーズ、および SPARC T5 シリーズ - 構成設定はシステムの ILOM に格納されます。SPARC ファームウェアが構成情報を Oracle Solaris に送信します。
Fujitsu M10 システム - 構成設定は、システムの XSCF に格納されます。Fujitsu M10 XSCF ファームウェアは、ベリファイドブートや証明書の有効化に関するポリシーなどの構成情報を Oracle Solaris に提供します。OpenBoot (OBP) は、Oracle Solaris システムをブートする前にこの構成情報を読み取ります。
ベリファイドブートの構成の詳細は、『Fujitsu M10/SPARC M10 システム システム運用・管理ガイド』を参照してください。Fujitsu M10 システムのベリファイドブートをサポートする XCP ファームウェアバージョンについては、最新バージョンの Fujitsu M10/SPARC M10 システムのプロダクトノートを参照してください。
ベリファイドブートによって、Oracle Solaris カーネルモジュールの elfsign 署名の検証が自動化されます。管理者はベリファイドブートを使用することで、システムのリセットからブートプロセスの完了までのブートプロセスに、検証可能な信頼チェーンを作成できます。
システムのブート中に、ブートプロセスで開始されたコードの各ブロックで、次にロードする必要があるブロックが検証されます。検証およびロードのシーケンスは、最後のカーネルモジュールがロードされるまで続行されます。
あとでシステムで電源の再投入が実行されるときに、新しい検証シーケンスが開始されます。管理者は、検証に失敗したときに適切なアクションが行われるように、ベリファイドブートを構成することもできます。
SPARC での Oracle Solaris のブートフローを検討します。
Firmware -> Bootblock -> /platform/.../unix -> genunix -> other kernel modules
SPARC ファームウェアは工場でインストールされます。また、fwupdate コマンドを使用してファームウェアを更新することもできます。このファームウェアは、初期の Oracle Solaris モジュールである Oracle Solaris の /platform/.../unix モジュールを検証してから、ロードします。同様に、モジュールの一部である Oracle Solaris カーネルの実行時ローダー krtld は、汎用の UNIX (genunix) モジュールおよび後続のモジュールを検証し、ロードします。
このリリースでは、ベリファイドブートには boot_policy という 1 つのポリシープロパティーしかありません。ベリファイドブートにはブートポリシーを制御するプロパティーがあるを参照してください。
boot_policy プロパティーは、ブートプロセス中にカーネルモジュールをロードするときにベリファイドブート動作を管理します。
レガシー SPARC システムおよび x86 システム上では、boot_policy プロパティーは /etc/system ファイル内に定義されています。Oracle ILOM のベリファイドブートがサポートされている SPARC システムでは、boot_policy は /HOSTn/verified_boot 内にある ILOM のプロパティーで、ここで n は物理ドメイン (PDomain) 番号です。
boot_policy プロパティーは、次の値のいずれかを使用して構成できます。
none - ブート検証が実行されません。これはデフォルトです。
warning - モジュールがロードされる前に、各カーネルモジュールの elfsign 署名が検証されます。モジュールの検証に失敗した場合でも、モジュールはロードされます。不一致は、システムコンソールまたはシステムログ (使用可能な場合) に記録されます。デフォルトのログは /var/adm/messages です。
enforce - モジュールがロードされる前に、各カーネルモジュールの elfsign 署名が検証されます。モジュールの検証に失敗した場合は、モジュールがロードされません。不一致は、システムコンソールまたはシステムログ (使用可能な場合) に記録されます。デフォルトのログは /var/adm/messages です。
boot_policy を構成することに加えて、システムで elfsign X.509 公開鍵証明書を指定することもできます。モジュールと同様に、変数を使用するか、Oracle ILOM プロパティーを定義することで証明書を指定します。Oracle ILOM のベリファイドブートがサポートされているシステムでの証明書の管理を参照してください。
ベリファイドブートがサポートされている ILOM が組み込まれたシステムでは、事前にインストールされたベリファイドブートの証明書ファイル /etc/certs/ORCLS11SE が ILOM の一部として提供されています。
証明書には、ELF オブジェクトの elfsign 署名を検証する際に使用される RSA 公開鍵が含まれています。ただし、企業で提供された証明書をインストールして /etc/certs/ORCLS11SE を置き換えることもできます。すべての証明書は個別の PDomain にロードされ、管理されます。
システムのベリファイドブート証明書を管理するには、次のオプションを使用します。
事前にインストールされている証明書をユーザーが指定した証明書に置き換えるには:
--> load /HOSTx/verified_boot/cert -source ftp://server/filename
現在の証明書のコピーをユーザーが指定した場所に保存するには:
--> dump /HOSTn/verified_boot/cert -dest ftp://server/filename
ユーザーがインストールした証明書を削除し、システムに事前にインストールされている証明書に戻すには:
--> reset /HOSTn/verified_boot/cert