Trusted Solaris の監査管理

監査クラスと監査イベント

セキュリティに関連したアクションについて監査を行います。監査可能なシステムアクションは、/etc/security/audit_event ファイルに「監査イベント」として定義されています。ここには、各監査イベントの記号名、イベント番号、事前選択クラスのセット、簡単な説明も定義されています (audit_event(4) のマニュアルページを参照)。

イベントのほとんどは、個々のユーザーのアクションが原因で発生しますが、ユーザーアクションを原因としないイベントもあります。こうしたイベントはカーネル割り込みレベルで発生したり、ユーザーが識別、認証される前に発生します。このようなユーザーアクションを原因としないイベントも監査することができます。

各監査イベントは、1 つまたは複数の「監査クラス」に属しています。管理者は、監査デーモンに監査対象を設定する際に、「監査フラグ」という監査クラスの短形式名を指定します。クラスを指定すると、そのクラス内の全イベントが同時に指定されます。また、監査イベントとクラスの対応関係やクラス自体の構成も、管理者が行います。構成の変更には audit_event ファイルを使用します。新しいクラスは、audit_class ファイルに追加されます。

監査イベントが監査トレールに記録されるかどうかは、管理者がその監査イベントを含む監査クラスを事前選択しているかによって決まります。

監査クラス

監査クラスの定義は /etc/security/audit_class ファイルに保存されます。サイト固有の定義を追加したり、デフォルトの定義を変更する場合は、このファイルを使用します。ファイル中のエントリはどれも次の書式をとります。

mask:name:description

この場合、mask はマスク、name はクラス名、description は説明を表しています。各クラスは、マスクのビットとして、符号なし整数で表されます。使用できるクラスは最大 32 個で、このほかに allno の 2 つのグローバルクラスがあります。all は監査する全クラスの集合であり、no は監査しないクラスの集合です。no クラスに割り当てたイベントは監査されません。また、no クラスだけに割り当てたイベントは、all クラスを有効にしても監査されません。次の表は、audit_class ファイルの例です。

0x00000000:no:invalid class
0x00000001:fr:file read
0x00000002:fw:file write
0x00000004:fa:file attribute access
0x00000008:fm:file attribute modify
0x00000010:fc:file create
0x00000020:fd:file delete
0x00000040:cl:file close
0x00000100:nt:network
0x00000200:ip:ipc
0x00000400:na:non-attribute
0x00001000:lo:login or logout
0x00002000:ax:x server
0x00004000:ap:application
0x000f0000:ad:administrative
0x00010000:ss:change system state
0x00020000:as:system-wide administration
0x00040000:aa:audit administration
0x00080000:ao:other administration
0x00300000:pc:process
0x00100000:ps:process start/stop
0x00200000:pm:process modify
0x20000000:io:ioctl
0x40000000:fn:fcntl
0x80000000:ot:other
0xffffffff:all:all classes

監査で実際に no クラスを有効にしていると、監査トレールには監査イベント AUE_NULL のレコードが書き込まれます。

カーネルイベント

カーネル (システムコール) が生成するイベントには、1 から 2047 までのイベント番号が割り当てられています。カーネルイベントのイベント名は AUE_ で始まり、イベントのニーモニックが大文字で続きます。たとえば、creat() システムコールのイベント番号は 4、イベント名は AUE_CREAT です。

カーネルイベントの中には、特権の使用法の判断を監査する AUE_UPRIV という疑似イベントが 1 つ定義されています。

AUE_UPRIV 疑似イベントを事前選択していると、カーネルイベントの監査を指定していなくても、監査情報が収集されます。たとえば、カーネルイベント AUE_OPEN_R の監査を指定していなくても、特権の使用法の判断がシステムコール AUE_OPEN_R の一部であれば、疑似イベント AUE_UPRIV が有効となり、AUE_OPEN_R が監査トレールに書き込まれます。

ユーザーレベルのイベント

カーネル外部のトラステッドアプリケーションで生成されるイベントには、2048 から 65535 までのイベント番号が割り当てられます。イベント名は AUE_ で始まり、イベントのニーモニックが小文字で続きます。/etc/security/audit_event ファイルには、それぞれのイベントが番号順に一覧表示されています。クラス別のイベントの一覧については、付録 A 「イベントとクラスの対応関係」 を参照してください。次の表に、ユーザー関連イベントの一般的なカテゴリを示します。

表 1-1 監査イベントのカテゴリ

番号範囲 

イベントの種類 

2048‾65535 

ユーザーレベルのイベント 

2048‾32767 

Solaris および Trusted Solaris のユーザーレベルのプログラム用 

32768‾65536 

他社のアプリケーションで使用 

ユーザーアクションを原因としないイベント

ユーザーアクションを原因としないイベントには、AUE_ENTERPROM などがあります。