1


概要

この章では、Solaris Security Toolkit ソフトウェアの設計と目的について説明します。主要コンポーネント、機能、利点、およびサポートしているプラットフォームについて解説します。また、変更時や配備時におけるバージョン管理のガイドラインとともに、Solaris Security Toolkit ソフトウェアをカスタマイズする際の重要なガイドラインも記載しています。

この章では、以下の項目を説明します。


Solaris Security Toolkit ソフトウェアによるシステムのセキュリティーの確保

Solaris Security Toolkit ソフトウェアは JASS (JumpStart Architecture and Security Scripts) ツールキットとも呼ばれ、Solaris OS システムのセキュリティーを確保して維持するための、拡張可能でスケーラブルな、自動化されたメカニズムを提供します。Solaris Security Toolkit ソフトウェアを使用して、システムのセキュリティーの強化、最小化、および監査ができます。

システムのインストールと構成は、可能な限り (理想的には完全に) 自動化するべきです。このガイドラインには、OS のインストールと構成、ネットワークの構成、ユーザーアカウント、アプリケーション、およびセキュリティーの変更が含まれます。セキュリティーの変更には、システムの目的に応じて、強化と最小化があります。Solaris OS のインストールを自動化するために利用できるテクノロジの 1 つは JumpStart ソフトウェアです。JumpStart ソフトウェアを使用すると、ユーザー操作をほとんど (またはまったく) 行わずに、ネットワーク経由でシステムをインストールできます。Solaris Security Toolkit ソフトウェアには、JumpStart ソフトウェアベースのインストールにおいて、Solaris OS システムの強化および最小化に関連するタスクの大半を自動実行するフレームワークとスクリプトが用意されています。

また、Solaris Security Toolkit ソフトウェアにはスタンドアロンモードがあります。このモードでは、配備済みのシステムで JumpStart モードとまったく同じ強化機能を実行することができます。いずれのモードを使用する場合でも、セキュリティーの変更はシステムのセキュリティー要件に合わせてカスタマイズする必要があります。

システムのインストール方法に関係なく、Solaris Security Toolkit ソフトウェアを使用して、システムのセキュリティーを最初に強化および最小化できます。次に、Solaris Security Toolkit を定期的に使用することにより、セキュリティーを確保したシステムのセキュリティープロファイルが偶然あるいは故意に変更されていないかを監査します。



注 - 監査という用語は、システムのセキュリティー状態を定義済みセキュリティープロファイルと比較して検証する、Solaris Security Toolkit ソフトウェアの自動プロセスを指します。このマニュアルでこの用語を使用する場合、監査を実行した後でシステムのセキュリティーが完全に確保されていることを保証するものではありません。




ソフトウェアコンポーネントについて

この節では、Solaris Security Toolkit ソフトウェアコンポーネントの構造の概要を説明します。Solaris Security Toolkit ソフトウェアはファイルおよびディレクトリの集まりです。図 1-1 はソフトウェアコンポーネントの構造を示しています。

図 1-1 ソフトウェアコンポーネントの構造

Solaris Security Toolkit のディレクトリ構造を示す図

これらのディレクトリおよびサブディレクトリの他に、Solaris Security Toolkit ソフトウェア構造の最上位 (/bin 内) には以下のファイルがあります。

ディレクトリ

Solaris Security Toolkit アーキテクチャーのコンポーネントは以下のディレクトリで構成されています。

各ディレクトリについて、この節で説明します。該当する場合は、各スクリプト、構成ファイル、またはサブディレクトリをリストするとともに、詳細情報を記載した参照先の章も示しています。

Solaris Security Toolkit ディレクトリ構造は Sun BluePrints マニュアル『JumpStart Technology: Effective Use in the Solaris Operating Environment』の構造に基づいています。

Auditディレクトリ

このディレクトリには、システムが定義済みのセキュリティープロファイルに適合しているかどうかを評価する監査スクリプト、または監査スクリプトのセットが格納されています。このディレクトリ内の監査スクリプトは以下のカテゴリに分かれています。

各カテゴリに含まれるスクリプトの詳細なリスト、および各スクリプトの説明については、『Solaris Security Toolkit 4.1 リファレンスマニュアル』を参照してください。

Documentation ディレクトリ

このディレクトリには、README ファイルなどのユーザー向け情報が記載されたテキストファイルが格納されています。

man ディレクトリ

このディレクトリには、コマンド、関数、およびドライバに関するマニュアルページのセクションがサブディレクトリとして格納されています。また、このディレクトリには、コマンドの索引である windex ファイルもユーザーの便宜を考えて格納されています。

これらのマニュアルページについての詳細は、それぞれのマニュアルページまたは『Solaris Security Toolkit 4.1 マニュアルページガイド』を参照してください。

Drivers ディレクトリ

このディレクトリには、Solaris Security Toolkit ソフトウェアの実行時に実行およびインストールされるファイルを指定した構成情報ファイルが格納されています。具体的には、ドライバ、スクリプト、および構成ファイルが含まれています。

以下は Drivers ディレクトリに格納されているドライバおよびスクリプトの例です。

製品固有のすべてのドライバ、およびその他の一部のドライバでは、ドライバごとに次の 3 つのファイルが含まれています。

これらの 3 つのファイルは、上記のリストでは sunfire_15k_sc-{config|hardening|secure}.driver のように括弧内に示されています。これらのファイルは詳細説明用としてリストしたものです。ドライバを実行するときは name-secure.driver のみを使用してください。このドライバによって、関連するドライバが自動的に呼び出されます。

Solaris Security Toolkit アーキテクチャーには構成情報が含まれているため、実際のスクリプト自体は変更せずに、異なる環境でドライバ、終了スクリプト、および監査スクリプトを使用することができます。終了スクリプトおよび監査スクリプトで使用される変数はすべて構成ファイルで維持されています。これら構成ファイルはドライバによってインポートされ、終了スクリプトや監査スクリプトがドライバによって呼び出されたときに、スクリプトでは変数が利用可能になります。

Solaris Security Toolkit ソフトウェアにはメインの構成ファイルが 3 つあり、すべて Drivers ディレクトリに格納されています。

ドライバによって呼び出される終了スクリプトは Finish ディレクトリにあり、監査スクリプトは Audit ディレクトリにあります。ドライバでインストールされるファイルは Files ディレクトリから読み込まれます。終了スクリプトと監査スクリプトについての詳細は、このマニュアルの各章を参照してください。

図 1-2ドライバの制御フローを示しています。

図 1-2 ドライバの制御フロー

ドライバの制御フローを示す図

まず、各種 .init ファイルからすべての環境変数がインポートされます。このプロセスが完了すると、ドライバは第 2 部に移行し、JASS_FILES および JASS_SCRIPTS を定義します。これらの定義はオプションであり、いずれか 1 つ、または両方を定義することができます。いずれも定義しないことも可能です。第 3 部では driver.run が呼び出され、JASS_FILE および JASS_SCRIPTS 環境変数で定義されているタスクが実行されます。

コード例 1-1 はドライバの制御フローを示しています。

コード例 1-1 ドライバの制御フロー

DIR="`/bin/dirname $0`"
 
export DIR
. ${DIR}/driver.init
 
JASS_FILES="
						/etc/cron.d/cron.allow
						/etc/default/ftpd
						/etc/default/telnetd
"
 
JASS_SCRIPTS="
						install-at-allow.fin
						remove-unneeded-accounts.fin
"
. ${DIR}/driver.run

このコード例では、ドライバが開始ディレクトリを認識できるように、DIR 環境変数が設定およびエクスポートされます。次に、JASS_HOME_DIR/Files ディレクトリからクライアントにコピーされるファイルを含むように、JASS_FILES 環境変数が定義されます。Solaris Security Toolkit ソフトウェアによって実行される終了スクリプトで JASS_SCRIPTS 環境変数が定義されます。最後に、driver.run ドライバを呼び出して、強化タスクが実行されます。driver.run が呼び出されると、JASS_FILES で定義されているファイルがコピーされ、JASS_SCRIPTS で指定されているスクリプトが実行されます。

Files ディレクトリ

このディレクトリは、JASS_FILES 環境変数および driver.run スクリプトによって使用されます。JumpStart クライアントにコピーされるファイルが格納されています。

このディレクトリには以下のファイルがあります。

Finish ディレクトリ

このディレクトリには、インストール中にシステムの変更および更新を行う終了スクリプトが格納されています。このディレクトリ内のスクリプトは以下のカテゴリに分かれています。

各カテゴリに含まれるスクリプトの詳細なリスト、および各スクリプトの説明については、『Solaris Security Toolkit 4.1 リファレンスマニュアル』を参照してください。

OS ディレクトリ

このディレクトリには、Solaris OS イメージのみが格納されています。これらのイメージは JumpStart ソフトウェアのインストールプロセスでクライアントインストールのソースとして使用され、add_install_client および rm_install_client スクリプトを提供します。add_client スクリプトはこれらの追加ディレクトリ名を受け付けます。

Solaris OS イメージの読み込みと変更についての詳細は、Sun BluePrints マニュアル『JumpStart Technology: Effective Use in the Solaris Operating Environment』を参照してください。

標準のインストール命名規則は以下のとおりです。

Solaris OS

Solaris OS では次の命名規則を使用します。

Solaris_os version_4 digit year_2 digit month of CD release

たとえば、2001 年 4 月リリースの Solaris 8 Operating Environment CD の場合、ディレクトリ名は Solaris_8_2001-04 になります。Solaris OS のアップデートとリリースを区別することにより、テストおよび配備に関する情報を厳密に管理することができます。

Trusted Solaris OS

Trusted Solaris では次のディレクトリ命名規則を使用します。

Trusted_Solaris_os version_4 digit year_2 digit month of CD release

たとえば、Trusted Solaris ソフトウェアのリリース日が 2000 年 2 月の場合、ディレクトリ名は次のようになります: Trusted_Solaris_8_2000-02

Solaris OS Intel Platform Edition

Solaris OS Intel Platform Edition では次のディレクトリ命名規則を使用します。

Solaris_os version_4 digit year_2 digit month of CD release_ia

たとえば、Solaris OS Intel Platform Edition のリリース日が 2001 年 4 月の場合、ディレクトリ名は次のようになります: Solaris_8_2001-04_ia

Packages ディレクトリ

このディレクトリには、終了スクリプトでインストールされるソフトウェアパッケージが格納されています。たとえば、Sun Javatrademark System Web Server (旧称 Suntrademark ONE Web Server、さらにその前は iPlanettrademark Web Server) ソフトウェアパッケージが Packages ディレクトリに格納されていれば、適切な終了スクリプトによって、必要に応じてこのソフトウェアがインストールされます。

Solaris Security Toolkit ソフトウェアに含まれる終了スクリプトの一部は、ソフトウェアのインストールおよび基本的な構成機能を実行します。Packages ディレクトリからソフトウェアをインストールするスクリプトは、次のとおりです。

Patches ディレクトリ

このディレクトリは、Solaris OS に対応した推奨およびセキュリティパッチクラスタを格納するために使用します。必要なパッチをダウンロードして、このディレクトリに圧縮解除します。

パッチを保存してこのディレクトリに圧縮解除することにより、インストールが効率化されます。パッチをこのディレクトリに圧縮解除すると、Solaris Security Toolkit ソフトウェアのパッチインストールスクリプトによってインストールが自動的に行われます。ユーザーがインストールごとに手動でパッチクラスタを圧縮解除する必要はありません。

使用している Solaris OS バージョンごとにサブディレクトリを作成します。たとえば、Patches ディレクトリ内に 2.5.1_Recommended ディレクトリと 2.6_Recommended ディレクトリが存在する場合があります。

Solaris Security Toolkit ソフトウェアは Solaris OS Intel Platform Edition パッチクラスタをサポートしています。このパッチクラスタで使用される命名規則は、SunSolve OnLineSM サービスで利用できるものと同じです。

形式は Solaris_<release>_x86_Recommended です。Solaris 8 OS の Solaris OS Intel Platform Edition パッチクラスタの場合、ディレクトリ名は Solaris_8_x86_Recommended になります。

Profiles ディレクトリ

このディレクトリには、すべての JumpStart プロファイルが格納されています。プロファイルには、インストールする Solaris OS クラスタ (Core、End User、Developer、または Entire Distribution)、ディスクのレイアウト、およびインストールの種類 (スタンドアロンなど) を決定するために JumpStart ソフトウェアによって使用される構成情報が含まれます。

JumpStart プロファイルは rules ファイルでリストおよび使用され、特定のシステムまたはシステムグループの構築方法を定義します。

Sysidcfg ディレクトリ

Profiles ディレクトリと同様に、Sysidcfg ディレクトリに格納されているファイルは JumpStart モードのインストールでのみ使用されます。これらのファイルは、必要なインストール情報を提供することで Solaris OS のインストールを自動化します。各 OS 固有の情報が別々のディレクトリツリーで保存されています。

Solaris OS ごとに別々のディレクトリがあります。各リリースのディレクトリ名は Solaris_OS Version です。Solaris Security Toolkit ソフトウェアには、Solaris OS バージョン 2.5.1 から 9 に対応した sysidcfg サンプルファイルが含まれています。

sysidcfg サンプルファイルは、ネットワークごと、ホストごとなど他の種類に拡張できます。Solaris Security Toolkit ソフトウェアは任意の sysidcfg ファイルをサポートします。

sysidcfg ファイルについての詳細は、Sun BluePrints マニュアル『JumpStart Technology: Effective Use in the Solaris Operating Environment』を参照してください。

データリポジトリ

データリポジトリは JASS_REPOSITORY ディレクトリ内にある環境変数です。Solaris Security Toolkit ソフトウェアの操作を元に戻す機能の実行をサポートしており、各実行内容に関するデータを保存します。また、このソフトウェアによって変更されたファイルの一覧を維持し、実行ログに表示されるデータを保存します。操作を元に戻す機能では、データリポジトリに保存されている情報が使用されます。


バージョンの管理

Solaris Security Toolkit ソフトウェアで使用されるすべてのファイルおよびスクリプトのバージョンを管理することは、2 つの理由で非常に重要です。第一に、この環境の目的の 1 つは、システムのインストールを再現することにあります。インストール中に使用されたすべてのファイルバージョンのスナップショットがなければ、この目的は達成できません。第二に、これらのスクリプトが実行するセキュリティー機能は多くの組織にとって非常に重要な処理であるため、適切かつテスト済みの変更のみが実行されるように細心の注意が必要です。

Source Code Control System (SCCS) バージョン管理パッケージが Solaris OS SUNWsprot パッケージで提供されています。フリーウェア、または市販の他のバージョン管理ソフトウェアを使用してバージョン情報を管理することもできます。いずれのバージョン管理製品を使用する場合でも、将来のシステムの再構築に備えて、アップデート情報を管理するとともに、バージョン情報の取得プロセスを実装しておくことが必要です。

ファイルの内容が変更されているかどうかを判断するには、バージョン管理に加えて、完全性管理ソリューションを使用します。システムに対して特権を持つユーザーであれば、バージョン管理システムを回避することは可能ですが、遠隔システム上で完全性データベースを運用する完全性管理システムは簡単に回避できません。ローカルシステムに格納されているデータベースは不正に改ざんされる恐れがあるため、完全性管理ソリューションは一元管理するのが最良の方法です。


サポートしている Solaris OS バージョンの実行

サンでは、Solaris Security Toolkit ソフトウェアを Solaris 8 または Solaris 9 オペレーティングシステムで使用する場合にのみサポートを提供しています。Solaris Security Toolkit ソフトウェアは Solaris 2.5.1、Solaris 2.6、および Solaris 7 オペレーティングシステムで使用することもできますが、これらのオペレーティングシステムで使用する場合、サンではサポートを提供していません。

Solaris Security Toolkit ソフトウェアは、インストールされている Solaris オペレーティングシステムのバージョンを自動的に検出し、そのバージョンに合わせて適切なタスクを実行します。


サポートされている SMS バージョンの実行

System Management Services (SMS) を使用してシステムコントローラ (SC) を管理している場合、使用している SMS のバージョンが 1.3 から 1.4.1 までであれば、サンでは Solaris Security Toolkit 4.1 ソフトウェアに対してサポートを提供しています。


Solaris Security Toolkit ソフトウェアの構成およびカスタマイズ

Solaris Security Toolkit ソフトウェアには、Sun BluePrints マニュアル『Enterprise Security: Solaris Operating Environment Security Journal, Solaris Operating Environment Versions 2.5.1, 2.6, 7, and 8』および Sun BluePrints OnLine のセキュリティー関連記事に記載されているすべてのセキュリティーガイドラインを実行するためのスクリプト、フレームワーク関数、および変数のデフォルト値が組み込まれています。これらの値はすべてのシステムに適合するわけではありません。使用しているシステムのセキュリティー要件に適合するように、Solaris Security Toolkit ソフトウェアをカスタマイズする必要があります。

Solaris Security Toolkit ソフトウェアの最も優れた特性の 1 つは、環境、システム、およびセキュリティー要件に合わせて簡単にカスタマイズできることです。Solaris Security Toolkit ソフトウェアをカスタマイズするには、ドライバ、終了スクリプト、監査スクリプト、フレームワーク関数、環境変数、およびファイルテンプレートを通して動作を調整します。

ほとんどの場合、Solaris Security Toolkit コードを変更する必要はありません。変更することでサポートやアップグレードに悪影響を与えることがあります。Solaris Security Toolkit ソフトウェアを環境に合わせて使用する際に、コードを変更せざるを得ない場合は、コードを一意のファイルまたは関数名にコピーし、ガイドラインで記述されているとおり変更履歴を簡単に追跡できるようにします。

このマニュアルでは、Solaris Security Toolkit ソフトウェアのカスタマイズに関するガイドラインおよび手順を、該当する各章で説明しています。ドライバのカスタマイズに役立つ情報を取得するには、『Solaris Security Toolkit 4.1 リファレンスマニュアル』を参照してください。カスタマイズでは、ファイルや変数を変更および作成します。

以降の章では、Solaris Security Toolkit ソフトウェアのカスタマイズ例を記載しています。例ではいくつかのカスタマイズ方法を取り上げていますが、他にも多くの方法があります。

Solaris Security Toolkit ソフトウェアをカスタマイズする前に明確に理解しておくべき情報について、以下の節で説明します。情報は多数の配備例から収集された共通のユーザー経験に基づくものであり、一般的な間違いを防ぐために役立ちます。

ポリシーおよび条件

Solaris Security Toolkit ソフトウェアをカスタマイズおよび配備する場合、適切な計画を立てることにより、カスタマイズ後のプラットフォーム構成が適正なものとなり、組織の期待に添うものになります。

計画を立てる段階で、セキュリティーのポリシーと基準、業界の規制とガイドライン、ベンダーの推奨する実践方法など、さまざまな情報を入手します。

こうした情報に加えて、カスタマイズ後の構成によって、プラットフォームに備わっている所定のビジネス機能に影響が出ないように、アプリケーションと動作条件を検討する必要があります。

ガイドライン

Solaris Security Toolkit ソフトウェアをカスタマイズする際は、以下のガイドラインを考慮してください。これらのガイドラインを理解し遵守することによって、配備のプロセスが大幅に簡素化され、効果的なものになります。



注 - pkgrm コマンドで SUNWjass を削除しても、user.init および user.run ファイルが作成されている場合、これらのファイルは削除されません。この動作は、Solaris Security Toolkit には含まれていないファイルがディレクトリ構造に追加されたときに発生します。Files ディレクトリ内のファイルと sysidcfg ファイルは Solaris Security Toolkit に含まれています。したがって、これらのファイルは削除されます。