プラットフォーム強化への取り組み
パソコンやサーバーを使ったコンピューティング環境をソフトウェアの下位レイヤーのプラットフォームから信頼できるものにしようという取り組みは、Trusted Computing GroupのTrusted Platform Module(TPM)や、米国国立標準技術研究所(NIST)によるNIST SP800-147やNIST SP800-155などの仕様や技術ガイドラインの策定、それに準拠した技術や製品の提供という形で長年取り組まれてきました。中でもBIOS保護のガイドラインであるNIST SP800-147は、プラットフォームの信頼性を担保するガイドラインとして、現在最も普及しているものと言えるでしょう。
一方、近年セキュリティへの重要性が増すにつれ、BCP(事業継続計画)のアプローチのようにリスクを総合的にとらえて、その緩和を考えるサイバーレジリエンスのアプローチが注目を集めています。今年5月には、前述のNIST SP800-147を、このサイバーレジリエンスの観点で拡張、整理したNIST SP800-193が最終仕様としてリリースされました。今日の新しい脅威に適応するために、今後はNIST SP800-193が広く活用されることが予想されます。
NIST SP800-193の考え方によるサイバーレジリエンスを実現するための構成要素
ここからは、新たに策定されたプラットフォームのレジリエンスを高めるガイドラインNIST SP800-193の考え方に沿って、ファームウェアのレイヤーからサイバーレジリエンスを実現するためのメカニズムを解説していきます。今回は、プラットフォームや、レジリエンス、ルート・オブ・トラスト、アップデートのメカニズム等の基礎となるコンセプトや技術要素を説明します。(参考資料)
本解説ではPC、サーバー、ネットワークデバイス、スマートフォンなどのコンピューティングデバイスのサイバーレジリエンスを検討の対象とします。
・プラットフォームとは
プラットフォームとは、コンピューティングデバイスにおいてソフトウェアもしくはOSがロードされるために必要な一連のハードウェアとファームウェアと定義します。ソフトウェアとはOSとOSによって制御されるすべてのアプリケーションと定義します。(図1、出典NIST SP800-193)
・プラットフォームデバイスとは
プラットフォームデバイスとは、プラットフォームを構成する各種デバイスで、ここでは伝統的なx86ベースのプラットフォームを想定しています。(図1)
- 組み込みコントローラー(EC)/スーパーI/O(SIO)
- トラステッド・プラットフォーム・モジュール(TPM)
- ベースボード管理コントローラー(BMC)/管理エンジン(ME)
- ホストプロセッサー[もしくはCPU、APU]
- ネットワーク・インターフェース・コントローラー(NIC)
- グラフィック・プロセッシング・ユニット(GPU)
- シリアル・ペリフェラル・インターフェイス(SPI)フラッシュ
- ストレージデバイスのためのホストコントローラー(HC)とハードディスクドライブ(HDD)/ソリッドステートドライブ(SSD)
- マルチメディアカード(eMMC)/汎用フラッシュストレージ(UFS)
- ホストプロセッサー・ブートファームウェア[BIOS、UEFI]
- プラットフォーム・ランタイム・ファームウェア
-
電源
・プラットフォームデバイスのコードとデータとは
各プラットフォームデバイスは、以下のようなファームウェアのコードとデータのセットを持っています。
• コード
ファームウェアのコードはデバイスが要求される動作を実行するために使うインストラクションのセットです。プラットフォームデバイスのファームウェアは稀にしか変更されませんが、様々な要因でアップデートが必要な場合があります。
ファームウェアはデバイスの挙動の大きな部分を占めるため、信頼できる状態を保つことが重要です。ファームウェアコードへの攻撃はデバイスを動作できなくしたり、デバイスに悪意のある機能を挿入したりします。
• データ
データはプラットフォームファームウェアのコードがその実行の際に使う情報で、実行中にコードにより利用されます。データは重要と非重要なものに分けられます。重要データとは、デバイスのセキュリティ状態を管理し検証された状態に保つために必要な構成情報とポリシーです。非重要データはその他のデータです。
マルウェアの影響を受けずにコンピューターを実行することを保証する上で、プラットフォームのファームウェアコードと重要データを常に完全性を保つ状態にしておくことが重要です。
また、プラットフォーム全体のレジリエンスを検討するには、対象をBIOS/UEFI以外のファームウェアを含むデバイスに広げ、その検知、復旧について検討することが必要になります。