EN JA
AUDITON(2)
AUDITON(2) FreeBSD System Calls Manual AUDITON(2)

名称

auditonシステム監査パラメータを設定する

書式

#include < bsm/audit.h>

int
auditon( int cmd, void *data, u_int length);

解説

auditon() システムコールは、様々な監査制御オペレーションを操作するために使用されます。 data 引数は、コマンドに依存するタイプがある構造体を指すべきです。 length 引数は、バイト単位で *data のサイズを指定します。 cmd 引数は、次のいずれかを指定できます:
A_SETPOLICY
監査ポリシフラグを設定します。 data 引数は、1 つ以上の監査ポリシ制御値のビット単位の論理和 (OR) して設定された int 値を指さなければなりません: AUDIT_CNT, AUDIT_AHLT, AUDIT_ARGVAUDIT_ARGE です。 AUDIT_CNT が設定されているなら、システムは、たとえ空間が低くなっても継続し、低い空間状態が改善されるまで、イベントをログ記録することを中止します。それが設定されないなら、監査イベントは、低い空間状態が改善されるまで、ブロックします。しかしながら、監査されないイベントは、影響を受けません。 AUDIT_AHLT が設定されているなら、イベントをグローバルな監査ログファイルに書き込むことができないなら、 panic(9) (パニック) します。 AUDIT_ARGV が設定されているなら、 execve(2) システムコールに渡された引数リストは、監査されます。 AUDIT_ARGE が設定されているなら、 execve(2) システムコールに渡された環境変数は、監査されます。デフォルトのポリシは、監査ポリシ制御フラグの設定はなしです。
A_SETKAUDIT
ホスト情報を設定します。 data 引数は、ホスト IP アドレス情報を含む auditinfo_addr_t 構造体を指さなければなりません。設定の後に、カーネルイベントの結果として作成される監査レコードは、この情報を含みます。
A_SETKMASK
カーネル前選択 (preselection) マスク (成功と失敗) を設定します。 data 引数は、 < bsm/audit.h> で定義されるマスク値を含む au_mask_t 構造体を指さなければなりません。これらのマスクは、帰属しない監査イベント前選択に使用されます。フィールド am_success は、どの成功した監査イベントのクラスが監査追跡にログ記録されるかを指定します。フィールド am_failure は、どの失敗した監査イベントのクラスが、ログ記録されるかを指定します。両方のフィールドの値は、 bsm/audit.h で指定された監査イベントのクラスのビット単位の論理和 (OR) されたものです。様々な監査クラスは、 audit_class(5) で、より完全に説明されています。
A_SETQCTRL
カーネル監査キューパラメータを設定します。 data 引数は、次のカーネル監査キュー制御設定を含む、 ( < bsm/audit.h> で定義されている) au_qctrl_t 構造体を指さなければなりません: aq_hiwater, aq_lowater, aq_bufsz, aq_delayaq_minfree です。フィールド aq_hiwater は、ディスクに配送するための準備ができている監査レコードを格納するために使用されるキューの中の監査レコードエントリの最大数を定義します。新しいレコードは、キューの最後尾に挿入され、先頭から取り除かれます。最高水位線を超えている新しいレコードに関して、呼び出しスレッドは、フィールド aq_lowater で定義されている十分に利用可能な空間がある監査キューを待っている、ウェート (待ち) キューに挿入されます。フィールド aq_bufsz は、 audit(2) で供給することがきる監査レコードの最大の長さを定義しています。フィールド aq_delay は、未使用です。フィールド aq_minfree は、監査レコードを格納するために使用されるディスクデバイスの最小の空きブロック数を指定します。空きブロックの値が設定された最小の量を下回るなら、カーネルは、低いディスク空間に関して監査デーモンに知らせます。値は、空きファイルシステムブロックのパーセントで指定されます。 0 の値は、チェックを無効にすることになります。

aq_hiwater 100/10000 (監査レコード)
aq_lowater 10/aq_hiwater (監査レコード)
aq_bufsz 32767/1048576 (バイト)
aq_delay (現在未使用)
A_SETSTAT
ENOSYS を返します。 (実装されていません。)
A_SETUMASK
ENOSYS を返します。 (実装されていません。)
A_SETSMASK
ENOSYS を返します。 (実装されていません。)
A_SETCOND
現在の監査条件を設定します。 data 引数は、新しい監査条件、 AUC_AUDITING, AUC_NOAUDIT または AUC_DISABLED の 1 つを含む int 値を指さなければなりません。 AUC_NOAUDIT が設定されているなら、監査は、一時的にサスペンド (中断) します。 AUC_AUDITING が設定されているなら、監査は、再開されます。 AUC_DISABLED が設定されているなら、監査システムは、シャットダウンし、すべての監査レコードを排出し、監査追跡ファイルをクローズします。
A_SETCLASS
監査イベントのためのイベントクラス前選択マスクを設定します。 data 引数は、監査イベントとマスクを含む au_evclass_map_t 構造体を指さなければなりません。フィールド ec_number は、監査イベントで、 ec_class は、監査クラスマスクです。クラスマッピングのための監査イベントの詳しい情報については、 audit_event(5) を参照してください。
A_SETPMASK
プロセスのための前選択マスクを設定します。 data 引数は、成功と失敗の両方のために与えられたプロセスの監査前選択マスクを含む auditpinfo_t 構造体を指さなければなりません。フィールド ap_pid は、ターゲットプロセスのプロセス ID です。フィールド ap_mask は、上記の A_SETKMASK セクションで説明されている前選択マスクを保持している au_mask_t 構造体を指さなければなりません。
A_SETFSIZE
監査ログファイルの最大サイズを設定しします。 data 引数は、最大の監査ログファイルサイズを設定する af_filesz フィールドがある au_fstat_t 構造体を指さなければなりません。 0 の値は、サイズの制限がないことを示します。
A_GETCLASS
指定された監査イベントのためにクラスマッピングへのイベントを返します。 data 引数は、 au_evclass_map_t 構造体を指さなければなりません。詳しい情報については、 A_SETCLASS セクションを参照してください。
A_GETKAUDIT
現在のホスト情報を取得します。 data 引数は、 auditinfo_addr_t 構造体を指さなければなりません。
A_GETPINFO
プロセスのための監査設定を返します。 data 引数は、与えられたターゲットプロセスの ap_auid (監査 ID)、 ap_mask (前選択マスク)、 ap_termid (端末 ID) と ap_asid (監査セッション ID) を含むように設定される auditpinfo_t 構造体を指さなければなりません。ターゲットプロセスのプロセス ID は、 ap_pid フィールドを使用してカーネルに渡されます。詳しい情報については、上記のセクション A_SETPMASKgetaudit(2) を参照してください。
A_GETPINFO_ADDR
プロセスのために拡張された監査設定を返します。 data 引数は、上に説明された auditpinfo_addr_t 構造体と同様の auditpinfo_addr_t 構造体を指さなければなりません。例外は、より大きな端末のアドレスとアドレスがタイプをより保持することができる au_tid_addr_t 構造体を指す ap_termid (端末の ID) フィールドです。ターゲットプロセスのプロセス ID は、 ap_pid フィールドを使用してカーネルに渡されます。詳しい情報については、上記のセクション A_SETPMASKgetaudit(2) を参照してください。
A_GETSINFO_ADDR
セッションのために拡張された監査設定を返します。 data 引数は、 auditinfo_addr_t 構造体を指さなければなりません。ターゲットセッションの監査セッション ID は、 ai_asid フィールドを使用してカーネルに渡されます。 auditinfo_addr_t 構造体に関する詳しい情報については、 getaudit_addr(2) を参照してください。
A_GETKMASK
現在のカーネル前選択マスクを返します。 data 引数は、帰属しないイベントのために現在のカーネル前選択マスクに設定される au_mask_t 構造体を指さなければなりません。
A_GETPOLICY
現在の監査ポリシ設定を返します。 data 引数は、現在の監査ポリシフラグの 1 つに設定される int 値を指さなければなりません。監査ポリシフラグは、上記の A_SETPOLICY セクションに説明されています。
A_GETQCTRL
現在のカーネル監査キュー制御パラメータを返します。 data 引数は、現在のカーネル監査キュー制御パラメータに設定される au_qctrl_t 構造体を指さなければなりません。詳しい情報については、 A_SETQCTL セクションを参照してください。
A_GETFSIZE
監査ログファイルの最大サイズを返します。 data 引数は、 au_fstat_t 構造体を指さなければなりません。 af_filesz フィールドは、最大の監査ログファイルサイズに設定されます。 0 の値は、サイズの制限がないことを示します。 af_currsz フィールドは、現在の監査ログファイルサイズに設定されます。
A_GETCWD
ENOSYS を返します。 (実装されていません。)
A_GETCAR
ENOSYS を返します。 (実装されていません。)
A_GETSTAT
ENOSYS を返します。 (実装されていません。)
A_GETCOND
現在の監査の条件を返します。 data 引数は、現在の監査条件、 AUC_AUDITING, AUC_NOAUDIT または AUC_DISABLED の 1 つに設定される int 値を指さなければなりません。詳しい情報については、 A_SETCOND セクションを参照してください。
A_SENDTRIGGER
トリガを監査デーモンに送信します。 data 引数は、次の受け付け可能なトリガ値の 1 つに設定される int 値を指さなければなりません: AUDIT_TRIGGER_LOW_SPACE (監査ログが存在する低ディスク空間)、 AUDIT_TRIGGER_OPEN_NEW (新しい監査ログファイルをオープンする)、 AUDIT_TRIGGER_READ_FILE ( audit_control ファイルを読み込む)、 AUDIT_TRIGGER_CLOSE_AND_DIE (現在のログファイルをクローズして終了する)、 AUDIT_TRIGGER_NO_SPACE (監査ログファイルのためのディスク空間が残っていません)、 AUDIT_TRIGGER_ROTATE_USER (監査ログファイル回転を要求する)、 AUDIT_TRIGGER_INITIALIZE (Mac OS X だけのために監査サブシステムを初期化する)、または AUDIT_TRIGGER_EXPIRE_TRAILS (監査ログファイル満了を要求する)。

戻り値

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

auditon() 関数は、次の場合に失敗します:
[ ENOSYS]
まだ実装されていないオプションによって返りました。
[ EFAULT]
カーネルへ、またはカーネルからデータ転送の間に、失敗が起こりました。
[ EINVAL]
不正な引数がシステムコールによって渡されました。
[ EPERM]
プロセスには、操作を完了するために十分な許可がありません。

A_SENDTRIGGER コマンドは、 FreeBSD と Mac OS X 実装に特有であり、Solaris には存在していません。

歴史

OpenBSM 実装は、2004 年に Apple Computer Inc. との契約に基づき、 McAfee Inc. のセキュリティ部門、McAfee Research によって作成されました。その後にそれは、OpenBSM 配布のための基盤として TrustedBSD Project によって採用されました。

作者

このソフトウェアは、Apple Computer Inc. との契約に基づき、 McAfee Inc. のセキュリティ研究部門、McAfee Research によって作成されました。追加の作者として Wayne Salamon, Robert Watson と SPARTA Inc. が挙げられます。

レコードを監査し、イベントストリームフォーマットを監査する Basic Security Module (BSM) インタフェースは、Sun Microsystems によって定義されました。

このマニュアルページは、 Tom Rhodes <trhodes@FreeBSD.org>, Robert Watson <rwatson@FreeBSD.org>と Wayne Salamon <wsalamon@FreeBSD.org>によって書かれました。

January 29, 2009 FreeBSD