Solaris のシステム管理 (セキュリティサービス)

監査ファイルの構成 (作業マップ)

ネットワーク上で監査プロセスを有効にする前に、監査構成ファイルを編集します。このあとに説明する手順の多くは、サービスの再開またはローカルシステムのリブートが必要です。監査構成ファイルの編集は、できるだけ BSM サービスを開始する前に完了してください。

次の表は、この節で説明する操作の一覧です。

作業 

説明 

参照先 

監査フラグの選択、audit_control 設定の変更

監査対象イベントを事前に選択する。audit_control ファイルに設定された値を変更する

監査フラグの選択方法

ユーザーの監査特性の変更 

システム全体の監査フラグ設定に対してユーザー固有の例外を設定する 

ユーザーの監査特性の変更方法

監査クラスの追加 

新しい監査クラスを定義する 

監査クラスの追加方法

イベントからクラスへの割り当ての変更 

特定のイベントが属するクラスを変更する 

監査イベントの所属先クラスの変更方法

監査イベントの追加 

新しいユーザーレベルのイベントをaudit_event ファイルに追加する

監査イベントの追加方法

監査フラグの選択方法

監査フラグは、/etc/security/audit_control ファイルに定義されます。監査フラグを使用して、監査ログに記録する監査レコードのクラスを選択します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. (省略可能) audit_control ファイルのバックアップコピーを保存します。


    # cp /etc/security/audit_control /etc/security/audit_control.save
    
  3. audit_control ファイルに新しいエントリを追加します。

    各エントリの書式は次のとおりです。


    title:string
    
    title

    行の種類を定義する。dir:flags:minfree:、または naflags: を選択できる

    string

    この種類の行に関連付けるデータを指定する

  4. 監査デーモンを実行して、新しい audit_control ファイルを読み込みます。

    監査デーモンの内部に、読み込んだ情報が格納されます。新しい情報を使用するには、システムをリブートするか、次のコマンドを入力します。


    # audit -s
    

例 — 監査トレールファイルの位置を変更する

dir: で始まる行には、監査トレールファイルの格納に使用する監査ファイルシステムを定義します。この例では、監査トレールファイルの位置を 2 つ追加定義しています。


# cat /etc/security/audit_control
dir:/etc/security/audit/host.1/files
dir:/etc/security/audit/host.2/files
dir:/var/audit
flags:
minfree:10
naflags:lo

例 — すべてのユーザーに適用される監査フラグを変更する

audit_control ファイルの flags 行には、監査するイベントのクラスを定義します。このフラグは、ホスト上のすべてのユーザーに適用されます。クラスは空白を入れずにコンマで区切ります。この例では、すべてのユーザーを対象に lo クラスのイベントが監査されます。


# cat /etc/security/audit_control
dir:/var/audit
flags:lo
minfree:10
naflags:lo

例 — 警告に対するソフト制限値を変更する

audit_control ファイルの minfree 行には、すべての監査ファイルシステムの最小空き領域レベルを定義します。この例では、利用できるファイルシステムの領域が 10 % だけになったときに警告が発行されるように、ソフト制限値を設定しています。


# cat /etc/security/audit_control
dir:/var/audit
flags:
minfree:10
naflags:lo

例 — ユーザーに起因しないイベントの監査を変更する

audit_control ファイルの naflags: 行には、ホスト上のすべてのユーザーを対象に監査する、ユーザーに起因しないイベントのクラスを定義します。クラスは空白を入れずにコンマで区切ります。この例では、na イベントクラスが追加されます。


# cat /etc/security/audit_control
dir:/var/audit
flags:
minfree:10
naflags:lo,na

ユーザーの監査特性の変更方法

ユーザーごとの定義は、/etc/security/audit_user ファイルに格納されます。これらの定義は、audit_control ファイル内のフラグに対する例外です。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. (省略可能) audit_user ファイルのバックアップコピーを保存します。


    # cp /etc/security/audit_user /etc/security/audit_user.save
    
  3. audit_user ファイルに新しいエントリを追加します。

    各エントリの書式は次のとおりです。


    username:always:never
    
    username

    監査するユーザー名を選択する

    always

    常に監査する監査クラスの一覧を選択する

    never

    監査しない監査クラスの一覧を選択する

    複数のフラグを指定するには、監査クラスをコンマで区切ります。監査ファイルの詳細は、監査クラスと監査フラグを参照してください。

  4. 監査デーモンで新しいデータが使用できるようにします。

    新しいデータを使用するには、システムをリブートします。該当のユーザーをいったんログアウトさせてからログインし直させることもできます。

例 — 1 人のユーザーの監査を変更する

この例のエントリでは、ユーザー sue がログインクラス (lo) の任意のプログラムにアクセスすると、監査レコードが生成されます。


# grep sue /etc/security/audit_user
sue:lo:

例 — 監査管理ログインを作成する

ログインを監査対象としている場合にすべての監査パーティションがいっぱいになると、ユーザーがホストにログインできなくなる可能性があります。この状況を回避するために、監査を行わない特別なアカウントを設定できます。特別なアカウントは、監査パーティションがいっぱいになった場合でもホストにログインできるため、このようなパーティションの問題を解決することができます。この例では、アカウント auditadm を監査しないように定義します。


# grep auditadm /etc/security/audit_user
auditadmin:no:yes

注 –

監査管理アカウントの使用を許されたユーザーについては、別の方法で監視する必要があります。


監査クラスの追加方法

監査クラスは、/etc/security/audit_class ファイルに定義されます。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. (省略可能) audit_class ファイルのバックアップコピーを保存します。


    # cp /etc/security/audit_class /etc/security/audit_class.save
    
  3. audit_class ファイルに新しいエントリを追加します。

    各エントリの書式は次のとおりです。


    0xnumber:name:description
    
    0x

    number が 16 進であることを示す

    number

    一意の監査クラスマスクを定義する

    name

    監査クラスの 2 文字の名前を定義する

    description

    監査クラスの記述名を定義する

  4. BSM サービスで新しいデータが使用できるようにします。

    新しいデータを使用するには、システムをリブートするか、次のコマンドを入力します。


    # auditconfig -conf
    

例 — 新しい監査クラスを設定する

この例では、次のようなエントリを audit_class ファイルに追加します。このエントリによって、ta という名前の新しい監査クラスが作成されます。


0x01000000:ta:test application

監査イベントの所属先クラスの変更方法

イベントからクラスへの割り当ては、/etc/security/audit_event ファイル内に定義されています。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. (省略可能) audit_event ファイルのバックアップコピーを保存します。


    # cp /etc/security/audit_event /etc/security/audit_event.orig
    
  3. 特定のイベントの flag を変更して、そのイベントが属するクラスを変更します。

    各エントリの書式は次のとおりです。


    number:event:program:flag
    
    number

    監査イベント ID を定義する

    event

    監査イベントの名前を定義する

    program

    監査レコードの作成を開始するシステムコールまたはユーザーレベルのプログラム実行可能ファイルを定義する

    flag

    監査クラスの 2 文字の名前を定義する

  4. BSM サービスで新しいデータが使用できるようにします。

    新しいデータを使用するには、システムをリブートするか、次のコマンドを入力します。


    # auditconfig -conf
    # audit -s
    

例 — サイト固有の監査イベントの割り当てを作成する

この例では、新しいクラスを定義して、そのクラスにイベントを追加します。割り当てを使用するには、新しいクラスを audit_control ファイル内に記述してから、システムをリブートします。

  1. audit_class ファイルで、監視したい監査イベントのみを収集するため、サイト固有のクラスを定義します。


    0x00000800:sc:site class
  2. audit_event ファイルで、一連の監査イベントの所属先を新しいクラスに変更します。


    26:AUE_SETGROUPS:setgroups(2):sc
    27:AUE_SETPGRP:setpgrp(2):sc
    40:AUE_SETREUID:setreuid(2):sc
    41:AUE_SETREGID:setregid(2):sc
    214:AUE_SETEGID:setegid(2):sc
    215:AUE_SETEUID:seteuid(2):sc
  3. audit_controlファイルで新しいフラグを使用します。次のエントリは、ログインを監査するとともに、sc クラスに属するイベントのすべての正常な起動を監査します。


    flags:lo,+sc
  4. 新しい構成によってすべてのプロセスが確実に監査されるようにするには、システムをリブートします。または、次の一連のコマンドを使えば、そのマシンを使用する各ユーザーが正しく監査されるようになります。auid はユーザー ID です。


    # auditconfig -conf
    # audit -s
    # setumask auid lo,+sc
    

監査イベントの追加方法

監査イベントの定義は、/etc/security/audit_event ファイルに格納されます。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. (省略可能) audit_event ファイルのバックアップコピーを保存します。


    # cp /etc/security/audit_event /etc/security/audit_event.save
    
  3. audit_event ファイルに新しいエントリを追加します。

    各エントリの書式は次のとおりです。


    number:name:description:classes
    
    number

    一意の監査イベント番号を定義する。32767 以降の番号を指定する

    name

    一意の監査イベント名を定義する

    description

    監査イベントの説明を記述する。監査イベントのマニュアルページ名が含まれることが多い

    classes

    このイベントを含む監査クラスを選択する

  4. 監査デーモンで新しいデータが使用できるようにします。

    新しいデータを使用するには、システムをリブートするか、次のコマンドを入力します。


    # auditconfig -conf
    

例 — 新しい監査イベントを追加する

この例のエントリは、ローカルアプリケーションの新しい監査イベントを定義しています。


# grep localapp /etc/security/audit_event
32768:AUE_localapp:localapp(1):ta