audit_syslog - syslog メッセージへの Solaris 監査データのリアルタイム変換
/usr/lib/security/audit_syslog.so
Solaris 監査の audit_syslog プラグインモジュール (/usr/lib/security/audit_syslog.so) は、rsyslog.conf で構成されているように Solaris 監査データの syslog 形式の (テキスト) データへのリアルタイム変換を行い、それを syslog デーモンに送信します。プラグインのパスは、auditconfig(8) ユーティリティーで指定されます。
plugin が auditconfig によってアクティブとして構成されている場合は、syslog にメッセージが書き込まれます。プラグイン関連のすべての構成パラメータを変更するには、auditconfig –setplugin オプションを使用します。Syslog メッセージは、LOG_AUDIT の機能コード (rsyslog.conf 内の audit) と LOG_NOTICE の重要度を使用して生成されます。監査 syslog メッセージには、バイナリ形式の監査ログ用に記述されたトークンから選択したデータが含まれます。(audit.log(5) を参照してください)。すべての syslog メッセージと同様に、syslog ファイル内の各行は syslog ヘッダーとメッセージの 2 つの部分で構成されます。
syslog ヘッダーには、メッセージが生成された日付と時間、その送信元のホスト名、それが監査デーモンによって生成されことを示す auditd、rsyslogd によって内部的に使用される ID フィールド、および syslog 機能と重要度の値を示す audit.notice が含まれています。syslog ヘッダーは文字 ] (すなわち、終了角括弧とスペース) で終わります。
メッセージ部分は、ヘッダートークンから生成されたイベントタイプで始まります。以降のすべてのデータは、元の監査レコードに含まれ、1024 バイトの最大長の syslog 行に余裕がある場合にのみ表示されます。次の例では、バックスラッシュ文字 (\ ) は継続することを示しています。つまり、実際の syslog メッセージは 1 行で記述されています:
Oct 31 11:38:08 smothers auditd: [ID 917521 audit.notice] chdir(2) ok\ session 401 by joeuser as root:other from myultra obj /export/home
前の例で、chdir(2) はイベントタイプです。このフィールド以降は、次に説明する追加データです。このデータはソースの監査レコードに含まれていない場合、省略されます。
return または exit トークンから生成されます。
<#> は subject トークンから生成されたセッション ID です。
<name> は subject トークンから生成された監査 ID です。
<name> は subject トークンから生成された実効ユーザー ID、<group> は実行グループ ID です。
ゾーン名。このフィールドは、zonename 監査ポリシーが設定されている場合にのみ生成されます。
<terminal> は subject トークンから生成されたテキストのマシンアドレスです。
<path> は path トークンから生成されたパスです。必要に応じて、パスを左側から切り捨て、行に収めることができます。切り捨ては先行する省略符号 (...) で示されます。
<owner> はプロセス所有者の実効ユーザー ID です。
<owner> はプロセス所有者の監査 ID です。
exec_args トークンからの execv(2) システムコールパラメータ引数が一覧表示されます。
引数を行に収めるために必要であれば、右側が切り捨てられることがあります。切り捨ては末尾の省略符号 (...) で示されます。
exec_env トークンからの execv(2) システムコール環境引数が一覧表示されます。
引数を行に収めるために必要であれば、右側が切り捨てられることがあります。切り捨ては末尾の省略符号 (...) で示されます。
次に、syslog メッセージの例を示します:
Nov 4 8:27:07 smothers auditd: [ID 175219 audit.notice] \system booted Nov 4 9:28:17 smothers auditd: [ID 752191 audit.notice] \ login - rlogin ok session 401 by joeuser as joeuser:staff from myultra Nov 4 10:29:27 smothers auditd: [ID 521917 audit.notice] \ access(2) ok session 255 by janeuser as janeuser:staff from \ 129.146.89.30 obj /etc/passwd
p_flag 属性は、rsyslog デーモンに送信される監査データを、flags や naflags (auditconfig(8) を参照) および user_attr(5) のユーザー固有の行を使用して指定されたクラスを超えてさらにフィルタするために使用されます。このパラメータはコンマで区切ったリストです。各項目は監査クラス (audit_class(5) を参照) を表し、audit_flags(7) で説明されている構文を使用して指定されます。デフォルト (空の p_flags が一覧表示される) では、監査レコードは生成されません。
次に示す指定では、plugin (flags と naflags の設定と組み合わせて) を使用すると、lo のクラスレコードを使用できますが、am のクラスレコードは失敗した場合にしか使用できません。fm クラスレコードを省略すると、fm クラスレコードが出力されません。flags と naflags および user_attr(5) を使用して定義されたものにはクラスを追加できないため、pc パラメータは影響を受けません。削除のみ可能です。
auditconfig -setflags lo,am,fm auditconfig -setnaflags lo auditconfig -setplugin audit_syslog active "p_flags=lo,-am,pc"使用例 2 all の使用
次に示す指定では、all では、1 つの例外を除いて、flags と naflags (および user_attr(5)) を使用して定義されたすべてのフラグを使用できます。am メタクラス (ss,as,ua と同等) は、すべての ua イベント (ただし、ss と as は失敗イベントのみ) を出力するように変更されているという例外があります。
auditconfig -setflags lo,am auditconfig -setnaflags lo auditconfig -setplugin audit_syslog active "p_flags=all,^+ss,^+as"
この例では、複数のクラスに含まれている可能性のある ss または as クラスの一部の成功監査イベントが引き続き syslog 出力に含まれることがあります。
属性についての詳細は、attributes(7) を参照してください。
|
メッセージの形式および内容は「不確実」です。構成パラメータは「確実」です。
audit_class(5), user_attr(5), attributes(7), audit_flags(7), auditconfig(8), auditd(8),rsyslogd(8)
audit_syslog plugin をアクティブ化するには、Solaris 監査レコードのためのファイル内に機能 audit および重要度 notice 以上の syslog メッセージを格納するように /etc/rsyslog.conf が構成されている必要があります。rsyslog.conf 内のこのような行の例を次に示します。
audit.notice /var/audit/audit.log
デフォルトでは、syslog からのメッセージは UDP を使用してリモートの syslog サーバーに送信されますが、これにより配信やメッセージ到着の正しい順序は保証されません。rsyslogd デーモンは、UDP の代わりに TCP ベースのトランスポート (プレーン TCP syslog、RELP) を使用するように構成できます。詳細は、http://www.rsyslog.com/doc を参照してください。詳細は、rsyslogd(8) のマニュアルページを参照してください。
plugin 行に指定されたパラメータによってクラスが事前選択されていない場合は、LOG_DAEMON 機能コードが含まれる syslog アラートを使用してエラーが報告されます。
audit_syslog は、audit_binfile(7) や audit_remote(7) の置き換えではありません。syslog メッセージには限られたトークンのセットが含まれます。完全な監査レコードを取得するには、監査トレールファイル (audit.log(5)) を使用します。
syslog ヘッダーの時間フィールドは syslog(3C) によって生成され、バイナリ形式の監査ログにはだいたいの時間しか書き込まれません。通常は、時間フィールドには、1 秒か数秒程度の違いで表示されます。