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

監査レコードの管理 (作業マップ)

監査トレールを管理することによって、ネットワーク上のユーザーの動作を監視することができます。監査プロセスを行うと、大量のデータが生成される可能性があります。次の手順では、さまざまな監査データを使用して作業を行う方法について説明します。

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

作業 

説明 

参照先 

監査レコードの書式の表示 

特定の監査イベントのトークンの順番を表示する 

監査レコードの書式の表示方法

監査レコードの表示 

監査レコードをユーザーが読める書式で表示する 

監査レコードの表示方法

監査レコードのマージ 

複数のマシンの監査ファイルを 1 つの監査トレールに結合する 

監査レコードのマージ方法

監査トレールのオーバーフローの防止 

監査ファイルシステムが完全にいっぱいになるのを防止する 

監査トレールのオーバーフローを防ぐ方法

監査レコードの書式の表示方法

bsmrecord コマンドは、監査イベントの監査 ID、監査クラス、選択マスク、およびレコード書式を表示します。このコマンドは、audit_class ファイル内と audit_event ファイル内のレコードを使用します。

次のように -a オプションを指定してコマンドを実行すると、すべての監査イベントのレコード書式が表示されます。-h オプションを指定すると、HTML 形式で一覧が出力されます。出力されたファイルは、ブラウザを使って表示できます。

    bsmrecord コマンドを使ってすべての監査イベントのレコード書式を HTML ファイルに出力します。


    % bsmrecord -a -h> audit.events.html
    

    *html ファイルはブラウザを使って表示できます。ブラウザの検索ツールを使って特定のレコードを検索します。

    詳細は、bsmrecord(1M) のマニュアルページを参照してください。

例 — プログラムの監査レコード書式を表示する

この例では、login プログラムによって生成されたすべての監査レコードの書式を表示します。


% bsmrecord -p login

terminal login
  program     /usr/sbin/login      see login(1)
  event ID    6152                 AUE_login
  class       lo                   (0x00001000)
      header
      subject
      text                         error message or "successful login"
      return

login: logout
  program     /usr/sbin/login      see login(1)
  event ID    6153                 AUE_logout
  class       lo                   (0x00001000)
      header
      subject
      text                         "logout" username
      return

rlogin
  program     /usr/sbin/login      see login(1) - rlogin
  event ID    6155                 AUE_rlogin
  class       lo                   (0x00001000)
      header
      subject
      text                         success/fail message
      return

telnet login
  program     /usr/sbin/login      see login(1) - telnet
  event ID    6154                 AUE_telnet
  class       lo                   (0x00001000)
      header
      subject
      text                         success/fail message
      return

例 — 監査クラスの監査レコード書式を表示する

この例では、fd クラスに属するすべての監査レコードの書式を表示します。


% bsmrecord -c fd

ftruncate
    Not used.

truncate
    Not used.

unlink
  system call unlink               see unlink(2)
  event ID    6                    AUE_UNLINK
  class       fd                   (0x00000020)
      header
      path
      [attribute]
      subject
      return

監査レコードのマージ方法

次のタスクでは、すべての監査ディレクトリのすべての監査ファイルをマージする方法について説明します。監査トレールの内容を分析する場合は、次の手順を行います。

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

  2. 一次監査ディレクトリに移動します。


    # cd /etc/security/audit/server-name.1/files
    

    マージされたファイルは、/etc/security/audit/server-name.1/files ディレクトリ内に格納されます。このディレクトリは保護されています。

  3. 監査レコードをマージします。


    # auditreduce> merged.log
    

    server-name 上の audit_control ファイル内の dir: 行に指定されているすべてのディレクトリがマージされます。マージされたレコードは、カレントディレクトリの merged.log ファイル内に格納されます。

例 — 監査トレール全体を表示する

監査トレール全体を一度に表示するには、auditreduce コマンドの出力を praudit コマンドにパイプします。


# auditreduce | praudit

例 — 監査トレール全体を印刷する

出力を lp コマンドにパイプすると、その出力はプリンタに送られます。


# auditreduce | praudit | lp

例 — 監査ファイルの結合と削減

auditreduce-O オプションを使用して、複数の監査ファイルを 1 つのファイルに結合し、そのファイルを指定した出力ファイルに保存します。auditreduce を使用すると、このような結合と削除を自動的に実行できます。auditreduce(1M) のマニュアルページの -C オプションと -D オプションを参照してください。ただし、ファイルを手動で選択したほうが効率的です。find コマンドを使用したあと、auditreduce を使用して指定した一連のファイルだけを結合します。

この方法で auditreduce コマンドを使用すると、入力ファイルのすべてのレコードが 1 つの出力ファイルにマージされます。マージが完了したら、入力ファイルは削除する必要があります。また、出力ファイルは、/etc/security/audit/server-name /files という名前のディレクトリに保存し、auditreduce が出力ファイルを検索できるようにする必要があります。


# auditreduce -O combined-filename

auditreduce コマンドを使用すると、出力ファイル内のレコード数を減らすこともできます。このコマンドは、入力ファイルの結合時に不要なレコードを除外できます。たとえば、auditreduce コマンドを使用して、1 か月以上経過した監査ファイルから、ログインレコードとログアウトレコード以外のレコードを削除することができます。監査トレール全体が必要になった場合は、バックアップテープから監査トレールを復元できます。


# auditreduce -O daily.summary -b 19990413 -c lo; compress *daily.summary
# mv *daily.summary /etc/security/summary.dir

例 — 選択した日付のユーザーの動作を表示する

次の例では、1999 年 4 月 13 日におけるユーザー tamiko のログイン時刻とログアウト時刻を、システム管理者が確認します。管理者は、lo イベントクラスを要求します。短い書式の日付は、yymmdd 形式で出力されます。長い書式については、auditreduce(1M) のマニュアルページを参照してください。


# auditreduce -d 990413 -u tamiko -c lo | praudit

例 — 選択レコードを 1 つのファイルにコピーする

この例では、特定の日付におけるログイン、ログアウトのメッセージが監査トレールから選択されます。これらのメッセージは対象ファイルにマージされます。対象ファイルは、通常の監査ルートディレクトリ以外のディレクトリに書き込まれます。


# auditreduce -c lo -d 990413 -O /usr/audit_summary/logins 

-O オプションを使用すると、開始時刻と終了時刻を示す 14 文字のタイムスタンプと接尾辞 logins が付いた監査ファイルが作成されます。


/usr/audit_summary/19990413000000.19990413235959.logins

例 — not_terminated 監査ファイルを整理する

監査ファイルが開いている状態で監査デーモンが終了してしまうことがあります。また、サーバーがアクセス不能になって、強制的に別のサーバーに切り替わってしまうことがあります。このような場合、その監査ファイルは監査レコードとして使用されなくなりますが、監査ファイルの終了時刻として文字列 not_terminated が付いたままになります。このようなファイルが見つかった場合、ファイルが使用されていないことを手動で確認します。開いたままのファイルを整理するには、正しいオプションを使用してファイル名を指定します。


# audit -s
19990414121112.not_terminated.egret
# auditreduce -O egret 19990413120429.not_terminated.egret

audit コマンドは、現在の監査ファイル名を確認します。auditreduce コマンドは、正しいファイル名と正しいタイムスタンプを持つ新しい監査ファイルを作成します。正しいファイル名には、正しい接尾辞 (egret) が含まれます。auditreduce は、すべてのレコードをこのファイルにコピーします。

監査レコードの表示方法

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

  2. /usr/audit_summary/logins などの監査ファイルディレクトリに移動します。


    # cd /usr/audit_summary/logins
    
  3. praudit コマンドを使ってファイルを読み取ります。


    # praudit 19990413000000.19990413235959.logins | more
    

例 — 監査レコードを XML 形式に変換する

この例では、監査レコードを XML 形式に変換します。XML 形式はブラウザで表示できます。この形式は、報告を作成する際にも使用できます。


# praudit -x 19990413000000.19990413235959.logins> 19990413.logins.xml

*xml ファイルはブラウザを使って表示できます。スクリプトを使えば、XML ファイルの内容を操作して目的の情報を抽出できます。

監査トレールのオーバーフローを防ぐ方法

セキュリティポリシーの関係ですべての監査データを保存する必要がある場合は、次の手順に従います。

  1. 監査ファイルを定期的に保存するスケジュールを設定します。保存した監査ファイルを監査ファイルシステムから削除するスケジュールを設定します。

  2. 監査ファイルを手動でテープにバックアップします。これらのファイルを保存ファイルシステムに移動することもできます。

  3. 監査レコードの解釈に必要な、内容に対応する情報を、監査トレールとともに格納します。

  4. オフラインで移動した監査ファイルをを示すレコードを保管します。

  5. 保存したテープを適切な方法で保管します。

  6. サマリーファイルを作成して、格納する監査データのボリュームを削減します。

    監査トレールからサマリーファイルを抽出するには、auditreduce コマンドのオプションを使用します。サマリーファイルには、指定された種類の監査イベントのレコードだけが含まれます。例 — 監査ファイルの結合と削減例 — 選択レコードを 1 つのファイルにコピーするの例を参照してください。