JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Trusted Extensions 開発者ガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Trusted Extensions API およびセキュリティーポリシー

2.  ラベルと認可上限

3.  ラベルのコード例

4.  印刷とラベル API

5.  プロセス間通信

6.  Trusted X Window System

7.  ラベルビルダー API

8.  信頼できる Web ガードプロトタイプ

管理手法による Web ガードプロトタイプ

label_encodings ファイルの変更

トラステッドネットワークの構成

Apache Web サーバーの構成

信頼できる Web ガードデモの実行

下位レベルの信頼できないサーバーへのアクセス

9.  Solaris Trusted Extensions ラベル API のための試験的な Java バインディング

A.  プログラマーのリファレンス

B.  Trusted Extensions API リファレンス

索引

管理手法による Web ガードプロトタイプ

このセクションでは、Web サーバーとその Web コンテンツを隔離してインターネットからの攻撃を防ぐ安全な Web ブラウジングプロトタイプの例を示します。この Web ガードプロトタイプは、管理上のトラステッドネットワーク機能を活用して、保護された Web サーバーと Web コンテンツへのアクセスを制限する 2 段階のフィルタを構成します。このプロトタイプは、管理手法によってのみ実装されました。プログラミングは必要ありませんでした。

次の図は、マルチレベル環境での Web ガードプロトタイプの構成を示しています。ラベルが図でどのように配置されるかによって、ラベル関係が示されます。縦の関係はラベルの優位性を表し、横の関係は無関係ラベルを表します。

図 8-1 Web ガードの構成

image:Web ガードの構成を示す図。

Web リクエストは、public ゾーン内に構成されている Web サーバーに入り、restricted ゾーン内に構成されている Web サーバーに渡されます。

restricted ゾーンでは、マルチレベルポート (MLP) を使用して public ゾーンのポート 8080 でリクエストを待機します。この Web サーバーはリクエストを webservice ラベル付きゾーンに渡します。

webservice ゾーンでも MLP を使用して restricted ゾーンのポート 80 でリクエストを待機し、webcontent ラベル付きゾーンからコンテンツを読み取ります。

webcontent ゾーンは動作可能状態にあり、その Web コンテンツは、/export/home ファイルシステムに格納されています。そのファイルシステムはほかのすべてのラベル付きゾーンに自動的にマウントされます。ゾーンが動作可能状態にあるときは、そのゾーンで実行されているプロセスはありません。したがって、そのゾーンは基本的に webservice ゾーンに直接接続されたディスクドライブになります。

Web ガードプロトタイプを構成するには、これらのハイレベルタスクを実行します。

  1. 安全な Web ブラウジング環境でラベルを構成するための label_encodings ファイルの変更

    2 つの新しいラベル (WEB GUARD SERVICE および WEB GUARD CONTENT) を構成するようにデフォルトの label_encodings ファイルを更新します。label_encodings ファイルの変更」を参照してください。

  2. トラステッドネットワークの構成

    プライベート IP アドレスおよび MLP を restricted および webservice ラベル付きゾーンに構成します。「トラステッドネットワークの構成」を参照してください。

  3. Apache Web サーバーの構成

    publicrestricted、および webservice のすべてのゾーンに Web サーバーを構成します。この例で使用される Web サーバーは Apache です。「Apache Web サーバーの構成」を参照してください。

label_encodings ファイルの変更

2 つの新しいラベル (WEB GUARD SERVICE および WEB GUARD CONTENT) を構成するようにデフォルトの label_encodings ファイルを更新します。デフォルトファイルの一部である SANDBOX ラベルを WEB GUARD CONTENT ラベルとして機能するように変更します。WEB GUARD SERVICE ラベルを追加します。

label_encodings ファイルを /etc/security/tsol ディレクトリにインストールする必要があります。このファイルは、既存の Trusted Extensions インストールの上にインストールできます。

更新したファイルを /etc/security/tsol ディレクトリにインストールしたら、新しい label_encodings ファイルをアクティブ化します。

# svcadm restart svc:/system/labeld

次に、Web ガードプロトタイプで使用される label_encodings ファイルを示します。

* ident    "@(#)label_encodings.simple    5.15    05/08/09 SMI"
*
* Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
* Use is subject to license terms.
*
* This example shows how to specify labels that meet an actual 
* site's legal information  protection requirements for 
* labeling email and printer output. These labels may also
* be used to enforce mandatory access control checks based on user 
* clearance labels and sensitivity labels on files and directories.  

VERSION= Sun Microsystems, Inc. Example Version - 6.0. 2/15/05

CLASSIFICATIONS:

name= PUBLIC; sname= PUB; value= 2; initial compartments= 4;
name= CONFIDENTIAL; sname= CNF; value= 4; initial compartments= 4;
name= WEB GUARD; sname= WEB; value= 5; initial compartments= 0;
name= MAX LABEL; sname= MAX; value= 10; initial compartments= 0 4 5;

INFORMATION LABELS:

WORDS:

name= :; prefix;

name= INTERNAL USE ONLY; sname= INTERNAL; compartments= 1 ~2; minclass= CNF; 
name= NEED TO KNOW; sname= NEED TO KNOW; compartments= 1-2 ~3; minclass= CNF; 
name= RESTRICTED; compartments= 1-3; minclass= CNF; 
name= CONTENT; compartments= 0 ~1 ~2 ~3; minclass= WEB; 
name= SERVICE; compartments= 5; minclass= WEB; 

REQUIRED COMBINATIONS:

COMBINATION CONSTRAINTS:

SENSITIVITY LABELS:

WORDS:

name= :; prefix;

name= INTERNAL USE ONLY; sname= INTERNAL; compartments= 1 ~2; minclass= CNF;
prefix= :

name= NEED TO KNOW; sname= NEED TO KNOW; compartments= 1-2 ~3; minclass= CNF;
prefix= :

name= RESTRICTED; compartments= 1-3; minclass= CNF; prefix= :

name= CONTENT; compartments= 0 ~1 ~2 ~3; minclass= WEB;

name= SERVICE; compartments= 5; minclass= WEB;

REQUIRED COMBINATIONS:

COMBINATION CONSTRAINTS:

CLEARANCES:

WORDS:

name= INTERNAL USE ONLY; sname= INTERNAL; compartments= 1 ~2; minclass= CNF;
name= NEED TO KNOW; sname= NEED TO KNOW; compartments= 1-2 ~3; minclass= CNF;
name= RESTRICTED; sname= RESTRICTED; compartments= 1-3; minclass= CNF;
name= CONTENT; compartments= 0 ~1 ~2 ~3; minclass= WEB; 
name= SERVICE; compartments= 5; minclass= WEB;

REQUIRED COMBINATIONS:

COMBINATION CONSTRAINTS:

CHANNELS:

WORDS:

PRINTER BANNERS:

WORDS:

ACCREDITATION RANGE:

classification= PUB; all compartment combinations valid;
classification= WEB; all compartment combinations valid;
classification= CNF; all compartment combinations valid except: CNF

minimum clearance= PUB;
minimum sensitivity label= PUB;
minimum protect as classification= PUB;

* Local site definitions and locally configurable options.

LOCAL DEFINITIONS:

default flags= 0x0;
forced flags= 0x0;
 
Default Label View is Internal;
 
Classification Name= Classification;
Compartments Name= Sensitivity;

Default User Sensitivity Label= PUB;
Default User Clearance= CNF NEED TO KNOW;
 
COLOR NAMES:

    label= Admin_Low;           color= #bdbdbd;

    label= PUB;                 color= blue violet;
    label= WEB SERVICE;         color= yellow;
    label= CNF;                 color= navy blue;
    label= CNF : INTERNAL USE ONLY;  color= blue;
    label= CNF : NEED TO KNOW;  color= #00bfff;
    label= CNF : RESTRICTED;    color= #87ceff;
 
    label= Admin_High;          color= #636363;
 
* End of local site definitions

label_encodings ファイルの詳細は、『Solaris Trusted Extensions ラベルの管理』を参照してください。

トラステッドネットワークの構成

restricted および webservice ゾーンには、すでに共有している IP アドレスのほかに、プライベート IP アドレスも割り当てます。各プライベート IP アドレスにはマルチレベルポートを構成し、制限されたラベルセットを関連付けます。

次の表は、それぞれのラベル付きゾーンのネットワーク構成を示しています。

ゾーン名
ゾーンラベル
ローカル IP アドレス
ホスト名
マルチレベルポート
セキュリティーラベルセット
restricted
CONFIDENTIAL : RESTRICTED
10.4.5.6
proxy
8080/tcp
PUBLIC
webservice
WEB GUARD SERVICE
10.1.2.3
webservice
80/tcp
CONFIDENTIAL : RESTRICTED
webcontent
WEB GUARD CONTENT
なし

最初に、新しいゾーンを作成する必要があります。public ゾーンなどの既存のゾーンをクローニングできます。これらのゾーンを作成したら、zonecfg コマンドを使用して、表に示したアドレスのネットワークおよびローカルインタフェース名を追加します。

たとえば、次のコマンドは 10.4.5.6 という IP アドレスと bge0 というインタフェースを restricted ゾーンに関連付けます。

# zonecfg -z restricted
add net
set address=10.4.5.6
set physical=bge0
end
exit

それぞれのラベル付きゾーンに IP アドレスとネットワークインタフェースを指定したら、Solaris Management Console を使用して表の残りの値を構成します。このツールを使用するときは、必ず Scope=Files および Policy=TSOL でツールボックスを選択してください。

これらの手順に従ってゾーンの構成を終了します。

  1. スーパーユーザーとして Solaris Management Console を起動します。

    # smc &
  2. ナビゲーションパネルから「このコンピュータ」を選択して、「システム構成」アイコンをクリックします。

  3. 「コンピュータとネットワーク」アイコンをクリックします。

  4. 「コンピュータ」アイコンをクリックし、「アクション」メニューから「コンピュータを追加」を選択します。

  5. proxy ホストおよび webeservice ホストのホスト名と IP アドレスを追加します。

  6. ナビゲーションパネルから、「トラステッドネットワークゾーン」を選択します。

    場合によっては、列を拡張する必要があります。ゾーン名がリストに表示されない場合は、「アクション」メニューから「ゾーン構成を追加」を選択します。

  7. 各ゾーンにそれぞれのラベルを割り当て、「ローカル IP アドレスの MLP 構成」フィールドに適切なポートおよびプロトコルを指定します。

  8. ナビゲーションパネルから「セキュリティーファミリ」アイコンをクリックし、「アクション」メニューから「テンプレートを追加」を選択します。

    表に記載された情報に基づいて proxy ホスト名および webservices ホスト名のテンプレートを追加します。

    1. テンプレート名の該当するホスト名を指定します。

    2. 「ホストタイプ」フィールドで CIPSO を指定します。

    3. 「最下位ラベル」および「最上位ラベル」フィールドで該当するゾーンラベルを指定します。

    4. 「セキュリティーラベルセット」フィールドで該当するセキュリティーラベルを指定します。

    5. 「明示的に割り当てられたホスト」タブをクリックします。

    6. 「エントリを追加」セクションで、該当するローカル IP アドレスを各テンプレートに追加します。

  9. Solaris Management Console を終了します。

Solaris Management Console を終了したら、影響があるゾーンを起動または再起動します。大域ゾーンで、新しいアドレスのルートを追加します。ここで、shared-IP-addr は共有 IP アドレスです。

# route add proxy shared-IP-addr
# route add webservice shared-IP-addr

Apache Web サーバーの構成

Apache Web サーバーのインスタンスは、public ゾーン、restricted ゾーン、および webservice ゾーンで実行されます。各ゾーンで、次のように /etc/apache/httpd.conf ファイルを更新します。

各ラベル付きゾーンで Apache Web サーバーの構成を更新したら、webcontent ゾーンの /export/home/www/htdocs ディレクトリに Web コンテンツを格納します。

/export/home/www/htdocs ディレクトリ内に demo ディレクトリを作成してから、その demo ディレクトリ内にテストで使用する index.html ファイルを作成します。

webservice ゾーンのブート時に、/export/home ディレクトリが lofs を使用してそのゾーンに自動的にマウントされます。webcontent ゾーンは動作可能状態にしておくだけで十分です。

# zoneadm -z webcontent ready

ゾーンが動作可能状態にあるときは、そのゾーンで実行されているプロセスはありません。ゾーンのファイルシステムは、webservice ゾーンによって読み取り専用でマウントできます。このような方法で Web コンテンツにアクセスすると、コンテンツが変更されることがありません。

信頼できる Web ガードデモの実行

public ゾーン内のブラウザから、または PUBLIC ラベルで動作しているリモートブラウザから、次の URL を入力します。

http://server-name/demo

webcontent ゾーンからのデフォルトの index.html ファイルがブラウザに表示されます。

Web ガードフローを省略できないことに注意してください。webservice ゾーン内の Web サーバーは、public ゾーンからも、どのリモートホストからもパケットを受信できません。webcontent ゾーンが動作可能状態にあるので、Web コンテンツを変更することはできません。