JPH01197859A - 分散式監視サブシステム - Google Patents

分散式監視サブシステム

Info

Publication number
JPH01197859A
JPH01197859A JP63316624A JP31662488A JPH01197859A JP H01197859 A JPH01197859 A JP H01197859A JP 63316624 A JP63316624 A JP 63316624A JP 31662488 A JP31662488 A JP 31662488A JP H01197859 A JPH01197859 A JP H01197859A
Authority
JP
Japan
Prior art keywords
monitoring
file
trail
bin
daemon
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP63316624A
Other languages
English (en)
Other versions
JPH0642215B2 (ja
Inventor
Matthew Sterling Hecht
マシユー・ステアリング・ヘクト
Johri Abhai
アビハイ・ジヨーリ
Tsung Tsan Wei
ツウング・サン・ウエイ
Douglas H Stevens
ダグラス・エイチ・ステイベス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH01197859A publication Critical patent/JPH01197859A/ja
Publication of JPH0642215B2 publication Critical patent/JPH0642215B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は一般にデータ処理に関し、さらに具体的には、
データ処理システム用の安全保護監視機構の提供に・関
するものである。
B、従来技術 多くのデータ処理アプリケーションは、財務アプリケー
ジ日ン、国家安全保障アプリケージ騨ン等の高度な機密
情報を含み、それらのアプリケ−シロンでは、多数のユ
ーザ端末が、端末制御装置を介して分散処理ネットワー
ク中に相互接続された複数のデータ・プロセッサの1つ
に接続されている。データ・ファイルは、ネットワーク
に接続された複数のデータ・プロセッサ及び端末から共
通にアクセスできる記憶装置に記憶することができる。
ネットワーク全体に記憶された種々のデータ・ファイル
にアクセスを行なうことが可能なノードの種類が様々で
あるため、高度の機密メツセージ及びファイルがシステ
ム内で伝送され記憶されるという、安全保護上重大な問
題がある。従来技術は、分散処理ネットワークを介して
伝送され、共通にアクセス可能な記憶装置に記憶される
機密データを、未許可の人物またはプログラムが読み取
るのを防ぐための有効な機構を提供してこなかった。従
来技術のデータ処理システムでは、通信経路及びデータ
・アクセス・ノードは、未許可の人物またはプログラム
の侵入を受け、これらの人物またはプログラムは、ネッ
トワーク内で伝送され記憶される機密情報を流用、複写
またはその他の方法でその安全保護を破壊する。
国家安全保障アプリケ−シロンについて、米国政府は、
データ処理システムの安全保護を評価する基準を確立し
、この基準は「トラステッド・コンピュータ・システム
評価基準(↑rusted ComputerSyst
em Evaluation Cr1teria) J
 1米国防総省11985年12月、DoD刊行物番号
5200゜28−8TD (本明細書ではDoD基準と
呼ぶ)に公表されている。DoD基準では、トラステッ
ド・コンビエータ・システムは、十分なハードウェア及
びソフトウェアの保全性対策を用いて、一連の機密情報
を同時に処理するために使用できるシステム管理員と定
義されている。トラステラy計算ベース(TCB)は、
全体として安全保護策を実施するハードウェア、ファー
ムウェア及びソフトウェアを含む、コンピュータ・シス
テム内の保護機構の総体であると定義される。TCBは
、プロダクトまたはシステムに関する統一された安全保
護策を全体として実施する、1つまたは複数の構成要素
から成る。TCBが安全保護策を正し〈実施できるかど
うかは、TCB内の機構と、ユーザの許可等、安全保護
策に関連するパラメータをシステム管理員が正しく入力
したかどうかだけによって決まる。トラステッド経路は
、DoD基準では、端末にいる人物がトラステッド計算
ベースと直接通信できるようにする機構であると定義さ
れる。トラステッド経路機構は、その人物またはトラス
テッド計算ベースのみが活動化でき、非トラステッド・
ソフトウェアがそれを模倣することはできない。トラス
テッド・ソフトウェアは、トラステッド計算ベースのソ
フトウェア部分であると定義される。
DoD基準で定められているように、適正に許可された
個人または処理のみが、情報を読み、書き、作成または
削除するためにアクセスできるように、安全なコンピュ
ータ・システムは情報に対するアクセスを制御する。D
oD基準は、情報に対するアクセスを制御するため、及
び、このことがトラステッド・コンピュータ・システム
で実現されたという信用できる保証をどのように得るこ
とができるかに対処するための6つの基本要件を定めて
いる。安全なコンピュータ・システムに対する第1の要
件は、システムが、機密情報を扱うためのアクセス規則
を効果的に実施することができる必須の安全保護策を実
施しなければならないということである。それらの規則
には、適切な要員の安全保護許可を持たない人物は機密
情報に対するアクセスを得ることができず、さらに、選
択されたユーザまたはユーザのグループのみが、たとえ
ば、知る必要のあるたびにデータに対するアクセスを得
ることができるという要件が含まれる。
安全なコンビエータ・システムに対する第2の要件は、
アクセス制御ラベルを、安全に保つべき情報と関連づけ
なければならないということである。
安全なコンビエータ・システムに対する第3の要件は、
誰が情報にアクセスしているか、及び彼等はどのような
種類の情報を扱うことを許可されているかに基づいて、
情報に対するアクセスを逐一許可しなければならないと
いうことである。安全なコンピュータに対する第4の要
件は、安全&7:護に影響を及ぼす動作を行なったユー
ザを突きとめることができるように、監視情報番選択的
に保持し、保護しなければならないということである。
トラステッド・システムは、安全保護に関連する事象の
発生を監視ログに記録することができなければならない
。監視の費用を最小限にし、効率的な解析を可能にする
ため、記録される監視事象を選択する能力が必要である
。安全保護違反の発見及び追跡調査が可能になるように
、監視データを変更及び無許可の破壊から保護しなけれ
ばならない。安全なコンピュータ・システムに対する第
5の要件は、システムが最初の4つの要件を実施すると
いう十分な保証を与えるため、システムが、独立に評価
できるハードウェア及びソフトウェア機構を含まなけれ
ばならないということである。
安全なコンピュータ・システムに対する第8の要件は、
これらの基本要件を実施するトラステッド・機構を不正
操作及び無許可の変更から常に保護しなければならない
ということである。
DoD基準で定義された安全なコンピュータ・システム
を維持する問題は、多数のユーザを収容するシステムで
は一層難しくなる。DoD基準で定義される安全なコン
ピュータ・システムを確立するための効果的な機構を提
供しなかった従来技術の複数ユーザ・オペレーティング
・システムの例には、UNIX(UNIXはAT&Tベ
ル研究所(Bell Laboratories)の商
標)、XENIX(XENIXはマイクロソフト(Mi
crosoft)社の商標)及びAIX(ArXはIB
M社の商標)が含まれる。UNIXは、広範囲なミニコ
ンピユータ及びマイクロコンピュータ用のオペレーティ
ング・システムとしてAT&Tにより開発サレ、ライセ
ンス許諾されている。UNIXオペレーティング・シス
テムに関するより詳しい情報については、rUNIX 
(TM)システム、ユーザ・マニュアル、システムV 
(IINIX (TM) System、[Jsers
Manual、 System V) J 、ウェスタ
ン・エレクトリック(すestern Electri
c Co、 )社、1983年1月刊を参照されたい。
UNIXオペレーティング・システムのすぐれた概説が
、プライアン W、力−ニハン(Brian IJ、に
ernighan)著、rUNIXプログラミング環境
(The LINIX ProgrammingEnv
ironn+ent) j %プレンティス・ホール(
Prent 1ce−Ha 11 )、1984年刊に
出ている。
UNIXオペレーティング・システムの設計についての
さらに詳細な説明は、モーリス J、バラ/’ (Ma
urice J、 Bach)著、rUNIXオペレー
ティング・システムの設計(Design of th
e UNIXOperating System) J
 Nプレンティス・ホール、1986年刊に記載されて
いる。
AT&Tベル研究所は、UNIXオペレーティング拳シ
スナシステム使用センスを多数の団体ニ与えており、現
在、幾つかのバージロンがある。
AT&Tの最新バージロンはバージ日ソ5.2である。
UNIXオペレーティング・システムのバークレー・バ
ージロンと呼ばれるもう1つのバージョンが、カリフォ
ルニア大学バークレー校で開発された。マイクロソフト
社はXENIXの商標で知られているバージョンを有す
る。
1985年にIBM RT  PC(RT及びRTpc
はIBM社の商標)(RISC(縮小命令セット・コン
ピュータ)技術によるパーソナル・コンピュータ)の発
表により、IBM社は、AIXと呼ばれる新しいオペレ
ーティング・システムを発表した。AIXは、アプリケ
ーション・インターフェース・レベルでAT&TのUN
IXオペレーティング・システム、バージaン5.2と
互換性があり、UNIXオペレーティング・システム、
バージョン5.2に対する拡張を含む。AIXオペレー
ティング・システムに関するより詳しい説明については
、rAIXオペレーティング・システム技術解説書(A
IX Operating SystemTechni
cal Ref’erence) J 、第2版、IB
M社、1986年9月刊を参照されたい。
本明細書で開示され、特許請求されている発明は特に、
安全保護に影響を及ぼす動作の責任を負うべきユーザを
突きとめることができるように、安全な分散データ処理
システム内で選択的に保持し、保護しなければならない
情報を監視するための機構を提供することに関する。こ
の機構は、UN I X、 XEN I X*タハA 
I X等の複数ユーザ・オペレーティング・システムの
一部となり、安全なコンピュータ・システムを確立する
ことができる。本明細書で開示する本発明の特定の実施
例は、AIXオペレーティング・システムに適用される
本願と同日に出願され、18M社に譲渡された、「オペ
レーティング・システムのためのトラステッド経路機構
(A Trusted Path Mechanism
 f’or anOperating System)
 Jと題するアブハイ・ジロリ(Abhai Johr
i)等の関連米国特許出願第149446号に記載され
ている説明を参照されたい。
ジロリ等の米国特許出願の説明は、AIXオペレーティ
ング・システムの動作原理の考察を含み、本明細書で開
示され、特許請求されている発明を理解する上で助けと
なる。AIXオペレーティング・システムに関するさら
に詳しい情報については、上記のIBM社刊行物rA 
I Xオペレーティング・システム技術解説書」を参照
されたい。
AIXオペレーティング・システム及びUNIXに類似
した他のオペレーティング・システムは特殊な用語を使
用するので、それらの用語の一部について以下の定義を
示す。
プロセス:コマンドの入力、シェル・プログラムの実行
、または別のプロセスによって始動されることによりシ
ステム内で開始される活動等、所期の結果をもたらすた
めに必要な一連の動作。
パスワード:ユーザ識別記号と共に入力されたとき、オ
ペレータがシステムにサイン・オンすることを可能にす
る文字ストリング。
オペレーティング・システム:プログラムの実行を制御
するソフトウェア。さらに、オペレーティング・システ
ムは資源の割振り、スケジューリング、入出力制御、及
びデータ管理等のサービスを提供することができる。
カーネル:UNIXと類似したオペレーティング・シス
テムでは、カーネルがシステム・コール・インターフェ
ースを実現する。
1nit : カーネルは、初期設定の基本プロセスを
完了した後、システム内の他のすべてのプロセスの先祖
となるプロセスを開始する。このプロセスは1nitプ
ロセスと呼ばれる。1nitプロセスは、システムが稼
働する状態(通常は、保守モードまたはi数ユーザ・モ
ードのいずれか)を制御するプログラムである。
getty : 1nftプロセスは、システムに対す
る各ポートについてgetty ’コマンドを実行する
。その主要機能は、指定されたポートの特性をセットす
ることである。
login : loginプログラムはユーザをシス
テムにログオンし、ユーザのパスワードの有効性を検査
し、当該のログ項目を作成し、処理環境をセットアツプ
し、パスワード・ファイルで指定されたコマンド解釈プ
ログラム、通常はシェル(SH)プログラムを実行する
シェル(SH)ニジエル・コマンドはシステム・コマン
ド解釈プログラム及びプログラミング言語である。キー
ボードから入力されたコマンドを読み取り、その実行の
準備をするのは通常のユーザ・プログラムである。
fork : fork システム・コールは、子プロ
セスと呼ばれる新しいプロセスを作成する。子プロセス
は呼出し側プロセス(親プロセス)の正確なコピーであ
る。作成された子プロセスは親プロセスの属性の大部分
を受は継ぐ。
exec : exec システム−コールは、呼出し
プロセス中に新しいプログラムを実行する。eXeeは
新しいプログラムを作成しないが、現在のプログラムを
新しいプログラムでオーバーレイし、これは新しいプロ
セス・イメージと呼ばれる。新しいプロセス・イメージ
・ファイルは実行可能2進ファイル、シェル手順を含む
実行可能テキスト・ファイル、あるいは実行可能2進フ
ァイルまたは実行すべきシェル手順を指定するファイル
でよい。
シグナル:シグナルは活動状態のプロセスに対する通信
を行ない、現在のプロセス環境が保管され新しいプロセ
ス環境が生成される1組の事象を強制する。シグナルと
は、プロセスの通常の実行を中断し、シグナルが発生す
るときに呼び出せるシグナル処理サブルーチンを指定す
ることができる事象である。
スーパーユーザ(SU) :データの消失またはシステ
ムの損傷を防ぐように意図された規制なしに動作するこ
とができるユーザ(ユーザID0)。
ルート:スーパーユーザに対してときどき使用される別
名。
ルート・ディレクトリ:トリー構造ディレクトリ−シス
テムの最高レベル。
デーモン・プロセス二カーネルまたはルート・シェルに
よって開始され、スーパーユーザによってのみ停止させ
ることができるプロセス。デーモン・プロセスは、一般
に印刷装置にデータを送る等、常時使用可能なサービス
を提供する。
マウント:ファイル・システムをアクセス可能にする。
端末:キーボード及び表示装置または印刷装置を含む入
出力装置。端末は通常、コンピュータに接続され、人間
がコンピュータと対話することを可能にする。    
・ 本発明を適用できる分散ネットワークの一例は、198
7年2月13日に出願され、I’ B M社に譲渡され
た「分散ネットワーク環境で遠隔ファイルにアクセスす
るためのシステム及び方法(ASystem  and
  Method  for  Accessing 
 Remote  Filesin a Distri
buted Hetworking Envfronm
ent) Jと題するG、H,ノイマン(Heuman
 )等の関連米国特許出願第014897号に記載され
ている。
ノイマン等の特許出願に記載されているように、分散環
境では、複数のデータ処理システムがネットワーク・シ
ステムを介して相互接続されている。
ネットワーク・システム上に設置された分散サービス・
プログラムは、データ・ファイルがネットワーク内のど
こに゛あろうと、ネットワークの種々のノードにわたっ
て分散されたデータ・ファイルにプロセッサがアクセス
することを可能にする。
他のノードにあるファイルがアクセスされるときのネッ
トワークのトラフィック・オーバーヘッドを減少させ、
ファイル・システムのセマン、ティックス、すなわちフ
ァイルの保全性を維持するため、ノイマン等は、種々の
ファイルに対するアクセスをファイル同期ノードで管理
することを開示している。読取りまたは書込みアクセス
゛のために1つのノードのみでファイルがオープンされ
る場合は、そのファイルに第1の同期モードが与えられ
る。
ファイルが任意のノードで読取り専用アクセスのために
オープンされる場合は、そのファイルに第2の同期モー
ドが与えられる。ファイルが複数のノードの読取りアク
セスのた”めにオープンされ、゛ 少なくとも1つのノ
ードが書込みアクセスのためにファイルをオープンした
場合は、そのファイルに第3の同期モードが与えられる
ファイルが第1または第2の同期モードにある場合、そ
のファイルにアクセスするノードであるクライアント・
ノードがそのオペレーティング・システム内のクライア
ント・キャッシュを使′ってそのファイルを記憶するこ
とをノイマン等は開示している。次いで、すべての読取
り及び書込みがこのキャッシュに送られる。
ファイルが第3のモードにある場合、すべての読取り及
び書込み要求が、ファイルのあるサーバ・ノードに進ま
ねばならないことをノイマン等は開示している。そのフ
ァイルにアクセスするノードは、この第3のモードの間
にファイル・データにアクセスするのに、そのオペレー
ティング・システム内のキャッシュを使用しない。
ノイマン等は、すべての読取り及び書込み要求が第1及
び第2の同期モードでクライアント・キャッシユにアク
セスするようにクライアント・キャッシュが管理される
ことを開示している。第3の同期モードでは、クライア
ント・キャッシュは使用されない。このようにして、フ
ァイルの保全性を犠牲にすることなく、全体的なシステ
ムの能力が向上する。
C0発明が解決しようとする課題 したがって、本発明の目的は、改善された安全なコンピ
ュータ・システムを提供することである。
本発明のもう1つの目的は、DoD基準丑合致する、改
善された安全なコンピュータ・システムを提供すること
である。
本発明のさらに他の目的は、システムの安全保護に影響
を及ぼす動作の原因となったユーザを突きとめることが
できるように監視情報を選択的に保持し、保護すること
ができる、改善された安全な分散データ処理システムを
提供することである。
本発明のさらに他の目的は、システムの安全保護に影響
を及ぼす動作の原因となったユーザを突きとめることが
できるように監視情報を選択的に保持し、保護すること
ができる、UNIXオペレーティング・システムを使用
する、改善された安全な分散データ処理システムを提供
することである。
01課題を解決するための手段 本発明の上記及びその他の目的、特徴及び利点は、本明
細書に開示されている分散監視サブシステムにより実現
される。分散監視サブシステムの発明は、階層的ファイ
ル・システムを備えたUNIX類似のオペレーティング
・システムで稼働する。本発明は、それが保護し、維持
する対象物に対するアクセスの監視証跡を提供し、監視
証跡を変更、または無許可のアクセスまたは破壊から保
護する。本発明によって生成される監視データは保護さ
れ、それに対する読取りアクセスは、監視データに対し
て許可された者だけに制限される。
本発明は、識別及び確認機構の使用、ユーザのアドレス
空間へのオブジェクトの導入、そのようなオブジェクト
の削除、コンピュータ操作員及びシステム管理者、また
はシステム安全保護担当者が講じる処置、及びその他の
安全保護に関連する事象等、システムの安全保護の維持
に関連する事象の記録を可能にする。本発明は、記録さ
れた各事象について、事象の日時、ユーザ、事象の種類
、及び事象の成否を含む監視レコードを生成する。
本発明は、UNIX型デーモン・プロセスを使って監視
証跡ログ・ファイルのオンライン圧縮を行なう。監視デ
ーモン・プロセスは、ノード障害の後でこのプロセスが
回復することを可能にする再始動可能機構を有する。本
発明は、ネットワーク内の種々の記憶位置にファイルが
記憶されている分散処理システムに特に適している。そ
のような分散システムでは、本発明の監視プロセスを、
ネットワーク全体にわたって分散式に実行して、種々の
記憶位置にある監視ファイルを単一の監視証跡ログ・フ
ァイルに集中させることができる。
このようにして、DOD基準に合致した安全なコンビ二
−タ嗜システムが実現され、このシステムは、分散デー
タ処理システムの安全保護に影響を及ぼす動作に関する
監視情報を発生、処理及びデータ圧縮することができる
本発明の上記及びその他の目的、特徴及び利点は添付の
図面を参照すればさらに十分に理解できるはずである。
E、実施例 一監視証跡(audit trail)ファイルを圧縮
する機構を備えた単一データ・プロセッサ用の監視サブ
システムは、J、ピッチオツド(Picciotto 
)の論文「効果的な監視サブシステムの設計(TheD
esign of an Effective Aud
iting 5ubsystes+) Jt州オークラ
ンド、1987年4月、り1)、13−22に既に開示
されている。ピッチオツドは、圧縮を含むサブシステム
の設計のしかたについて論じている。しかし、ピッチオ
ツドは、分散サービスがある分散処理ネットワークで監
視サブシステムをどのようにして動作させるかについて
は扱っていない。
分散サービスの概念は、上記のG、H,/イ?ン等の特
許出願ではUNIXマシン(ノード)の集まりとして記
載されている。各ノードは、第4図に示すような、トリ
ーとして描くことができる階層的ファイル・システムを
有する。トリーのルートはスラッシュと呼ばれ、各スラ
ッシュの下にはディレクトリがあり、各ディレクトリに
は他のディレクトリまたはファイルがある。UNIXデ
ィレクトリはファイル・ケースに似たものと考えること
ができる。UNIXファイルはそのファイル・ケース内
のファイルに似ている。UNIXでは、ディレクトリの
サブディレクトリを設は名ことができる。すなわち、経
路ディレクトリは子ディレクトリを有することができる
。第4図に、上端にルートがあり、階層的名前空間を表
わすブランチがそこから下がっているトリーが示しであ
る。スラッシュで表わされるルートが上端にあり、その
下に幾つかのサブディレクトリがある。UNIXでは、
代表的なサブディレクトリの幾つかは/ binx /
 etc1/ temp及び/ usrであり、ときど
き/Uがあり、/ etc等のディレクトリの下に、た
とえば/ etc / re  等のファイル、または
ディレクトリがある。
本発明では、新しいディレクトリ/ etc /5ec
ur ity を導入した。その下に、幾つかのテーブ
ルがある。/ etc / 5ecurityの下のテ
ーブルの1つは、/ etc / 5ecurity 
/ s cmdと呼ばれるファイルである。これはA、
ジロリ等の上記特許出願に記載されるような、トラステ
ッド・シェル用のコマンド・テーブルを含むファイルの
名前である。さらに、ディレクトリ名/ etc/ 5
ecurttyの下に/ etc / 5ecurit
y / auditと呼ばれるディレクトリを導入し、
このディレクトリの下に、a eventと呼ばれるフ
ァイルがある。
本発明によれば、事象テーブルはこの監視サブシステム
のためにシステム内の既知の事象を列挙する。事象には
、ベース事象と管理事象の2種のものがある。ベース事
象とは、カーネル内、またはコマンド中で生じる事象で
ある。ベース事象の一例は、exec と呼ばれる事象
やfork と呼ばれる事象等、カーネル内の事象であ
る。コマンド中のベース事象の一例はs login 
と呼ばれるコマンド中の2つの事象login fai
l とlogin okである。
login−fail またはlogin okのいず
れかのシステム中の管理事象を定義し、この管理事象を
loginと名付けたい場合には、事象テーブル/ e
tc /5ecurity / audit / an
 eventを調べ1テーブルを編集して、login
: login failllogin ok という
行を追加すればよい。監視人がrloginJと呼ばれ
る監視事象をオンにしたい場合、それは既にテーブル中
で定義されている。管理事象は、新しい管理事象を含む
ようにこのファイルを編集または変更するために監視人
が使用できる便利なマクロである。本発明は、分散処理
ネットワーク内で複数の分散サービス(DS)にわたる
動作のために特に設計されている。
G、H,ノイマン等の上記特許出願に記載されるように
、DSが何を行なうかを理解するため、階層的UNIX
ファイルーシステムについてここで若干考察−する。U
NIXシステムのネットワークがあり、各UNIXシス
テム上に、ディレクトリ及びファイルを含む階層的名前
空間があるものと仮定する。すなわち、それは、第4図
に示すように、上端に「/」で表わされるルートがある
トリーであり、「/」の下にディレクトリ及びファイル
がある。UNIXシステム上では、「/」の下にbin
letCltellpx usr等と呼ばれる幾つかの
周知のディレクトリがあり、それらの下に他の幾つかの
ディレクトリまたは他の幾つかのファイルがある。さら
に、この場合、従来のUNIXシステム上で名前空間を
調べるとき、これらのディレクトリ及びファイルは、す
べてその単一データ・プロセッサにとってローカルであ
り、いずれのファイルもリモートではない。
2つのUNIXシステムがあるものとする。第1のシス
テムをAと呼び、第2のシステムをBと呼ぶ。各UN 
I Xシステムには、「/」及びその下に種々のファイ
ルを含むトリーを有する階層的名前空間がある。第1の
マシンAにいて、第2のマシンB上のファイル及びディ
レクトリにアクセスしたいものとする。そのことを行な
うための1つの方法(実際には旧来の方法であり、依然
として使われている)は、A上にいてBに話しかけたい
場合に、rtelnetJと呼ばれるコマンドまたはr
rloginJ  (r はリモートを表わす)と呼ば
れるコマンドを使ってBにログインするものであり、実
際にはまずAにログインして、Bに話しかけようとする
。したがって、Bに対してtelnetまたはrlog
in のいずれかを実行すると、Bの環境(Bの階層的
名前空間)に入り、B上で動作を実行することができる
。しかし、AとBの間でファイルを移動させることは実
行できない。すなわち、AまたはBのいずれかにいるが
、両方にいることはできない。
第1のマシン上にいてそこに留まりながら、第2のマシ
ンの階層的名前空間、すなわち、そのディレクトリまた
はそのファイルにアクセスすることが望ましい。実際に
は、A上でAのローカル・ファイルに作用し、かつB上
の任意のリモート・ファイルに作用するコマンドを持つ
ことが望ましい。
そのためには、リモート・ファイルに命名する方法が必
要である。既存のコードを使って実行できることが他に
も幾つかある。実行できることの1つは、A上にいて、
AからBまたはBからAにファイルを複写したい場合に
、それを行なうためのコマンドがあることで、このコマ
ンドはFTP (ファイル転送プログラムの略)と呼ば
れる。AIX上では、これはXFTPと呼ばれる。その
作用のしかたは、一方のマシン上にいて、XFTPと指
定することで、基本的にloginに似ている。他方の
マシンにログインすると、ファイルを両方向に複写する
ことができ、ディレクトリを別のディレクトリに変更す
ることができる。ディレクトリの中に何があるか調べる
ために、リスト(LST)を実行することができ、かつ
それがしばらくの間受は入れられていたか、この方法は
どちらかというと面倒である。
実際には、A上にいてBからファイルを複写することが
望ましい。CP(コピーの略)と呼ばれる既存のコマン
ドがあり、このコピーで「CPX  YJと指定する。
X及びYはファイル名である。Xは既存ファイルの名前
であり、Yは作成したい新しいファイルの名前である。
実際には、Xのコピーを作成し、それをYと呼んでいた
。通常は、X及びYは共にローカルである。それらは同
一マシン上のファイルであるが、X及びYがローカルで
あるのか、リモートであるのか、両方がローカルである
か、それとも両方がリモートで、別の1つがローカルで
あるか、ソフトウェアが気づかないことが望ましい。両
方のファイルがリモートである場合、両方がマシンB上
にある必要はないので、5つ以上の組合せがある。Xが
マシンB上にあり、YがマシンC上にあってもよい。C
Pを用いてファイルのコピーを作成するときは、ローカ
ルでない、すなわちリモートのファイルを複写するため
、ローカル・マシン上で以前に使用していたのと同じコ
マンドを使う。問題は、コピーCPのようにA上でロー
カルにのみ作用することが常であるコマンドを実行する
とき、扱っているファイルがローカルであるか、それと
もリモートでBまたはC上にあるかにシステムが気づか
ない形で、上記のことを実行する、すなわちAにログイ
ンし、Aの階層の名前空間内で作用して、BやC等のネ
ットワーク上の他のマシンの階層的名前空間にアクセス
する簡単な方法があるかどうかである。具体的に言うと
、ファイルを明示的に両方向に移動するためにXFTP
またはFTPを使用する必要はなく、ファイルを移動し
て仕事を行なうため、telnet またはrlogi
n を使って別のシステムに実際にログインする必要は
ない。ローカル・マシン上にいるままで、リモート・フ
ァイルに対してLAN )ランスペアレット・アクセス
ヲ行ナウことができる。LANとはローカル・エリア・
ネットワークである。トランスペアレントとは、ファイ
ルがローカルであるのか、リモートであるのかを我々ま
たはコードが気づかないという意味である。アクセスと
は、これらのファイルの読取り及び書込みを行なえると
いう意味である。
このことは実際は、ノイマン等の特許出願に記載されて
いるように、DSが行なう。ローカルUNIXシステム
上では、ハード・ディスクがあり、UNIXでいわゆる
ファイル・システムを定義する。ファイル・システムは
ハード・ディスク全体の空間、またはハード・ディスク
上の空間の一部分に対応する。たとえば、RTの場合の
ように、170メガバイトのハード・ディスクがある場
合、そのために1つのUNIXファイル・システムを2
個または3個または4個のUNIXファイル・システム
に分割することができる。ハード・ディスク上で持つこ
とができるファイル・システムの数にはある限界がある
。ここでは170メガバイトのハード・ディスク上に2
つのファイル会システムがあると仮定する。UNIX内
では、「ルート」はディレクトリであるだけでなく、フ
ァイル・システムにもなる。ディスク上にある量の空間
があり、そのファイル・システム内にあるサブディレク
トリ、ディレクトリおよびファイルもこの空間に含まれ
る。UNIXに2つのファイル・システムがある場合、
1つの階層的名前空間がある。
ファイル・システムのすべてを1つの階層的名前空間で
表わすことが望ましく、通常は、その名前空間中でディ
レクトリを定義する。それが「マウント・ポイント」a
である。マウント・ポイントaの上に別のファイル・シ
ステムを「マウント」する。この例では、マウント・ポ
イントaはたまたまルートのサブディレクトリである。
第4図では、B上のファイル・システムは、頂部に点す
を有する三角形として示されている。DSは、システム
A上のマウント・ポイントaとシステムBの新しいファ
イル上の点すを論理的に一致させる。
実際にはAの下に2つのディレクトリがある。Aのルー
ト・ファイル・システム「/」中にディレクトリがあり
、マウント・ポイントにサブディレクトリaがある。シ
ステムB内にはディレクトリb1すなわちマウントされ
るファイル・システムのルートがある。マウント動作を
実行すると、すなわち既存のディレクトリの上にファイ
ル・システムをマウントすると、より多数のファイルと
より多数のディレクトリを含むように、システムAの階
層的名前空間が根本的に拡大される。システムA内の経
路を「/」からマウント・ポイントaに下り、「b」で
マウントされたディレクトリに入るとき、ディレクトリ
変更コマンドCDを実行して、拡張された領域に入る。
UNIX上でファイル・システムに分けて入れるのが厄
介な理由は、ファイル・ローリングである。すべてのデ
ータを1つのディスクの1つのファイル・システムに入
れることは望ましくない。1つのファイル・システムに
は大量の活動があるが、別のファイル・システムには大
量の活動がない場合、大量の活動がないファイル・シス
テムをあまり頻繁にバックアップしなくてすむように、
より小さなファイル・システムに分けて入れることが望
ましい。大量の活動があるファイル・システムを多くバ
ックアップすることが望ましい。すべてを常時バックア
ップするのでなく、ファイル・システム内のディスク空
間を分割して、一部のファイルをバックアップしやすく
する。そうすると、ディスクの一部に障害があった場合
、すべてが失われることはなく、そのファイル・システ
ムのみが失われる。UNIX上の記憶域をバックアップ
するときは、それをプロファイル・システムとしてバッ
クアップする。この場合、1台のUNIXマシンがあり
、その上に1枚または複数のディスクがあり、各ディス
クには1つまたは複数のUNIXファイル・システムが
含まれる。UNIXシステムに複数のディスクがある場
合、各ディスクに1つまたは複数のファイル・システム
があり、ルート・ファイル・システムと呼ばれる特別の
ファイル・システムがあり、他のファイル・システムは
、このルート・ファイル・システムの種々のディレクト
リ上にマウントされるサブ・トリーである。
ローカル・マシンでは、このようにして階層的名前空間
を拡張する。
UNIXはこの単一の階層的名前空間を宵することに多
くを依存しており、ファイルを編集するとき、またはフ
ァイルを複写するとき使用される大部分のコマンドでは
、経路名を指定する。経路名は絶対経路名または相対経
路名である。絶対経路名は「/」で始まり、この階層ト
リーのルートから始まる。相対経路名には、ファイル・
ケースのオープン等、ディレクトリを変更するためのコ
マンドがある。CD(ディレクトリ変更)を実行して別
の場所に進むとき、そのディレクトリに関連する経路名
を指定することができる。これで、分散サービスの原理
を紹介するために必要な階層的UNIXファイル・シス
テムの基礎的考察を終わる。
第4図で、システムA及びBに命名するが、ここで問題
とするA上のディレクトリをraJと名付け、B上のデ
ィレクトリをrbJと名付けることにする。ノイマン等
の特許出願に記載されている分散サービスにより、A上
にいて、ディレクトリ及びその下にあるものすべてをマ
シンrBJからマシンA上のディレクトリ「a」上にマ
ウントすることができる。そのためのもう1つの方法で
は、マシンBに進むと、「b」と名付けられたディレク
トリが見つかり、「b」の下に三角形が見える。その三
角形をファイル・システムとは見ず、rbJの下にある
すべてのディレクトリ及びファイルであると見なす。実
際には、ハサミでrbJの上を切り、それを移動し、「
a」の真上に置く。
そのためのもう1つの方法では、「a」からrbJに点
線を引き、点線上のrbJの近くに矢印を付ける。これ
とは、マシンA上にいて、マシンB上のファイルにアク
セスしようとして、マシンAの「aJ上にリモート・デ
ィレクトリがマウントされた経路を下って進む場合、「
a」に至ると、分散システム(DS)は自動的に第1図
の点線を経て進み、「b」の下のファイル及びディレク
トリにアクセスするという意味である。これで、ローカ
ル・ディレクトリの上にリモート・ディレクトリが「マ
ウント」されることになる。DSは、リモート・ディレ
クトリをローカル・ディレクトリの上にマウントさせ、
またはリモート・ファイルをローカル・ファイルの上に
マウントさせる。ちなみに、DSはまた任意のローカル
・ディレクトリを別のローカル・ディレクトリの上にマ
ウントさせ、または任意のローカル・ファイルを他の任
意のローカル・ファイルの上にマウントさせることもで
きる。
リモート・マウントを実行し、CPコピー・コマンドを
使ってローカル・ファイルを、たとえば、/ te+*
p /x (−時ディレクトリ中のXと名付けられた一
時ファイル)に複写し、かつそれを7b/にに複写しよ
うとする場合、リモート・マウントを実行した後で、ロ
ーカル・ファイルをリモート・ファイルに複写する。こ
うしたのは、既にリモート・マウントが実行済みだから
である。これが分散サービス、すなわち、リモート・マ
ウントである。別の言い方をすれば、仮想マウントであ
る。仮想とは、実際にマウントを行なわないが、マウン
トを行なったように見えるという意味である。その場合
、実際にはファイル・システムをマウントせず、ディレ
クトリまたはファイル(リモートでよい)をマウントす
る。
第2図のマシンA上にいて、マシンBにあるすべてのフ
ァイルにアクセスしようとしているものとする。3台の
マシンA、B及びCがあり、A上では通常はAファイル
にしかアクセスできず、B上ではBファイルにしかアク
セスできず、同様に、C上にいるときは、Cファイルに
しかアクセスできない。A上にいて、すべてのBファイ
ルにアクセスしたいものと仮定する。そのための1つの
方法では、Aのルートのサブディレクトリを作成してそ
れをBと名付け、したがって、マシンA上に他方のマシ
ンのディレクトリの名前であるBと名付けたディレクト
リを設ける。BのルートをAのディレクトリ/Bの上に
マウントする。第2図で、/BをA上にマウントするこ
とは、/BからBのルートに至る破線で表わされ、矢印
がBのルートの近くに付いている。/Bの下にある三角
形はBの階層的名前空間である。リモート・マウントr
rmountJまたはrvmountJの結果、A上に
いてB上の任意のファイル名を指定したい場合は、その
前に/Bを付けるだけでよい。同様に、A上にいてシス
テムC上の任意のファイル名を指定したい場合は、Cと
いう名前のAのルートのサブディレクトリを作成し、C
のルートを/Cという名のAのディレクトリの上にrv
mountJ  (仮想マウント)する。このことは、
第2図で/CからCのルートに至る破線で表わされる。
任意のマシン、たとえば、A上にいる場合、DSのリモ
ート・マウント機能により、他の任意のマシンにある任
意のファイルの名前を指定することができる。これが、
DS機構の1つの使い方である。それを実行すると、す
べてのファイルにアクセスすることができる。
これはDSの1つの使い方であり、他にも有用な機能が
ある。
UN I Xは、通常は/ usr / man と呼
ばれるファイルにオンライン・マニュアルが入っており
、その下に通常は大きなディレクトリがある。あるコマ
ンドのマニュアル・ページを画面に表示したい場合、コ
マンド名rmanJ  (マニュアルの略)を使用し、
そのコマンド名を入力する。たとえば、問題のコマン°
ドがCP(コピーの略)という名のコマンドであり、C
Pのマニュアル・ページをマシン上で見たい場合は、「
層anCPJと入力すると、画面上にCPのマニュアル
・ページが表示される。
オンライン・マニュアル・ページは/ usr / m
anに記憶され、5ないし10メガバイトの資料である
。ローカル・エリア・ネットワーク上に、少数のディス
クを備えたマシンと多数のディスクを備えたマシンがあ
るものとする。多数のディスクを備えたマシンを、ファ
イル・サーバと呼ぶ。他のマシンは余り大きなディスク
空間を持たない。オンライン・マニュアルをすべての単
一システムに記憶する必要はなく、1つの場所に記憶す
るだけでよい。ファイル・サーバ・マシン上で、オンラ
イン・マニュアルを/ usr / @anの下に置く
オンライン・マニュアルを記憶するマシンをサーバと呼
び、オンライン・マニュアルを記憶しないマシンはクラ
イアントと呼ぶ。第3図に示すように、クライアント・
マシン上には、ル−トすなわちスラッシュで始まる階層
的名前空間があり、その下にrusrJと呼ばれるサブ
ディレクトリがあり、rusrJの下にrmanJと呼
ばれるサブディレクトリがあり、「■anJO下には何
もない。rmanJはクライアント・マシン上のディレ
クトリであるが、その下には何もない。実際のマニュア
ルにアクセスするには、マニュアルを含むディレクトリ
をサーバからクライアントにrvmountJまたはr
rmountJする。コマンドrvmount Jでは
2つの経路名を指定する。第3図で、クライアント・マ
シン上でスタブ・ディレクトリ/ usr /manか
ら破線が引かれている。サーバ・マシン上にも同じディ
レクトリ/ usr / manがあるが、/ usr
 /manの下にさらにマニュアル(三角形で表わされ
ている)がある。rvmount Jはクライアントの
r a+an JからサーバのrmanJに至る破線で
表わされる。クライアント・マシン上にいて、やはりr
manJという名のコマンドを実行することをrman
 CPJと言う。すると、実際のマニュアル・ページは
ローカルではなくリモートなので、DSは移動して、サ
ーバからそれらのファイルにアクセスし、ファイルがロ
ーカルである場合と同様にファイルを得ることができる
。すなわち、リモート・ファイルに対するトランスペア
レント・アクセスを行なったことになる。
上記の考察では、DSの2つの異なる使い方を示した。
すなわち、ユーザは、自分のローカル・エリア・ネット
ワーク内にある任意のマシン上の任意の階層的名前空間
に任意の名前のファイルを作成することができる。ユー
ザはまた、自分がそのための空間を持たないファイルを
遠隔的に記憶し、ポインタでそれに遠隔的にアクセスで
きるように、自分の名前空間をカストマイズすることが
できる。このことはオンライン・マニュアルのようなも
のにとって特に有用である。ソフトウェアの開発を行な
う場合、または、ローカル・エリア・ネットワーク中の
ように多数の人々が共通データ・ベースを共用し、各人
は同一のローカル・マシン上にすべてを記憶する必要が
ない場合にも有用である。それがローカルである場合と
同様にそれにアクセスすることができる。これで分散シ
ステムの簡単な説明を終了する。以下では本発明に対象
を絞って説明する。
本発明は、DSと互換性がある監視及び監視証跡圧縮を
ネットワーク全体にわたって実行するものである。DS
環境では、監視証跡はローカルでもリモートでもよい。
本発明は多数のマシンを含むLANで使用するこきがで
き、同じ監視証跡ファイルに監視証跡レコードを付加す
るマシンが複数台存在することができる。同一ファイル
に監視証跡レコードを追加するマシンが多数あってもよ
い。
そのような監視システムでは、監視証跡レコードは非常
に速く累積し、ディスク空間を一杯にする傾向がある。
大きなディスク空間を持たない小型の作業端末を持つ場
合は、そこで監視証跡ファイルを定義することはできる
が、ディスク空間はすぐに一杯になり、ディスク空間を
毎日または毎週やり繰りしなければならない。監視証跡
サーバと名付ける1台のマシンをネットワーク内に設け
ることが好ましい。サーバ・マシンは大きなディスク空
間を有する。たとえば、500メガバイトを保持できる
大容量ビデオ・ディスクをサーバ上で使用することがで
きる。その1つを監視証跡サーバとして指定し、ネット
ワークのすべてのフライアン)−ノードに監視証跡デー
タをサーバに供給させる。ビデオ・ディスクの特性の1
つは、1回書込み媒体であることである。すなわち、デ
ィスク上に一度書き込むことはできるが、書直しするこ
とはできない。ファイルに新しいデータを付加し続ける
が、このことは、たとえば、監視で監視証跡ファイルと
して使うことと矛盾しない。
本発明の特徴の1つとして、ファイル位置についてトラ
ンスペアレントであることが含まれる。
監視されるファイル名またはディレクトリ名は、ローカ
ルでもリモートでもよい。さらに、本発明では、多数の
ノードが1つの監視証跡ファイルに監視レコードを付加
するのに対応できる。さらに、本発明では、監視体系で
圧縮を行なうとき、レコードを監視証跡ファイルに載せ
る前に、レコードを圧縮する。本発明では一時に1つの
レコードを圧縮するのではなく、小さなレコード・ビン
を一杯にする。各ビン(bin)に収容できるバイト数
には上限があり、たとえば開示された実施例では2oo
ooバイトである。ビンが一杯になると、ビン全体に対
して圧縮を行ない、次に、圧縮されたビンを監視証跡フ
ァイルに付加する。本発明では、監視証跡は一連のビン
から成る。ここで使用する圧縮技術は、UNIXオペレ
ーティング・システムで使用可能なPACKと呼ばれる
コマンドである。本発明の監視サブシステムは、DoD
オレンジ・ブックのクラスC2ないしA1に対する要件
を滴定する。本発明では、システム1台当り1回の監視
デーモン・プロセスを使って監視証跡ログのオンライン
圧縮を実行する。
次に、本発明の監視がどのように働くかの一例を示す。
この例では、第1図に示すように、3つのノードがある
。ノードとはマシンであり、各ノードをAlB及びCと
名付ける。それらのノードは第1図で左から右に示され
ている。AlB及びCと呼ばれる各ノードにノードI 
D (nid)が関連づけられているものとする。Aの
nidは番号であり、この例では、それを222とする
。この例のBのnidは333であり、Cのnidは4
44である。IBM RT  PCでは、nidはたと
えば32ビツトの整数である。第1図に、A上のファイ
ル・システム名前空間の階層的名前空間が示されている
。ここではA上の4つのファイルだけについて問題にす
るが、それらは長い経路名を持つ。
ここで問題とするAの第1のファイルは実際にはAの事
象テーブルの名前である。Aの事象テーブルはこの場合
/ etc / 5ecurity / audit 
/B eventである。マシン上で、必要な場合、マ
シンごとの事象を指定できることが望ましいので、各マ
シンにそれ自体の事象テーブルを設けである。
もう1つの方法は、すべてのマシンで同じ事象セットを
使用できるようにすることであり、1台のマシンを実際
の事象テーブルを記憶する監視サーバまたはファイル・
サーバを含むマシンとして指定し、その事象テーブルを
各クライアント・マシンにvmountする0 他のマシンからアクセスされることが望ましくないもう
1組の経路名がローカル・マシン上にある。これらのフ
ァイルはローカ゛ルのみである。すなわち、これらのフ
ァイルを参照するとき、それらがローカル・マシン上に
記憶されているかどうか、あるいはローカル・マシンに
記憶されている場合、それがそれらのファイルのA上の
コピーであるかどうかを確認することが望ましい。マシ
ンAにいるユーザは、他のマシン(BまたはC)が特定
のローカル・ファイルにアクセスできることを望まない
。それらを入れる場所は、/ 1ocal  と呼ばれ
るA上のディレクトリ中にある。「ローカル」という語
はここでは、Aにとってそれらのファイルのノードに特
宵なコピーがあることを意味する。同様に、マシンB上
で、ユーザは/ 1ocalデイレクトリを持つことが
でき、その下のファイルはBに対してノード特をである
A / 1ocal の下に% / 1ocal / 
etc / 5ecurity/ auditがある。
/ auditはここではディレクトリであり、/ a
uditの下に3つのファイルがある。a 5tate
が第一のファイルであり、オンになった1組の事象を含
む。この/ auditの下の第2のファイルはa t
rail であり、これは現在の監視証跡の名前を含み
、さらに、監視が他方の証跡に対してオンになったとき
のタイムスタンプの名前を含む。第3のファイルはa 
trail、pastであり、ノードAに対する監視証
跡ファイルの活動記録、及び対応する開始及び終了タイ
ムスタンプを含む。そこに他の情報が含まれることもあ
る。
同様に、ノードB上にも、同種のディレクトリ構造があ
る。このディレクトリ構造には/ etc /5ecu
rity / audit / a eventの下に
テーブルがあり、3つのファイルがあるo  / 1o
cal / etc /5ecurity / eve
nt / auditの下のノードに特有なファイルで
ある、5tateファイルとtra i 1 ファイル
とtrail、past ファイルである。
この例では、マシンA及びBで監視をオンにし、監視証
跡ファイルをマシンC上に置く。この例では、マシンC
からの監視レコードはないが、必要な場合、マシンC上
で監視をオンにし、同じ監視証跡ファイルを指定するこ
とができる。C上に階層的名前空間があるものと仮定す
る、そこでは、スラッシュがルートであり、その下に/
 auditという名のディレクトリがあり、さらにそ
の下にXという名のファイルがある。Xというファイル
名が監視証跡フ、アイルの名前になる。A上で監視をオ
ンにし、監視証跡ファイルがC上で/ audit/X
という名のファイルになるように指定する。
同様に、マシンB上で監視をオンにするときは、監視証
跡ファイルがマシンC上で/ audit / xとい
う名のファイルになるように指定し、C上で監視をオン
にする場合は、監視証跡ファイルが/ audit /
 xとなるように指定することができる。
このことを実行する方法は次の通りである。
マシンA上で、/auditという名のルートのサブデ
ィレクトリを定義する。同様に、B上で/audit 
という名のルートのサブディレクトリを定義する。マシ
ンC上の/ audit という名のディレクトリをA
及びB上のそれらのローカル・ディレクトリ・スタブの
上にvmountする。第1図で、A上に/ audi
tがあり、A上のその/ auditからC上の/ a
uditに至る破線が引かれている。
同様にマシンB上で、B / auditの上にC/a
uditをvmountする場合、BからCに至る点線
が引かれ、Cの下の/ audit上に矢印がついてい
る。マシンA上では、/ auditはリモート・ディ
レクトリである。本発明では、監視証跡はローカルでも
リモートでもよい。この例の監視証跡は/audit 
/ xである。そのファイルがリモートであっても、ま
たは、そのファイルを含むディレクトリがリモートであ
っても構わない。
本発明では、監視証跡レコードを圧縮する。監視証跡レ
コードをビンに書き込むが、ビンが一杯になるか、また
は−杯に近づいたとき、別のビンに移り、次にそれを溝
たし始める。これらのビンに名前を付けなければならな
い。これらのビンは階層的名前空間内のファイルなので
、それらのための場所を選択しなければならない。さら
に、各マシンA、B及びC上で、監視デーモンと呼ばれ
るもう1つのプロセスが実行される。ビンを実際に圧縮
し、圧縮されたビンを監視証跡ファイルに付加するのは
監視デーモンである。監視証跡ファイルは、第5図では
水平線でフレームに分割された長い柱状体で示されてい
る。−容土の行は、それがバイト0ファイルであること
を示している。
これらのフレームはそれぞれ圧縮されたビンを含む。監
視デーモンは一時に1つのレコードヲ圧縮せず、レコー
ドのビン全体を受は取り、ビンを圧縮し、圧縮された監
視レコードのビンをこの監視 ゛証跡ファイルに付加す
る。監視証跡ファイル内の各フレームは、圧縮されたビ
ンに加えて、小さなヘッダ及び小さなトレーラ(テール
)を含む。小さなヘッダは一定の形式を有し、小さなト
レーラは同じサイズで別の一定の形式を有する。ビン・
ヘッダは、圧縮されたビン中にどれだけ多くのバイトが
あるか、及びそのビンの出所のnidを示す。
フレーム上のヘッダは圧縮されていないので、特定のノ
ードまたはnidからのレコードを探して監視証跡を順
方向に走査する場合、問題とするノードからのレコード
の圧縮されたビンかそうではないのか、ファイルの始め
にある現在のヘッダを調べるだけでよい。そうである場
合は、その内容を読み取る際に行なわなければならない
ことをすべて行なう。問題のノードでない場合は、次の
圧縮されたビンに進むのに何バイト飛び越せばよいかを
正確に知る。次の圧縮されたビンも同様のヘッダを有す
る。
これらの各ビンにトレーラを設ける理由は、監視ファイ
ルを逆方向に読むのに役立つからである。
このファイルを逆方向に読む理由は回復時にある。
監視を行なっていてマシンの1台が故障するかまたは監
視証跡を含むマシンが故障した場合、最終的にマシンを
再ブートするかまたはマシンを再び稼働させるときに、
圧縮を行なうデーモンは、自分がどの状態にあるかを判
定して動作を再開しなければならない。このことを行な
うため、デーモンは、どのビンを終了し、どのビンを次
に取り上げるかを判定しなければならない。その情報の
一部を、デーモンは監視証跡ファイルを逆方向に読み取
って判定する。
第1図では、マシンAの下に問題とするファイル用の階
層的名前空間がある。B及びCについても同様である。
Cの下にあるものはわずかに異なっている。AとBは同
じであるが、Cは異なる。Aのnidは222であり、
Bのnidは3B3であったことを思い起こされたい。
マシンC上では次のようにする。監視証跡が/ aud
it / xであると指定した場合、Xが実際の監視証
跡ファイルになり、これは、最終的に圧縮されたビンの
シーケンスを含むことになるファイルである。各ビンは
異なるノードからのものでよく、これらのビンを監視証
跡ファイルに付加するとき、UNIX上で原子的にそう
することができる。すなわち、書込みを行なうとき、同
時に1つまたは2つの監視デーモンが2つのプロセスに
書き込もうとする場合、UNIX上ではこれらの書込み
が直列化されるのに、衝突はない。したがって、一方の
ビンが最初に入り、他方が次に入る。
しかし、監視動作を実行するマシン2台以上ある場合は
、それらは互いのビン・ファイル上に書込みを行なわな
いので、ビンにどう名前を付けるかという問題が残る。
本発明によれば、ノードごとにビン・ファイルを分離す
る。それらを分離するための1つの場所は/ audi
tの下である。1auditの下に単なるファイルを作
成する代わりに、/ auditの下に一部ビン・ファ
イルのディレクトリを作成し、それに、たとえばこれら
のビン・ファイルを作成するノード、たとえばノードA
1に対応するnidを名前として与える。さらに、マシ
ンAに対応する/ auditのサブディレクトリの下
にビン・ファイルを置(。マシンC上に、1audit
 / 222または/ audit / 、222と呼
ばれるディレクトリを設ける。ピリオド付きのファイル
名の名前が衝突する可能性は少ない。/ audit 
/、222の下に、マシンAに対する一部ビン・ファイ
ルを設ける。同様に、マシンC上のnfdが333であ
るマシンBに対しては、/ audit / 、333
という名のディレクトリを設け、その下にマシンBに対
する一部ビンを置く。一連の番号、たとえば0から99
9まで順次カウントする共通の接頭部及び接尾部を用い
てビン・ファイルを0名付けることができる。この例で
は、−時ビン・ファイル名の接頭部としてトレール・フ
ァイル名、たとえば、Xを使用する。−時ビン・ファイ
ル名の接尾部として、ピリオドが前についた3桁の10
進数を使用する。これらの10進数は000から999
に進み、次に000に戻る。各ディレクトリ・ファイル
には小さな制御ファイル(この例では、x、ctl )
 、たとえば、/ audit / 、222 / x
、ctl(このビン・セットに対する制御ファイル)も
含まれる。制御ファイルは、次に使用すべきビンは何か
についての情報を与える。一般に、監視デーモンがオン
であり、監視デーモンがビンを圧縮するときは、ビンが
一杯になってシステムが別のビンに移るまで、監視デー
モンは一般にビンを圧縮しないので、ビン・ファイル番
号が999から000に戻る際に問題はない。監視デー
モンが一部ビン・ファイルを圧縮した場合、監視デーモ
ンは圧縮されたビンを/ audit /x という名
の実際の監視証跡ファイルに書き込み、次にそのビンを
たとえば/ audit / 、222 / x、12
3から消去する。
監視デーモンはビンを順次調べる。監視デーモンが行な
うべき仕事がない場合、監視デーモンは休止する。監視
デーモンがビンを圧縮するとき、圧縮されたビンを実際
の監視証跡ファイル、この例では/ audit / 
xに付加する。このようにして、監視デーモンによる監
視を必要とする事象が発生している間に、未圧縮のビン
を、たとえば/ audit/ 、222の下に一時的
に記憶することができる。後に、事象が発生していない
ときに、監視デーモンは一部ビン・ファイルを圧縮し、
それらを実際の監視証跡ファイル/ audit / 
xに書き込むことができる。
ビンはマシンC上に記憶されているが、マシンAのビン
に作用する監視デーモンは、実際にはマシンAのデーモ
ンである。マシンAのデーモンは特定の1組のビンにつ
いて知っており、ビンがローカルであるかそれともリモ
ートであるかを気にせずに、その仕事を実行する。この
例では、Aのデーモンが、マシンCの/ audft 
/ 、222の下に記憶されたビンに作用し、Bのデー
モンがマシンCの/ audit / 、333 の下
に記憶されたビンに作用する。マシンCに対する監視を
オンにした場合、そのデーモンはマシンC上の/ au
dit / 、444という名のサブディレクトリの下
のビンに作用する。
これらのデーモンは異なる場所に作用する。デーモンが
実際の監視証跡ファイルに圧縮されたビンを付加しよう
とするとき、UNIXでrwriteJと呼ばれるシス
テム・コールを呼び出し、それを1回の原子的書込みで
書く。2つのデーモンが同時にその実際の監視証跡ファ
イルに書き込もうとする場合、それらは直列化される。
これで、本発明に従って2つまたは3つのシステムがリ
モート監視証跡ファイルに書き込む°例を終わる。
第7図は、クライアント・プロセッサA1クライアント
・プロセッサB及びサーバ・プロセッサCを相互接続す
るネットワーク1を示す本発明の構成図である。第7図
かられかるように、クライアント・プロセッサAは、た
とえば、UNIXに類似のオペレーティング・システム
であるオペレーティング・システム4Aのもとで実行さ
れるアプリケーション・プログラム2Aを有する。クラ
イアント・プロセッサAで稼働する分散サービスθAは
、ノイマン等の上記の特許出願に記載されているように
、分散ネットワーク環境でリモート・ファイルにアクセ
スするためのシステム及び方法を提供する。クライアン
ト・プロセッサA内の監視デーモン8Aは、事象テーブ
ルIOAで定義された事象を使って、クライアント・プ
ロセッサAで実行されている、監視しなければならない
動作を識別する。監視デーモン8Aは監視レコードを発
生し、それらの監視レコードは、上述のように、分散サ
ービス6Aの作用により、サーバ・プロセッサCの一部
ビン・ファイル12Aに記憶される。
同様に、クライアント・プロセッサB内のアプリケ−シ
ロ72B1オペレーテイング・システム4B1分散サー
ビス6Bも、クライアント・プロセッサAの対応する部
分と同様の方式で動作する。クライアント・プロセッサ
B内の監視デーモン8Bは、事象テーブル10Bで定義
された事象を使って、クライアント・プロセッサBで実
行される動作を監視する。監視デーモン8Bによって発
生された監視レコードは、前述のように、分散サービス
8Bの作用により、サーバ・プロセッサCの一部ビン・
ファイル12Bに記憶される。サーバ・プロセッサC内
のアプリケージタン2C,オペレーティング・システム
4C1分散サービス6Cも、クライアント・プロセッサ
Aの場合と同様な方式で動作する。監視デーモン8Cは
、事象テーブル10Cで定義された事象を使って、サー
バ・プロセッサCで実行される動作を監視する。監視デ
ーモン8Cは、サーバ・プロセッサC内での動作のため
に発生された監視レコードを、サーバ・プロセッサCの
一部ビン・ファイル12Cに記憶する。
前述したように、監視デーモン8A及びクライアント・
プロセッサAはサーバ・プロセッサC内の一部ビン・フ
ァイル12Aの内容を定期的に調べ、未圧縮の監視レコ
ードのビンがあるがどうか判定する。監視デーモン8A
は次いでその圧縮動作に移り、−時ビン・ファイル12
A内の未圧縮のビンを選択し、それらのビンの内容を圧
縮し、次いで適当なヘッダ及びトレーラを付けた圧縮さ
れたビンを、前述のように分散サービス6Aの作用によ
り、永久的なまたは実際の監視証跡ファイル14に付加
する。同様にして、クライアント・プロセッサBの監視
デーモン8Bは、サーバ・プロセッサCの一部ビン・フ
ァイル12Bの内容を定期的に調べて、クライアント・
プロセッサBからの未圧縮の監視レコードのビンがある
かどうか判定する。−時ビン・ファイル12B内に未圧
縮のビンが見つかると、監視デーモン8Bは、分散サー
ビス6Bの作用により、−時ビン・ファイルB内の選択
されたビンに対して圧縮動作を行ない、次いで圧縮され
たビンを適当なヘッダ及びトレーラ部分を付けてサーバ
・プロセッサC内の永久的または実際の監視証跡ファイ
ル14に付加する。監視デーモン8Bは、前述したよう
に分散サービス6Bの作用により、このことを行なう。
監視デーモン8Cは同様にして、−時ビン・ファイル1
2Cの内容を定期的に調べて、圧縮し、適当なヘッダ及
びトレーラ部分と共に永久的監視証跡ファイル14に付
加すべき未圧縮のビンがあるかどうが判定する。
本発明のAIX実施例の詳細な説明 UNIXオペレーティング・システム(UN IXはA
T&Tベル研究所の商標)及びUNIXに類似のオペレ
ーティング・システムは、DoDトラステッド・コンピ
ュータ・システム評価基準(「オレンジ・ブック」とも
呼ばれる)(1985年12月)のクラスC2ないしA
1に対する監視要件を満足する監視サブシステムを必要
とする。
この監視サブシステムは、以下の設計要件及び特性をす
べて満足するものでなければならない。
(a)  ソフトウェア環境要件 階層的ファイル・システム、及びwrite ()シス
テム・コール等の原子書込み動作を含むUNIX(また
はAIXまたはUNIX類似)オペレーティング・シス
テム環境で稼働し、かつ 「仮想マウント」または「リモート・マウント」に基づ
く機構(たとんば、IBMRTPCAIX分散サービス
(Ds))等、ローカル/リモート・ファイル/ディレ
クトリ位置についてトランスペアレントなオペレーティ
ング・システム環境で稼働する。
(b)安全保護環境 オレンジ・ブックのクラスC2ないしA1に対する監視
要件を満足するのに役立つ監視フレームワークを提供す
る。
(c)発明の特徴 システムごとに1つの監視デーモン・プロセスを使って
監視証跡ログ・ファイルのオンライン圧縮を実行し、ノ
ード故障後に回復する再始動可能監視デーモンを備え、
Dsまたは類似の機構により、ファイル/ディレクトリ
位置についてトランスペアレントであす、DSまたは類
似の機構により、多数のノードが監視レコードを1つの
監視証跡ログ・ファイルに付加するようにさせ、 login−L−ザIDを捕捉し、擬似ユーサ類似ルー
トとしてloginすることを防止するが、s u (
rsubstitute userJコマンド)は擬似
ユーザ類似ルートに受は入れることができる。
(d)その他の特性 監視証跡ログ・ファイルを1回書込み媒体に載せ、かつ
監視サブシステムのオペレーティング・システムのカー
ネル部分に周知のファイル名を持たず、さらに、対応す
るベース事象が使用可能になり、実行される場合は、シ
ステム・コールごとに丁度1つの監視証跡レコードをカ
ットする。
】」し邂え叫 本発明をAIXオペレーティング・システムで実施する
場合について、本発明の説明を行なう。−ここではAI
Xオペレーティング・システムの文脈で本発明を説明す
るが、本発明はどんなUNIXオペレーティング・シス
テムやUNIX[tのオペレーティング・システムにも
適用される。
監視サブシステムのアーキテクチャ 本節では、監視サブシステムのアーキテクチャについて
説明する。「アーキテクチャ」とは、最も外側の(すな
わち、AIXシステム)モジュールに対するユーザ及び
プログラマ・インターフェースを意味する。このアーキ
テクチャを定義するため、■BMRT PCAIxオペ
レーティング・システム・コマンド解説書、第2版、1
98E!年、及びIBM RT PCAIXオペレーテ
ィング・システム 術解説 、第1版、1985年、か
ら監視サブシステム「マニュアル・ページ」を列挙して
再掲し、さらにAIX監視サブシステムの経路名を列挙
する。
且盈 下記に、AIX監視サブシステムのアーキテクチャを定
義するAIXrマニュアル・ページ」名を列挙する。
コマンド: audit     監視サブシステムを制御するau
ditd     監視データの圧縮を行なうaudi
tpr     r濾過された」監視証跡ファイルを表
示する システムφコール: audit     監視を使用可能及び使用禁止にす
る auditevents  システムの監視事象をゲッ
トし、セットする auditlog    監視レコードを監視証跡ファ
イルに付加する auditproc   処理の監視状態をゲットし、
セットする ファイル形式: a event    管理事象をベース事象と関連づ
ける a−state    一般監視事象及び特殊監視事象
を記録する audit     監視証跡ファイル形式を記述する
参照の便宜上、下記にAIX監視サブシステムにおける
経路名を列挙する。
監視ディレクトリ: /etc/5ecurity/auditシステム監視
テーブル用(監 視証跡ファイル自体ではない) /1ocal ノード特有のファイル用 監視テーブル: /etc/5ecurity/audit/a eve
nt監視事象テーブル /1ocal/etc/5ecurity/audit
/a 5tate監視状態 /1ocal/etc/5ecurity/audit
/a−trail監視証跡名 /1ocal/etc/5ecurity/audit
/a trail、past監視証跡名の活動記録 監視ヘッダ・ファイル: /usr/1nclude/sys/audit、h監
視システム・コール用の定 義 /usr/1nclude/sys/auditd、h
監視デーモン及びカーネル用 の定義 /usr/ inc 1ude/sys/aud it
k 、 hカーネル内での監視用の定義 /usr/ fnc 1ude/sys/aud it
 log 、 h監視ログ・レコード用ノ定義 監視コマンド: /usr/bin/audit 監視サブシステムを制御する /usr/bin/auditpr 監視証跡ファイルを書式化す る 監視デーモン: /etc/auditd  監視デーモン次に、上記リ
ストの用語を使って監視サブシステムを説明する。
監視コマンド及び監視テーブル 監視コマンドは監視サブシステムを制御する。
監視コマンドはスーパーユーザだけが呼び出すことがで
きる。監視コマンドは、監視を使用可能にし、監視証跡
ファイルを指定し、監視が既に使用可能になっていると
き監視証跡ファイルを切り換え、監視サブシステム全体
を使用禁止にし、一般クラス及び特別クラスのユーザに
対してどの(管理またはベース)事象が監視されるかを
指定し、一般クラスと特別クラスのユーザまたはグルー
プを区別し、監視サブシステムの状況を問い合わせ、監
視証跡ファイルの活動記録を問い合わせ、一般事象また
は特別事象、または特別ユーザまたは特別グループの組
をクリアする。
監視事象を指定し、2クラスのユーザを区別する目的は
、後で濾過(すなわち、選択的減少)しなければならな
い不要なレコードで監視証跡ログ・ファイルをあふれさ
せるのではなく、監視証跡ログ・ファイル・レコードを
事前に濾過(すなわち、選択的収集)するのを助けるこ
とである。
監視コマンドは以下のファイルを使用する。
/ etc / 5ecurity / audit 
/ a event/ etc / 5ecurity
 / s user/ etc / 5ecurity
 / s group/  1ocal / etc 
/ 5ecurity / a 5tate/  1o
cal / etc / 5ecurity / a 
trail/ 1ocal / etc / 5ecu
rity / a trail、past事象テーブル
/ etc / 5ecurity / audit 
/a eventの各項目は管理事象を1組のベース事
象と関連づける。管理事象(たとえば、rsystem
−callJまたはrtcpip eventJまたは
robject−createJ )は、監視者にとっ
て便利なマクロであるが、1組の「原子的」ベース事象
または既に定義された管理事象あるいはその両方によっ
て定義サレル。ベース事象は、システム・コール名(り
とえば、rforkJ )またはトラステッド・プロセ
スにおける事象(たとえば、’login okJ )
またはカーネルにおける非システム・コール事象(たと
えば、rdsrpcJ )のいずれかである。
ユーザ0テーブル/etc/5ecurity/s u
ser (及びグループ[相]テーブル/ etc /
 5ecurity /s group)内の各項目は
、1つのフィールドを含み、このフィールドは、1のと
き特別な監視を識別し、0のとき一般的監視を識別する
監視状態ファイル/ 1ocal / etc / 5
ecurity/ audit / a 5tateは
、事象状況の間合せに対する現在の一般事象と特別事象
の組を保持する。
本発明では、ディレクトリ/1ocal はノードに特
有のファイルを含む。このディレクトリは、その名前と
は逆に、リモートとなることができる( rvmoun
tedJまたはrrmountedJ ) o L/か
し10−カルであれ、またはリモートであれ、このファ
イルはノードに特有でなければならない。
rlocalJという名前は、これらのファイルをロー
カルまたは論理的にローカルと考えることができること
を意味する。この設計では、ディレクトリ/ etc 
/ 5ecurity / auditまたは/ et
c /5ecurity1またはそれらに含まれるファ
イルがローカルでもリモートでもよい。
監視証跡名ファイル/ 1ocal / etc / 
5ecurity/ audit / a trail
及び監視証跡名活動記録ファイル/ 1ocal / 
etc / 5ecurity / audit /a
 trail、pastは、状況の問合せが使用し回復
のために監視デーモンが使用する、監視証跡ファイル名
及び(開始及び停止)タイムスタンプを含む。
監視証跡ファイルを保持するため、ファイル・システム
全体を作成して、証跡、すなわち/ auditの保持
専用にすることを推奨する。監視証跡ファイルがリモー
トの場合、DS等の機構により、その証跡に対する監視
サーバ・ディレクトリをローカルの/audit スタ
ブ・ディレクトリ上にrvmountJすることができ
る。
監視デーモン及び監視証 ファイル形式監視デーモン/
 etc / auditdは背景プロセス(通常/ 
etc / reコマンド・ファイルから開始される)
であり、カーネルによって生成される監視レコードのビ
ンをパック(または圧縮)シ、パックされたビンを監視
証跡ファイルに書き込む。
本発明では、カーネルは監視証跡ファイルに監視レコー
ドを直接書き込まない。その代わりに、監視レコードの
書込みを緩衝記憶させる。カーネルは、それぞれ現設計
で最大寸法を有するユーザ・レベル・ファイルである一
連のビンに監視レコードを書き込み、監視デーモンはビ
ン・ファイルを−度に1つずつ読み取って、圧縮された
ビンを監視証跡ファイルに付加する。
監視証跡ファイルは−続きの3部分(ヘッド・ボデー、
テール)から成り、ボデーは、多分パックされたビン(
すなわち、特定のノードに対する一連の監視レコード)
から成り、ヘッド及びテールは以下の構造を有する。
5truct  x [ ushort id;   /” ヘッド=OxfOf
O,テール=OxOfOf零/ ushort bin;  /”  ビンl ’/us
hort before:/” アンパックされたボデ
ー長6/ ushort arter; /”パックされた(現在
の)ボデー長宰/ nid t nid;   /’ ノード識別子*/1
: フレームのヘッドとテールはid フィールド以外は同
じであり、監視証跡を順方向及び逆方向に走査させるこ
とができる。(after == berore)のと
きは、ボデーはアンパックされ、そうでない(afte
r < before)場合は、ボデーはパックされる
。バッキング及びアンバッキングには、コマンド・パッ
クで使用されるようなハフマン(Iluffman)符
合化アルゴリズムを使用する。
ボデーでは、アンパックされた各監視レコード自体がヘ
ッド及び任意選択のテールを有する。ファイル/usr
/1nclude/sys/auditlog、hはC
構造を用いて監視証跡レコードのヘッドを定義する。
1oinユーザID 本発明の重要な特徴は、本発明がオレンジ・ブックの監
視要件、たとえばクラスC2の個々の責任特性を満足す
ることである。C2AIXの場合は、システム導入時に
そのように構成することが可能であり、loginはル
ートまたは他の擬似ユーザ(たとえば、ビン)として受
は入れられないが、s u (rsubstitute
 userJコマンド)は擬似ユーザ擬似ルートに受は
入れられる。さらに、この設計では、「U」ブロック内
に新しい構成要素u 1uidをもつプロセスのl□g
in:L−ザIDをカーネル内に記憶しており、それを
他のユーザID(すなわち、実ID及び有効ID)と共
に各監視レコード上に記入するので、auditpr 
コマンドにより、login ユーザIDに基づいて監
視証跡レコードを事後選択することができる。
login ユーザIDはログイン時にセットされ、l
oginセツション中には変更できない。これはシステ
ム・コールによって直接セットされない。その代わり、
loginプロセスによってloginセツシPン中に
初めてルートから離れた5etuidに対して呼出しが
あったときにだけシステム・コール5etu idの副
作用としてセットされる。
擬似ユーザ、すなわち、偽ユーザは実際の人物ではなく
役割である。通常は、実ユーザのグループは擬似ユーザ
のパスワードを知っている。ユーザ名ルートが擬似ユー
ザである。
AIX上では、ユーザ・テーブル/ etc /5ec
urity / 5−user はrloginJフィ
ールドを含み、このフィールドは、ユーザごとに1のと
きloginを可能にし、Oのときloginを禁止す
る。
C2AIXシステムではs  (loginは許されな
いので)ルートを含む各擬似ユーザのr login 
Jフィールド値はOである。管理者は実ユーザを擬似ユ
ーザから区別できるはずなので、コマンドadduse
rでrloginJフィールドをセットすることができ
る。
adduser コマンドでユーザを無効にすることは
そのユーザにloginを禁止するのと同じではない。
ユーザが無効にされたときは、暗号化されたパスワード
が0で置き換えられており、′に対する明示検査がある
ので、パスワード検査はそのユーザについては効果がな
い。無効にされたユーザは、loginすることができ
ず、さらに、無効にされたユーザに対して直接SUを行
なうこともできない。あるユーザに対するrlogin
JフィールドがOである場合、そのユーザはlogin
することはできないが、そのユーザに対して直接SUを
行なうことはできる。もちろん、ルート・パスワードを
有するシステム管理者はルートに対してSUを行なうこ
とができ、次いで、無効にされたユーザを含めて、どの
ユーザに対してもSUを行なうことができる。
たとえば、システム管理者として、たとえば、ユーザm
atthevとしてloginを行ない、次にルートに
対してSUを行なって、C2AIXシステム上で種々の
管理タスクを実行することになる。監視サブシステムは
実ユーザID及び有効ユーザIDの他にloginユー
ザIDを知っている。言い換えれば、監視システムにと
って、ユーザはルートとしてのmatthewであるか
、または単にmatthewであるかのいずれかである
監視印刷コマンド 監視印刷コマンドBuditprは、その特定の経路ア
ーギュメントによって定義される監視証跡を読み取り、
報告を「属性ファイル形式J(IBMRT  PCAI
Xオペレーティング・システム技術解説書、第4章の属
性ファイル形式のためのAIXマニュアル・ページ参照
)で標準出力装置上に印刷する。
オプションなしで呼び出されたとき、コマンドaudi
tprは監視証跡ファイル経路からすべての監視レコー
ドを印刷する。オプション付きテ呼ヒ出されたときは、
コマンドauditprはそれらのオプシゴンをフィル
タとして使って、監視証跡ファイル経路からのオプショ
ン付択された監視レコードのみを印刷する。多数の異な
るオプション(たとえば、−u john −g シス
テム)がこのフィルタ中で互いにAND演算される。−
Aまたは−B以外の各オプションについては、1つの名
前、またはコマンドで分離された複数の名前(空白を含
まない)のいずれかを使用することができる(たとえば
、−g システム、ビン、スタッフ)。
いずれかのauditpr コマンド・オプションを使
用する場合、その結果得られる属性ファイルは、オプシ
ョンを識別する省略時スタンザを有し、単一値を有する
それらの名前値対が、後続のレコードから取り出される
。多数の値をもつオプションは、省略時スタンザ中に注
釈が付いた、コンマで区切られた値として現われる。レ
コード・スタンザ名は「r」 (レコードの略)で始ま
り、1から始まる、経路パラメータからの相対レコード
番号がその後に続く。jtl**Jを含む注釈行が監視
レコード・ヘッドと監視レコード・テールの間に入る。
監視サブシステムが使用可能になった場合、ファイル/
 1ocal / etc / 5ecurity /
 audit /a trailは現監視証跡ファイル
の名前と使用可能時間を含む。ファイル/ 1ocal
 / etc /5ecurity / audit 
/ a trail、pastは監視証跡ファイルの名
前及び使用可能/禁止時間の活動記録を含む。
監視システム・コール この監視サブシステム設計は4つのシステム・コールを
有し、それらの各々について、呼出し側プロセスの有効
ユーザIDは、監視システム・コールを使用するた・め
のスーパーユーザでなければならない。(ちなみに、こ
れらのシステム・コールの集合的機能は、システム・コ
ールの正確な数またはどのようなアーギュメント順序よ
りも重要である。) システム・コール監視は監視サブシステムを使用可能(
オン)にし、監視証跡ファイルを指定し、監視が既に使
用可能になっているときは監視証跡ファイルを切り換え
、監視サブシステムを使用禁止(オフ)にし、すべての
監視事象をクリアし、監視サブシステムのオン/オフ状
況を照合することができる。
システム・コールauditeventsは、システム
が監視する事象をゲットし、セットする。AIXは2種
類の事象、すなわち、一般事象と特別事象を区別し、各
々の事象と事象セットを関連づけるが、この区別は本発
明にとって余り重要でない。
システム・コールauditlogは監視証跡ファイル
の終わりに「ユーザ・レベル・ベース事象」監視レコー
ドを付加する。
システム・コールauditprocはプロセスの監視
状態をゲットし、セットする。システム・コールaud
itprocは、1つの例外はあるが、現在のプロセス
に対する監視を中断しく一時的に使用禁止にし)、次に
、再開(使用可能に)することができる。このプロセス
の監視の中断によって通常の監視は使用禁止になるが、
プロセスが監視システム・コールauditlogを呼
び出してレコードを監視証跡に付加することは可能であ
る。中断/再開状態も照会することができる。さらに、
システム・コールauditprocはプロセスの一般
/特別クラス状況をセットし、その状況を照会すること
ができる。システム・コールauditprocの一般
/特別コマンドはlogin時に呼び出されるようにな
っている。一般/特別監視状況はloginセツション
を通じて不変であるはずであるが、不変である必要はな
い。
既に明らかなはずであるが、コマンドauditは、シ
ステム・コールaudit及びauditevents
を呼び出す便利な「ウィンドウ・ドレッシング」であり
、種々の監視ファイルを使用する。
login等のトラステッド・プロセスは以下のように
システム争コールauditproc及びauditl
ogを使用することができる。トラステッド・プロセス
は、auditlogを呼び出してそのプロセスに対す
る監視をオフにすることができ、次に、選択的な場所で
2.3回auditlogを呼び出して少数の監視レコ
ードのみを切り取ることができる。このようにaud 
1tproc及びauditlogを使用すると、比較
的記述的なレコードを記録し、不必要なレコードで監視
証跡があふれるのを回避することにより、監視証跡を事
前に濾過するのに役立つ。
監 サブシステムのカーネル部分 本節では監視サブシステムのカーネル部分の幾つかの重
要な特性について説明する。
ローカル・システム・コール1回当+1)1つの監視レ
コード。監視者がシステム・コール事象を選択するとき
、及びそのローカル・システム・コールが呼び出される
とき、この設計では厳密に1つの監視証跡レコードを監
視証跡ログ・ファイルに付加する。このことを行なうた
め、カーネルは情報をプロセスのruJブロックに記憶
する。これとは対照的に、安全Xen1x (グリゴル
(Gligor)等「安全Xen1xの設計及び実施(
Design andImple+aentation
 of 5ecure Xen1x) J sソフトウ
ェア技術に関するI EEE概要、Vol、5E−13
、No、2、pp、208−221 (1987年2月
)、及びピチオットの論文(J、 ピチオット「効果的
な監視サブシステムの設計(TheDesign of
 an Effective Auditing Su
bsystem)J sクランド、pp、13−22 
(1987年4月)の1計では、システム・コール1回
当り多数の監視レコードを切り取る。
「監視」事象の監視。システム・コールauditに対
して監視が使用可能/使用禁止にされるとき、raud
itオン」及びrauditオフ」事象に対する監視レ
コードを切り取るために注意が払われる。
この項目は読者には明らかであるが、ちょっとした特別
な吟味を必要とする。
カーネルが監視レコードを書き込めないとき。
この設計では、カーネルがレコードを監視証跡ファイル
にうまく書き込むことができないとき、カーネルはメツ
セージを操作卓に書き込み、停止する(すなわち、カー
ネルはパニック状態になる)。
この事象は、以下のことを含めて幾つかの理由で生じる
可能性がある。すなわち、監視証跡ファイルがその最大
サイズに達した、または監視証跡を含むファイル・シス
テムが一杯である、または監視証跡がリモートで、かつ
リモート・ノードが故障したかまたは通信接続が故障し
たかのいずれかである。
この設計は高度な監視サブシステムの問題を扱っていな
い。独立した各サブシステムに高い可用度を組み込むの
ではなく、サブシステムがそれをトランスペアレントに
、またはサブシステムの設計変更なしに使用することが
できるように、高い可用度を得るための一般的機構(す
なわち、ファイル・システムの構成可能属性)を設ける
べきであると設計者は考える。
監視証跡の圧縮 本節では、上記のピチオットの論文における監視証跡圧
縮のための設計に基づくオンライン監視証跡圧縮のため
の設計について説明する。重要な相違点を以下に指摘す
る。
監視証跡圧縮のためのピチオットの設計ピチオットの監
視証跡圧縮方式は次のように働く。カーネルは監視証跡
ファイルに(生の圧縮されていない)監視レコードを直
接書き込まず、それぞれ同じ一定のサイズをもつ一連の
一部ビン・ファイルに書き込む。ユーザeレベルのデー
モン・プロセスは背景で実行され、圧縮されていない監
視レコードをビンから一度に1つのビンずつ読み取り、
圧縮された監視レコードを監視証跡ファイルに書き込む
。ビン・ファイルの処理後、デーモンはビン・ファイル
を除去する。
ピチオットの設計はカーネル変数B I NNUMを維
持し、これは、監視レコードを含む次のビンの識別を指
定するのに役立つ。B INNUMは、ブート時または
循環時に0にリセットされる32ビツトの符号なしの整
数である。監視サブシステムが初めにオンになるとき、
カーネルは、カーネル中で周知の経路名であるaudi
t、bin という名の制御ビン・ファイルを作成し、
このファイルにB INNUMの値を書き込む。aud
it、bin ファイルを作成しB INNUMを書き
込んだ後、カーネルはaudit、binを閉じ、au
dit、binXを作成する。
XはBINNUMの10進表示である。たとえば、au
dit、bin中の7は、次のビンがaudit、bi
n 7であることを示す。audit、binX中の最
初のレコードは監視証跡ファイル名を含む特別なレコー
ドである。監視ビンは長さ30000バイトである(コ
ンパイル時定数)。カーネルは1つのビンに30000
バイトを書き込んだとき、ビン終了レコードを書き、そ
のビンを閉じ、BINNUMを増分し、次の新しいビン
を開く。
システムがブートされると、監視圧縮デーモンaudc
ompがローカル・デーモンの1つとして開始される。
監視圧縮デーモンは直ちに、1つのオンーオフ監視セッ
シ1ンの圧縮を担当する子プロセスaudcomp c
を分岐(fork)する。各セツションの後で、子プロ
セスは消滅し、audcompは新しい子プロセスを分
岐(fork)する。auddcomp c処理は、a
udit、bin ファイルを見つけるまで待つ。この
ファイルを見つけると、それからB I NNUMを読
み取り、次にaudit、binを削除する。
audcomp cは次にaudit、bin−X を
開いてレコードの読取りを開始し、それらのレコードを
圧縮して最初のレコードで指定された監視証跡ファイル
に書き込む。EOFで、audco+ap cは単にデ
ータをさらに読み取ろうと再試行するだけである。EO
Fは、消費者(audcomp c)が生産者(カーネ
ル)よりも速いことを示す。audcomp cはビン
終了レコードを読み取るとき、まず現在のビンを閉じて
削除し、次のビン(ビン番号は順になっている)を開き
、さらに生の監視データを読み始める。
監視サブシステムがオフになると、カーネルはaudi
tセッシ日ン終了レコードを現在のビンに書き込み、そ
のビンを閉じてB INNUMを増分する。
audco■p−cがセッシ1ン終了レコードに出合う
と、その入力ファイル及び出力ファイルを閉じ、前者を
削除して、消滅する。デーモンaudcompは次に新
しい子プロセスを分岐(fork) L、子ファイルは
audit、bin制御ファイルの出現を待ち、次に圧
縮活動が継続する。
監視サブシステムが既にオンである間に監視証跡ファイ
ルが切り換えられるときは、カーネルは単に切換えファ
イル名レコードを現在のビンに書き込み、中断なしに継
続する。
本、[lの監視証 圧縮 本発明は、ピチオットの論文で扱われていない以下の特
性を溝たす。(1)ファイル/ディレクトリ位置トラン
スパレンシを存する。(2)多数のノードを1つの監視
証跡ファイルに監視レコードを付加することができる。
(3)圧縮デーモンは単一プロセス処理であり、圧縮中
にノード故障の後で再始動可能である。(4)監視証跡
ファイルは1回書込み多数回読取り媒体に載せることが
できる。(5)カーネル中に周知のファイル名がない。
さらに、システム・コール・インターフェースは圧縮に
ついて知らない。本発明の構成要素を以下に示した後で
、上記5つの特性のそれぞれについて考察し、各特性が
溝たされることを示す。
圧縮のためのカーネル・サポート。監視者が監視コマン
ドで監視をオンにすると、audit コマンドは監視
証跡ファイルの名前及び現在の時間をa trail 
に保管する。audit コマンドは次に監視システム
・コールを呼び出して監視をオンにし、カーネルは、監
視証跡ファイルが新しいファイルかどうか検査する。
監視証跡ファイルが新しい場合、カーネルは新しい監視
証跡ファイルとx、ctl  という名の状況ファイル
を作成する。ただし、Xは監視証跡ファイルのファイル
名部分である。状況ファイル及びビンは監視証跡ファイ
ルと同じディレクトリ・トリー(以下に説明するのと同
じディレクトリではなく、nidによって命名されるサ
ブ、ディレクトリ)中に作成される。nid とはノー
ド(すなわち、システム・コンピュータ)識別子である
。カーネルは次に3つの数を状況ファイルに書き込み(
最初は1.0.0)、カーネル変数B INNUMをO
にセットする。状況ファイル中の3つの数はnextB
inNumber)1ovBinNumbers及びc
ompresstonInProgressである0フ
イールドrnextB inHumber Jは、次に
使用されるビン番号であり、カーネルのみがこの値を書
き、監視デーモンは書けない。フィールドrlovBi
nHu■berJは、圧縮されていない最も低いビン・
ファイルのビン番号を含み%  rcospressi
onlnProgressJは1圧縮が進行中であるか
どうか示すフラグである。初期の作成を除いて、監視デ
ーモンのみがフィールド’lowBinHumberJ
 及びrcompres5ionInProgress
 Jを書く。したがって、最初、(1,0,0)は、1
が次に使用されるべきビン番号であり、0が圧縮されて
いない最も低いビンの番号であり、圧縮が進行中である
ことを意味する。lovBfnHumber及びnex
tBinNumberは0から999までカウントされ
、次いで再びOにリセットされ、以下同様である。最大
1000個のビンに対して3桁の数を使用すると、生産
者と消費者間(すなわち、カーネルとデーモン間)のど
のような速度の不一致をも相殺するのに十分な緩衝とな
ると考えられた。
ビット数(100,1000,25E3、・・・)を選
択して、本発明の原理は変更されない。
監視証跡レコードが既に存在する場合、カーネルは既存
の監視状況ファイルからnextBfnHumberを
読み取り、そのB INNUMをne)(j3inHu
mberにセットする。カーネルはまた状況ファイル内
のnextBinNumber とlovBfnHum
berを比較する02つの番号が等しい場合、圧縮デー
モンは以前に生成された監視ビン・ファイルを圧縮して
おらず、カーネルは、監視がこの監視証跡ファイルをオ
ンにすることを許さない。通常の場合、この状況は起こ
らないはずである。
B INNUMを決定した後、カーネルはx、 yとい
う名の一部ビン・ファイルを作成する。ただし、Xは前
と同じであり、yはB INNUMの3桁の10進表示
である。AIXでのファイル名の最大の長さは現在14
であるので、接尾部が4文字であると、接頭部は最大1
0文字となる。X。
yを作成した後で、カーネルは監視レコードをこのビン
に書き込む。このビンのサイズが所定の限界を超えたと
きは、カーネルはビン終了レコードを書いてビンを閉じ
、カーネル内のB I NNUMと状況ファイル内のn
extBinHumberを増分し、新しいビン・ファ
イルを作成し、次に、新しいビンの使用を開始する。こ
の場合も、圧縮デーモンにおけるエラーを防ぐため、カ
ーネルは、次のビン・ファイルを作成する前に、BIN
NUMと1owBinNumber が等しいかどうか
調べる。BINNUMと1ovB Encumberが
等しい場合、カーネルは警告メツセージを操作卓に書き
、以前のBINNUMを復元し、ビン・ファイルを切り
換えない。
監視者がaudit コマンドで監視をオフにすると、
audit コマンドはa trail からレコード
を除去し、現在の時間をレコードの終わりに付加し、こ
の監視証跡がまだ圧縮されていないことを示すフラグを
セットし、レコード全体をa trail、pastに
付加する。カーネルは監視をオフにするよう指令される
と、セツション終了レコードを現在のビン・ファイルに
書き込み、ファイルを閉じ、カーネルの監視をオフにす
る。
監視者が監視証跡ファイルを変更し、監視サブシステム
が既にオンであるとき、カーネルはセッシeン終了レコ
ードをビンに書き込み、ビンを閉じ、監視がオンになっ
たときと同様に先に進む。
圧縮デーモン。監視圧縮デーモン/ etc /aud
itdは、システムがブートされたとき開始される背景
プロセスである。監視デーモンは一時に1つの監視セツ
ションを圧縮し、古いものから順にセツションを圧縮す
る。監視デーモンはファイルa trail、past
及びatrailを使用する。ファイルa trail
、pastは、セツションが圧縮されているか否かを含
めて、クローズされたすべてのセツションに関するデー
タを含む。ファイルa trailは既存のオープン・
セツションに関するデータがあれば、それを含む。
監視デーモンは次のように働く。まず監視デーモンは回
復を行なう。監視がオフであると仮定して、監視デーモ
ンはa trail を調べる。a trailが空で
ない場合は、オーブン・セツション中に故障が起きてい
る。監視デーモンは状況ファイルからオーブン証跡を読
み取り、セツション終了レコードを最終のビン・ファイ
ルに付加し、end−tfme’da trai1項目
をa trail、pastに付加し、a trail
を空にする。これらの動作によってa trail、p
ast及びa trail の「不変特性」が再確立さ
れる。
第2に、監視デーモンは次のようにしてセツション圧縮
不変特性を再確立する。監視デーモンは監視証跡を順方
向に探索し、最も新しい未圧縮セツションを識別する。
そのような未圧縮セツションが存在する場合、監視デー
モンは最初のレコードについてこのnidで監視証跡を
逆方向に探索し、ビン番号を得るo compress
ionInProgress フラグが1の場合は、終
結処理が必要である。終結処理とはこの場合は、既に圧
縮されたビン・ファイルを除去し、次に状況ファイル内
のlow旧nNumber及びcompression
InProgressを更新することを意味する。第3
に、監視デーモンはプロセス・グループ及び制御端末か
ら離れ、子プロセスを作成(fork)シ、親プロセス
を終了(exit)する。第4に、監視デーモンはその
通常の圧縮モードを開始し、−時に1つのセツションを
圧縮し、古いものから順にセツションを圧縮する。
セツション圧縮にはパック・コマンド・アルゴリズム、
すなわち、ハフマン符号化アルゴリズムを使用する。こ
のアルゴリズムは、圧縮を開始する前にすべてのデータ
を読み取ることを必要とする。デーモンがEOFに出合
った場合、このことは、消費者(デーモン)、が−生産
者(カーネル)よりも速いことを意味する。したがって
、EOF時には、デーモンは待機し、後から読取りを試
みる。
ビンの真の終わりはビン終了レコードまたはビン切換レ
コードによって示される。ビンを圧縮するとき、デーモ
ンは状況ファイルに compress ion InProgressを表
わす1を書き込み1ビンを圧縮して、3部分から成るフ
レームを1回の原子的書込みで監視証跡ファイルに書き
込み、ビン・ファイルを除去し、+ + lowBin
Humber とcompressionInProg
ress値Oを状況ファイルに書き込む。
3部分フレームは(ヘッド、ボデー、テール)から成り
、ヘッドとテールは同じでかつ一定のサイズであり、ボ
デーは圧縮されたビンから成る。
ヘッド(及びテール)部は、上記と同様に、(id。
binL before lengthlafter 
lengthlnid)から成る。同じヘッドとテール
の対及びそれぞれの長さの値を有する3部分フレームに
より、監視証跡を順方向及び逆方向に読み取ることがで
きる。
ファイル/ディレクトリの位置トランスパレンシ。
本発明では1a 5tates a trail及びa
 trail。
pastはノードに特有なので、それらはデイレクト 
リ /  1ocal  /  etc  /  5e
curity  /  audit  内の/1oca
l の下に存在する。さらに、ビンもノードに特有であ
る。周知の経路名はカーネルに導入したくないので、カ
ーネルが監視オン時に決定する、監視証跡ファイルを含
むディレクトリの下のどこかにビンを作成することがで
きる。これらのビンを監視証跡と同じディレクトリ中に
作成し、かつそのディレクトリがリモートである場合は
、ビン名が衝突を起こす可能性がある。すなわち、2つ
以上のノードが同じビンに「入る」可能性がある。
この問題を回避するため、監視証跡ファイルを含むディ
レクトリのnidに特有な(すなわち、nidによって
命名された)サブディレクトリ中にビンを作成すること
ができる。監視デーモン/ etc /auditdは
a trail を読み取って、ビン及び監視証跡ファ
イルを見つける。ノードに特有な監視データは分離され
ているので、この設計は、監視証跡ファイル、及び監視
証跡ファイルを含むディレクトリの位置がローカルか、
それともリモートかにはこだわらない。
多数のノードが1つの監視証跡ファイルに供給すること
ができる。DSのトランスバレンシを使用して、多数の
ノードから単一の監視証跡ファイルに監視レコードを書
き込む。auditpr コマンドが混乱しないことを
示す必要がある。auditpr コマンドは監視証跡
ファイルを明瞭に読み取ることができ、多数のソース・
ノードからの監視証跡レコードの圧縮を解除する。解決
すべき問題は、複数のノードからのインターリーブされ
た圧縮監視レコ゛−ドをどのように圧縮解除するかであ
る。1  ゛つのステップで各ビンを圧縮することによ
ってこの問題を解決し、圧縮されたビンの前に未圧縮チ
エツクポイント・ヘッダを付加し、圧縮されたビンの後
に未圧縮チエツクポイント・トレーラを付加し、(未圧
縮ヘッダ、圧縮されたビン、未圧縮テール)を1回の原
子書込みで監視証跡に付加する。まずレコードを一部フ
ァイルに書き込み、次に1回の読取りシステム・コール
により1ステツプでそれを読み取り、次に1回の書込み
システム・コールにより1ステツプでそれを付加するこ
とにより原子書込みを行なう。
監視証跡ファイル用の1回書込み多数回読取り媒体。書
込みの場合、付加専用アクセスのために監視証跡ファイ
ルを常に開き、レコードのフレーム(未圧縮チエツクポ
イント・ヘッド、圧縮すれたビン、未圧縮チエツクポイ
ント・テール)を1回の原子書込みで書き込、む。
カーネル内に周知の経路名がない。設計により、カーネ
ルは、知る必要のある経路名情報を監視システム・コー
ルの監視証跡名アーギエメントからゲットする。
圧縮デーモンの回復及び再始動可能性。次節でこのこと
を説明する。
、 監視デーモンの回′及び再始動可能性本節では監視
デーモンの回復及び再始動可能性にオブジェクトを絞っ
て説明する。「回復」とは、ノード故障の後でデーモン
が通常の動作を再開できることを意味する。「再始動可
能性」とは、コードの任意の「接頭部」を実行し、その
後ノード障X   害が発生した場合に、かまわずに始
めからコードを実行することができ、かつそれを何回で
も実行できることを意味する。
本発明の監視デーモンについての説明の助けとして、表
Aに監視デーモン用の擬似コード(スケルトン、C類似
コード)を示す。第6図は表Aの監視デーモン・コード
の流れ図である。このコードは2つの機能、すなわち、
main()及びsessioncompress()
を有する@機能main()は2つの大きなステップ、
すなわち、回復不テップと通常動作ステップを存する。
機能 sessioncompress() は特定の監視セ
ッシeン内のすべてのビンを圧縮する。監視セツション
は、on−offまたはon−switchまたはsw
itch−switchまたは5w1tch−offま
たはon−failureまたは5w1tch−fai
lureの各ノード事象の間の記録されたすべての監視
事象から成る。ただし、’failureJはノード故
障を意味する。監視セツシヨンは開いているか、または
閉じている。閉じた監視セツションはセツション終了レ
コードで終わり、開いた監視セツションはそうではない
。監視サブシステムが使用可能であり、かつ通常動作中
の場合、または監視サブシステムが使用可能な間に故障
が発生した場合、セッジeンを開くことができる。
本節は4つの部分、すなわち、不変特性、回復、通常動
作、及び再始動可能性に分かれる。ここでは、回復とは
単に設計の特定の不変断定を再確立することなので、回
復について考察する前にこれらの不変部について考察し
なければならない。
王聚豆豊 監視デーモン擬似コードを理解するには、ファイルa 
trai11ファイルa trail、past及び機
能sessioncompress ()の不変特性を
理解する必要がある。
a trail の不変特性とは、開かれた既存の監視
セツションに関するデータがあれば、それを含むことで
ある。開かれた既存の監視セツションがない場合、ファ
イルa trail は存在するが、空である。
a trail、pastの不変特性とは、すべての閉
じた監視セッシ1ンに関する開始時間別に分類されたデ
ータを含むことである。開始時間と停止時間及び圧縮完
了フラグがファイルa trafl、past内の閉じ
た各監視セツションと関連づけられる。
機能sessioncompress () と関連す
る不変特性は、擬似コード中で定義される断定aO(ラ
ベルaOつき)である・機能5essionco+ap
ress ()は特定の監視セツション内のすべてのビ
ンを圧縮し、閉じたセツション、または開いたセツショ
ン内のビンを圧縮するのに使用することができる。
機能again ()は、古いものから順にセツション
が圧縮されるように確保する。断定aOは、現在のビン
・ファイルbについて、ビン圧縮が進行中ではな(、フ
ァイルbが存在し、bがまだ監視証跡上にないことを示
す。言い換えると、sessioncompress 
()は作動可能である◎旦1 回復は、機能main ()の最初の大きなステップで
あり1a trail とa trail、pastと
sessioncompress ()に対する不変特
性が確立されていることを確認し、必要な場合には以下
のようにしてそれらを再確立する。
a trail が空でない場合、開いた監視セツショ
ン中にノード故障が発生した。a trial及びa 
trail、pastの不変特性を再確立するには、a
 trai1項目を読み取り、x、ctl ファイルか
らNext (次に圧縮されるビン)を読み取り、セツ
ション終了レコードがまだない場合はビンNext−1
の終わりにそれを付加し、a trail、pastの
最後のレコードがこのレコードでない場合は、end−
time’da−tra i 1項目をa trail
、pastに付加しs a trailを空にする。
sessioncompress ()の不変特性を再
確立するには、a trail、pastを順方向に探
索して最も新しい未圧縮セツションを識別する。未圧縮
セツションが存在する場合は、断定al −a5を詳し
く調べ1機能sessioncompress ()の
下端でステップ5l−s4に介入し、簡単な事例解析を
使用することにより事態を解決する。main ()内
のsessioncompress ()の不変特性を
再確立するたメツコードがビン・ファイルを除去するか
、x、ctlファイルを書き直すか、あるいはその両方
を行なう6 sessioncompress ()内
のフラグ変数は1ピンbの圧縮が進行中のときは1であ
り、そうでない場合はOである。このフラグの値は、ビ
ンbの圧縮の状態を知るため回復に必要なとき、(シス
テム・コールwrite及びrsyncにより(後者は
AIXにおけるファイルごとの5ync) )安定なデ
ィスク記憶装置に書き込まれる。
貞皇皇立 通常動作では、監視デーモンは一時に1つの監視セツシ
ョンを圧縮し、古いものから順にセツションを圧縮する
。最も古い未圧縮セツションを見つけるには、監視デー
モンはa trail、pastを調べ、次にa tr
ail を調べ、セツション圧縮フラグが0である最も
古い項目を探す。そのような未圧縮セッシ1ンを見つけ
た場合、監視デーモンは機能sessioncompr
ess ()を呼び出し1その後で1a trail、
pastで圧縮されたものとしてそのセッシ冒ンにマー
クを付ける。
機能sessioncompress (trail)
は特定の監視セツション内のすべてのビンを圧縮する。
ファイルx、ctlを使って、次に圧縮すべきビンを探
す。
次のビンが終了レコードまたはセツション終了レコード
を含まない場合s sessioncompress 
()はしばらく休止してから、再び調べる。ビンが使用
可能なときはs co+ipressionInPro
gress フラグを1にセットしてこれをファイルx
、ctl に書き込み、次いでビンを圧縮し、監視証跡
に3部分からなるフレームを付加し、次にビン・ファイ
ルを除去し1compressfonInProgre
ss フラグを0にセットし、1owBinHui+b
er を増分し、これら2つの値をファイルx、ctl
に書き込む。セラシロン終了レコードが見つからない限
り、後続のビンをこのように圧縮し続ける。
旦亙■豆豊且 機能main ()及び5essionco園pres
s ()内のコードは再始動可能である。この擬似レコ
ードは、すべてのステップにとって、既に実行されたス
テップの故障とその後の再実行がまったく異ならないこ
とを示す。
1豆 以上、下記の要件及び特性を満足するコンピュータ監視
サブシステムについて説明した。
(a)  ソフトウェア環境要件 階層ファイル・システム、及びwrite ()システ
ム・コール等の原子書込み動作を含むUNIX(または
AIXまたはUNIX類似)オペレーティング・システ
ム環境でIiL、かつ 「仮想マウント」または「リモート・マウント」に基づ
(機構(たとえば、IBM  RTPCAIX分散サー
ビス(DS))等、ローカル/リモート・ファイル/デ
ィレクトリ位置トランスパレンシを有するオペレーティ
ング・システム環境で稼働する。
(b)安全保護要件 オレンジ・ブックのクラスC2ないしA1に対する監視
要件を満たすのに役立つ監視フレームワークを提供する
(c)発明の特性 システムごとに1つの監視デーモン・プロセスを使って
監視証跡ログ・ファイルのオンライン圧縮を実行し、ノ
ード故障後に回復する再始動可能監視デーモンを存し、 DSまたは類似の機構に対して、ファイル/ディレクト
リ位置トランスパレンシを存し、DSまたは類似の機構
に対して、多数のノードに監視レコードを1つの監視証
跡ログ・ファイルに付加させ、loginユーザIDを
捕捉し、擬似ユーザ類似ルートとしてloginするこ
とを防止するがs 8 u (rsubstitute
 userJコマンド)は擬似ユーザ類似ルートに受は
入れることができる。
(d)  その他の特性 周知の監視証跡ログ・ファイルを1回書込み媒体に載せ
、かつ監視サブシステムのオペレーティング・システム
のカーネル部分に周知のファイル名を持たず、さらに、
対応するベース事象が使用可能になり、実行される場合
は、システム・コールごとに正確に1つの監視証跡レコ
ードをカットする。
この設計では、省略時ビン・サイズは20480バイト
(20KB==10x2048、またはAlX1nod
e構造中で10個のrdirectJ )であり、平均
圧縮率は約50パーセントである。
表I  B event 11 @(1)a event 7.287/1110
615:29:0321  Audit Event 
Table31  format for a bas
e event  is:4 1       eve
nt、eVent+  、、。
5  $1  format  for  an  a
dministrative  event  is:
6 II      administrative−
event:  event。
evenL  ・+− 7+t 8 襲 5yste@call  base even
ts9         access lo       acct、  alarm、  a
udit、  auditevents。
auditlog、auditprocll     
   brk 12        chdir、chmod、cho
vn+  chownx。
chroot、close、creat13     
  disclaim、dsstate、dup14 
        exec 15        fclear、fcntl、ff
ullstat、fork。
fstaL  fsync、ftruncate+fu
llstat 16       getgid、gejgrouPs
s  getuid17      1octl、ip
lvm18        kill 19      1ink、  1oadtb1. 1
ock、  1ockf。
ookup 20          n+kdir、  mkno
d、  mntctl、  mounL5g5ys 21        n1ce 22       open 23       patlSel  pipe、  
profil、  ptrace24      re
ad、 reboot、 renallel rexi
t。
mdir 25      5eek、  5elect、  5
ellSyS、  setgid。
setgroups、setpgrp+  5etui
d。
sgetpid 26       shmsys、  sigbloc
k、  sigcleanup。
signal、sigpause+  sigsetm
asLsigstack 27       sigvec、5tat、stim
e、5ync28        tia+e、tim
es29       ulimft、  umask
*  u+*ounL  unallelunlink
、usrinfo+  utime、utssys。
uv+5ount 30       vhangup、vmount31
       wait、  waitvm、’ wr
ite32  sl  5ocket  events
33       accept 4bind 35        coinect 36        recv 37       5end 38       5ethostid39     
  5ethostnale40        sh
utdown41  II  other  base
  events42       adduser 
fai143        adduser  ok
44        at  fail45     
  at ok 46       chparm ok47     
   device  ok48       dsi
pc fai149       dsipc ok 50       dskproc  # ds 5e
rver  audit event51      
 dsrpc   l ds client audi
t event52       errstop o
k53        exit    #  1nt
ernal  kernel  exitroutin
e 54       fsck ok 55      1nstallp ok56    
   login−failsl  login  p
rocess  failed57       lo
gin ok sl  login、process successfully  completed58
      1ogout−ok #  log  out  5uccessfu159
       mdisk ok 60        mount  ok61    
   nevgrp fai162       ne
vgrp ok63       passvd fa
il終 change  password  fai
led64       passwd ok#  c
hange  passwordcompleted 65       pdelay ok66     
  pdisable ok(57penable o
k 68       phold ok 69       print cance!70  
     print request71     
  print 5tart72       psh
are ok73       pstart ok7
4       shutdown ok75    
   5installck76       sm 
1nitaliases1  sendmail ?7       sm−ok   1 sendma
f178      5uJai1 79      5u−ok 80        ugsync 81       umount fai182   
     umount  okg3       v
aryoff ok84       varyon−
ok85  II  TCP/IP  command
 events86          hostna
me  5et87       netconfig
 add、  netconffg de188   
    route add、  route de1
89       5etclock  5et90 
      tnjogin fail、  tn−1
ugin okgl       tnd  logi
n fail、  tnd  login okg2 
      xftpd login−fail、  
xftpd  login okg3        
xftp 二1ogin  fail、xftp  l
ogin  okg4 1  administr’a
tive  events95       logi
n:  login fail、  login ok
1ugout ok、  su fail。
su ok、  \ 9’6           th−1ugin−fa
il、 tn−1ugin−ok、  \ 97           tnd login fa
il、 tnd−1ugin ok、  \ 98          xftp login fa
目、 xftp−1ugin oL  \ 99           xftpd login−
fail、 xftpd−1ugin ok 100       proc create: fo
rkl  proeess create event
lol      proc delete: kil
l、 rexit、 exitn process d
elete event102      obj−c
reate: creat、 mknod、 mkdi
r。
hdir II  object create  event1
03      obj delete+ unlin
k、 rmdirl object delete e
vent104     ds client: ”d
srpcII  ds client audit e
vent105      ds 5erver: d
skproc叢ds 5erver audit ev
ent表A 監視デーモンの擬似コード 春 監視デーモン擬似コード、/etc/auditd
”  /etc/rc内、たとえば 傘  鱒監視デーモンを実行する。
”   /etc/auditd  l no &*1 main() /宰回復ステップを開始する6/ /6その監視は回復ステップの間オフであるものとする
。′/ assert(auditing is off)S/
* ネ最初に、a trail、past及びa trai
lネの不変特性を再確立する。ただし、 傘 不変特性(a trail、past) ” rす
* べての閉じたセラシロン上のデー *  タ」 傘 不変特性(a trail) : r既存の開いた
セラシロン上のデータ」 */ if (a−trai目s not empty)as
sert (node failure occurr
edduring open auditing 5e
ssion)Sread a−trail entry
 : trail、 begin−ti+ae; let x = basename (trail):
/掌ファイルx、ctl は値Next1Low1及び
Flagを含む。′/ read  Next  from  x、ctl  
file:ff (end of 5ession r
ecord notalready at end o
f bin file(Next−1) ) append end  of 5ession re
cordto bin file (Next−1);
tf (begin time of 1ast re
cord ina trail、past ! = b
egin time)append  end  ti
me’d  a  trail  entryto  
a  trail、past:empty a tra
il; assert  (invariants  of  
a  trail″pastand a trail 
reestablished);10第2に1sess
ionCompression Oの不変特性aOを再
確立する。。/ 5earch a trail、past forwa
rds、 1dentifythe youngest
 uncompressed 5ession:if 
(an uncompressed 5ession 
exists)” N、B、  このコードは機能5e
ssion* Compress ()内の断定 ” ao−a5及び5l−s4の精密な解析中に基づく
*/ let  Trail  =  its  audit
  trail  file:let x = bas
ename  (Trail);read Low a
nd Flag  from  x、ct、l  fi
le:if  (Flag ” 1) serch Trail  backwards、fo
r  thefirst  record  with
  this  nid、andget bin叢; Found = (Low == binll); /
”真または偽*/ if (bin file x、Low exists
 &&Found) remove file x、L
ov;if (Found) ++Low; Flag = O: write Low and Flag to x、c
tl;assert (recovery done)
;/*回復ステップ終了*/ /” fork  ステップ開始$7 fork a child for normal o
peration andexit  the par
ent so that /etc/recan co
ntinue with child fnbackg
round: /” fork  ステップ終了傘l l傘通常動作ステップ開始宰l /8 宰−時に1つの監視セツションを圧縮 *する。
$古いものから順にセツションを圧縮 *する。
*1 for に;) examine a trail、past then
 a−trailfor oldest uncomp
ressed 5ession;/幸セッシロンは、そ
のセツション圧 縮フラグが0のときは、圧縮され ていない。tノ if (some uncompressed 5es
sion)let traH= the audit 
trail filename  of  this 
 5ession;assert (session 
unmar−ked):sessioncompres
s (trail):assert (session
 compressed &&5ession  un
marked);mark the 5ession 
as compresseclassert  (se
ssion  marked):1se sleep for awhile )  /” main ()の最後の行。魯lsess
ioncompress  (trail)cbar 
” t−ran: /”監視証跡ファイル名:/dir
na  me/basename  ”//9 傘特定の監視セラシーン内のすべてのビン*を圧縮する
” (Low == Next)の場合は、特定のセヅ
シe*ンは既に圧縮されているが、そのように零印をつ
けられていないので、戻る。
6そうでもない場合、セラシロンはLow*で開始し、
最初のセッシ8ン終了しコー* ドで終了する。
let x = basename (trail)i
read Low、 Next、 and Flag 
trots x、ctl fileilet b = 
Low: /” entry−value of Lo
w ”/ao:assert (Flag == O&
& file b exists && bnot o
n tram): if (Low == Next) return; /傘このセラシロンは既に圧縮さてい
るが、そのようにマーク がつけられていない。*/ done ” FALSE: vhfle (!d−one) /嘩最初に、ビンbを読む。ビンが作動可能でない場合
信、Lばらく待っ。傘1for  (::) read bin b: 4f (b contafas end−of−bin
 or end−or−5ession record
)done = ”−Mn b corta4ns e
nd−of−sessfon record”; break: 5leep for awhile; /9第2に、圧111されたビンbを証跡に付加し1フ
ァイルbを除去する。傘l al:   assert (Flag == O&&
 file b exists && b not o
n trail);sl:   Flag =1: w
rite Flag to x、ctl;a2:   
assert (Flag == 1 && file
 b exists &&b not OJI tra
m); s2:  compress bin b;appen
d the 3−partrecord (head、
 body、 tail) to trafl:a3:
  assert (Flag := 1 && fi
le b exists &&b  (on trai
l): s3:   remove bin file b=a
4:  assert (FJag == i && 
no file b exists&& b on t
rail): s4:    Flag  =  02  ++Loy
:  write  Flag  and  Lowt
o  x、ctl: a5:  assert (Flag == O&& 
no file b exists&& b on t
raii): )  /lp while終了;l )  /” sessioncompress ()の
最後の行6/
【図面の簡単な説明】
第1図は、分散処理システムで、監視証跡情報が複数の
ノードからどの、ように生成され圧縮されるかを示す図
である。 第2図は、システムB及びCのディレクトリをどのよう
にしてシステムA上に遠隔的にマウントすることができ
るかを示す、第1図と同様な図である。 第3図は、クライアント・システムがどのようにしてサ
ーバ・システム上のファイルにアクセスすることができ
るかを示す、第1図と同様な図である。 第4図は、2つの階層的ファイル・システムを含むネッ
トワークの図である。 第5図は、実際の監視証跡ファイルの構造を示す図であ
る。 第6図は、監視デーモン・プロセスの流れ図である。 第7図は、本発明のアーキテクチャ・ダイヤグラムであ
る。 笛2回

Claims (1)

  1. 【特許請求の範囲】  クライアント・ノードのクライアント処理システムが
    サーバ・ノードのサーバ処理システム中のファイルにア
    クセスすることのできるシステムにおける、上記クライ
    アント処理システム中の事象のオンライン監視を行ない
    、かつ上記サーバ処理システム中の上記事象の監視情報
    のオンライン圧縮を行なう分散式監視サブシステムであ
    って、上記クライアント処理システム中の所定の事象の
    組の生起をモニタし、かつ上記事象の生起に応答して監
    視レコードを作成する、上記クライアント処理システム
    中の監視デーモンと、 上記クライアント処理システムに関連する一時的記録フ
    ァイルを含む上記サーバ処理システム中のディレクトリ
    の遠隔仮想マウントを行なう、上記クライアント処理シ
    ステム中の分散サービス手段とを備え、 上記クライアント処理システム中の上記監視デーモンが
    、上記サーバ処理システム中の上記遠隔マウントされた
    ディレクトリ中の上記一時的記録ファイルに上記監視レ
    コードを書き込む手段を有し、上記クライアント処理シ
    ステム中の上記監視デーモンが、上記監視レコードを含
    む上記一時的記録ファイル中の1つの記録に対して動作
    し選択された記録を圧縮し圧縮された記録を上記サーバ
    処理システム中の上記遠隔マウントされたディレクトリ
    中の永久的監視記録に書き込むデータ圧縮手段を有する
    、 分散式監視サブシステム。
JP63316624A 1988-01-28 1988-12-16 分散式監視サブシステム Expired - Lifetime JPH0642215B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14934288A 1988-01-28 1988-01-28
US149342 1988-01-28

Publications (2)

Publication Number Publication Date
JPH01197859A true JPH01197859A (ja) 1989-08-09
JPH0642215B2 JPH0642215B2 (ja) 1994-06-01

Family

ID=22529852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63316624A Expired - Lifetime JPH0642215B2 (ja) 1988-01-28 1988-12-16 分散式監視サブシステム

Country Status (3)

Country Link
EP (1) EP0325777B1 (ja)
JP (1) JPH0642215B2 (ja)
DE (1) DE3889444T2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202893A (ja) * 1992-09-30 1994-07-22 American Teleph & Telegr Co <Att> フォールトトレラントコンピューティング装置
JPH07262135A (ja) * 1994-03-17 1995-10-13 Hitachi Ltd セキュリティ管理装置
JPH08137728A (ja) * 1994-09-14 1996-05-31 Toshiba Corp 携帯ファイルシステム及びファイルデータ処理方法
JPH09244939A (ja) * 1996-03-11 1997-09-19 Hitachi Ltd 分散データベースのデータアクセス方法及び装置
EP1123770A2 (en) * 2000-01-24 2001-08-16 Hitachi, Ltd. Friction stir joining mehtod
JP2009282772A (ja) * 2008-05-22 2009-12-03 Hitachi Ltd 監査証跡ファイル作成方法及びその実施装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062045A (en) * 1990-02-23 1991-10-29 International Business Machines Corporation System for maintaining a document and activity selective alterable document history log in a data processing system
US5544322A (en) * 1994-05-09 1996-08-06 International Business Machines Corporation System and method for policy-based inter-realm authentication within a distributed processing system
US6037944A (en) * 1996-11-07 2000-03-14 Natrificial Llc Method and apparatus for displaying a thought network from a thought's perspective
US6166739A (en) * 1996-11-07 2000-12-26 Natrificial, Llc Method and apparatus for organizing and processing information using a digital computer
WO1998020436A2 (en) * 1996-11-07 1998-05-14 Natrificial Llc Method and apparatus for organizing and processing information using a digital computer
DE69724946T2 (de) 1997-07-31 2004-08-12 Siemens Ag Programmvermietungssystem und Verfahren zur Vermietung von Programmen
GB2342472B (en) * 1998-10-09 2000-12-13 Sun Microsystems Inc Process monitoring in a computer system
EP1531383A3 (en) 1999-07-30 2005-07-27 Intertrust Technologies Corp. Methods and systems for transaction record delivery using thresholds and multi-stage protocol
GB0020441D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
US7062660B2 (en) 2001-08-06 2006-06-13 International Business Machines Corporation Method and apparatus for controlling the performance of a file system mount operation by a user lacking superuser authority
EP1490769B1 (en) 2002-03-26 2010-02-24 Nokia Siemens Networks Oy Method and apparatus for compressing log record information
US6931405B2 (en) 2002-04-15 2005-08-16 Microsoft Corporation Flexible subscription-based event notification
AT510246B1 (de) * 2009-08-07 2016-06-15 Frequentis Ag Verfahren und vorrichtung zur aufzeichnung der benutzerinteraktion
US10044758B2 (en) 2015-10-15 2018-08-07 International Business Machines Corporation Secure policy audit in shared enforcement environment

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202893A (ja) * 1992-09-30 1994-07-22 American Teleph & Telegr Co <Att> フォールトトレラントコンピューティング装置
JPH07262135A (ja) * 1994-03-17 1995-10-13 Hitachi Ltd セキュリティ管理装置
JPH08137728A (ja) * 1994-09-14 1996-05-31 Toshiba Corp 携帯ファイルシステム及びファイルデータ処理方法
JPH09244939A (ja) * 1996-03-11 1997-09-19 Hitachi Ltd 分散データベースのデータアクセス方法及び装置
EP1123770A2 (en) * 2000-01-24 2001-08-16 Hitachi, Ltd. Friction stir joining mehtod
EP1123770A3 (en) * 2000-01-24 2003-12-17 Hitachi, Ltd. Friction stir joining method
JP2009282772A (ja) * 2008-05-22 2009-12-03 Hitachi Ltd 監査証跡ファイル作成方法及びその実施装置

Also Published As

Publication number Publication date
EP0325777A2 (en) 1989-08-02
EP0325777B1 (en) 1994-05-04
EP0325777A3 (en) 1990-10-17
JPH0642215B2 (ja) 1994-06-01
DE3889444T2 (de) 1994-11-10
DE3889444D1 (de) 1994-06-09

Similar Documents

Publication Publication Date Title
US5032979A (en) Distributed security auditing subsystem for an operating system
JPH01197859A (ja) 分散式監視サブシステム
US9442952B2 (en) Metadata structures and related locking techniques to improve performance and scalability in a cluster file system
US9135257B2 (en) Technique for implementing seamless shortcuts in sharepoint
US9069955B2 (en) File system level data protection during potential security breach
US7529778B1 (en) System and method for providing access to consistent point-in-time file versions
US11809605B2 (en) Method and system for storage-based intrusion detection and recovery
JP4416821B2 (ja) ネットワーク上でクライアントからアクセス可能なファイルセットの名前空間を維持する分散ファイル・システム
Liang et al. Isolated program execution: An application transparent approach for executing untrusted programs
JP3754459B2 (ja) 並列仮想ファイルシステム
JP2003516582A (ja) スケーラブルな記憶アーキテクチャ
US11663086B2 (en) File system slicing in network attached storage for data protection
US7389303B2 (en) Method and system for supporting multiple independent transactional resource managers on a single logical volume
US11809281B2 (en) Metadata management for scaled and high density backup environments
JP2022544909A (ja) オンデマンドのファイル・システムのロックダウンおよび自動修復機能を伴う自動ランサムウェア検出
US7660790B1 (en) Method and apparatus for utilizing a file change log
US11500813B2 (en) Instant replay of a file to a cloud tier on a deduplication file system
US20220405305A1 (en) System and method for managing b tree node sharing using operation sequence numbers
Shaik et al. PostgreSQL architecture
US20240143815A1 (en) Version control system using content-based datasets and dataset snapshots
Sheldon Forensic analysis of Windows systems
Hancock Tru64 Unix file system administration handbook
Desai Integrating PeopleSoft 8.4 GL Batch with IBM DB2 UDB ESE V8. 1 (64 Bit) for AIX on IBM eServer pSeries p630 and Network Appliance™ FAS960 Enterprise Server
CN117407918A (zh) 一种基于旁路技术的数据中台安全机制的创建方法
US7107336B2 (en) Method and apparatus for enhanced server page execution