Trusted Solaris の監査管理

監査トークンの構造

論理上、それぞれのトークンには、トークンの型識別子があり、その後にそのトークン固有のデータが続きます。各トークンは固有の書式と構造を持ちます。表 B-1 に監査トークンを示します。「TS7」に丸の付いているトークンは、Trusted Solaris 2.5.1 および 7 でだけ使用するものです。「TS7」に丸の付いていないトークンは、Solaris Basic Security Module の監査トークンの改良版です。トークンのスキーマは拡張できます。

表 B-1 Trusted Solaris 監査トークン

トークン名 

説明 

TS7 

acl

アクセス制御リスト情報 

○ 

arbitrary

書式とタイプの情報を持つデータ 

 

arg

システムコールの引数の値 

 

attr

ファイル属性 

 

clearance

認可上限情報 

○ 

exec_args

exec システムコール引数 

 

exec_env

exec システムコール環境変数 

 

exit

プログラム終了情報 

 

file

監査ファイル情報 

 

groups

プロセスグループ情報 (廃止) 

 

header

レコードの開始を示す 

 

host

監査レコード収集元のホストを示す 

○ 

ilabel

情報ラベルの情報 

TS2.5.1 (TS 7 では廃止) 

in_addr

インターネットアドレス 

 

ip

IP ヘッダー情報 

 

ipc

System V の IPC 情報 

 

ipc_perm

System V の IPC オブジェクトトークン 

 

iport

インターネットポートアドレス 

 

liaison

トラステッドネットワーク用連絡情報 

○ 

newgroups

プロセスグループ情報 

 

opaque

非構造化データ (不定書式) 

 

path

パス情報 (パス) 

 

priv

特権の使用情報 

○ 

privilege

特権の設定情報 

○ 

process

process トークン情報 

 

return

システムコールの状態 

 

seq

トークンのシーケンス番号 

 

slabel

機密ラベル情報 

○ 

socket

ソケットのタイプとアドレス 

 

socket-inet

ソケットのポートとアドレス 

 

subject

subject 情報 (process トークンと同じ構造体) 

 

text

ASCII 文字列 

 

trailer

レコードの終了を示す 

 

xatom

X ウィンドウのアトム識別情報 

○ 

xclient

X クライアントの識別情報 

○ 

xcolormap

X ウィンドウの色情報 

○ 

xcursor

X ウィンドウのカーソル情報 

○ 

xfont

X ウィンドウのフォント情報 

○ 

xgc

X ウィンドウのグラフィカルコンテキスト情報 

○ 

xpixmap

X ウィンドウのピクセルマップ情報 

○ 

xproperty

X ウィンドウのプロパティ情報 

○ 

xselect

X ウィンドウのデータ情報 

○ 

xwindow

X ウィンドウのウィンドウ情報 

○ 

監査レコードには必ず header トークンがあり、場合により trailer トークンもあります。 header トークンは、監査トレールの中で監査レコードの始まる位置を示します。オプションの trailer トークンがあると、監査トレールの後方検索ができます。監査レコードには、一部のユーザーアクションを原因としないイベントの監査レコードを除いて、必ず subject トークンがあります。ユーザーアクションによるイベントの場合には、これら 2 つのトークンがそのイベントのきっかけとなったプロセスの値を参照します。また、非同期イベントの場合には、process トークンがシステムを参照します。監査レコードの読み方の例については、「監査レコードの読み方」を参照してください。

acl トークン

acl トークンは、オブジェクトの適所にあるアクセス制御リストの情報を伝えます。現在のアクセス制御リストがない場合には、このトークンは監査レコードに書き込まれません。また、監査レコードの書式で必要とされていなければ、このトークンは通常、適切な監査ポリシーが設定されている場合にだけ記録されます。次のフィールドがあります。

次の図は、トークンの書式を示しています。

図 B-2 acl トークンの書式

Graphic

acl トークンのリストは、praudit(1M) により次のように表示されます。

acl,user_obj,,rwx
acl,user,bin,---
acl,group_obj,,r-x
acl,class_obj,,r--
acl,other_obj,,r-x

arbitrary トークン

arbitrary トークンには、監査トレールの情報が密封されています。このトークンは 4 つの固定フィールドと、データ列で構成されています。項目列には多数の項目がある場合があります。次のフィールドがあります。

次の図は、トークンの書式を示しています。

図 B-3 arbitrary トークンの書式

Graphic

出力書式フィールドは、表 B-2 の値をとることができます。

表 B-2 arbitrary トークンの出力書式フィールドの値

値 

アクション 

AUP_BINARY

2 進数でデータを出力 

AUP_OCTAL

8 進数でデータを出力 

AUP_DECIMAL

10 進数でデータを出力 

AUP_HEX

16 進数でデータを出力 

AUP_STRING

文字列でデータを出力 

項目サイズフィールドは、表 B-3 の値をとることができます。

表 B-3 arbitrary トークンの項目サイズフィールドの値

値 

アクション 

AUR_BYTE

バイト単位のデータ (1 バイト) 

AUR_SHORT

ショート単位のデータ (2 バイト) 

AUR_LONG

ロング単位のデータ (4 バイト) 

AUR_LONGLONG

ロングロング単位のデータ (8 バイト) 

arbitrary トークンは、praudit により次のように表示されます。

arbitrary,decimal,int,1
42

arg トークン

arg トークンには、システムコールの引数情報が入っています。監査レコードでは、32 ビット整数のシステムコール引数が認められます。次のフィールドがあります。

次の図は、トークンの書式を示しています。

図 B-4 arg トークンの書式

Graphic

arg トークンは、praudit により次のように表示されます。

argument,2,0x3,cmd

attr トークン

attr トークンには、ファイルまたはフォルダのカーネルの内部表現からのファイル属性情報が入っています。このトークンには通常 path トークンが付いており、パス検索の際に作成されます。パス検索エラーが発生した場合には、ファイル属性情報がないので、このトークンは監査レコードに含まれません。次のフィールドがあります。

ファイルシステム ID およびデバイス ID についての詳細は、statvfs(2) のマニュアルページを参照してください。次の図は、トークンの書式を示しています。

図 B-5 attr トークンの書式

Graphic

attr トークンは、praudit により次のように表示されます。

attribute,100555,root,root,1805,13871,-4288

clearance トークン

clearance トークンには、Trusted Solaris の認可上限情報が入っています。次のフィールドがあります。

次の図は、トークンの書式を示しています。

図 B-6 clearance トークンの書式

Graphic

clearance トークンは、praudit により次のように表示されます。

clearance,TOP SECRET

exec_args トークン

exec_args トークンは、exec() システムコールへの引数を記録します。次のフィールドがあります。

次の図は、exec_args トークンを示しています。

図 B-7 exec_args トークンの書式

Graphic


注 -

exec_args トークンは、監査ポリシー argv が有効な場合にだけ出力されます。詳細は、「動的手続き」を参照してください。


exec_args トークンは、praudit により次のように表示されます。

exec_args,

exec_env トークン

exec_env トークンは、exec() システムコールへの現在の環境変数を記録します。次のフィールドがあります。

次の図は、exec_env トークンを示しています。

図 B-8 exec_env トークンの書式

Graphic


注 -

exec_env トークンは、監査ポリシー arge が有効な場合にだけ出力されます。詳細は、「動的手続き」を参照してください。


exec_env トークンは、praudit により次のように表示されます。

exec_env,

exit トークン

exit トークンは、プログラムの終了状態と戻り値を記録します。次のフィールドがあります。

次の図は、exit トークンを示しています。

図 B-9 exit トークンの書式

Graphic

exit トークンは、praudit により次のように表示されます。

exit,Error 0,0

file トークン

file トークンは監査デーモンが生成する特別なトークンで、新しい監査トレールファイルの起点と無効になる旧ファイルの終了点を示します。監査デーモンはこのトークンを含む特別な監査レコードを作成して、連続した監査ファイルを 1 つの監査トレールとしてリンクさせます。次のフィールドがあります。

次の図は、トークンの書式を示しています。

図 B-10 file トークンの書式

Graphic

file トークンは、praudit により次のように表示されます。

file,Fri Jan 23 13:32:42 1997, + 79249 msec,	
/etc/security/audit/patchwork/files/19920901202558.19920901203241.patchwork

groups トークン (廃止)

このトークンは、newgroups トークンに置き換えられています。newgroups トークンは、情報の型は同じですが必要な容量が少なくて済みます。ここでは完全を期すために groups トークンの説明も記載していますが、アプリケーション設計者は newgroups トークンを使用してください。ただし、praudit はこの 2 つのトークンを区別しません。どちらのトークン ID も ASCII 形式で出力すると groupsとラベルされるからです。

groups トークンは、プロセスの資格からグループエントリを記録します。次のフィールドがあります。

次の図は、groups トークンを示しています。

図 B-11 groups トークンの書式

Graphic

groups トークンは、praudit により次のように表示されます。

group,staff,wheel,daemon,kmem,bin,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

注 -

groups トークンは、監査ポリシー group が有効な場合にだけ出力されます。詳細は、auditconfig コマンド」を参照してください。


header トークン

header トークンは、監査レコードの起点を示し、trailer トークンとの組み合わせでレコードの中の全トークンをブラケットする特別なトークンです。次のフィールドがあります。

次の図は、header トークンを示しています。

図 B-12 header トークンの書式

Graphic

イベント修飾子フィールドには、次に定義するフラグが入っています。

値 

定数名 

説明 

0x0001 

PAD_MACUSE 

MAC の判断が成功した 

0x0002 

PAD_MACREAD 

MAC の読み取り失敗 

0x0004 

PAD_MACWRITE 

MAC の書き込み失敗 

0x0008 

PAD_MACSEARCH 

MAC の検索失敗 

0x0010 

PAD_MACKILL 

MAC の信号失敗 

0x0020 

PAD_MACTRACE 

MAC の追跡失敗 

0x0040 

PAD_MACIOCTL 

MAC の ioctl 失敗 

0x0080 

PAD_SPRIVUSE 

成功した特権の使用 

0x0100 

PAD_FPRIVUSE 

失敗した特権の使用 

0x4000 

PAD_NONATTR 

ユーザーアクションによらないイベント 

0x8000 

PAD_FAILURE 

失敗した監査イベント 

header トークンは、praudit により次のように表示されます。

header,449,3,pfsh(1M),,Mon May

host トークン

host トークンには、この監査レコードを生成したワークステーションのマシン ID が入っています。次のフィールドがあります。

次の図は、host トークンの書式を示しています。

図 B-13 host トークンの書式

Graphic

host トークンは、praudit により次のように表示されます。

host,patchwork

in_addr トークン

in_addr トークンには、インターネットアドレスが入っています。この 4 バイトの値はインターネットプロトコルのアドレスです。次のフィールドがあります。

次の図は、in_addr トークンの書式を示しています。

図 B-14 in_addr トークンの書式

Graphic

in_addr トークンは、praudit により次のように表示されます。

ip addr,129.150.110.3

ip トークン

ip トークンには、インターネットプロトコルのヘッダーのコピーが入っていますが、IP オプションは含まれていません。トークンに IP ヘッダーをさらに付け加えて、IP オプションを追加することもできます。IP ヘッダーの構造は、/usr/include/netinet/ip.h に定義されています。次のフィールドがあります。

次の図は、ip トークンの書式を示しています。

図 B-15 ip トークンの書式

Graphic

ip トークンは、praudit により次のように表示されます。

ip,0.0.0.0

ipc トークン

ipc トークンには、呼び出し元が特定の IPC オブジェクトを識別するために使用する System V IPC のメッセージ、セマフォ、共有メモリーハンドルが入っています。次のフィールドがあります。

次の図は、ipc トークンの書式を示しています。

図 B-16 ipc トークンの書式

Graphic

ipc トークンは、praudit により次のように表示されます。

IPC,msg,3

注 -

IPC オブジェクト識別子は、Solaris CMW 監査トークンのコンテキストに制限されない特性に違反しています。IPC オブジェクトを一意に識別するグローバルな「名前」はありません。代わりに、IPC オブジェクトがアクティブな間だけ有効なハンドルで識別されます。ただし、System V IPC 機構が使われるのはまれであり、すべて同じ監査クラスを共有するので、識別は問題にならないはずです。


IPC オブジェクトタイプフィールドは、表 B-4 の値をとることがあります。値は、</usr/include/bsm/audit.h> に定義されています。

表 B-4 PC オブジェクトタイプフィールド

名前 

説明 

説明 

AU_IPC_MSG

IPC メッセージオブジェクト 

AU_IPC_SEM

IPC セマフォオブジェクト 

AU_IPC_SHM

IPC 共有メモリーオブジェクト 

ipc_perm トークン

ipc_perm トークンには、System V IPC アクセス情報のコピーが入っています。共有メモリー、セマフォ、メッセージの IPC の監査レコードには、このトークンが付加されます。次のフィールドがあります。

値は、IPC オブジェクトに関連する ipc_perm 構造から受け取ります。次の図は、ipc_perm トークンの書式を示しています。

図 B-17 ipc_perm トークンの書式

Graphic

ipc_perm トークンは、praudit により次のように表示されます。

IPC perm,root,wheel,root,wheel,0,0,0x00000000

iport トークン

iport トークンには、TCP または UDP ポートアドレスが入っています。次のフィールドがあります。

次の図は、iport トークンの書式を示しています。

図 B-18 iport トークンの書式

Graphic

iport トークンは、praudit により次のように表示されます。

iport,0xf6d6

liaison トークン

liaison トークンには、トラステッドネットワークのソフトウェアが使用する連絡 ID が入っています。次のフィールドがあります。

次の図は、liaison トークンの書式を示しています。

図 B-19 liaison トークンの書式

Graphic

liaison トークンは、praudit により次のように表示されます。

liaison,17

newgroups トークン

このトークンは、groups トークンに代わって用いられます。praudit はこの 2 つのトークンを区別しません。ASCII 形式で出力すると、どちらのトークン ID も groups とラベルされます。

newgroups トークンは、プロセスの資格のグループエントリを記録します。次のフィールドがあります。

次の図は、newgroups トークンの書式を示しています。

図 B-20 newgroups トークンの書式

Graphic


注 -

newgroups トークンは、監査ポリシー group が有効な場合にだけ出力されます。詳細は、auditconfig コマンド」を参照してください。


newgroups トークンは、praudit により次のように表示されます。

newgroups,1,analysts

opaque トークン

opaque トークンには、一連のバイトのような書式化されていないデータが入っています。次のフィールドがあります。

次の図は、opaque トークンの書式を示しています。

図 B-21 opaque トークンの書式

Graphic

opaque トークンは、praudit により次のように表示されます。

opaque,12,0x4f5041515545204441544100

path トークン

path トークンには、オブジェクトのアクセスパス情報が入っています。次のフィールドがあります。

次の図は、path トークンの書式を示しています。

図 B-22 path トークンの書式

Graphic

path トークンは、praudit により次のように表示されます。

path,/etc/security/audit/patchwork

priv トークン

priv トークンには、特権の使用情報が入っています。次のフィールドがあります。

次の図は、priv トークンの書式を示しています。

図 B-23 priv トークンの書式

Graphic

priv トークンは、praudit により次のように表示されます。

useofpriv,failed use of priv,win_mac_write

privilege トークン

privilege トークンには、オブジェクトまたはサブジェクトの特権情報が入っています。次のフィールドがあります。

特権の型は次のうちの 1 つです。

値 

型 

未知または未定義 

強制された特権 

許容された特権 

有効な特権 

継承可能な特権 

許可された特権 

保存された特権 

次の図は、privilege トークンの書式を示しています。

図 B-24 privilege トークンの書式

Graphic

privilege トークンは、praudit により次のように表示されます。

privilege,1,proc_tcb_audit

process トークン

process トークンには、信号の受信側など、プロセスをオブジェクトとして説明する情報が入っています。次のフィールドがあります。

次の図は、process トークンの書式を示しています。

図 B-25 process トークンおよび subject トークンの書式

Graphic

監査 ID、ユーザー ID、グループ ID、プロセス ID、セッション ID は、短形式ではなく長形式で示されます。


注 -

process トークンのセッション ID、実ユーザー ID、実グループ ID 用の各フィールドは使用できない場合があります。このときエントリは -1 にセットされます。


process トークンは、praudit により次のように表示されます。

process,root,root,wheel,root,wheel,0,0,0,0.0.0.0

return トークン

return トークンには、システムコールの戻り状態 (u_error) とプロセスの戻り値 (u_rvall) が入っています。このトークンは、アプリケーション監査時の終了状態とそれ以外の戻り値を示します。このトークンは、システムコールに対するカーネル生成の監査レコードの一部として必ず返されます。次のフィールドがあります。

次の図は、return トークンの書式を示しています。

図 B-26 return トークンの書式

Graphic

return トークンは、praudit により次のように表示されます。

return,failure: No such file or directory,-1

seq トークン

seq トークン (sequence トークン) は、昇順のシーケンス番号を持つオプションのトークンです。このトークンはデバッグで使用します。このトークンは、AUDIT_SEQ ポリシーが有効な場合にそれぞれの監査レコードに付加されます。次のフィールドがあります。

このシーケンス番号は、監査レコードが生成されて監査トレールに付け足されるたびに 1 ずつ増加します。次の図は、seq トークンの書式を示しています。

図 B-27 seq トークンの書式

Graphic

seq トークンは、praudit により次のように表示されます。

sequence,1292

slabel トークン

slabel トークンには、機密ラベルが入っています。次のフィールドがあります。

次の図は、slabel トークンの書式を示しています。

図 B-28 slabel トークンの書式

Graphic

slabel トークンは、praudit により次のように表示されます。

slabel,ADMIN_LOW

socket トークン

socket トークンには、インターネットのソケットを説明する情報が入っています。次のフィールドがあります。

ソケットタイプは指定したソケットから受け取り、ポートアドレスとインターネットアドレスは、ソケットの inpcb 制御構造から受け取ります。次の図は、socket トークンの書式を示しています。

図 B-29 socket トークンの書式

Graphic

socket トークンは、praudit により次のように表示されます。

socket,0x0000,0x0000,0.0.0.0,0x0000,0.0.0.0

socket,0x0002,0x8008,patchwork

socket-inet トークン

socket-inet トークンは、ローカルポートとソケットの接続を説明し、これを使ってインターネットネームスペースのソケット情報を表します。次のフィールドがあります。

次の図は、socket-inet トークンの書式を示しています。

図 B-30 socket-inet トークンの書式

Graphic

socket-inet トークンは、praudit により次のように表示されます。

socket,0x0002,0x8008,patchwork

subject トークン

subject トークンは、サブジェクト (プロセス) を説明します。構造は process トークンと同じです。

このトークンは、システムコールに対してカーネル生成の監査レコードの一部として必ず返されます。監査 ID、ユーザー ID、グループ ID、プロセス ID、セッション ID は、短形式ではなく長形式で示されます。トークンの書式は 図 B-25 に示します。


注 -

subject トークンのセッション ID、実ユーザー ID、実グループ ID 用の各フィールドは使用できない場合があります。このときエントリは -1 にセットされます。


subject トークンは、praudit により次のように表示されます。

subject,root,root,staff,root,staff,552,552,24 3 patchwork

text トークン

text トークンには、テキスト文字列が入っています。次のフィールドがあります。

次の図は、text トークンの書式を示しています。

図 B-31 text トークンの書式

Graphic

text トークンは、praudit により次のように表示されます。

text,emily

trailer トークン

trailer トークンは、監査レコードの終わりを示し、監査トレールの逆方向検索を可能にします。このトークンは、AUDIT_TRAIL 監査ポリシーが設定されている場合に限り、それぞれのレコードに付加されたトークンのいちばん最後に追加される、オプションのトークンです。次のフィールドがあります。

次の図は、trailer トークンの書式を示しています。

図 B-32 trailer トークンの書式

Graphic

trailer トークンは、praudit により次のように表示されます。

trailer,136

xatom トークン

xatom トークンには、X アトムに関する情報が入っています。次のフィールドがあります。

次の図は、xatom トークンの書式を示しています。

図 B-33 xatom トークンの書式

Graphic

xatom トークンは、praudit により次のように表示されます。

xatom,_DT_SAVE_MODE

xclient トークン

xclient トークンには、X クライアントに関する情報が入っています。次のフィールドがあります。

次の図は、xclient トークンの書式を示しています。

図 B-34 xclient トークンの書式

Graphic

xclient トークンは、praudit により次のように表示されます。

xclient,15

xcolormap トークン

xcolormap トークンには、カラーマップに関する情報が入っています。次のフィールドがあります。

次の図は、トークンの書式を示しています。

図 B-35 xcolormapxcursorxfontxgcxpixmapxwindow トークンの書式

Graphic

xcolormap トークンは、praudit により次のように表示されます。

xcolormap,0x08c00005,agv

xcursor トークン

xcursor トークンには、カーソルに関する情報が入っています。次のフィールドがあります。

図 B-35 は、トークンの書式を示しています。

xcursor トークンは、praudit により次のように表示されます。

xcursor,0x0f400006,agv

xfont トークン

xfont トークンには、フォントに関する情報が入っています。次のフィールドがあります。

図 B-35 は、トークンの書式を示しています。

xfont トークンは、praudit により次のように表示されます。

xfont,0x08c00001,agv

xgc トークン

xgc トークンには、xgc に関する情報が入っています。次のフィールドがあります。

図 B-35 は、トークンの書式を示しています。

xgc トークンは、praudit により次のように表示されます。

xgc,0x002f2ca0,agv

xpixmap トークン

xpixmap トークンには、ピクセルマップに関する情報が入っています。次のフィールドがあります。

図 B-35 は、トークンの書式を示しています。

xpixmap トークンは、praudit により次のように表示されます。

xpixmap,0x08c00005,agv

xproperty トークン

xproperty トークンには、ウィンドウの各種プロパティに関する情報が入っています。次のフィールドがあります。

次の図は、xproperty トークンを示しています。

図 B-36 xproperty トークンの書式

Graphic

xproperty トークンは、praudit により次のように表示されます。

xproperty,0x000075d5,root,_MOTIF_DEFAULT_BINDINGS

xselect トークン

xselect トークンには、ウィンドウ間を移動するデータが入っています。次のフィールドがあります。

次の図は、xselect トークンの書式を示しています。

図 B-37 xselect トークンの書式

Graphic

xselect トークンは、praudit により次のように表示されます。

xselect,

xwindow トークン

xwindow トークンには、ウィンドウに関する情報が入っています。次のフィールドがあります。

図 B-35 は、xwindow トークンの書式を示しています。

xwindow トークンは、praudit により次のように表示されます。

xwindow,0x07400001,gww