audit_syslog - syslog メッセージへの Solaris 監査データのリアルタイム変換
/usr/lib/security/audit_syslog.so
Solaris 監査の audit_syslog プラグインモジュール (/usr/lib/security/audit_syslog.so) は、syslog.conf(4) で構成されたとおりに、Solaris 監査データを syslog 形式の (テキスト) データにリアルタイムで変換し、syslog デーモンに送信します。プラグインのパスは、auditconfig(1M) ユーティリティーを使用して指定されます。
plugin が auditconfig によってアクティブとして構成されている場合は、syslog にメッセージが書き込まれます。プラグイン関連のすべての構成パラメータを変更するには、auditconfig –setplugin オプションを使用します。syslog メッセージは、LOG_AUDIT (syslog.conf(4) の audit) の機能コードと LOG_NOTICE の重要度を使用して生成されます。監査 syslog メッセージには、バイナリ形式の監査ログ用に記述されたトークンから選択したデータが含まれます。(audit.log(4) を参照)。すべての syslog メッセージと同様に、syslog ファイルの各行は syslog ヘッダーとメッセージの 2 つの部分で構成されます。
syslog ヘッダーには、メッセージが生成された日付と時間、送信元のホスト名、監査デーモンによって生成されたことを示す auditd、syslog で内部的に使用される ID フィールド、および syslogd 機能と重要度の値を示す 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 属性は、syslog デーモンに送信される監査データを、flags と naflags (auditconfig(1M) を参照) および user_attr(4) のユーザー固有の行から指定されたクラスよりもさらに絞り込むために使用されます。このパラメータはコンマで区切ったリストです。各項目は監査クラス (audit_class(4) を参照) を表し、audit_flags(5) で説明されている構文を使用して指定されます。デフォルト (空の p_flags が一覧表示される) では、監査レコードは生成されません。
次に示す指定では、plugin (flags と naflags の設定と組み合わせて) を使用すると、lo のクラスレコードを使用できますが、am のクラスレコードは失敗した場合にしか使用できません。fm クラスレコードを省略すると、fm クラスレコードが出力されません。flags と naflags および user_attr(4) を使用して定義されたものにはクラスを追加できないため、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(4)) を使用して定義されたすべてのフラグを使用できます。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(5) を参照してください。
|
メッセージの形式および内容は「不確実」です。構成パラメータは「確実」です。
auditconfig(1M)、auditd(1M)、audit_class(4)、syslog.conf(4)、user_attr(4)、attributes(5)、audit_flags(5)
Oracle Solaris 11.3 での監査の管理
audit_syslog plugin をアクティブ化するには、audit 機能および notice 重要度の syslog メッセージ、または Solaris 監査レコード用の前述のファイル内の syslog メッセージが格納されるように /etc/syslog.conf が構成されている必要があります。次に、syslog.conf 内のこのような行の例を示します:
audit.notice /var/audit/audit.log
syslog からのメッセージは、UDP を使用してリモートの syslog サーバーに送信されるため、配信が保証されなかったり、メッセージの正確な到達順序が保証されなかったりします。
plugin 行に指定されたパラメータによってクラスが事前選択されていない場合は、LOG_DAEMON 機能コードが含まれる syslog アラートを使用してエラーが報告されます。
audit_syslog (5) は、audit_binfile(5) または audit_remote(5) の代用ではありません。syslog メッセージには限られたトークンのセットが含まれます。完全な監査レコードを取得するには、監査トレールファイル (audit.log(4)) を使用します。
syslog ヘッダーの時間フィールドは syslog(3C) によって生成され、バイナリ形式の監査ログにはだいたいの時間しか書き込まれません。通常は、時間フィールドには、1 秒か数秒程度の違いで表示されます。