SunSHIELD 基本セキュリティモジュール

監査トレールの作成

監査トレールは監査デーモンによって作成されます (詳細は、auditd(1M) のマニュアルページを参照)。監査デーモンは、マシンが起動されるとそのマシン上で起動されます。 auditd は、ブート時に起動されると、監査トレールデータを収集し、監査レコードを監査ファイルに書き込む処理を受け持ちます。このファイルを監査ログファイルとも呼びます。 ファイルの書式についての詳細は、audit.log(4) のマニュアルページを参照してください。

監査デーモンは root として動作します。監査デーモンによって作成されるファイルは、すべて root が所有します。auditd は、監査するクラスがなくても動作を継続し、監査レコードを置く場所を探します。また、カーネルの監査バッファがいっぱいになったためにマシンの他の動作が中断されても、auditd は動作を続けます。監査動作を続行できるのは、auditd が監査の対象ではないからです。

監査デーモンは、一度に 1 つしか実行できません。第 2 の監査デーモンを起動しようとすると、エラーメッセージが表示され、その新しい監査デーモンが終了します。 監査デーモンに問題がある場合は、audit -t を使用して auditd を正常に終了させ、手作業で再起動してみる必要があります。

デーモンが監査ディレクトリを切り替えたり、問題 (記憶領域不足など) が発生すると、 auditd によって audit_warn スクリプトが実行されます。 分散システムであることから、 audit_warn スクリプトは audit_warn の別名にメールを送り、コンソールにメッセージを送ります。 サイトでは、必要に応じて audit_warn をカスタマイズする必要があります。 audit_warn スクリプトをカスタマイズする方法については、audit_warn スクリプト」を参照してください。

audit_data ファイル

auditd は、各マシン上で起動されると、ファイル /etc/security/audit_data を作成します。 このファイルの書式は、1 つのエントリに、コロンで区切られた 2 つのフィールドがあります (audit_data(4) のマニュアルページを参照)。第 1 のフィールドは監査デーモンのプロセス ID で、第 2 のフィールドは、監査デーモンが監査レコードを現在書き込んでいる監査ファイルのパス名です。

# cat /etc/security/audit_data
116:/etc/security/audit/blinken.1/files/19910320100002.not_terminated.lazy

監査デーモンの役割

次に、監査デーモン auditd の役割を示します。

マシンがマルチユーザモードで起動されるときに監査デーモンが起動されたり、または、監査デーモンが audit -s コマンドにより auditd ファイルを編集後にもう一度読み取るように命令を受けると、auditd は必要な空き容量を判断し、audit_control ファイルからディレクトリのリストを読み取り、それを監査ファイルの作成場所の候補として使用します。

監査デーモンは、このディレクトリのリストへのポインタを最初から管理します。監査デーモンが監査ファイルを作成しなければならなくなるたびに、監査デーモンはそのカレントポインタから始めて、監査ファイルをリスト内の最初の使用可能ディレクトリに入れます。管理者が audit -s コマンドを入力すると、このポインタをリストの先頭にリセットできます。audit -n コマンドを使用して、新しい監査ファイルに切り替えるようにデーモンに命令すると、新しいファイルは現在のファイルと同じディレクトリ内で作成されます。

監査デーモンが使用できるディレクトリ

監査デーモンがあるディレクトリを使用するには、そのディレクトリにアクセスできることが条件となります。つまり、そのディレクトリがマウントされ、ネットワーク経由 (リモートの場合) のアクセスが許可され、ディレクトリに対するアクセス権がなければなりません。また、監査ファイルをディレクトリに保存するには、十分な空き領域がなければなりません。audit_control ファイルの minfree: 行を編集して、デフォルトの 20 パーセントを変更できます。minfree の設定が 20 パーセントというデフォルトの最小空き領域の場合は、ファイルシステムが 80 パーセントを超えていっぱいになると、audit_warn の別名に電子メール通知が送信されます。

十分な空き領域が残っているディレクトリがリストになければ、デーモンはリストの先頭から始めて最後に達するまで、強い制限値に達しておらず使用可能領域が残っている最初のアクセス可能なディレクトリを選択します。デフォルト構成では、適切なディレクトリがなければ、デーモンは監査レコードの処理を停止し、監査レコードを生成中のすべてのプロセスが中断されるまで、カーネル内に蓄積します。

監査ファイルを常に管理可能な状態に保つ

監査ファイルを管理可能なサイズに保つために、監査ファイルを定期的に切り替える cron ジョブを設定できます (cron(1M) のマニュアルページを参照)。切り替え間隔は、収集される監査データの量に応じて、1 時間ごとから 1 日に 2 度までの範囲で設定できます。データにフィルタをかけ、不要な情報を削除して圧縮できます。