5. セキュリティ機能要件
5.6 クラス:TSF の保護 (FPT)
5.6.1 悪用防止 (Anti-Exploitation) サービス (FPT_AEX)
5.6.1.1 アドレス空間配置ランダム化
FPT_AEX_EXT.1 拡張:悪用防止サービス (ASLR)
FPT_AEX_EXT.1.1 TSFは、アドレス空間配置ランダム化 (ASLR) をアプリケーションへ 提供しなければならない (shall)。
FPT_AEX_EXT.1.2 任意の利用者空間メモリマッピングのベースアドレスは、少なくとも8 個の予測不可能なビットから構成されること。
適用上の注釈:この8個の予測不可能なビットは、TSF RBGによって (FCS_RBG_EXT.1
に特定されるように) 提供されてもよいが、要求はされない。
保証アクティビティ:
評価者は、ST のTSSセクションに8ビットが生成される方法が記述され、これらのビッ トが予測不可能である理由の正当化が提供されていることを保証しなければならない (shall)。
保証アクティビティの注釈:以下のテストでは、開発者に対して、消費者向けのモバイル デバイス製品には通常含まれないようなツールを評価者へ提供するような、テストプラッ トフォームへのアクセスを提供することを要求している。
テスト1:評価者は、TSFに含まれる3つのアプリを選択しなければならない (shall)。 こ れらは、TSF に含まれるウェブブラウザまたはメールクライアントが含まれなければなら
ない (must)。これらの各アプリについて、評価者は、同じ種別の2つの別個のモバイルデ
バイス上で同じアプリを起動し、すべてのメモリマップ上のロケーションを比較する。 評 価者は、両方のデバイス上で、どのメモリマッップも同じロケーションに配置されていな いことを保証しなければならない (must)。
2つのマッピングが1つのアプリについて同一となり、他の2つのアプリでは同一でないと いうまれな (たかだか1/256) 事象が発生した場合、評価者は、そのアプリについてテスト を繰り返し、2回目のテストでマッピングが異なることを検証しなければならない (shall)。
5.6.1.2 メモリページのパーミッション
FPT_AEX_EXT.2 拡張:悪用防止サービス (メモリページのパーミッション)
FPT_AEX_EXT.2.1 TSFは、物理メモリの毎ページにおける読み出し、書き込み、及び実行 パーミッションを実施できなければならない (shall)。
保証アクティビティ:
評価者は、TSS にメモリ管理ユニット (MMU) の記述があることを保証し、本記述に仮想 メモリのすべてのページにおける読み出し、書き込み、及び実行パーミッションを実施す るMMUの能力について文書化されていることを保証しなければならない (shall)。
5.6.1.3 オーバーフロー保護
FPT_AEX_EXT.3 拡張:悪用防止サービス (オーバーフロー保護)
FPT_AEX_EXT.3.1 アプリケーションプロセッサ上の非特権実行ドメインで実行する
TSF プロセスは、スタックベースのバッファオーバーフロー保護を実装しなければならな い (shall)。
適用上の注釈:
「非特権実行ドメイン」とは、プロセッサのユーザモード (例えば、カーネルモードとの対 語として) を指す。すべての TSF プロセスがこのような保護を実装しなければならない
(must) わけではないが、大部分のプロセス (TSF プロセスによって利用されるライブラリ
を含む) がバッファオーバーフロー保護を実装すると期待されている。
保証アクティビティ:
評価者は、アプリケーションプロセッサの非特権実行モードで実行されるTSFソフトウェ アに実装されるスタックベースのバッファオーバーフロー保護の記述がTSSに含まれるこ とを決定しなければならない (shall)。スタックベースのバッファオーバーフロー保護の正 確な実装は、プラットフォームにより異なる。 実装の例としては、"-fstack-protector-all"、
“-fstack-protector”、及び“/GS”フラグ等のコンパイラオプションを通してアクティベー トされる。
評価者は、スタックベースのバッファオーバーフロー保護を実装しているものとしていな いものを示す、TSFバイナリ及びライブラリのインベントリがTSSに含まれることを保証 しなければならない (shall)。TSSには、この方法で保護されないバイナリ及びライブラリ の根拠が提供されなければならない (must)。
5.6.1.4 ドメイン分離
FPT_AEX_EXT.4 拡張:ドメイン分離
FPT_AEX_EXT.4.1 TSFは、信頼されないサブジェクトによる改変から自分自身を保護しな ければならない (shall)。
FPT_AEX_EXT.4.2 TSFは、アプリケーション間のアドレス空間の分離を実施しなければな らない (shall)。
適用上の注釈:ストレージ中に常駐する TSFソフトウェア (例えば、カーネルイメージ、
デバイスドライバ、高信頼アプリケーション) に加えて、プロセッサの特権モードで動作す るソフトウェア (例えば、カーネル) の実行コンテキスト (例えば、アドレス空間、プロセ ッサのレジスタ、プロセス毎の環境変数)、及び高信頼アプリケーションのコンテキストが 保護される。 ソフトウェアに加えて、TSFのふるまいをコントロールする、またはそれへ 影響を与える設定情報があれば、それもまた信頼できないサブジェクトによる改変から保 護される。
設定情報には、利用者及び管理者の管理機能の設定、WLAN プロファイル、及びサービス レベルセキュリティ要件データベース等のBluetoothデータが含まれるが、これらに限定さ れない。
信頼されないサブジェクトとして、以下を含む、信頼されないアプリケーション;電源オ フ、画面ロック状態の間、または補助ブートモードへのブート時にデバイスへアクセスす る不許可利用者;及び、不許可利用者または信頼されないソフトウェアまたはハードウェ アで、デバイスが画面ロック状態か、または補助ブートモードへブートされるかのいずれ かの時に、有線インタフェースを介してデバイスへのアクセスを有するもの。
保証アクティビティ:
評価者は、非TSFソフトウェアがTSFのふるまいを管理するTSFソフトウェアまたはTSF データを改変から防止するために用意されているメカニズムがTSSに記述されていること を保証しなければならない (shall)。これらのメカニズムが網羅する範囲は、ハードウェア ベースの手段 (例えば「実行リング」及びメモリ管理機能) から;ソフトウェアベースの手 段 (例えば API への入力に対する境界値チェック) まである。 評価者は、記述されたメカ ニズムがTSFを改変から保護するために妥当とみなされることを決定する。
評価者は、TSF がどのようにアプリケーションのアドレス空間が互いに分離を保っている かについてTSSに記述されていることを保証しなければならない (shall)。
評価者は、ロック状態において、またはTSFのふるまいを改変できるような補助ブートモ ード中に、ダイアラから利用可能なUSSD及びMMIコードがTSSに詳述されていること を保証しなければならない (shall)。評価者は、コード、TSFにより実行される行われるア クション、及び実行されるアクションが利用者またはTSFデータを改変しないという正当 化が本記述に含まれることを保証しなければならない (shall)。 USSD もMMIコードも利 用可能でない場合、評価者は、これらのコードにより規定されたアクションが防止される
方法についての記述をTSSが提供することを保証しなければならない (shall)。
評価者は、補助ブートモードにおいて有線インタフェースを介してアクセス及び改変でき るようなTSFデータ (ソフトウェア、実行コンテキスト、設定情報、及び監査ログを含む) について TSS に文書化されることを保証しなければならない (shall)。 評価者は、デバイ スのアップデートまたはリストアをサポートするために改変されるデータがこの記述に含 まれていることを保証しなければならない (shall)。 評価者は、データが改変され得る補助 ブートモード、補助ブートモードへ入る方法、データのロケーション、データがどのよう に改変されるか、改変をサポートするために必要なデータのフォーマット及びパッケージ ング、ならびに (もしあれば) データの改変に必要なソフトウェアまたはハードウェアある いはその両方のツールが、この文書に含まれることを保証しなければならない (shall)。
評価者は、補助ブートモードにおける有線インタフェースを介したTSFデータの不正かつ 未検出の改変 (すなわち、FPT_TUD_EXT.2による暗号技術的に検証済みのアップデートは 除外される) が防止される手段の記述を TSS が提供することを保証しなければならない (shall)。 (公的に入手可能なツールの欠如は十分な正当化ではない。十分な正当化の例とし ては、改変の監査、デジタル署名またはハッシュの形態での暗号技術的検証、補助ブート モードの無効化、及びファイルへの書き込みまたはパーティションのフラッシングを防止 するアクセス制御メカニズムなどが挙げられる。)
保証アクティビティの注釈:以下のテストでは、ベンダに対して、消費者向けのモバイル デバイス製品には通常含まれないようなツールを評価者へ提供するような、テストプラッ トフォームへのアクセスを提供することを要求している。加えて、ベンダはTSFを構成す るファイル (例えば、システムファイル、ライブラリ、設定ファイル、監査ログ) のリスト を提供する。このリストは、フォルダ/ディレクトリ (例えば、/usr/sbin、/etc) と、特定 されたディレクトリの外部に存在するかもしれない個別ファイルによって分類されてもよ い。
テスト 1:評価者は、ベンダの提供したTSF を構成するファイルのリストの中の各ファイ ルについて「パーミッション設定」をチェックして、信頼されないアプリケーションによ る書き込みを防止するための設定が適切であることを保証しなければならない (shall)。評 価者は、彼らの選んだファイルの改変を試行し、メカニズムによってパーミッション設定 が実施され、改変が防止されることを保証しなければならない (shall)。
テスト2:評価者は、アプリを作成し、モバイルデバイスへロードしなければならない (shall)。
本アプリは、全ファイルシステムに対するトラバースを試行し、データが書き込みまたは 上書きできるロケーションがあればそれを報告しなければならない (shall)。 評価者は、こ れらのロケーションはいずれも、OSソフトウェア、デバイスドライバ、システム及びセキ ュリティ設定ファイル、鍵材料、または他のアプリケーションのイメージ/データの一部 でないことを保証しなければならない (must)。
テスト3:利用可能な各補助ブートモードについて、評価者はTSSに記述されるソフトウ ェアまたはハードウェアあるいはその両方のツールを用いて彼らの選んだTSFファイルの 改変を試行しなければならない (shall)。評価者は、TSSにおける記述に従い期待されると おり、改変が失敗すること、またはTSFが変更を監査することを検証しなければならない (shall)。