ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (セキュリティサービス) Oracle Solaris 10 8/11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
13. Oracle Solaris の暗号化フレームワーク (概要)
14. Oracle Solaris の暗号化フレームワーク (手順)
19. Oracle Solaris Secure Shell の使用 (手順)
20. Oracle Solaris Secure Shell (参照)
監査サービスでは、次のファイルが使用されます。
/etc/system ファイルには、カーネルが初期設定で読み込み、システム動作をカスタマイズするためのコマンドが格納されます。bsmconv および bsmunconv シェルスクリプトは、監査機能を起動および終了するときに使用され、/etc/system ファイルを変更します。bsmconv シェルスクリプトは、/etc/system ファイルに次の行を追加します。
set c2audit:audit_load=1
set c2audit:audit_load=1 エントリは、システムのブート時に監査用のカーネルモジュールをロードします。bsmunconv シェルスクリプトは、システムのリブート時に監査を無効にします。このコマンドは、/etc/system ファイルから c2audit の行を削除します。
/etc/syslog.conf ファイルは audit_syslog.so プラグインと一緒に機能して、監査レコードをテキスト形式で格納します。syslog ユーティリティーが監査レコードを格納できるように、syslog.conf ファイルを設定できます。例は、「syslog 監査ログの構成方法」を参照してください。
/etc/security/audit_class ファイルは、監査クラスを定義します。監査クラスは、監査イベントのグループです。audit_control ファイル内のこのクラス名を使用して、監査するイベントのクラスを事前選択します。クラスには、失敗したイベントだけ、または正常なイベントだけを選択する接頭辞を使用できます。詳細は、「監査クラスの構文」を参照してください。
スーパーユーザーまたはそれと同等の役割を持つ管理者は、監査クラスの定義を変更できます。管理者は、audit_class ファイルをテキストエディタで編集することによって、新しい監査クラスを定義したり、既存クラスの名前を変更したり、既存クラスにその他のさまざまな変更を施したりすることができます。詳細は、audit_class(4) のマニュアルページを参照してください。
各システム上の/etc/security/audit_control ファイルには、auditd デーモンの構成情報が含まれます。このファイルを使用すると、すべてのシステムが、その監査レコードを格納する遠隔監査ファイルシステムをマウントできるようになります。
audit_control ファイルには、次の 5 種類の情報を指定できます。各行の情報は、キーワードで始まります。
flags キーワード – このキーワードで始まるエントリは、システム上のすべてのユーザーを対象に監査するイベントのクラスを事前選択します。ここで指定する監査クラスは、「システム全体の監査事前選択マスク」を指定します。監査クラスはコンマで区切ります。
naflags キーワード – このキーワードで始まるエントリは、特定のユーザーに起因しない動作が発生したときに監査するイベントのクラスを事前選択します。監査クラスはコンマで区切ります。na イベントクラスは、このエントリにあります。naflags エントリを使用すると、通常はユーザーに起因するがユーザーに起因できないほかのイベントクラスのログをとることができます。たとえば、ブート時に起動するプログラムがファイルを読み取ると、naflags エントリ内の fr がそのイベントのレコードを作成します。
minfree キーワード – このキーワードは非推奨です。audit_binfile.so プラグインの p_minfree 属性を使用します。
p_minfree 属性は、すべての監査ファイルシステムについて、最小空き容量レベルをパーセントで定義します。この割合は、0 以上で指定する必要があります。デフォルトは 20% です。監査ファイルシステムの使用率が 80% に達すると、次に利用可能な監査ディレクトリに監査データが格納されるようになります。詳細は、audit_warn(1M) のマニュアルページを参照してください。
dir キーワード – このキーワードは非推奨です。audit_binfile.so プラグインの p_dir 属性を使用します。
p_dir 属性は、ディレクトリの場所を一覧表示します。各行の値には、監査ファイルを格納するためにシステムが使用する、監査ファイルシステムとディレクトリを定義します。1 つまたは複数のディレクトリの場所を指定できます。値については、順番が重要になります。auditd デーモンは、ここで指定した順番でディレクトリに監査ファイルを作成します。1 番目のディレクトリがそのシステムの「1 次監査ディレクトリ」になり、2 番目のディレクトリが「2 次監査ディレクトリ」になります。1 番目のディレクトリがいっぱいになると、auditd デーモンは 2 番目以降のディレクトリに監査トレールファイルを作成します。詳細は、audit(1M) のマニュアルページを参照してください。
plugin キーワード – プラグインモジュール audit_binfile.so および audit_syslog.so のプラグインパスを指定します。audit_binfile.so モジュールは、バイナリ監査ファイルの作成を処理します。audit_syslog.so モジュールは、Oracle Solaris 監査レコードをテキスト形式にリアルタイムで変換します。audit_syslog.so プラグインの p_flags 属性に指定された監査クラスは、事前選択された監査クラスのサブセットである必要があります。
audit_control ファイルの詳細は、audit_control(4) のマニュアルページを参照してください。プラグインについては、「監査プラグイン」、 audit_binfile(5) および audit_syslog(5) のマニュアルページを参照してください。
例 31-2 audit_control ファイルの例
次の例は、システム noddy で使用する audit_control ファイルです。noddy では、監査サーバー blinken 上で 2 つの監査ファイルシステムを使用し、2 つ目の監査サーバー winken からマウントされる 3 つ目の監査ファイルシステムを使用します。3 つ目のファイルシステムは、blinken 上の監査ファイルシステムがいっぱいであるか使用できないときにだけ使用されます。minfree の値として 20% を指定しているため、ファイルシステムの使用率が 80% に達した時点で警告スクリプトが実行されます。次の設定では、監査対象としてログイン操作と管理操作が指定されています。これらの操作について、その成功と失敗が監査されます。ファイルシステムオブジェクト作成の失敗を除くすべての失敗が、監査対象となります。また、ユーザーに起因しないイベントも監査されています。syslog 監査ログはより少ない監査イベントを記録します。このログには、失敗したログインと失敗した管理操作のテキストサマリーが記録されます。
Solaris 10 リリースでは、dir 行および minfree 行は非推奨です。次の例では、plugin 行に改行が含まれていません。
flags:lo,am,-all,^-fc naflags:lo,nt plugin:name=audit_binfile.so; p_minfree=20; p_dir=/var/audit/blinken/files, /var/audit/blinken.1/files,/var/audit/winken plugin:name=audit_syslog.so; p_flags=-lo,-am
/etc/security/audit_event ファイルには、監査イベントから監査クラスへのマッピングのデフォルト値が格納されます。このファイルを編集して、クラスのマッピングを変更できます。クラスのマッピングを変更したときは、システムをリブートするか、変更したマッピングをカーネルに読み込むために auditconfig -conf コマンドを実行する必要があります。詳細は、audit_event(4) のマニュアルページを参照してください。
システムがマルチユーザーモードに移行すると、/etc/security/audit_startup スクリプトが監査サービスを自動的に構成します。auditd デーモンは、スクリプトが次のタスクを実行してから起動します。
監査イベントから監査クラスへのマッピングを構成する
監査ポリシーオプションを設定する
詳細は、audit_startup(1M) のマニュアルページを参照してください。
/etc/security/audit_user データベースは、システム全体の事前選択クラスを個々のユーザーごとに変更します。audit_user データベース内のユーザーエントリに追加するクラスは、audit_control ファイルにある設定を次の 2 つの方法で変更します。
そのユーザーについて常に監査する監査クラスを指定する
そのユーザーについて監査しない監査クラスを指定する
audit_user データベースの各ユーザーエントリには、次の 3 つのフィールドがあります。
username:always-audit-classes:never-audit-classes
always-audit-classes フィールドは、指定されたクラスの監査を有効にします。このフィールドを使用してシステム全体の設定を変更します。たとえば、always-audit-classes フィールドに all を指定すると、ユーザーのすべての動作が監査されます。
never-audit-classes フィールドは、指定されたクラスの監査を無効にします。このフィールドを使用して、システム設定を上書きします。never-audit-classes フィールドに all を指定すると、audit_control ファイルに指定された監査クラスを含め、ユーザーのすべての監査がオフになります。
たとえば、ファイルシステムオブジェクトの正常な読み取り動作を除き、システム全体の監査設定を tamiko というユーザーに適用するとします。次の audit_user エントリでの 2 番目のコロン (:) の位置に注意してください。
tamiko:^+fr:no modify system defaults for fr
前述のエントリは、「正常なファイル読み取り動作を除くすべての動作を監査する」ことを意味しています。
ユーザー tamiko について、正常なファイル読み取り動作を除くすべての動作を監査する場合、次のエントリを使用します。
tamiko:all,^+fr:no audit everything except fr
ユーザー tamiko の正常なファイル読み取り動作について、システムのデフォルト設定を上書きするとします。次のエントリは、「常にすべての動作を監査するが、正常なファイルの読み取り動作はまったく監査しない」ことを意味しています。
tamiko:all:+fr override system defaults for fr
注 - 正常終了したイベントと失敗したイベントは別々に取り扱われます。プロセスが生成する監査レコードの数は、イベントが正常終了した場合よりも失敗した場合のほうが多くなる可能性があります。
auditd デーモンで監査レコードの書き込み中に異常な状態が発生すると、/etc/security/audit_warn スクリプトは電子メールエイリアスに通知します。このスクリプトをサイトに合わせてカスタマイズすることで、手動による対処が必要な状態を警告するようにしたり、そのような状態を自動的に処理するための方法を指定したりできます。エラーが発生すると、audit_warn スクリプトは、daemon.alert の重要度で syslog にメッセージを書き込みます。syslog.conf を使用すると、syslog メッセージのコンソール表示を設定できます。audit_warn スクリプトはさらに、audit_warn 電子メールエイリアスにもメッセージを送信します。このエイリアスは、監査構成の一部として設定します。
auditd デーモンは、次の条件を検出すると audit_warn スクリプトを起動し、audit_warn エイリアスに電子メールを送信します。
監査ディレクトリが minfree の許容値を超えていっぱいになった場合。minfree 値は弱い制限値で、監査ファイルシステム上で使用できる領域の割合です。
audit_warn スクリプトは、文字列 soft と、使用可能領域が下限値を下回ったディレクトリ名を使用して起動されます。auditd デーモンは、次の適切なディレクトリに自動的に切り替えます。デーモンは、新しいディレクトリが minfree 制限値に達するまで、このディレクトリに監査ファイルを書き込みます。その後、auditd デーモンは、audit_control ファイルに指定された順序で残りの各ディレクトリに順次アクセスします。デーモンは、各ディレクトリが minfree 制限値に達するまで監査レコードを書き込みます。
すべての監査ディレクトリが minfree しきい値に達した場合。
文字列 allsoft を使用して audit_warn スクリプトが起動されます。コンソールにメッセージが出力されます。さらに、audit_warn のエイリアスに電子メールが送信されます。
audit_control ファイルに指定されたすべての監査ディレクトリが minfree しきい値に達すると、auditd デーモンは最初のディレクトリに戻ります。デーモンは、そのディレクトリが完全にいっぱいになるまで監査レコードを書き込みます。
監査ディレクトリが完全にいっぱいになり、残りの容量がなくなった場合。
文字列 hard とディレクトリ名を使用して、audit_warn スクリプトが起動されます。コンソールにメッセージが出力されます。さらに、audit_warn のエイリアスに電子メールが送信されます。
auditd デーモンは、使用可能領域が残っている次の適切なディレクトリに自動的に切り替えます。その後、auditd デーモンは、audit_control ファイルに指定された順序で残りの各ディレクトリに順次アクセスします。デーモンは、各ディレクトリがいっぱいになるまで完全レコードを書き込みます。
すべての監査ディレクトリが完全にいっぱいになった場合。引数として文字列 allhard を使用して、audit_warn スクリプトが起動されます。
デフォルトでは、コンソールにメッセージが書き込まれます。さらに、audit_warn のエイリアスに電子メールが送信されます。監査レコードを生成するはずのプロセスは引き続き発生しますが、監査レコードはカウントされます。監査レコードは生成されません。この状況に対処する方法の例については、例 30-16 と「監査トレールのオーバーフローを防ぐ方法」を参照してください。
audit_control ファイルの構文に問題が検出された場合。デフォルトでは、コンソールにメッセージが書き込まれます。さらに、audit_warn のエイリアスに電子メールが送信されます。
perzone 監査ポリシーが設定されている場合、非大域ゾーンの auditd のインスタンスがゾーンの audit_warn スクリプトを呼び出します。詳細は、audit_warn(1M) のマニュアルページを参照してください。
/etc/security/bsmconv スクリプトは、監査サービスを有効にします。bsmunconv コマンドは、監査サービスを無効にします。bsmconv スクリプトを実行したあと、監査ディレクトリと監査構成ファイルを設定します。リブート時に、監査が有効になります。
詳細は、bsmconv(1M) のマニュアルページを参照してください。