予防
プラットフォームレジリエンスを実現するために“予防”が持つべき具体的な機能は、PCのBIOS保護のガイドラインであるNIST SP800-147が求める機能をプラットフォームのセキュリティ上重要な要素に拡張したものです。具体的には、BIOSに加えて、ベースボード管理コントローラー/管理エンジン、ネットワーク・インターフェース・コントローラー、GPUなどのデバイスが、次に説明するような機能を持つことにより実現されます。
真正性の検証機能
デバイスファームウェアのイメージは、デバイスやプラットフォームの製造者によりデジタル署名され、アップデートの際にはアップデートのためのルート・オブ・トラスト(RTU)により署名を検証する。
完全性の保護機能
ファームウェアに対する意図しない、あるいは悪意のある修正を防ぐため、デバイスファームウェアは認証アップデートメカニズムを通してのみ修正されるようにする。
非バイパス性
非バイパス性とは、攻撃者が認証メカニズムの外側からデバイスファームウェアを修正できないということです。そのためには、認証アップデートメカニズム自体が保護機能を持ち、脆弱性を持つバージョンへのアップデートを防ぐ機能を持つ必要があります。
これら基本となる3つのファームウェアの保護機能はNIST SP800-147がBIOSの保護に対して求める機能と同じものです。NIST SP800-193では以下の要素も保護の対象にしています。
プラットフォーム・ランタイム・ファームウェアのランタイム保護機能
プラットフォーム・ランタイム・ファームウェアとはプラットフォームがブートした後も実行されるコードです。x86アーキテクチャの場合は、システム管理モード(SMM)と呼ばれ、OSが動作している間PCの高度な電源管理機能や他のOSに依存しない機能に利用されます。クリティカルなファームウェアの場合には、非バイパス性の原則を満たすため、プラットフォーム・ランタイム・ファームウェアの実行環境をソフトウェアから隔離する必要があります。
重要データの保護機能
デバイスで保持・利用される重要データの認可されていない変更は、デバイスのセキュリティの状態に重大な影響を与えます。このような変更はプラットフォームが提供するセキュリティ関連の機能を変更あるいは無効にし、デバイスが正常に機能しないようにしてしまう可能性があります。デバイスを不正な状態にする変更から保護するためには、重要データの変更は独自あるいは公開されたAPIなどのインターフェイスからのみ変更できるようにする必要があります。