Solaris のシステム管理 (セキュリティサービス)

BSM の用語

BSM サービスでは、次の用語が使用されています。定義によっては、より詳細な説明への参照先も示します。

表 20–1 BSM の用語

用語 

定義 

監査クラス 

監査イベントのグループ。監査クラスを使用して、イベントのグループを管理できる。詳細は、監査クラスを参照

監査ディレクトリ 

監査ファイルのリポジトリ。監査ディレクトリの種類については、監査ディレクトリを参照

監査イベント 

監査対象のセキュリティ関連のシステム動作。監査イベントの種類については、監査イベントを参照

監査フラグ 

クラスの短縮名。監査フラグは、監査を行うイベントクラスとタイミングを決定するために使用する。監査フラグの詳細は、監査フラグを参照

監査ポリシー 

特定の構成について有効または無効を指定できる監査オプションの集合。監査オプションには、特定の種類の監査データを記録するかどうかを指定する。また、監査トレールがいっぱいになった場合に監査を中断するかどうかも指定する

監査レコード 

監査データ。監査データはバイナリ形式で格納される。1 つの監査レコードにつき 1 つの監査イベントが記述される。各監査レコードは、一連の監査トークンから構成される。監査レコードの詳細は、監査レコードと監査トークンを参照

監査トークン 

一連の監査データ。監査トークンはバイナリ形式で格納される。各監査トークンには、監査イベントの 1 つの属性 (プロセス、パス、その他のオブジェクトなど) が記述される。監査トークンの詳細は、監査トークンの形式を参照

監査トレール 

1 つまたは複数の監査ファイルの集合。複数の監査ファイルパーティションに別々に存在することもある

デバイス割り当て 

デバイスの使用を制限し、デバイスが使い終わったあとに残っているデータを消去するメカニズム。デバイス割り当ての詳細は、デバイス割り当てを参照

公開オブジェクト 

公開オブジェクトとは、/etc/usr/bin などのシステムディレクトリ内に格納されているファイル。システムディレクトリは、すべてのユーザーによって読み取り可能である。システムディレクトリ内のファイルは、内容の参照、または実行のために頻繁に読み取られる。Solaris 9 8/03 リリースでは、デフォルトで、公開オブジェクトの読み取り専用イベントは監査されない。たとえば、fr 監査フラグがオンになっている場合でも、公開オブジェクトの読み取り動作は監査されない。auditconfig -setpolicy コマンドの public ポリシーフラグ引数によって、ポリシーの設定が決まる

監査イベント

セキュリティに関連するシステム動作について監査を行うことができます。これらの監査可能な動作を、「監査イベント」と呼びます。監査イベントは、/etc/security/audit_event ファイルに指定します。監査可能な各イベントは、このファイル内で、シンボル名、イベント番号、一連の選択済みクラス、および簡単な説明によって定義されています。audit_event(4) のマニュアルページを参照してください。

監査イベントには、いくつかのカテゴリがあります。まず、カーネルレベルのイベントとユーザーレベルのイベントに大きく分けられます。カーネルによって生成されたイベントは、カーネルレベルのイベントと呼ばれます。アプリケーションによって生成されたイベントは、ユーザーレベルのイベントと呼ばれます。次の表に示すように、カーネルレベルのイベントには、ユーザーレベルのイベントよりも小さい監査イベント番号が割り当てられています。

表 20–2 監査イベントのカテゴリ

番号の範囲 

イベントの種類 

1–2047 

カーネルレベルの監査イベント 

2048–65535 

ユーザーレベルの監査イベント 

 

2048–32767 

SunOS ユーザーレベルのプログラム用に予約 

 

32768–65535 

サードパーティのアプリケーション用

カーネルレベルの監査イベント

カーネルによって生成されるイベントは、システムコールです。システムコールには、1 から 2047 までの監査イベント番号が割り当てられます。カーネルレベルのイベントでは、イベント名は AUE_ で始まり、そのあとにイベントを表す大文字のニーモニックが続きます。たとえば、creat() システムコールのイベント番号は 4 で、イベント名は AUE_CREAT です。

ユーザーレベルの監査イベント

アプリケーションソフトウェアによって生成されるイベントは、カーネルの外側にあります。アプリケーションソフトウェアによってユーザーレベルのイベントが生成されます。ユーザーレベルのイベントは、2048 から 65535 までの番号です。イベント名は AUE_ で始まり、そのあとにイベントを表す小文字のニーモニックが続きます。たとえば、rlogin コマンドのイベント番号は 6155 で、イベント名は AUE_rlogin です。表 20–2 にユーザーに関連するイベントの一般的なカテゴリを示します。

ユーザーに起因しない監査イベント

ほとんどのイベントは個々のユーザーの動作が原因で発生しますが、そうでないイベントも存在します。カーネル割り込みレベルでイベントが発生した場合や、ユーザーが識別および認証される前にイベントが発生した場合、それらのイベントは「ユーザーに起因しない」イベントです。ユーザーに起因しないイベントは、監査可能です。次の例は、/etc/security/audit_event ファイル内のユーザーに起因しないイベントを 2 つ示しています。


153:AUE_ENTERPROM:enter prom:na
6156:AUE_mountd_mount:mount:na

AUE_ENTERPROM はカーネルレベルの na イベントです。AUE_mountd_mount はユーザーレベルの na イベントです。

監査クラス

各監査イベントは、1 つまたは複数の「監査クラス」に属するものとして定義します。監査クラスは、多数の監査イベントが入った便利な入れ物です。あるクラスを監査対象として選択した場合、そのクラスに属するすべてのイベントを監査対象として選択したことになります。監査クラスは、/etc/security/audit_class ファイルに定義されます。各エントリには、クラスの名前、監査マスク、および短縮名が含まれます。


0x00000010:fc:file create
0x00000400:na:non-attribute

監査イベントのクラスへの割り当ては構成可能です。これらの構成の変更は audit_event ファイル内で行います。

監査可能な特定のイベントが監査トレール内に記録されるのは、その特定のイベントを含む監査クラスを監査対象として事前に選択した場合です。監査クラスは、32 クラスまで設定できます。クラスには、all および no という 2 つのグローバルクラスが含まれます。 監査クラスについては、表 23–1 を参照してください。audit_class(4) のマニュアルページも参照してください。

監査フラグ

「監査フラグ」は監査クラスの短縮名です。マシン全体で有効な監査関連のデフォルト値は、audit_control ファイル内の監査フラグによって指定します。audit_control ファイルについては、audit_controlファイル を参照してください。

マシン全体の監査デフォルトに対する例外を、個々のユーザーごとに定義できます。audit_user ファイル内で、ユーザーのエントリに監査フラグを設定します。監査フラグは、auditconfig コマンドの引数としても使用します。auditconfig(1M)audit_user(4) のマニュアルページを参照してください。

監査レコードと監査トークン

各「監査レコード」には、監査された 1 つのイベントの発生が記述されます。レコードには、動作を行なったユーザー、影響を受けたファイル、試みられた動作、その動作が発生した位置と時刻などの情報が含まれます。次の行は、praudit コマンドによって処理された監査レコードの一例です。


header,81,2,login - local,,Mon May  6 16:55:48 PDT 2002, + 486 msec
subject,root,root,other,root,other,378,378,0 0 example_machine
text,successful login
return,success,0

監査レコードは監査ファイル内に収集されます。1 つのマシンやサイト内に存在する監査ファイルの集合は「監査トレール」と呼ばれます。監査ファイルの処理方法については、audit.log(4) のマニュアルページを参照してください。監査レコードをユーザーが読める書式に変換するには、praudit コマンドを使用します。praudit の出力例については、praudit コマンドを参照してください。praudit(1M) のマニュアルページも参照してください。

監査イベントごとに保存される情報の種類は、一連の「監査トークン」によって定義されます。 イベントの監査レコードが生成されるたびに、そのイベントに対して定義されたトークンの一部またはすべてが、そのレコードに書き込まれます。どのトークンが記録されるかは、イベントの性質によって決まります。監査レコードの説明を生成するには、bsmrecord コマンドを使用します。次の出力は、creat() システムコール使用時に生成される監査レコードの構造を示しています。header で始まる各行が監査トークンです。


creat
  system call creat                see creat(2)
  event ID    4                    AUE_CREAT
  class       fc                   (0x00000010)
      header
      path
      [attribute]
      subject
      return

詳細は、監査レコードの書式の表示方法を参照してください。各監査トークンの構造については、監査トークンの形式を参照してください。audit.log(4) のマニュアルページにも、監査トークンの情報が記載されています。

監査ディレクトリ

監査ディレクトリには、監査ファイルの集合を保管します。通常のインストールでは、多くの監査ディレクトリが使用されます。監査ディレクトリには、次の 3 つのタイプがあります。