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

praudit の使用方法

prauditコマンドは、標準入力から監査レコードを読み取り、ユーザが読める書式で標準出力に表示します。一般に、入力は auditreduce からパイプされるか、または 1 つの監査ファイルです。また、cat を使用して入力を生成して複数のファイルを連結したり、現在の監査ファイルに tail を使用することもできます。

praudit を使用すると、デフォルト形式、短い形式 (-s オプション)、raw 形式 (-r オプション) という 3 つの形式で出力を生成できます。デフォルトでは、出力は 1 行に 1 つずつトークンが入る形式で生成されます。 -l オプションでは、各行にレコード全体が入るように要求します。-d オプションでは、トークンフィールド間に使用される区切り記号を変更し、-l も指定すればトークン間に使用される区切り記号も変更されます。

-s 形式では、タイプはイベントの監査イベントテーブル名 (AUE_IOCTL など) で -r 形式ではイベント番号 (この場合は 158) です。 これは、-s とデフォルト形式の唯一の違いです。-r 形式では、すべての数値 (ユーザ ID、グループ ID など) は数値で表示されます (10 進形式、ただしインターネットアドレスの場合は 16 進形式、モードの場合は 8 進形式)。次の例は、header トークンに関する praudit からの出力を示しています。


header,240,1,ioctl(2),es,Tue Sept  1 16:11:44 1992, + 270000 msec

次の例は、同じ header トークンに関する praudit -r からの出力を示しています。


20,240,1,158,0003,699754304, + 270000 msec

auditreduce では実行できない選択を行う場合など、出力をテキスト行として処理する方が便利な場合があります。praudit の出力は単純なシェルスクリプトで処理できます。次の例は praudit_grep というスクリプトです。

#!/bin/sh
praudit | sed -e '1,2d' -e '$s/^file.*$//' -e 's/^header/^aheader/' ¥¥
| tr '¥¥012¥¥001' '¥¥002¥¥012' ¥¥
| grep "$1" ¥¥
| tr '¥¥002' '¥¥012'

このスクリプト例は、header トークンに接頭辞として Ctrl-A を付けて示します。^a は ^ と a という 2 つの文字ではなく Ctrl-A を示すので注意してください。接頭辞は、header トークンをテキストとして表示される文字列 header と区別するために必要です。このスクリプトは、改行を Ctrl-A として残したままでレコードのすべてのトークンを組み合わせて 1 行にまとめ、grep を実行し、元の改行を復元します。

praudit のデフォルトの出力形式では、各レコードを header トークンで始まって trailer トークンで終わる一連のトークン (1 行に 1 つずつ) として常に明確に識別できるので注意してください。 したがって、各レコードを簡単に識別し、awk などを使用して処理できます。