[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

11 機密保護上の注意事項

本章では,OpenVMSオペレーティング・システムで使用可能な機密保護機能を簡単に取り上げ, システムやクラスタへの侵入という脅威を減らすために取るべき処置と, アクセス制御リスト・エディタ(ACLエディタ)を使用した, 保護オブジェクトに対するアクセス制御リスト・エントリ(ACE) の作成および変更方法について説明します。機密保護管理についての詳細は, 『OpenVMS Guide to System Security』を参照してください。

本章の内容

本章では,次の作業について説明します。

作業 参照箇所
パスワードの管理 第11.2節
システム・パスワード辞書への登録 第11.2.1項
ブレークイン検出機構の使用 第11.3節
利用者識別コード(UIC) 第11.4.1 項
保護コード 第11.4.2項
ACL (アクセス制御リスト)の作成 第11.6節
ACL エディタの使用法 第11.8 節
機密保護関連イベントの記録 第11.9.1項

さらに,次の項目について説明します。

項目 参照箇所
機密保護管理 第11.1 節
パスワードの管理 第11.2節
オブジェクトの保護手段 第11.4節
ACL (アクセス制御リスト)の作成 第11.6節
監査ログファイルの解析 第11.10 節

上記の作業と概念についての詳細は,『OpenVMS Guide to System Security』を参照してください。

11.1 機密保護管理

日常的にシステムを管理する者として,システム管理者はシステム・セキュリティを守る重要な役割を担います。 システム管理者は,OpenVMSオペレーティング・ システムで使用可能な機密保護機能を熟知し,不正な操作によってシステムやユーザ, ファイルがダメージを受けることのないよう必要な保護手段を取る必要があります。 オペレーティング・システムによる効果的な機密保護手段を実現することによって, 知的財産としてのソフトウェアの盗用や不正なアクセスを防止することができます。 こうした手段はまた, 機器やソフトウェア,ファイルが不正な使用によってダメージを受けるのを防止する役目も果たします。

機密保護のレベルについて

たいていのシステムにおいて,機密保護上の問題は,責任体制が整っていなかったり, システムがプローブまたは侵入されたりといったことが原因で起こります。 どの程度まで機密保護の侵犯に耐えられるようにするかは, サイトで行われる作業内容により異なります。

環境上の問題

安全なシステム環境を実現することは,システムの機密保護を守る重要な鍵です。 サイトの機密保護の検討にあたっては,環境上の問題とオペレーティング・ システムの保護に重点を置くことをおすすめします。

オペレーティング・システムの保護

OpenVMSオペレーティング・システムでは,システム・セキュリティの管理を大きく次の3 つの分野に分けています。

次の節では,システムとその資源に対するアクセス制御手段について説明します。

11.2 パスワードの管理

平均的な機密保護を必要とするサイトでは,常にパスワードの入力が求められます。 機密保護が厳しいサイトでは,割り当てられたパスワードとシステム・ パスワードが必要とされる場合があります。また,最も機密保護が厳しいサイトでは, ネットワーク・アクセスを制御するために,機密保護管理者が第2 パスワードを採用することもあります。

外部認証(シングル・サインオンとも呼びます)についての詳細は,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』のAuthorizeに関する節と, 『OpenVMS Guide to System Security』のManaging System Accessに関する節を参照してください。

11.2.1 初期パスワード

AUTHORIZEユーティリティを使用して新規ユーザ用のアカウントを作成する場合は, ユーザにユーザ名と初期パスワードを割り当てる必要があります。 一時的に初期パスワードを割り当てる場合は,第11.2.5項で推奨しているすべてのガイドラインに従ってください。 その意味で,パスワードの割り当てにあたっては自動パスワード・ ジェネレータを利用することをおすすめします。分かりやすいパターンでパスワードを割り当てないことが大切です。

自動パスワード・ジェネレータの利用

AUTHORIZEユーティリティを使用して,アカウントを作成するときに自動パスワード・ ジェネレータを使用するためには,ADDまたはCOPYコマンドのいずれかに/GENERATE_PASSWORD 修飾子を指定する必要があります。この修飾子が指定されると, システムが自動生成したパスワードの一覧を表示するので, その中から適当なパスワードを選択し,アカウントの設定作業を継続します。

システム・パスワード辞書とパスワード履歴リストの利用

OpenVMSオペレーティング・システムは,新しいパスワードとシステム・ パスワード辞書の内容を自動的に比較し,パスワードがネイティブ言語以外の単語であるか調べます。 またシステムは,一人のユーザについて最新の60 個のパスワードを記録したパスワード履歴リストを管理しています。 新しいパスワードが割り当てられると,パスワード履歴リストの内容と比較して, 古いパスワードが再利用されていないか調べます。

システム・パスワード辞書は,SYS$LIBRARYに格納されています。システム・ パスワード辞書は,AUTHORIZEで/FLAGS修飾子にDISPWDDICかNODISPWDDIC オプションを指定することによって,検索を有効または無効にすることができます。 パスワード履歴リストはSYS$SYSTEMに格納されています。 履歴リストは,/FLAGS修飾子にDISPWDHISかNODISPWDHISオプションを指定することによって, 検索を有効または無効にすることができます。

システム・パスワード辞書への登録手順

システム・パスワード辞書は,サイトごとに変更することが可能です。ここでは, システム・パスワード辞書に対する単語の登録または削除を行う手順を紹介します。 この手順はまた,使用を避けたいパスワードのファイルを残す目的にも使用することができます。

  1. 辞書に登録したいパスワードからなるファイルを作成する。次に示すように, パスワードは一行に1つ記述し,小文字で入力する。
         $ CREATE LOCAL_PASSWORD_DICTIONARY.DATA
         somefamous
         localheroes
         <Ctrl/Z>
    

  2. SYSPRVを有効にして,ローカルの追加パスワードをマージする。
         $ SET PROCESS/PRIVILEGE=SYSPRV
         $ CONVERT/MERGE/PAD LOCAL_PASSWORD_DICTIONARY.DATA -
         _$ SYS$LIBRARY:VMS$PASSWORD_DICTIONARY.DATA
    

期限切れパスワードの定義

パスワードを期限切れと定義することができます。この定義は,UAFに新規ユーザを登録するときに,AUTHORIZE の/PWDEXPIRED修飾子を使用して行います。 この定義がなされている場合,ユーザは初めてログインしたとき初期パスワードを変更する必要があります。

期限切れパスワードは,UAFレコード・リストにおいて期限切れである旨がはっきりと示されます。 最新のパスワード変更日のエントリに,次の注記が付きます。

(pre-expired)

省略時の設定ではOpenVMSオペレーティング・システムは,新規ユーザの初めてのログインでパスワードの変更を強制します。 システムの機密保護を実現し促進するためには, サイトでトレーニング・プログラムを作成し, パスワードの頻繁な変更やその他の処置についてユーザ教育を行うことをおすすめします。

11.2.2 システム・パスワード

システム・パスワードは,権限なしのターミナルへのアクセスを制御するために使用します。 このようなターミナルを以下に示します。

システム・パスワードの実現は,DCLのSET TERMINALとSET PASSWORDコマンドを使用し,2 段階に分けて行います。最初に行うべきことは,システム・ パスワードを必要とするターミナルの特定です。そして次に,特定したターミナルの1 台1台に,DCLのSET TERMINAL/SYSPASSWORD/PERMANENTコマンドを入力します。 すべてのターミナルに対して,システム・パスワードを有効にするには, システム・パラメータTTY$DEFCHAR2で適切なビットを設定します。

11.2.3 第1パスワードと第2パスワード

二重パスワードというのは手間がかかりますが,高度な機密保護が求められるサイトでは重要なことです。 第2パスワードの有効性は,それを提供するスーパバイザの信頼性に完全に依存しています。 スーパバイザは簡単にパスワードを漏らしたり, さらに悪い場合は空文字列にすることができます。

第2パスワードの最大の利点は,DECnet for OpenVMSを介して簡単にアカウントにアクセスされるのを防止できる点です。

別の利点は,パスワードを変更した後で不審な侵入があり,強制的にパスワード・ ジェネレータを使用するような場合に,検出ツールとして使用できる点です。 問題のアカウントを選択し,そのアカウントを一時的に二重パスワードの対象にしてください。 第2パスワードを使って個人的な検査を行い, 問題がなくなった場合は,個人的な問題があったことが分かります。 最も考えられるのは,権限を持つユーザがアカウントのパスワードを, 他のユーザに明かしてしまっているケースです。第2パスワードの登録方法については, 『OpenVMS Guide to System Security』で詳しく説明しています。

11.2.4 最低限のパスワード基準の実施

機密保護管理者はAUTHORIZEを使用し,個々のユーザに最低限のパスワード基準を課すことができます。 これは具体的には,AUTHORIZEが提供する修飾子とログイン・ フラグを使用して,パスワードの最低の長さやパスワードの有効期限, 期限切れ時のパスワード変更の強制の有無を制御するものです。

パスワードの有効期限

AUTHORIZEの/PWDLIFETIME修飾子を使用して,パスワードの最大有効期限を設定することができます。 有効期限がくる前に,ユーザはパスワードを変更する必要があります。 変更しない場合は,パスワード変更の強制を受けるか, またはアカウントに対するアクセス権を失います。

パスワードの有効期限が設定されると,ユーザは定期的にパスワードの変更を求められます。 有効期限はユーザごとに変えることができます。一般的に, 重要なファイルに対するアクセス権を持つユーザには,最も短いパスワード有効期限を割り当てるべきです。

期限切れパスワードの変更の強制

ログイン時,省略時の設定ではユーザは,期限切れパスワードの変更を強制的に求められます。 すなわち,システムは,パスワードの期限が切れているユーザがログインすると, 新しいパスワードを入力するよう求めます。/PWDLIFETIME 修飾子を使用してパスワードの有効期限を変更しないかぎり, 有効期限は省略時の設定で90日になります。

最低パスワード長

AUTHORIZEの/PWDMINIMUM修飾子を使用して,パスワードの最少文字数を指定することができます。 パスワードの最大の長さは,この最低の長さの変更に関係なく31 文字です。

パスワード・ジェネレータの使用

AUTHORIZEで/FLAGS=GENPWD修飾子を指定することによって,パスワードを変更するときユーザが自動パスワード・ ジェネレータを使用するよう強制することができます。 この修飾子を使ってすべてのアカウントを作成することもできれば, もっと選択肢を広げることもできます。

11.2.5 パスワード保護に関するガイドライン

パスワードを保護するにあたっては,次のガイドラインに従ってください。

次に挙げる処置は厳密にはパスワードの保護には関係ありませんが,パスワードが発見される可能性を減らし, パスワードが盗まれたり,バイパスされたりしたときの損害の広がりを抑えるのに役立ちます。

11.2.6 パスワードの履歴

パスワード履歴データベースは,各ユーザ・アカウントに対応する以前のパスワードの履歴を保持しています。 省略時の設定では,システムはこの記録を1 年間保持します。システムのパスワード履歴の存在期間より古いパスワード履歴の記録は, 有効なパスワード選択と見なされます。ユーザ・ アカウントが削除されると,システムは,対応するパスワード履歴の記録を履歴データベースから削除します。

11.3 ブレークイン検出機構の使用法

この節では,ブレークインの検出および回避機構の設定方法と,ブレークイン・ データベースの内容の表示方法について説明します。

ダイアルアップ回線を介したリトライ回数の制御

ダイアルアップ回線を介してユーザが行うことが可能なログイン・リトライ回数を, 制御することができます。接続が確立されてから入力の間違いがあった場合, ユーザは自動的に切り離されます。このオプションは,権限を持つユーザであっても不正なログインのリトライ回数を制限したい場合に有用です。

リトライ回数を制御したい場合は,LGIシステム・パラメータ のLGI_RETRY_TMOとLGI_RETRY_LIMを使用します。省略時の設定では, ユーザは20秒間隔で3回のリトライが許されます。

ダイアルアップ回線を介したリトライ回数の制御は,機密保護プログラムの機能の一部にしかすぎず, これだけではシステムへの不法な侵入(ブレークイン) を防ぐには十分ではないことを覚えておいてください。しつこい侵入者がリダイアルのような方法を取れば, システム侵入の抑止にはなりません。 また,この方法はダイアルアップ回線にしか適用できません。

侵入をあきらめさせるその他の手段

OpenVMSオペレーティング・システムには,システムへの不法な侵入(ブレークイン) をあきらめさせる,その他の手段も用意されています。それらの方法は, 上記の機能と同じく,LGIカテゴリのシステム・パラメータを使用します。

パラメータ 説明
LGI_BRK_LIM ログイン失敗の回数(しきい値)を定義する。 ある時間内にログインに失敗した回数がLGI_BRK_LIM値を超えると, システムはブレークインが行われていると見なす。
LGI_BRK_TERM 失敗の回数を数えるとき, ターミナルとユーザ名の関連を制御する。
LGI_BRK_TMO ログインの失敗を検出し,記録するまでの時間を制御する。
LGI_HID_TIM 回避動作の時間を制御する。
LGI_BRK_DISUSER ブレークイン検出の効果をもっと厳しくする。 このパラメータが1に設定された場合,OpenVMSオペレーティング・ システムは侵入が試みられたアカウントのUAFレコードにDISUSER フラグをセットする。このため,手動で変更することがないかぎり, 侵入者と見なされたユーザは以降ログインできない。

これらのパラメータについては,『OpenVMS Guide to System Security』で詳しく説明しています。

侵入データベースの内容表示

機密保護サーバ・プロセスは,通常のオペレーティング・システムのスタートアップの一部として作成され, 次の操作を実行します。

システムは,失敗したログインを追跡するために侵入データベースを使用します。 プロセスのログインでこの情報を調査して,侵入の疑いのあるものがシステムにアクセスしないよう, 限定的な措置をとるかどうかを決定します。

DCLのSHOW INTRUSIONコマンドを使用すると,侵入データベースの内容を表示することができます。 また,DCLのDELETE/INTRUSION_RECORDコマンドを使用して, 侵入データベースのエントリを削除することができます。

ネットワーク代理データベース・ファイル(NET$PROXY.DAT)は,ネットワークの接続処理中に使用され, 特定の遠隔ユーザがパスワードを使わずにローカル・ アカウントにアクセスしてよいかどうかを判断します。

次の例は,SHOW INTRUSIONコマンドで,拡張された満了時刻フィールドが新しく出力されることを示しています。

     $ SHOW INTRUSION
     Intrusion       Type       Count        Expiration         Source
        NETWORK      SUSPECT       1   21-MAY-1998 12:41:01.07  DEC:.ZKO.TIDY::SYSTEM

11.4 オブジェクトの保護手段

OpenVMSオペレーティング・システムには,重要な2つの保護機構が用意されています。 1 つは,UIC (利用者識別コード)に基づいてすべての保護オブジェクトに適用される, UICに基づく保護機構です。

もう1つはACL (アクセス制御リスト)を使用した保護機構です。 これはUICに基づく保護よりもっと洗練されたレベルの保護を提供します。 ACL を使って,個別ユーザあるいはユーザ・グループ単位でアクセスを制御することができます。

11.4.1 利用者識別コード

利用者識別コードは,そのコードのユーザが属するシステム・グループと, そのグループ内でユーザを一意的に識別するコードです。

AUTHORIZEユーティリティは,システムの各ユーザ・プロセスに一意のUIC を割り当て,それを利用者登録ファイル(UAF)に記録します。こうしたUIC はまた,システムのあらゆるオブジェクトにも割り当てられます(通常はオブジェクトの作成者のUIC) 。

UICは,次の形式でグループとメンバーの2つの部分から構成されます。

[group,member]

UICは数字だけ,または英数字の両方で構成します。数値型のUICのグループ番号は8 進で0から37776,メンバー番号は8進で0から177776の範囲です。 グループ1およびグループ300から377までは,コンパックが予約しています。

11.4.2 保護コード

保護コードは,特定のユーザまたはグループについて許可を与えるかどうかのアクセスのタイプを制御します。 形式は次のとおりです。

[ユーザ・カテゴリ:許可アクセス・リスト(,カテゴリ:許可アクセス・ リスト,...)]

ユーザ・カテゴリ

ユーザ・カテゴリは,システム(S),所有者(O),グループ(G),ワールド(W) のいずれかです。各カテゴリは短縮して,対応する英字の先頭1文字で表すことができます。 それぞれのカテゴリの定義を次に示します。

複数のユーザ・カテゴリを指定する場合は,各カテゴリをコンマで区切り, コード全体を括弧で囲みます。ユーザ・カテゴリとアクセス・タイプは, 任意の順序で指定できます。

アクセス・タイプにヌルを指定した場合はアクセス権なしを意味します。 そのため,ユーザ・カテゴリにアクセス・タイプを指定しなかった場合, そのカテゴリのユーザには,そのタイプのアクセス権が付与されません。 特定のユーザ・グループについてアクセス権をまったく付与しない場合は, アクセス・タイプを何も指定せずにユーザ・カテゴリだけ指定します。 またこの場合,ユーザ・カテゴリの後のコロンを省略します。

保護コードにユーザ・カテゴリを指定しなかった場合は,そのカテゴリに現在付与されているアクセス権がそのまま適用されます。

アクセス・リスト

アクセスのタイプはオブジェクトによって決まります(『OpenVMS Guide to System Security』を参照)。ファイルに対するアクセス権には,読み込み(R) ,書き込み(W),実行(E),削除(D)があります。各ユーザ・カテゴリと割り当てられたユーザ・ カテゴリはコロン(:)で区切ります。

次の保護コードでは,システム・ユーザにオブジェクトに対するすべてのアクセス権, 所有者に削除以外のすべてのアクセス権を付与していますが, グループとワールド・ユーザにはアクセス権を付与していません。

     $ SET SECURITY/PROTECTION=(S:RWED,O:RWE,G,W) [JONES]MY_FILE.TXT

省略時の保護コードの変更方法

OpenVMSオペレーティング・システムは,各プロセスに省略時のUICに基づく保護コードとして(S:RWED,O:RWED,G:RE,W) を割り当てます。この省略時の保護コードを変更したい場合は, SET PROTECTION/DEFAULT コマンドを使用します。 次に例を参照してください。

     $ SET PROTECTION=(S:RWED,O:RWED,G:RE,W:RE)/DEFAULT

11.5 クラスタ間通信機密保護オブジェクトの作成

OpenVMSはSYS$MANAGER:ICC$SYSTARTUP.COMを提供します。このコマンド・ プロシージャによって,ICC機密保護オブジェクトと他のレジストリ・テーブルを追加して,ICC 特性をカスタマイズできます。

ICC$CREATE_SECURITY_OBJECTプロシージャは, パーマネントICC機密保護オブジェクトを作成し, オプションでそのオブジェクトに 最初のSET SECURITYコマンドを発行します。node::associationを指定すると, ある関連が存在する前にその関連に対する機密保護オブジェクトが作成されます。 例えば,MYNODE::BOB_SERVERを指定します。特殊ノード名ICC$ を使用すると,ICCクラスタ単位レジストリにある 1つのエントリに対して機密保護オブジェクトが1 つ作成されます。

ICCで関連を作成する前に,node::associationペアには OPEN機密保護属性が必要になります。ICC$CREATE_SECURITY_OBJECT で作成される機密保護オブジェクトは, システムが再ブートするまで削除されません。

関連を結びつける機能は,機密保護オブジェクトの ACCESS機密保護属性によって制御されます。

ICCを使用するすべてのプロセスは,関連をオープンする必要があります。 SYSNAM 特権を持っている場合, ICC$CREATE_SECURITY_OBJECTを呼び出さずに関連をオープンすることはできますが, そのオブジェクトはパーマネントではなりません。 特権は要求されないので,誰でもICC$ pid* (例: ICC$20203F9A_FOO)という名前のアクセスを作成することができます。

ICC$CREATE_SECURITY_OBJECTは,特殊ノード名ICC$を使用して,ICCクラスタ単位レジストリに名前を作成することを規定するためにも使用できます。 レジストリに名前を作成するときには,機密保護アクセス属性 OPEN とCONTROLを使用します。

次に示す例は,ICC$SYSSTARTUP.COMコマンド・プロシージャを含んでいます。

11.5.1 ICCスタートアップ・コマンドの例

 $! Copyright (c) 1998 Compaq Computer Corporation.  All rights
 reserved.
 $!
 $!    ICC$SYSTARTUP.COM -- ICC Startup Commands Specific to Site
 $!
 $!    Use this command procedure to customize the ICC characteristics for
 $!    the local node.  The default setup in ICC$STARTUP has already been
 $!    done when ICC$SYSTARTUP is called.  Refer to ICC$SYSTARTUP.TEMPLATE
 $!    to see the original state of this file prior to local editing.
 $!
 $!    Remove this comment and the following line (exit) to activate this
 $!    procedure after changing the example code to be relevant to your site.
 $ exit
 $!
 $!    Most of the customization will consist of calls to
 $!              @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT
 $!    and
 $!              @SYS$MANAGER:ICC$ADD_REGISTRY_TABLE
 $!
 $!    We think very few installations will need to add extra registry tables.
 $!    This example only shows setup for security objects.
 $!
 $!    We set two servers up.  User BOB may start BOB_SERVER on any node in
 $!    the cluster.  Initially no other users may access (connect to) his
 $!    server, but since he is the owner of the security object, he may
 $!    add ACLs of his own as and if he wishes.
 $!
 $!    User BILL may start up to three copies of BILL_SERVER on the major
 $!    nodes in the cluster, but only one copy on NODE3 and none on NODE4.
 $!    The system owns his security object, and in this example, we did not
 $!    give him control access (the ability to issue SET SECURITY commands)
 $!    to the object.  All users are allowed to access (connect to) it.
 $!
 $!    Both users are allowed to create Clusterwide Registry entries for
 $!    their service.  In this example, the system owns these objects.
 $!    Note that for registry entires, only "OPEN" access is relevant;
 $!    all users may look associations up in the registry subject to
 $!    the registry table protection; actual access to the server is
 $!    controlled by the server's, not the association's, security object.
 $!    Also note that in a running cluster, the security object table
 $!    for registry entries (ICC$::) is not reinitialized, and calls to
 $!    CREATE_SECURITY_OBJECT fail "gracefully" with SS$_DUPLNAM without
 $!    doing any modifications to the security profile.
 $!
 $!    We also give both server users WRITE access to the clusterwide
 $!    logical table ICC$REGISTRY_TABLE to allow their registry entries
 $!    to be created when servers start up.  (Registry entries are EXEC
 $!    mode, and cannot be directly manipulated by non-privileged users,
 $!    even when they have write access to the table.)
 $!
 $ set noon
 $ required_privileges = "SYSNAM"
 $ prev_privs = f$setprv(required_privileges)
 $ if .not. f$privilege(required_privileges) then goto no_privileges
 $!
 $! ---------------------  Get Local Node Name ------------------------
 $!
 $ nodename=f$edit(f$getsyi("scsnode"),"trim")
 $ if nodename .eqs. "" then nodename = "LOCAL" ! no name
 assigned to node
 $!
 $! ---------------------  Do work required on all nodes
 -------------------
 $!
 $! Place in here calls to @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT and
 $! @SYS$MANAGER:ICC$ADD_REGISTRY_TABLE that apply to all nodes in the
 $! cluster.
 $!
 $  @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT 'nodename'::BOB_SERVER -
  "/owner=BOB/prot=(group,world)"
 $!
 $  @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT ICC$::BOB_SERVICE -
  "/acl=(id=BOB,access=open)"
 $  set security/class=logical_name_table icc$registry_table -
          /acl=(id=BOB,access=read+write)
 $!
 $  @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT ICC$::BILL_SERVICE -
  "/acl=(id=BILL,access=open)"
 $  set security/class=logical_name_table icc$registry_table -
          /acl=(id=BILL,access=read+write)
 $!
 $! ---------------------  List Nodes with Special Actions
 -------------------
 $!
 $ nodeactions = "/NODE1/NODE2/NODE3/NODE4/"
 $ if f$locate("/"+nodename+"/",nodeactions) .eq. f$length(nodeactions)
 -
  then goto exit ! No action for this node
 $ goto 'nodename' ! Go to action code for this node
 $!
 $! --------------------  Major Nodes ----------------------
 $NODE1:
 $NODE2:
 $!
 $! Place in here calls to @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT and
 $! @SYS$MANAGER:ICC$ADD_REGISTRY_TABLE that apply to major nodes in the
 $! cluster
 $!
 $  @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT 'nodename'::BILL_SERVER1 -
  "/acl=(id=BILL,access=open+access)"
 $  @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT 'nodename'::BILL_SERVER2 -
  "/acl=(id=BILL,access=open+access)"
 $  @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT 'nodename'::BILL_SERVER3 -
  "/acl=(id=BILL,access=open+access)"
 $!
 $  GOTO EXIT
 $!
 $! -------------------------  Other Nodes
 -----------------------------
 $!
 $NODE3:
 $!
 $! Place in here calls to @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT and
 $! @SYS$MANAGER:ICC$ADD_REGISTRY_TABLE that apply to other nodes.
 $!
 $  @SYS$MANAGER:ICC$CREATE_SECURITY_OBJECT 'nodename'::BILL_SERVER1 -
  "/acl=(id=BILL,access=open+access)"
 $!
 $  GOTO EXIT
 $!
 $NODE4:
 $!
 $  GOTO EXIT
 $!
 $!
 $exit:
 $ prev_privs = f$setprv(prev_privs)
 $ exit
 $!
 $no_privileges:
 $ write sys$output "Insufficient privileges to execute ICC setup
 commands."
 $ write sys$output "Requires ",required_privileges," privileges."
 $ goto exit

11.6 ACL (アクセス制御リスト)の作成

たいていの会話型ユーザ・アカウントの保護は,省略時のUICに基づく保護で十分です。 ただし,プロジェクト・アカウントのような場合には, ACL (アクセス制御リスト)を使って,さらに細かい保護が必要になることがあります。ACL に基づく保護機構は,複数のグループ, または複数のグループに属するメンバーが共通にアクセスするアカウントに対して, より洗練されたレベルの保護を提供します。

11.6.1 ACLエントリの種類

アクセス制御リストは,オブジェクトの属性を定義する,ACE (アクセス制御エントリ) と呼ばれるエントリのリストです。

次のACEが使用可能です。

ACE 説明
識別ACE ユーザの識別情報に基づいて,特定のユーザに許可するアクセスのタイプを制御する。 各識別ACEは,少なくとも1つのライト識別情報と, その情報を保持するユーザに許されるアクセス・タイプのリストから構成される。 識別情報については,第11.6.2 項を参照すること。

たとえば,次のACEはユーザ"Jones"にオブジェクトに対する読み込み,書き込み, および実行のアクセス権を付与している。

     (IDENTIFIER=[ACCOUNTING,JONES],ACCESS=READ+WRITE+EXECUTE)
省略時の
保護ACE
特定のディレクトリとそのサブディレクトリ内に作成されたすべてのファイルに割り当てる保護コードを指定することができる。

たとえば次のACEでは,ディレクトリに新たに作成されたファイルに対し, システムと所有者カテゴリのユーザにはすべてのアクセス権,グループ・ ユーザには読み込みおよび実行のアクセス権を付与し,ワールド・カテゴリのユーザにはアクセス権を付与しない。

     (DEFAULT_PROTECTION,S:RWED,O:RWED,G:RE,W:)
作成ACE 作成ACEを割り当てたディレクトリ内で作成されたファイルのACLに新しいACEを追加する。 作成ACEは,ファイルを作成するプロセスの利用者識別コード(UIC)が,作成されるファイルを所有しない場合に適用される。 たとえば,ディレクトリが資源識別子によって所有されている場合には, このACEが適用される。

次の例では,このディレクトリ内でファイルを作成したユーザに,そのファイルに対する読み込み, 書き込み,実行,削除アクセス権を付与するよう指定している。

     (CREATOR,ACCESS=READ+WRITE+EXECUTE+DELETE)

作成ACEが使用できるのは,ディレクトリ内のファイルのみ。

機密保護
アラームACE
オブジェクトが特定の方法でアクセスされたとき, オペレータのターミナルに機密保護アラーム・ メッセージを送るよう指示することができる。

たとえば,次のACEでは,特定のファイルが正しく読み取られると,必ずアラーム・ メッセージが出される。

     (ALARM=SECURITY,ACCESS=SUCCESS+READ)

機密保護アラームACEが働くためには,次のコマンドで有効にしておくことが必要。

     $ SET AUDIT/ALARM/ENABLE=(ACL)
機密保護
監査ACE
オブジェクトが特定の方法でアクセスされたとき,システム・セキュリティ監査ログ・ ファイルに機密保護アラーム・メッセージを送るアクセス基準を指定する。

たとえば,次のACEでは,特定のファイルが正しく読み取られると,必ずアラーム・ メッセージが出される。

     (AUDIT=SECURITY,ACCESS=SUCCESS+READ)

メッセージが記録されるのは,DCLのSET AUDIT/AUDIT/ENABLE=ACL コマンドで,ACL 監査が有効になっている場合のみ。

サブシステム
ACE
サブシステムACEが適用されるイメージを実行しているプロセスに新しい識別子を追加する。 イメージに対して実行アクセス権を持つユーザは, データ・ファイルやプリンタなど保護されたサブシステム内のオブジェクトにアクセスできる。 しかし,サブシステム・ イメージが実行されていない場合は,アクセスできない。サブシステムACE が使用できるのは,実行可能イメージのみ。

次の例では,特定のサブシステム・イメージを実行しているプロセスに, 識別子ACCOUNTINGを追加している。この識別子によって,プロセスはサブシステムによって所有されるオブジェクトにアクセスできる。

     (SUBSYSTEM, IDENTIFIER=ACCOUNTING)

これらのACEについての詳細は『OpenVMSシステム管理ユーティリティ・リファレンス・ マニュアル』を,またACEの作成および適用方法についての詳細は『OpenVMS Guide to System Security』を参照してください。

11.6.2 識別子の種類

識別ACEに設定可能な識別子は,いくつかの種類に分類されます。識別子は1 文字から31文字の長さの英数字文字列で構成し,少なくとも1字は英字にします。 使用可能な文字は0から9の数字とAからZの英字,そしてドル記号($) とアンダスコア(_)です。識別子の種類を次の表に示します。

タイプ 説明
UIC識別子 UIC (利用者識別コード)に基づく情報であり,システムのユーザを特定して, そのユーザが属するグループを定義する。 [GROUP1,JONES]
[JONES]
GROUP1
JONES
一般識別子 機密保護管理者が定義する情報。 SALES
RESERVE_DESK
環境識別子 ユーザが初めてシステムにログインしたときの情報に基づいてユーザを分類した情報であり, システムが自動的に作成する。 BATCH, NETWORK
INTERACTIVE
LOCAL, DIALUP
REMOTE
機能識別子 インストール中の機能で定義する。 RDB$ENTRY

SYS$SYSTEMのSTARTUP.COMシステム・スタートアップ・プロシージャは, 環境識別子の他,SYS$NODE_ノード名の形式でシステム・ノード識別子も作成します。

11.7 ACLの割り当て

ACLを作成可能なオブジェクトは次のとおりです。


権限
共通イベント・フラグ・クラスタ
装置
ファイル
グループ・グローバル・セクション
論理名テーブル
キュー
資源ドメイン
セキュリティ・クラス
システム・グローバル・セクション
ボリューム

一般的にACLは,全員ではなく一部ユーザについてのみオブジェクトのアクセス権を付与したい場合, あるいは特定の特権を持たないユーザについてアクセス権を拒否したい場合に使用します。ACL を持つオブジェクトに対するアクセス要求を受け取ったオペレーティング・ システムは,ACLを検索し, 最初に一致したアクセス制御リスト・エントリを見つけた時点で検索を止めます。 つまり,他に一致するエントリがACLにあったとしても意味はありません。 そのため,特定のユーザについて,システム・オブジェクトへのアクセスの許可または不許可を設定するACE は,ACL内のより広い範囲のユーザを表すACE より前に指定するようにしてください。

11.8 ACLエディタの使用法

アクセス制御リスト・エディタ(ACLエディタ)は,ACLの作成と編集に使用するスクリーン・ エディタです。システム・オブジェクトにACLを定義したり, 既存のACLを編集したりする場合に使用してください。

ACLエディタは,EDIT/ACLコマンドまたはSET SECURITY/EDITコマンドで起動します。 コマンド行には,作成または変更したいACLのオブジェクト名を指定します。 たとえば,INVENTORY.DATというファイルのACLを作成するときは, 次のコマンドを使用します。

     $ EDIT/ACL INVENTORY.DAT

作成または変更するACLの対象であるオブジェクトがファイルでない場合は, /CLASS 修飾子を使ってオブジェクトのタイプを指定する必要があります。 たとえば,ディスクDOCD$:のACLを作成する場合は,次のコマンドを使用します。

     $ EDIT/ACL/CLASS=DEVICE DOCD$

ACLエディタを起動して,既存のACLを変更したり,オブジェクトに新しいACL を作成することができます。オブジェクトにACLがすでに作成されている場合は,ACL エディタを起動すると画面にそのACLが表示されます。

ACLエディタは,OpenVMS共通言語で作成されたプログラムの内部から起動することもできます。 ただし,そうしたプログラムはOpenVMS呼び出し基準に基づいて呼び出しを行う必要があります。ACL エディタの呼び出しインタフェースの使用法については, 『OpenVMS Utility Routines Manual』を参照してください。

11.8.1 識別ACEの登録

識別ACEは,特定のユーザまたはグループに許可するアクセス・タイプを制御します。 形式は次のとおりです。

(IDENTIFIER=識別子[,オプション][,アクセス])

たとえば次のACEは,UIC識別子[SALES,PAT]で表されるユーザPatにファイルに対する読み込み, 書き込み,および実行のアクセス権のみ付与しています。 削除または制御のアクセス権が指定されていないため,Patがそれらのアクセス権を持つことはありません。

     (IDENTIFIER=[SALES,PAT],ACCESS=READ+WRITE+EXECUTE)

識別ACEの省略時の属性を使って,特定のディレクトリに新たに作成されるファイルのACL に取り込む省略時のACEを定義することができます。たとえば,PERSONNEL という識別子を持つユーザに読み込みおよび書き込みのアクセス権を許可するACE が,[MALCOLM]というディレクトリのすべてのファイルに設定されるようにしたい場合は,MALCOLM.DIR ファイルのACLに次のACE を記入しておきます。

     (IDENTIFIER=PERSONNEL,OPTIONS=DEFAULT,ACCESS=READ+WRITE)

このACE指定があると,[MALCOLM]ディレクトリに作成されるすべてのファイルが次のACE を持ちます。

     (IDENTIFIER=PERSONNEL,ACCESS=READ+WRITE)

識別ACEの省略時の属性とACL処理時の省略時属性の働きについては, 『OpenVMS Guide to System Security』にさらに詳しい説明があります。

11.8.2 省略時の保護コードの設定

省略時の保護ACEは,ディレクトリとそのサブディレクトリに新たに作成されるすべてのファイルに対する保護コードを設定するエントリです。 ファイルの以前のバージョンが存在する場合, このACEは適用されず,以前のファイルの保護が使用されます。 このACEの形式は次のとおりです。

(DEFAULT_PROTECTION[,オプション],保護コード)

たとえば次のACEは,システムと所有者カテゴリのユーザには,ディレクトリに新たに作成されるファイルに対する読み込み, 書き込み,実行,削除のアクセス権を付与し, グループとワールド・ユーザにはアクセス権を付与しないよう指示しています。

     (DEFAULT_PROTECTION,S:RWED,O:RWED,G,W)


注意
省略時の保護ACEはサブディレクトリには適用されません。ACE が親ディレクトリに適用された後で作成されたサブディレクトリには適用されます。

11.8.3 機密保護アラームおよび監査の生成

機密保護ACEを使用して,保護されているオブジェクトに対して,特定のタイプのアクセスが行われたとき, イベント・メッセージを送るよう指示することができます。 機密保護アラームACEは,イベント・メッセージをセキュリティ・ オペレータのターミナルに送信し,機密保護監査ACEはそのイベント・ メッセージをシステム・セキュリティ監査ログ・ファイルに送信します。

このACEの使用方法についての詳細は,『OpenVMS Guide to System Security』を参照してください。

11.9 機密保護関連イベントの記録

システム管理者は,機密保護関連イベント・メッセージの通知先を選択することができます。 アラーム・メッセージはオペレータのターミナルに, 監査メッセージはシステム・セキュリティ監査ログ・ファイルにそれぞれ送信されます。 また,アラーム,監査,およびその両方として報告されるイベントを選択することができます。

11.9.1 機密保護アラーム対象とするイベント・ クラスの指定

OpenVMSオペレーティング・システムは,表 18-6 にあるようなイベントを自動的に監視します。

また,DCLのSET AUDITコマンドの/ENABLE修飾子で表 11-1 に示すようなキーワードを指定すると, 他のクラスのイベントを監視することができます。

表 11-1 OpenVMSが報告するイベント・クラス

イベント・クラス 説明
Access あるクラスのすべてのオブジェクトに対するアクセス・ イベント。特定のクラスのすべての保護オブジェクトに対するアクセスを, 特権の有無にかかわらず選択して監視することができる。
ACL オブジェクトのアクセス制御リスト(ACL)の機密保護監査ACEまたは機密保護アラームACE によって要求されるイベント。
Authorization SYSUAF.DAT, NETPROXY.DAT,NET$PROXY.DATまたはRIGHTSLIST.DATの変更。
Breakin ブレークイン。
Connection SYSMAN,DECnet for OpenVMS Phase IV,DECwindows製品,またはプロセス間通信(IPC)呼び出しによる論理リンクの接続または切断。
Create 保護オブジェクトの作成。
Deaccess 保護オブジェクトへのアクセス解除。
Delete 保護オブジェクトの削除。
Identifier 特権としての識別子の使用。
Install INSTALLユーティリティによる既知のファイル・リストの変更。
Logfailure ログインの失敗。
Login 正常なログイン。
Logout ログアウト。
Mount ボリュームのマウントおよびディスマウント。
NCP ネットワーク制御プログラム(NCP)によるネットワーク環境設定データベースの変更。
Privilege 正常または異常な特権の使用。
Process プロセス制御システム・ サービスの使用。
SYSGEN SYSGENまたはAUTOGENユーティリティによるシステム・ パラメータの変更。
Time システム時間の変更。

SET AUDITコマンドについての詳細は,『OpenVMS DCLディクショナリ』を参照してください。

11.10 監査ログファイルの解析

システム管理者およびサイトの機密保護管理者は,ANALYZE/AUDITユーティリティを使用して, 機密保護監査ログ・ファイルに含まれる情報を選択的に抽出および表示することができます。 このユーティリティには, 各種監査レポート形式や,レポートに出力するイベントの基準を選択するための修飾子が用意されています。ANALYZE/AUDIT の使用法については, 『OpenVMS Guide to System Security』を参照してください。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]