マルチレベル・セキュア環境でのアプリケーションの計画

マルチレベル・セキュア環境内のアプリケーションを計画する際には、まず、ソケット・アプリケーションに適用されるマルチレベル・セキュリティー・プログラミング規則を理解しておく必要があります。

トラステッド・ネットワーク管理サーバー・アプリケーション
DNS やルーティングなど、インフラストラクチャーの一部となるアプリケーション。配信される情報は機密情報ではなく、多数のセキュリティー・ラベルからアクセス可能である必要があります。
トラステッド・マルチレベル・セキュア・サーバー・アプリケーション
ポート・オブ・エントリーを使用したログイン・プロセスを持つアプリケーション。これらのアプリケーションは、クライアントのログイン ID の下ですべてのリソース・アクセスを行い、さまざまなクライアント・タスク (FTP や otelnet など) によってアクセスされる情報の分離を維持します。

ID を変更するプロセス・アプリケーションは、以下のアクションを実行する必要があります。

  • ID の変更 (親、例えば INETD によって行われる場合もある) に先立って _poe() を発行する。
  • forkspawn、または exec に先立って親プロセス内で ID を変更し、プロセス間通信 (IPC) リソースに適切なラベルが付くことを保証する。
  • ID 変更の後、ユーザー・リソースにアクセスする。
  • 不要な親リソースを exec に先立ってクローズする。

スレッド上で ID を設定するスレッド化アプリケーションは、以下のアクションを実行する必要があります。

  • _pthread_security_np() に先立って、処理スレッド上に _poe() を発行する。
  • 関連するすべての処理が、同じ ID を持つスレッド上で発生することを保証する。
  • スレッド上で、spawnfork、または exec に先立って ID を変更する。
  • スレッド上で ID 変更の後、ユーザー・リソースにアクセスする。
  • 他のスレッドのリソースにはアクセスしない。
  • スレッドから ID を除去する前に、すべてのユーザー・リソースをクローズする。
  • 新しい作業を獲得する前に、スレッドからユーザー ID を削除する。
すべての SYSMULTI アプリケーションは、ユーザー・データをサーバー・リソースまたはその他のユーザー・リソース上に置かないことを保証する必要があります。 デバッグ、ログ、またはトレースの出力に特に注意を払ってください。 多数のサーバーは、出力にユーザー・レベル・データを含んでいます。
トラステッド単一レベル・セキュア・サーバー・アプリケーション
TFTP や HTTP など、サーバーの ID の下でアクセスされた機密情報を配信するアプリケーションと、SMTP や MVSHRD など、サーバー の ID の下でポート・オブ・エントリーやアクセス・クライアント情報を使用しない、ログイン・プロセスを持つアプリケーション。
ネットワーク管理コマンドおよびクライアント・アプリケーション
ネットワーク・インフラストラクチャーの照会、構成、または診断に使用され、特殊な制御と特権を必要とするローカル・コマンド。
IBM® zEnterprise® System (zEnterprise) プラットフォーム管理アプリケーション
プラットフォーム管理機能を実行する zEnterprise 許可アプリケーション。これらのアプリケーションの詳細については、「IBM z Systems™ Ensemble Planning Guide」を参照してください。
一般的なユーザー・コマンドとクライアント・アプリケーション
呼び出し側ユーザーのセキュリティー環境の下でリソース (ネットワーク・リソースを含む) にアクセスするローカル・コマンド。
ネットワーク管理インターフェース
機密情報を提供するアプリケーション・プログラミング・インターフェース。
サポートされないアプリケーション
検査が済んでいないか、検査の結果、マルチレベル・セキュア環境内でトラステッドでないアプリケーション。