6    システムとそのデータの管理

この章では,システム管理者が OpenVMS オペレーティング・システムのセキュリティ機能を実装する方法を説明します。平均的なセキュリティが必要とされる商用システムのセキュリティの要件に基づいて,セキュリティ管理の概要について説明します。次のトピックについて説明します。

セキュリティ対策を確立する前に,この章の全体と,その後の 3 つの章を読んでおくことをお勧めします。これらの章を読んでおけば,サイトに適したセキュリティ対策をより的確に判断できるようになります。また,セキュリティ対策を実装するための道具も手に入れることになります。

6.1    セキュリティ管理者の役割

セキュリティ管理者の役割は,組織のセキュリティ・ポリシーを実装し,維持することです。組織の中には,セキュリティ・ポリシーの策定にセキュリティ管理者を参加させるところもあれば,確立されたポリシーの実装と維持をセキュリティ管理者に任せるものもあります。企業のセキュリティ・ポリシーの例については,6.2 節を参照してください。

セキュリティ管理者 (または担当者) の仕事は,セキュリティ・ポリシーが実装され,維持されていることの確認です。発生しうるセキュリティ違反や脆弱性が生じていないか,定期的にシステムを監視する仕事は必須です。問題を発見したら,必ず問題を是正する必要があります。

多くの場合,組織はコンピュータ管理者の義務を分割します。セキュリティ管理者はシステムを監視し,問題を報告します。システム管理者はポリシーを実装し,システムを管理します。このような管理構造において,セキュリティ管理者はシステム管理者と連携します。システム管理者は,ユーザ・アカウントを設定し,アカウントの必要性の証明に必要なペーパーワークを処理するために,アカウント担当者を採用する場合もあります。この担当者は必ず,本質的には共同システム管理者の役割を担う,信頼性の高い人物でなければなりません。仕事を分担することになるため,システム管理者とセキュリティ管理者が定期的に連絡を取ることが非常に重要です。セキュリティ管理者は,問題が是正されるように,ユーザや,必要に応じてシステム管理者やアカウント担当者にセキュリティ問題を報告する必要があります。

多くの OpenVMS 使用サイトに共通する仕事の分担のもう 1 つの形態に,セキュリティ管理者とシステム管理者の役割の統合があります。1 人の人物がセキュリティ・ポリシーを実装し,その要件を満たすようにシステムを維持します。

信頼性の高いシステム管理は,編成にバリエーションはあっても,必ずユーザのトレーニング,アカウントとパスワードの設定,重要なシステム・ファイルとリソースの保護,セキュリティ関連イベントの監査と分析が含まれます。システムの使用形態を把握し,「平常時の」システムの活動を把握することが,信頼性の高い管理にとって非常に重要です。

6.2    サイトのセキュリティ・ポリシー

組織の幹部は,通常,従業員向けの簡潔なセキュリティ・ポリシーを策定して,組織が従業員に期待する行為を強調します。たとえば,そのようなポリシーでは,従業員による企業データの持ち出しやパスワードの共有を禁じます。

部局やコンピュータ・サイトの管理者は,それに基づいて詳細なセキュリティ・ポリシーを策定します。セキュリティ・ポリシーとは,パスワードとシステム・アカウントの使用,コンピュータ・システム,通信デバイス,およびコンピュータ・ターミナルへの物理的なアクセス,および監査対象となるセキュリティ関連イベントの種類に関する,明文化された一連のガイドラインです。これらのセキュリティ・ガイドラインには,特定のオペレーティング・システム環境に適用される,より詳細な規定が補足される場合があります。

最終的にセキュリティ・ポリシーの複雑度は,部局のセキュリティ要件が高,中,低のいずれであるかに依存します。第 1 章に,組織がそのニーズを把握するのに役立つ,一連の質問があります。

たとえば,多くのサイトのセキュリティ・ポリシーでは,どの従業員が個々のシステムにアクセスできるか,および例外的な作業や開発を行う担当者に使用可能なアクセスの種類を定義しています。場合によっては,ポリシーには,システム・アクセスを決定する一連の複雑なルールがある場合があります。表 6-1 に,ある部局によって策定されたポリシーを示します。

表 6-1:  サイトのセキュリティ・ポリシーの例

セキュリティ領域 サイトの要件

パスワード

パスワード変更のスケジュール。

 

最短のパスワードの長さと有効期限を制御するプロセス。

 

システム・パスワード変更のスケジュールです。

アカウント

必要理由,要求者,要求者の上司,システム管理者,またはアカウント設定の担当者の署名など,コンピュータ・システムのアカウントを付与する手順。アカウントは共有できません。

 

従業員の異動や退職などに伴う組織の変化により,アカウントを無効にする手順。

 

通常は 6 〜 12 ヶ月ごとにアカウントを再認定するための予定表。

 

定期的には使用されていないカウントを無効にする指示。

 

アクセスの期間。

 

アカウントの有効期限のための予定表。

 

厳密に割り当てを制御する権限を要求する手順。

 

通常のシステム処理を行う特権ユーザが,非特権アカウントを使用する要件。

 

アクティブでないアカウントを確認するスケジュール。

 

承認されたセキュリティ・ツールのリスト。

監査対象セキュリティ・イベント

一部またはすべてのログイン元からのログイン。

 

登録ファイル・レコードへの変更。

 

特権アクションおよびシステム管理アクションのその他の使用。

 

インストール・ユーティリティを介した既知のファイル・リストの変更。

 

ネットワーク制御プログラム (NCP) を使用した,ネットワーク構成データベースの変更。

コンピュータ・ルームへの 物理的なアクセス

アクセスの理由を含む,認証された担当者の明文化されたリスト。通常,1 名がこのリストを最新の状態に維持する責任があります。

 

訪問者の安全な領域へのログの保管。

 

ドアの施錠管理と,鍵,キー・カード,およびそれらの組み合わせを割り当てるための文書化された手順。これらのアクセス制御は,定期的に,および従業員の異動または退職時に変更されます。

コンピュータ・ルームの外部にあるターミナルやパーソナル・コンピュータへの物理的なアクセス

一定期間使用されていないターミナルをログアウトするプログラムの使用。

 

(コンピュータ担当者以外の) 組織向けのセキュリティ意識向上プログラム。次のテーマを扱います。

  • 認定済みソフトウェアのリストの維持。

  • コンピュータ・システム,ネットワーク・パスワードなどのシステム・アカウント情報に関連するハードコピー情報の卓上からの排除。

  • ディスクおよびファイル・キャビネットの施錠。

  • ワークステーション内またはワークステーション周辺でのディスケットのアクセス防止。

  • キーを人目に付く場所に置くことの禁止。

ダイアルアップ番号

認定ユーザのリスト。

 

番号を定期的に変更するためのスケジュール,および番号の変更をユーザに通知するための手順。

 

ダイアルアップ番号の公開を最小限にするポリシー。

 

定期的なパスワード変更,およびアクセス権を持つ従業員が退職した際のパスワード変更に関するポリシー。

 

モデムまたはターミナル・サーバにおけるパスワード,またはホスト・ダイアルアップ・ポートにおけるシステム・パスワードの保護。

 

以下の内容に関して使用可能なドキュメント。

  • ダイアル・バック・システム

  • ネットワークに関する詳細

  • インストールされているターミナル装置

  • ターミナル切り替えシステム

  • ネットワークに接続されているすべてのターミナル・デバイスに関する詳細

  • すべてのダイアルアップ装置に関する詳細

通信

TCP/IP,LAT,またはイーサネット接続を介してパスワードを使用している場合の,特権アカウントへのアクセス拒否。

 

特権アカウントへのネットワーク・ログイン用の認証カードの使用。

6.3    安全なシステムを設定するためのツール

以降の章では,セキュリティ・ポリシーに従って安全なシステムを設定する方法について説明します。登録ユーティリティ (AUTHORIZE) が,システム・セキュリティを実装するための主要なツールです。AUTHORIZE は,『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』で詳しく説明しています。システム・パラメータ・ファイルの変更に使用する AUTOGEN コマンド・プロシージャは,『OpenVMS システム管理者マニュアル』および『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』で説明しています。また,多くの DCL コマンドも重要なセキュリティ・ツールです。DCL コマンドは,『OpenVMS DCL ディクショナリ』で説明しています。

6.4    セキュリティ管理者のアカウント要件

セキュリティ管理者には,そのタスクを実行する特権を備えたアカウントが必要です。

セキュリティ違反と,発生しうる脆弱性を確認する管理者には,少なくとも次の 3 つの特権が必要です。

多くの場合,セキュリティ管理者は,セキュリティ管理者とシステム管理者の両方を務めます。このユーザには,特権の完全なセットが必要です。『OpenVMS システム管理者マニュアル』で,システム管理カウントに必要な特性を説明しています。

例 6-1 に,セキュリティ管理者のカウントに適した AUTHORIZE 修飾子をいくつか示します。指定のない値のデフォルト値はすべて,SYSUAF.DAT のデフォルト・レコードに基づく値になります。

例 6-1:  セキュリティ管理者のアカウントの例


$ SET DEFAULT SYS$SYSTEM

$ RUN AUTHORIZE

UAF> ADD RIRONWOOD/PASSWORD=VALTERSY/UIC=[001,100] -

_UAF> /DEVICE=SYS$SYSDEVICE/DIRECTORY=[RIRONWOOD] -

_UAF> /OWNER="Russ Ironwood"/ACCOUNT=SECURITY/FLAGS=GENPWD -    [1]
_UAF> /PWDLIFETIME=30-/PWDMINIMUM=8 -                           [2]
_UAF> /PRIVILEGES=(AUDIT,SECURITY,READALL)                      [3]
identifier for value:[000001,000100] added to RIGHTSLIST.DAT
UAF>
 

次の点に注意してください。

  1. パスワードの変更には,自動パスワード・ジェネレータを使用する必要があること。

  2. パスワードの有効期間を短くすること。

    多くの重要な特権とアクセス権が与えられるため,アカウントの保護には,対策 1 および 2 は重要です。

  3. SECURITY,AUDIT,および READALL 特権によって,システムの監視が可能になりますが,変更はできません。システム管理者の作業を行う場合には,SYSPRV 特権を持つアカウントが必要です。SYSPRV 特権によって,システム保護フィールドにより保護されたオブジェクトにアクセスし,所有者 UIC および保護を変更することが可能になります。オブジェクトの保護を変更して,そのオブジェクトへのアクセス権を取得することができます。

6.5    新規ユーザのトレーニング

新規ユーザにシステム・セキュリティについて教えることは,重要なセキュリティ保護手段になります。ユーザにセキュリティの手法と目標を認識させることが重要です。ユーザがシステムと侵入発生の仕組みに対する理解を深めれば,ユーザは侵入に対する防御力が向上します。

ユーザのトレーニングには,次の内容が必要です。

6.6    ユーザのセッションのログ取得

ユーザがシステムを学習している間,機密データへのアクセスやシステム運用の制御など,ユーザが特に機密性の高い機能を実行する場合,セキュリティ管理者はターミナル・セッションを監視することができます。場合によっては,ユーザは自分の操作を記録するために,自分自身のセッションのログ取得を選択できます。その場合,最初にログインした後で,ユーザは SET HOST 0/LOG コマンドを会話形式で実行できます。この節では,制限付きアカウントを設定することでユーザのセッションのログを取得する,1 つの方法を説明します。数多くのサードパーティ製品では,より効率的にセッションを監視できる他の方法を提供しています。セキュリティ管理者は,選択した方式に関係なく,その方式が許容可能であるかどうかを法務部に確認を取るべきです。

特別な制限付きアカウントと適切なコマンド・プロシージャを使用することで,選択したユーザのターミナル・セッションのログの取得を実施できます。これらのユーザは,まず制限付きアカウントにログインしてから,自分自身のアカウントにログインする必要があります。制限付きアカウントにより,セッションのログ取得が保証されます。

次の例に,制限付きアカウント (この例では USER_LOG という名前) の設定方法に関するガイドラインと,適切なコマンド・プロシージャのサンプルを示します。

  1. 次のように,制限付きアカウント USER_LOG を設定します。

    
    UAF> ADD USER_LOG /FLAGS=(RESTRICTED,DISMAIL,DISNEWMAIL)-
    
    _UAF> /LGICMD=SYS$SYSROOT:[USER_LOG]SESSIONLOG-
    
    _UAF> /DEV=SYS$SYSROOT: /DIR=[USER_LOG]-
    
    _UAF> /NONETWORK /NOBATCH /UIC=[200,256]
     
    

  2. SESSIONLOG.COM コマンド・プロシージャにより,ターミナル・セッションのログ取得が有効になります。

    $ ! SESSIONLOG.COM - log in to specified account with terminal session
    $ ! logging enabled.
    $ !
    $ WRITE SYS$OUTPUT "Please log in to the account of your choice."
    $ WRITE SYS$OUTPUT "Your terminal session will be recorded."
    $ WRITE SYS$OUTPUT ""
    $ !
    $ ! Acquire the intended user name and save it in a temporary file. Use
    $ ! it to name the log file, and pass it as the first line of input to
    $ ! LOGIN.
    $ !
    $ READ/PROMPT="Username: " SYS$COMMAND USERNAME
    $ PID = F$GETJPI (0, "PID")
    $ OPEN/WRITE OUTPUT USERNAME'PID'.TMP
    $ WRITE OUTPUT USERNAME
    $ CLOSE OUTPUT
    $ DEFINE/USER SYS$INPUT USERNAME'PID'.TMP
    $ SET HOST 0 /LOG='USERNAME'.LOG
    $ DELETE USERNAME'PID'.TMP;0
    $ LOGOUT
     
    

  3. セッション監査の対象にする各アカウントを設定します。次のコマンドは,ユーザ Smith のアカウントを設定します。

    
    UAF> MODIFY SMITH /FLAGS=RESTRICTED /NOLOCAL /NODIALUP -
    
    _UAF> /LGICMD=SYS$SYSROOT:[USER_LOG]CHECKLOG
     
    

    制限付きログイン・コマンド・プロシージャにより,ログインが SET HOST コマンドを使用する USER_LOG アカウントから行われることが保証されるため,セッションのログが取得されます。

  4. また,各ユーザ・アカウントのバッチおよびネットワーク・アクセスを無効にして,USER_LOG アカウントからのローカル・ログインのみを許可することもできます。次に例を示します。

    
    UAF> MODIFY SMITH/FLAGS=RESTRICTED/NOLOCAL/NODIALUP/NOBATCH -
    /NONETWORK/LGICMD=SYS$SYSROOT:[USER_LOG]CHECKLOG
     
    

  5. 次の CHECKLOG.COM コマンド・プロシージャは,ユーザが USER_LOG アカウントにログインしていることを確認します。このプロシージャが正しく動作するためには,12.3.2 項の手順に従って,DECnet 代理アカウントを有効にしておく必要があります。

    $ ! CHECKLOG.COM - ensure that the account is being logged in to
    $ ! the USER_LOG account.
    $ !
    $ IF F$MODE () .NES. "INTERACTIVE" THEN EXIT
    $ !
    $ ! Verify that the connection originated from the local node and
    $ ! from the USER_LOG account.
    $ !
    $ IF F$LOGICAL ("SYS$NODE") .EQS. F$LOGICAL ("SYS$REM_NODE")-
     .AND. F$LOGICAL ("SYS$REM_ID") .EQS. "USER_LOG"-
     THEN GOTO OK $ WRITE SYS$OUTPUT "You may log in to this account only with ",- 
     "the USER_LOG account." 
    $ LOGOUT
     
    

    $ !
    $ ! When the login has been verified, enable Ctrl/Y to
    $ ! release the account, invoke the user's LOGIN.COM, and turn
    $ ! control over to the user.
    $ !
    $ OK:
    $ SET CONTROL_Y
    $ IF F$SEARCH ("LOGIN.COM") .EQS. "" THEN EXIT
    $ @LOGIN
     
    

6.7    安全なシステムを維持するための継続的な作業

安全なシステムを維持するには,継続的に監視を行う必要があります。セキュリティ管理者の役割を担うユーザにとって,次の継続的な作業が重要となります。