1


概要

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

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


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

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

次に、このガイドで使用されている重要な用語を示します。



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



Solaris Security Toolkit ソフトウェアのインストールには、次の 2 つのモードがあります (これらの概要はこの節で後述)。

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

JumpStart モード

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

http://www.sun.com/download/

JumpStart テクノロジについての詳細は、Sun BluePrintstrademark マニュアル『JumpStart Technology: Effective Use in the Solaris Operating Environment』を参照してください。

スタンドアロンモード

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

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


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

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


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

ソフトウェアコンポーネントの構造を示す図。


次のプログラム (コマンドファイル) は、/bin ディレクトリにあります。

ディレクトリ

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

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

Solaris Security Toolkit ディレクトリ構造は Sun BluePrints マニュアル『JumpStart Technology: Effective Use in the Solaris Operating Environment』を参照してください。

Audit ディレクトリ

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

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

Documentation ディレクトリ

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

man ディレクトリ

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

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

Drivers ディレクトリ

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

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

Solaris Security Toolkit に含まれるドライバにはすべて、次に示す 3 つのファイルが存在します。

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

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

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

user.run ファイルには、後継バージョンまたは機能拡張されたバージョンの Solaris Security Toolkit 関数の配置場所を記すことができます。これらの関数が存在する場合、自動的に使用されます。



caution icon

注意 - 変数定義の変更は、user.init構成ファイル内だけで行なってください。driver.init構成ファイルおよび finish.init構成ファイル内の定義は決して変更しないでください。



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

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


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

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


1. ドライバによる jass-execute コマンドの使用は、JumpStart を使用しない実行にだけ適用されます。JumpStart の実行は、jass-execute コマンドを呼び出さず、ドライバを直接呼び出します。

2. ドライバによって、変数を明示的に設定できます。

3. ドライバは、各種の .init ファイルから環境変数をすべてインポートします。

4. ドライバは、JASS_FILES 環境変数と JASS_SCRIPTS 環境変数を定義します。これらの定義はオプションであり、いずれか 1 つ、または両方を定義することができます。いずれも定義しないことも可能です。

環境変数 JASS_FILESJASS_SCRIPTS の定義についての詳細は、『Solaris Security Toolkit 4.2 リファレンスマニュアル』の第 7 章を参照してください。

5. ドライバは driver.run を呼び出し、JASS_FILE および JASS_SCRIPTS 環境変数で定義されているタスクを実行します。

6. (オプション) ドライバは、finish.init または user.init 内のシステムデフォルトを上書きするために使用できる特定のドライバ動作を定義します。コード例 1-1 に示すドライバは、JASS_PASS_HISTORY を明示的に 4 に設定しています。

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


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

DIR="`/bin/dirname $0`"
JASS_PASS_HISTORY="4"
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

 

1. このコード例では、ドライバが開始ディレクトリを認識できるように、DIR 環境変数が設定およびエクスポートされます。

2. このドライバは、JASS_PASS_HISTORY 環境変数を明示的に 4 に設定します。

3. このドライバは、driver.init から読み取りを開始して、各種の .init ファイルを読み取ります。

4. JASS_HOME_DIR/Files ディレクトリからクライアントにコピーされるファイルを含むように、JASS_FILES 環境変数が定義されます。

5. Solaris Security Toolkit ソフトウェアによって実行される終了スクリプトで JASS_SCRIPTS 環境変数が定義されます。

6. driver.run ドライバを呼び出して、強化タスクが実行されます。driver.run は、JASS_FILES で定義されているファイルをコピーし、JASS_SCRIPTS で指定されているスクリプトを実行します。

Files ディレクトリ

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

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

Finish ディレクトリ

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

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

OS ディレクトリ

このディレクトリには、Solaris OS イメージのみが格納されています。これらのイメージは、JumpStart ソフトウェアのインストールプロセスでクライアントインストールの Solaris OS ソースとして使用されます。このディレクトリの名前が次の Solaris Secutiry Toolkit OS 命名規則に従っている場合、add_client スクリプトは、このディレクトリに含まれる Solaris OS バージョンを引数として受け入れます。

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

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

Solaris OS (x86/x64 プラットフォーム版)

Solaris OS (x86/x64 プラットフォーム版) では、次のディレクトリ命名規則を使用します。

Solaris_os version_4 digit year-2 digit month of CD release_ia

たとえば、Solaris OS (x86/x64 プラットフォーム版) のリリース日が 2005 年 3 月の場合、ディレクトリ名は Solaris_10_2005-03_ia のようになります。

Packages ディレクトリ

このディレクトリには、終了スクリプトによるインストールと監査スクリプトによる検証が可能なソフトウェアパッケージが格納されています。たとえば、Open Secure Shell ソフトウェアパッケージは、Packages ディレクトリに格納できます。これにより、必要に応じて正しい終了スクリプトを使用してこのソフトウェアをインストールできるようになります。

Solaris Security Toolkit ソフトウェアに含まれるいくつかの終了スクリプトと監査スクリプトは、ソフトウェアのインストール、基本的な構成、および検証の各機能を実行します。次に、Packages ディレクトリからソフトウェアをインストールして検証するスクリプトを示します。

Patches ディレクトリ

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

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

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

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

形式は <release>_x86_Recommended です。Solaris 10 OS の Solaris OS (x86/x64 プラットフォーム版) パッチクラスタの場合、ディレクトリ名は 10_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 〜 10 に対応した sysidcfg サンプルファイルが含まれています。

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

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

データリポジトリ

データリポジトリ (JASS_REPOSITORY) ディレクトリは JASS_HOME_DIR ディレクトリ構造内には存在しませんが、Solaris Security Toolkit の操作を元に戻す機能の実行をサポートしており、各実行内容に関するデータを保存します。また、このソフトウェアによって変更されたファイルの一覧を維持し、実行ログに表示されるデータを保存します。このディレクトリは、/var/opt/SUNWjass/runs/timestamp 内にあります。

バージョンの管理

Solaris Security Toolkit ソフトウェアで使用されるすべてのファイルおよびスクリプトのバージョンを管理することは、2 つの理由で非常に重要です。

1. この環境の目的の 1 つは、システムのインストールを再現することにあります。インストール中に使用されたすべてのファイルバージョンのスナップショットがなければ、この目的は達成できません。

2. これらのスクリプトは多くの組織にとってきわめて重要なセキュリティー機能を実行するため、テストが完了している必要な変更だけが実装されるよう細心の注意を払う必要があります。

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

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


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 ソフトウェアを環境に合わせて使用する際に、コードを変更せざるを得ない場合は、user.run 内でコードを一意の関数名にコピーし、ガイドラインで記述されているとおり変更履歴を簡単に追跡できるようにします。

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

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

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

ポリシーおよび条件

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

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

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

ガイドライン

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

ファイルをカスタマイズする場合は、まずファイルをコピーします。元のファイルはそのままにして、コピーを変更します。このガイドラインには 1 つだけ次の例外があります。

   

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





注 - Solaris Security Toolkit 4.2 ソフトウェアでは、pkgrm コマンドに新機能が追加されています。このリリースの pdgrm コマンドは、最初の処理としてディストリビューションに含まれるすべてのファイルの整合性をチェックします。異なるファイルが見つかると、pkgrm コマンドは正しいファイルを配置するか、あるいは変更されたファイルを削除するようにシステム管理者に伝えるエラーメッセージを表示して終了します。