第6章 |
|
この章では、Solaris Security Toolkit ソフトウェアを使用してシステムのセキュリティーを監査 (検証) する方法について説明します。セキュリティー強化後、確立されたセキュリティープロファイルを管理するには、この章で説明する情報と手順を使用します。すでに配備済みのシステムの場合、この章で説明する情報を参考にセキュリティーを評価してから、強化することもできます。
注 - この章とマニュアルで使用する監査という用語は、システムのセキュリティー状態を定義済みのセキュリティープロファイルと比較して検証する、Solaris Security Toolkit ソフトウェアの自動プロセスを指します。このマニュアルでこの用語を使用する場合、監査を実行したあとでシステムのセキュリティーが完全に確保されていることを保証するものではありません。 |
セキュリティーの管理は、定期的な確認と再検討が求められる処理です。システムのデフォルトのセキュリティー構成は時間がたつうちに他人に知られてしまいがちなため、セキュリティーを維持するには注意が必要です (セキュリティーの管理についての詳細は、システムのセキュリティーの維持 を参照)。
Solaris Security Toolkit には、指定されたセキュリティープロファイルとの準拠レベルを調べることによって、システムのセキュリティー状態を自動的に監査する手段が用意されています。
注 - この手段は、jass-execute -a コマンドを使用するスタンドアロンモードでのみ使用でき、JumpStart インストールの実行中は使用できません。 |
システムのセキュリティー状態の定期的な監査を手動または自動的に行います ( cron ジョブや rc スクリプトなどを使用)。たとえば、新規インストールのセキュリティーを強化した 5 日後に、Solaris Security Toolkit ソフトウェアの監査コマンド (jass-execute -a driver-name) を実行して、システムのセキュリティーがセキュリティープロファイルで定義された状態から変更されていないかどうかを調べます。
セキュリティーを監査する頻度は、セキュリティーポリシーと環境の重要度によって異なります。ユーザーによっては 1 時間ごとに監査を行う場合や、毎日行う場合、月に 1 回だけ行う場合があります。また、1 時間ごとに ミニスキャン (チェック数に制限がある) を行い、1 日に 1 回フルスキャン (可能なチェックをすべて行う) を行う場合もあります。定期的に行うほかの監査とは別に、システムを再起動するたびに、その直後にセキュリティー状態をしっかりとチェックすることをお勧めします。
配備済みシステムのセキュリティー状態を管理するには、重要なコンポーネントをすべて監査します。セキュリティー状態を定期的に監査していないと、エントロピや、適正なセキュリティー状態を無意識または意図的に変更する修正により、構成が時間とともに変動することがよくあります。定期的に確認していないと、このような変更が検出されず、適切な対策を講じることができません。その結果、システムのセキュリティーが低下し、脆弱性が高まります。
定期的な監査に加え、アップグレードやパッチのインストールなどのような重要なシステム構成変更のあとにも監査を行います。
配備済みシステムのセキュリティーを強化する前に、そのシステムのセキュリティー状態を確認しておくと役立つことがあります。たとえば、配備済みシステムの管理を他の担当者から引き継いだ場合、システムの状態を調べれば、セキュリティー状態を把握できます。また、必要に応じて、他のシステムと同じセキュリティープロファイルに準拠させることもできます。
監査オプションを使用すると、システムの状態を柔軟かつ広範に評価できます。強化スクリプトと同様、監査スクリプトの処理内容もカスタマイズできます。たとえば、環境変数のカスタマイズや、フレームワーク関数とヘルパー関数のカスタマイズが行えます。また、新しいチェックの追加、監査フレームワークへの機能の追加なども行えます。
ほとんどの場合、環境に応じて監査処理をカスタマイズする際のテンプレートとして、標準および製品固有の監査スクリプトが最適です。この場合、ドライバ、終了スクリプト、環境変数、およびファイルテンプレートを使用して監査スクリプトの動作をカスタマイズします。これら変更にはほとんど手間がかからず、コードを変更する必要もありません。セキュリティー強化に関する変更はすべて、監査の実行時に Solaris Security Toolkit ソフトウェアに自動的に認識されます。
ユーザーによっては、まったく新しい独自の、またはサイト固有のドライバやスクリプトの作成が必要な場合もあります。新しいドライバやスクリプトをコーディングするときは、テンプレートとサンプルを手本にします。サイト固有のドライバ、終了スクリプト、変数、および関数は、監査オプションの使用時に自動的に Solaris Security Toolkit ソフトウェアに認識されません。たとえば、サイト固有の終了スクリプト abcc-nj-install-foo.fin を含むサイト固有のドライバ abcc-nj-secure.driver を追加する場合は、サイト固有の監査スクリプト abcc-nj-install-foo.aud を作成する必要があります。同様に、監査スクリプトのみで開始する場合は、対応する終了スクリプトを作成する必要があります。
場合によっては、Solaris Security Toolkit ソフトウェアに備わっていないチェックや機能の追加が必要です。このような場合、チェックや新機能を監査スクリプトに追加します (該当する終了スクリプトに変更を加えることもできる)。user.run ファイルを通してコードに追加や変更を加える場合は、バグや障害の原因にならないように特に慎重に行なってください。
新しいドライバ、スクリプト、変数、および関数をカスタマイズまたは作成する場合は、『Solaris Security Toolkit 4.2 リファレンスマニュアル』を参照してください。
たとえば、Solaris Security Toolkit ソフトウェアによってインストールされないパッチを追加する必要があるとします。この場合、標準または製品固有のテンプレートのいずれかを拡張することも、独自に作成することもできます。独自のテンプレートを作成する場合は、パッチの追加を実行する終了スクリプトを作成してから、パッチのインストールを確認する監査スクリプトを作成します。既存の終了スクリプト (.fin) と監査スクリプト (.aud) をテンプレートとして使用する場合は、一意の名前を持つ新しいファイルにこれらのスクリプトを両方ともコピーする必要があります。
この章で説明する手順とガイドラインを使用するには、セキュリティープロファイルが必要です。セキュリティープロファイルの開発および実装については、第 2 章を参照してください。
Solaris Security Toolkit には、各種のセキュリティープロファイルがドライバとして含まれています。前述のとおり、デフォルトのセキュリティープロファイルとそれらのプロァイルによって行われた変更がシステムに適さない場合もあります。一般に、実装されるセキュリティープロファイルは、「最高水準」のセキュリティーを設定します。つまり、不要なサービスを無効にするだけでなく、secure.driver によって無効になっている任意のセキュリティー機能を有効にします。
Solaris Security Toolkit ソフトウェアの多くのユーザーは、標準および製品固有のセキュリティープロファイルを各自の環境に適用できます。具体的には、必要なセキュリティー状態に最も近いセキュリティープロファイルを見つけ、それをシステムの評価と強化の両方に使用します。
セキュリティープロファイルテンプレートを確認し、環境に合わせてカスタマイズするか、新しいテンプレートを作成します。セキュリティープロファイルをカスタマイズするテクニックとガイドラインについては、『Solaris Security Toolkit 4.2 リファレンスマニュアル』を参照してください。こうすることで、組織の必要性に合わせて調整したセキュリティー状態を実現できるとともに、セキュリティー評価中に返される不正エラーを最小限に抑えることもできます。たとえば、Telnet を有効にする必要があれば、セキュリティー評価時に Telnet が脆弱性として見なされないようにセキュリティープロファイルをカスタマイズできます。したがって、認証と暗号化に Telnet と Kerberos を使用するサイトでは、Telnet を使用しても脆弱性とは見なされません。
この節では、監査の実行時に使用できるオプションと出力制御用のオプションについて説明します。この節では、以下の項目を説明します。
次のコマンド行形式は、セキュリティープロファイルに照らしてシステムの監査を行う方法を示しています。
Solaris Security Toolkit ソフトウェアの監査コマンドを実行するときは、表 6-1 に示すオプションを使用できます。
-o output_file |
|
非出力モードを指定します。このコマンドの実行中、メッセージは表示されません。出力は JASS_REPOSITORY/ に格納されます。 |
|
jass-execute -a コマンドで使用できるオプションについての詳細は、以下の節を参照してください。
-h オプションを使用すると、使用可能なオプションの概要を説明する jass-execute ヘルプメッセージが表示されます。
-m email-address オプションを使用すると、実行の完了時に Solaris Security Toolkit ソフトウェアによって出力が電子メールで自動的に送信されます。他のオプションを使用すると、ログに加えて電子メールレポートも生成されます。
sunfire_15k_sc-config.driver を呼び出し、電子メール通知オプションを使用して Solaris Security Toolkit ソフトウェアを実行する場合、次のように指定します。
-o output-file オプションは、jass-execute のコンソール出力を別ファイル output-file に転送します。
このオプションは、JASS_REPOSITORY ディレクトリで維持されるログには影響しません。Solaris Security Toolkit は大量の出力を生成するので、このオプションは、低速の端末接続環境で実行する場合に特に便利です。
このオプションは、-d、-u、または -a オプションとともに使用できます。
-o オプションを使用すると、以下のような出力が生成されます。
# ./jass-execute -o jass-output.txt -a secure.driver [NOTE] Executing driver, secure.driver [NOTE] Recording output to jass-output.txt # |
-q オプションを使用すると、セキュリティー強化の実行時に Solaris Security Toolkit から標準入出力 (stdio) ストリームへの出力が行われなくなります。
このオプションは、JASS_REPOSITORY ディレクトリで維持されるログには影響しません。-o オプションと同様、このオプションも、Solaris Security Toolkit ソフトウェアを cron ジョブを利用して実行する場合や、低速のネットワーク接続環境で実行する場合に特に便利です。
このオプションは、-d、-u、または -a オプションとともに使用できます。
-q オプションを使用すると、以下のような出力が生成されます。
-V オプションは、監査の詳細レベルを指定します。このオプションは監査でのみ使用できます。詳細レベルを使用すると、監査結果の表示方法を柔軟に制御できます。たとえば、監査対象のマシンが 100 台ある場合、出力をマシンごとに 1 行ずつ表示するように制限すれば、合格したマシンと不合格のマシンを簡単に判別できます。その後、不合格のマシンに対して、拡張出力を生成する監査を実行すれば、問題箇所を絞り込めます。
-V オプションによって 5 つの詳細レベル (0 〜 4) を制御します。レベルを上げるごとに情報が詳細になり、これらの情報を基に合格したチェックと不合格のチェックをより詳しく理解できます。表 6-2 に詳細レベルを示します。
スクリプトごとに合格または不合格を示す行が 1 行表示されるほか、スクリプト行がすべて表示されたそのあとに総合計スコアを示す行が 1 行表示されます。 |
|
複数行 (レベル 3 で表示される全データ) に加え、logDebug ログ関数によって生成された項目がすべて表示されます。これはデバッグ用のレベルです。 |
監査の詳細レベルについての詳しい説明は、jass-execute のマニュアルページ、または『Solaris Security Toolkit 4.2 リファレンスマニュアル』、第 7 章の「JASS_VERBOSITY」を参照してください。
Solaris Security Toolkit の監査オプションは、バナーとメッセージをレポートまたは無視するように構成できます。JASS_LOG_BANNER 変数は、詳細レベル 0 〜 2 では使用できません。これらの出力オプションは、詳細レベル 3 および 4 に適用されます。たとえば、出力から合格メッセージ (JASS_LOG_SUCCESS 変数) を削除すれば、不合格メッセージ (JASS_LOG_FAILURE 変数) のみをレポートして、それだけを処理できます。
表 6-3 に、ログ変数によって制御できるバナーとメッセージを示します。ログ変数についての詳細は、『Solaris Security Toolkit 4.2 リファレンスマニュアル』、第 7 章の「JASS_LOG_BANNER」を参照してください。詳細レベルについての詳しい説明は、jass-execute のマニュアルページ、または『Solaris Security Toolkit 4.2 リファレンスマニュアル』、第 7 章の「JASS_VERBOSITY」を参照してください。ログ変数に 0 が設定されていると、そのメッセージの種類では出力が生成されません。逆に、ログ変数が 1 に設定されている場合は、メッセージが表示されます。これらの各変数は、デフォルトでは出力を表示します。表 6-3 にログ変数を示します。
このパラメタは、バナーメッセージの表示を制御します。これらのメッセージは、通常は等号 (=) またはハイフン (-) 文字のいずれかを含む区切り文字で囲まれています。 |
||
このパラメタは、成功または合格状態メッセージの表示を制御します。0 に設定されている場合、成功メッセージは生成されません。 |
||
これらのオプションは、特定のメッセージのみ表示する必要がある場合に便利です。これらのオプションを設定すれば、出力を最小限に抑えながら、重要な箇所に焦点を絞ることができます。たとえば、JASS_LOG_FAILURE (デフォルト設定の 1 のまま) を除くすべてのログ変数に 0 を設定すると、監査結果として logFailure 関数によって生成された失敗のみレポートされます。
Solaris Security Toolkit の監査オプションは、詳細レベル 0 〜 2 でホスト名、スクリプト名、およびタイムスタンプ情報も出力するように構成できます。たとえば、監査対象のマシンが多数ある場合、ホスト名、スクリプト名、またはタイムスタンプで出力をソートできます。表 6-4 に変数を示します。
ホスト、スクリプト、およびタイムスタンプ情報を付加するように Solaris Security Toolkit ソフトウェアを構成することで、単一のシステムまたは複数のシステムからの多くの実行結果を連結し、キーとなるデータを基にそれらをソートできます。これらの情報から、複数のシステムにかかわる問題や、配備プロセスの問題を探すことができます。たとえば、情報をこのように利用すれば、管理者は、特定のプロセスによって構築されたシステムで常に同じチェックが失敗するかどうかを調べることができます。
JASS_DISPLAY_TIMESTAMP パラメタを 1 に設定し、JASS_DISPLAY_SCRIPTNAME の値を 0 に設定すると、次のような出力が生成されます。
システムの定期的なセキュリティー評価は、実装されたセキュリティープロファイルにセキュリティーがどの程度準拠しているかを示すベンチマークになります。セキュリティー評価を実行する最も一般的な例として、新規インストールのセキュリティー強化後に行うセキュリティー保守があります。セキュリティー評価オプションは、システムのセキュリティー強化に使用したものと同じ強化ドライバを実行すれば済むように設計されていましたが、現在では、セキュリティー強化中に実装されたセキュリティープロファイルと比較することで現在の状態をチェックする -a オプションを使用します。これによって複雑さが軽減するとともに、柔軟性が得られます。たとえば、セキュリティープロファイルをアップデートすると、以降のセキュリティー評価は、アップデート後のセキュリティープロファイルを使用して行われます。
次に、すでに配備みのシステムのセキュリティー管理を担当する場合を考えてみます。システムのセキュリティーを強化する前に、セキュリティー評価を実行するとします。このような場合、独自のセキュリティープロファイルを定義した上で、Solaris Security Toolkit のセキュリティープロファイルテンプレートをカスタマイズするか、セキュリティープロファイルテンプレートをそのまま使用します。
セキュリティー監査を実行する |
監査を実行する前に、セキュリティープロファイルを定義または選択する必要があります。詳細については、セキュリティー監査の準備を参照してください。
注意 - まだセキュリティーが強化されていない配備済みシステムにセキュリティー評価を実行する場合は、最初にマシンをバックアップして再起動し、マシンの構成が既知の作業状態にあり、整合性が保たれていることを確認してください。この再起動時に検出されたエラーや警告を修正またはメモしてから、セキュリティー評価を実行します。 |
1. 使用するセキュリティープロファイル (強化ドライバ) を選択します。
たとえば、secure.driver または abccorp-secure.driver を使用します。
標準ドライバおよび製品固有ドライバの最新の全一覧と情報については、security_drivers のマニュアルページ、または『Solaris Security Toolkit 4.2 リファレンスマニュアル』の第 4 章を参照してください。
2. 使用するコマンド行オプションと出力の制御方法を決定します。
オプションの使用と監査出力の制御を参照してください。
3. jass-execute -a コマンド、セキュリティープロファイル名、および使用するオプションを入力します。
次に、abc-secure.driver を使用して監査を実行した例を示します。
監査が開始されると、Solaris Security Toolkit ソフトウェアは JASS_HOME_DIR/Audit ディレクトリからファイルにアクセスします。JASS_HOME_DIR/Audit と JASS_HOME_DIR/Finish の両ディレクトリ内のファイルは、同じベースファイル名を共有していますが、ファイル名の接尾辞が異なります。driver.run スクリプトは、JASS_SCRIPTS 変数で定義されている終了スクリプトの接尾辞を .fin から .aud に変更することによってそれらのスクリプトを自動的に監査スクリプトに変換するとともに、実行中に各警告レベルで生成されるメッセージをすべて含むファイルを示します。
監査が開始され、Solaris Security Toolkit ソフトウェアの状態が初期化されます。実行中にアクセスされる各ドライバによって、そのファイルテンプレートと監査スクリプトの状態がすべて評価されます。各チェックの結果、脆弱性を示すゼロまたはゼロ以外の値によって成功または失敗が示されます。通常、失敗は 1 で表されます。実行された各スクリプトは、スクリプトに含まれる各チェックの脆弱性値の合計に基づいて、セキュリティースコアの合計を算出します。各ドライバの総合的な脆弱性値は、ドライバによる評価が完了したところで表示されます。全スコアの総合計が実行終了時に表示されます。
セキュリティー評価オプションは、評価開始時にシステムの状態を全体的に確認する手段です。Solaris Security Toolkit ソフトウェアは、構成ファイルを調べることにより、保存されているシステム状態をチェックするとともに、プロセステーブル情報やデバイスドライバ情報などを調べることにより、システムの実行状態をチェックします。Solaris Security Toolkit ソフトウェアは、各ファイルまたはサービスの有無をチェックし、サービスに関連付けられたソフトウェアがインストールされているか、構成されているか、有効になっているか、および実行されているかどうかをチェックします。このようにして、現在のシステム状態に関する正確なスナップショットが得られます。
Copyright© 2005, Sun Microsystems, Inc. All rights reserved.