この章では,システム管理者が OpenVMS オペレーティング・システムのセキュリティ機能を実装する方法を説明します。
平均的なセキュリティが必要とされる商用システムのセキュリティの要件に基づいて,セキュリティ管理の概要について説明します。
次のトピックについて説明します。
セキュリティ対策を確立する前に,この章の全体と,その後の 3 つの章を読んでおくことをお勧めします。
これらの章を読んでおけば,サイトに適したセキュリティ対策をより的確に判断できるようになります。
また,セキュリティ対策を実装するための道具も手に入れることになります。
セキュリティ管理者の役割は,組織のセキュリティ・ポリシーを実装し,維持することです。
組織の中には,セキュリティ・ポリシーの策定にセキュリティ管理者を参加させるところもあれば,確立されたポリシーの実装と維持をセキュリティ管理者に任せるものもあります。
企業のセキュリティ・ポリシーの例については,
6.2 項 「サイトのセキュリティ・ポリシー 」を参照してください。
セキュリティ管理者 (または担当者) の仕事は,セキュリティ・ポリシーが実装され,維持されていることの確認です。
発生しうるセキュリティ違反や脆弱性が生じていないか,定期的にシステムを監視する仕事は必須です。
問題を発見したら,必ず問題を是正する必要があります。
多くの場合,組織はコンピュータ管理者の義務を分割します。
セキュリティ管理者はシステムを監視し,問題を報告します。
システム管理者はポリシーを実装し,システムを管理します。
このような管理構造において,セキュリティ管理者はシステム管理者と連携します。
システム管理者は,ユーザ・アカウントを設定し,アカウントの必要性の証明に必要なペーパーワークを処理するために,アカウント担当者を採用する場合もあります。
この担当者は必ず,本質的には共同システム管理者の役割を担う,信頼性の高い人物でなければなりません。
仕事を分担することになるため,システム管理者とセキュリティ管理者が定期的に連絡を取ることが非常に重要です。
セキュリティ管理者は,問題が是正されるように,ユーザや,必要に応じてシステム管理者やアカウント担当者にセキュリティ問題を報告する必要があります。
多くの OpenVMS 使用サイトに共通する仕事の分担のもう 1 つの形態に,セキュリティ管理者とシステム管理者の役割の統合があります。
1 人の人物がセキュリティ・ポリシーを実装し,その要件を満たすようにシステムを維持します。
信頼性の高いシステム管理は,編成にバリエーションはあっても,必ずユーザのトレーニング,アカウントとパスワードの設定,重要なシステム・ファイルとリソースの保護,セキュリティ関連イベントの監査と分析が含まれます。
システムの使用形態を把握し,「平常時の」システムの活動を把握することが,信頼性の高い管理にとって非常に重要です。
組織の幹部は,通常,従業員向けの簡潔なセキュリティ・ポリシーを策定して,組織が従業員に期待する行為を強調します。
たとえば,そのようなポリシーでは,従業員による企業データの持ち出しやパスワードの共有を禁じます。
部局やコンピュータ・サイトの管理者は,それに基づいて詳細なセキュリティ・ポリシーを策定します。
セキュリティ・ポリシーとは,パスワードとシステム・アカウントの使用,コンピュータ・システム,通信デバイス,およびコンピュータ・ターミナルへの物理的なアクセス,および監査対象となるセキュリティ関連イベントの種類に関する,明文化された一連のガイドラインです。
これらのセキュリティ・ガイドラインには,特定のオペレーティング・システム環境に適用される,より詳細な規定が補足される場合があります。
最終的にセキュリティ・ポリシーの複雑度は,部局のセキュリティ要件が高,中,低のいずれであるかに依存します。
第1章 「システム・セキュリティ」に,組織がそのニーズを把握するのに役立つ,一連の質問があります。
たとえば,多くのサイトのセキュリティ・ポリシーでは,どの従業員が個々のシステムにアクセスできるか,および例外的な作業や開発を行う担当者に使用可能なアクセスの種類を定義しています。
場合によっては,ポリシーには,システム・アクセスを決定する一連の複雑なルールがある場合があります。
表 6-1 「サイトのセキュリティ・ポリシーの例」 に,ある部局によって策定されたポリシーを示します。
表 6-1 サイトのセキュリティ・ポリシーの例
セキュリティ領域 | サイトの要件 |
---|
パスワード | パスワード変更のスケジュール。 |
| 最短のパスワードの長さと有効期限を制御するプロセス。 |
| システム・パスワード変更のスケジュールです。 |
アカウント | 必要理由,要求者,要求者の上司,システム管理者,またはアカウント設定の担当者の署名など,コンピュータ・システムのアカウントを付与する手順。
アカウントは共有できません。 |
| 従業員の異動や退職などに伴う組織の変化により,アカウントを無効にする手順。 |
| 通常は 6 ~ 12 ヶ月ごとにアカウントを再認定するための予定表。 |
| 定期的には使用されていないカウントを無効にする指示。 |
| アクセスの期間。 |
| アカウントの有効期限のための予定表。 |
| 厳密に割り当てを制御する権限を要求する手順。 |
| 通常のシステム処理を行う特権ユーザが,非特権アカウントを使用する要件。 |
| アクティブでないアカウントを確認するスケジュール。 |
| 承認されたセキュリティ・ツールのリスト。 |
監査対象セキュリティ・イベント | 一部またはすべてのログイン元からのログイン。 |
| 登録ファイル・レコードへの変更。 |
| 特権アクションおよびシステム管理アクションのその他の使用。 |
| インストール・ユーティリティを介した既知のファイル・リストの変更。 |
| ネットワーク制御プログラム (NCP) を使用した,ネットワーク構成データベースの変更。 |
コンピュータ・ルームへの
物理的なアクセス | アクセスの理由を含む,認証された担当者の明文化されたリスト。通常,1 名がこのリストを最新の状態に維持する責任があります。 |
| 訪問者の安全な領域へのログの保管。 |
| ドアの施錠管理と,鍵,キー・カード,およびそれらの組み合わせを割り当てるための文書化された手順。これらのアクセス制御は,定期的に,および従業員の異動または退職時に変更されます。
|
コンピュータ・ルームの外部にあるターミナルやパーソナル・コンピュータへの物理的なアクセス | 一定期間使用されていないターミナルをログアウトするプログラムの使用。 |
| (コンピュータ担当者以外の) 組織向けのセキュリティ意識向上プログラム。次のテーマを扱います。
-
-
コンピュータ・システム,ネットワーク・パスワードなどのシステム・アカウント情報に関連するハードコピー情報の卓上からの排除。 -
-
ワークステーション内またはワークステーション周辺でのディスケットのアクセス防止。 -
|
ダイアルアップ番号 | 認定ユーザのリスト。 |
| 番号を定期的に変更するためのスケジュール,および番号の変更をユーザに通知するための手順。 |
| ダイアルアップ番号の公開を最小限にするポリシー。 |
| 定期的なパスワード変更,およびアクセス権を持つ従業員が退職した際のパスワード変更に関するポリシー。 |
| モデムまたはターミナル・サーバにおけるパスワード,またはホスト・ダイアルアップ・ポートにおけるシステム・パスワードの保護。 |
| 以下の内容に関して使用可能なドキュメント。
-
-
-
-
-
ネットワークに接続されているすべてのターミナル・デバイスに関する詳細 -
|
通信 | TCP/IP,LAT,またはイーサネット接続を介してパスワードを使用している場合の,特権アカウントへのアクセス拒否。 |
| 特権アカウントへのネットワーク・ログイン用の認証カードの使用。 |
以降の章では,セキュリティ・ポリシーに従って安全なシステムを設定する方法について説明します。
登録ユーティリティ (AUTHORIZE) が,システム・セキュリティを実装するための主要なツールです。
AUTHORIZE は,『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』で詳しく説明しています。
システム・パラメータ・ファイルの変更に使用する AUTOGEN コマンド・プロシージャは,『OpenVMS システム管理者マニュアル』および『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』で説明しています。
また,多くの DCL コマンドも重要なセキュリティ・ツールです。
DCL コマンドは,『OpenVMS DCL ディクショナリ』で説明しています。
セキュリティ管理者には,そのタスクを実行する特権を備えたアカウントが必要です。
セキュリティ違反と,発生しうる脆弱性を確認する管理者には,少なくとも次の 3 つの特権が必要です。
-
セキュリティ監査を有効にし,セキュリティ・オペレータ・ターミナルを設定するために必要な SECURITY および AUDIT 特権
-
ファイルおよび資源の保護を確認するために必要な READALL 特権
多くの場合,セキュリティ管理者は,セキュリティ管理者とシステム管理者の両方を務めます。
このユーザには,特権の完全なセットが必要です。
『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 および保護を変更することが可能になります。
オブジェクトの保護を変更して,そのオブジェクトへのアクセス権を取得することができます。
|
新規ユーザにシステム・セキュリティについて教えることは,重要なセキュリティ保護手段になります。
ユーザにセキュリティの手法と目標を認識させることが重要です。
ユーザがシステムと侵入発生の仕組みに対する理解を深めれば,ユーザは侵入に対する防御力が向上します。
ユーザのトレーニングには,次の内容が必要です。
-
ユーザのアカウントの場所について。
具体的には,システムの種類,システムの場所,ネットワーク上にある場合にはその適切なノード名,システムがクラスタの一部である場合には使用可能な他のノードについて。
-
ログインに使用できるターミナル,およびそれらの場所について。
-
アカウントが,ローカル,ダイアルアップ,リモート,会話型,ネットワーク,またはバッチなどの操作に関して制限されているかどうかについて。
制限されている場合,許可されている使用と制限の両方について説明します。
-
ダイアルアップしてアカウントにアクセスできるかどうかについて。
アクセスできる場合は,アクセス用の電話番号を教え,手順を説明します。
接続が失敗するまでの,再試行の許容回数と,再試行の間隔として許容される最大秒数を指定します。
-
ユーザが使用する可能性のあるターミナルに,システム・パスワードが実装されているかどうかについて。
実装されている場合は,ターミナルの場所,システム・パスワードの変更頻度,およびユーザが新しいシステム・パスワードを知る方法を説明します。
-
アカウントの有効期間,期限の日時,ユーザが延長を申請する場合の申請先について。
-
ユーザ名,ユーザが保持する識別子,ユーザに関連付けられているグループ番号およびメンバ番号について。
-
必要なパスワード情報について。
特に,最初のパスワード,パスワードがロックされているかどうか,ロックされていない場合は,パスワードを変更しなければならない頻度,パスワードの最低の長さ,アカウントに第 2 パスワードがあるかどうか,第 2 パスワードを知っているユーザ,ユーザが自由にパスワードを選択できるか,またはパスワードを自動的に生成する必要があるかについて。
ユーザにとって望ましい習慣のチェックリストについては,
3.12 項 「システム・セキュリティへの貢献のためのチェックリスト」「システム・セキュリティへの貢献のためのチェックリスト」を参照してく
ださい。
-
-
-
ディスク使用量に制限があるかどうかについて。
制限がある場合は,その値について。
-
使用に関する制限があるかどうかについて。
たとえば,使用が推奨または強制される特定の曜日や時間帯があるかどうかについて。
該当する場合は,主曜日と副曜日について説明します。
-
共有されているファイルやディレクトリが存在するかどうかについて。
存在する場合は,詳細を説明します。
-
ユーザに影響する ACL があるかどうか,ユーザが知っておかなければならない識別子について。
-
-
-
アカウントが,オープン,キャプティブ,制限付き,会話型のどの種類であるかについて。
-
ユーザ用の代理ログインが存在する場合,代理ログインを許可するノードについて。
-
ユーザが使用する必要がある可能性のあるキューの名前について。
-
資料の施錠保管など,サイトの物理的なセキュリティを確保するためにユーザが取るべき対策について。
ユーザがシステムを学習している間,機密データへのアクセスやシステム運用の制御など,ユーザが特に機密性の高い機能を実行する場合,セキュリティ管理者はターミナル・セッションを監視することができます。
場合によっては,ユーザは自分の操作を記録するために,自分自身のセッションのログ取得を選択できます。
その場合,最初にログインした後で,ユーザは SET HOST 0/LOG コマンドを会話形式で実行できます。
この節では,制限付きアカウントを設定することでユーザのセッションのログを取得する,1 つの方法を説明します。
数多くのサードパーティ製品では,より効率的にセッションを監視できる他の方法を提供しています。
セキュリティ管理者は,選択した方式に関係なく,その方式が許容可能であるかどうかを法務部に確認を取るべきです。
特別な制限付きアカウントと適切なコマンド・プロシージャを使用することで,選択したユーザのターミナル・セッションのログの取得を実施できます。
これらのユーザは,まず制限付きアカウントにログインしてから,自分自身のアカウントにログインする必要があります。
制限付きアカウントにより,セッションのログ取得が保証されます。
次の例に,制限付きアカウント (この例では USER_LOG という名前) の設定方法に関するガイドラインと,適切なコマンド・プロシージャのサンプルを示します。
-
次のように,制限付きアカウント 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]
|
-
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
|
-
セッション監査の対象にする各アカウントを設定します。
次のコマンドは,ユーザ Smith のアカウントを設定します。
UAF> MODIFY SMITH /FLAGS=RESTRICTED /NOLOCAL /NODIALUP -
_UAF> /LGICMD=SYS$SYSROOT:[USER_LOG]CHECKLOG
|
制限付きログイン・コマンド・プロシージャにより,ログインが SET HOST コマンドを使用する USER_LOG アカウントから行われることが保証されるため,セッションのログが取得されます。
-
また,各ユーザ・アカウントのバッチおよびネットワーク・アクセスを無効にして,USER_LOG アカウントからのローカル・ログインのみを許可することもできます。次に例を示します。
UAF> MODIFY SMITH/FLAGS=RESTRICTED/NOLOCAL/NODIALUP/NOBATCH -
_UAF> /NONETWORK/LGICMD=SYS$SYSROOT:[USER_LOG]CHECKLOG
|
-
次の CHECKLOG.COM コマンド・プロシージャは,ユーザが USER_LOG アカウントにログインしていることを確認します。
このプロシージャが正しく動作するためには,
13.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
|
安全なシステムを維持するには,継続的に監視を行う必要があります。
セキュリティ管理者の役割を担うユーザにとって,次の継続的な作業が重要となります。
-
MONITOR IO レポートを使用して,さまざまな時点におけるシステムの通常の入出力の量を把握します。
異常な変化に注意します。
-
システムにインストールされるイメージに関する最新の情報を常に得られるようにしておきます。
インストール・ユーティリティ (INSTALL) を使用して,予期しない追加がないかを調べます。
既知ファイル・リストを監視する場合は,現在のリストと,有効なハードコピーのリストを比較します。
-
AUTHORIZE の SHOW コマンドを定期的に使用して,不正なユーザ名がないことを確認します。
-
AUTHORIZE の SHOW/PROXY コマンドを定期的に使用して,セキュリティ管理者が承認したすべての代理アクセスをすばやく確認します。
予期しない追加に注意します。
アクセスの必要がなくなったすべてのリモート・ユーザを削除します。
リモート・ノードのシステム管理者と,定期的に連絡を取ります。
-
会計情報ユーティリティ (ACCOUNTING) を定期的に適用して,通常の処理時間の基準を算出します。
説明のつかない変化に注意します。
-
既知のユーザ名,未知のユーザ名,および適切なシステムの使用時間に関して,ACCOUNTING により生成されるアカウントのレポートを定期的にチェックします。
-
例外的な時間に正常 (および異常) な処理が発生していることに気づけるように,システムの作業負荷を十分に把握しておきます。
-
予期していない事態にすぐ気づけるように,DCL の SHOW DEVICE コマンドを使用して,普段からデバイス割り当てを監視します。
-
バッチ・キューで実行され,繰り返し発生するバッチ・ジョブの種類と,これらのバッチ・ジョブが実行される可能性が最も高い日時を把握しておきます。
-
DIRECTORY/SECURITY コマンドを使用して,重要なファイルの保護と所有権を監視します。
保護と所有権に関して,説明のつかない変化に注意します。
-
ライト・リストを常に把握しておきます。
追加された識別子や,現在の識別子の新しい保持者に気づけるように,最新のリストを維持します。
-
使用されていない識別子を削除します。
ライト・リストを最新の状態に維持します。
-
UAF レコードの設定に使用するテンプレートを定期的に確認します。
必要な変更はすべて加えます。
-
第10章 「セキュリティ監査の実施」で説明しているセキュリティ監査機能を使用します。
-
監査分析ユーティリティ (ANALYZE/AUDIT) を定期的に適用して,異常な監査処理を検出します。
-
新規ユーザに初期パスワードの変更を許可する場合は,ユーザが変更したいと思うようなパスワードを割り当てるか,パスワード・ジェネレータを使用します。
始めに割り当てたパスワードを使用してログインできるかどうかをあらためて確認します。
必要に応じて,要求した変更が行われなかった理由をユーザに確認します。
-
保護されていないユーザ・ファイルを検索して,パスワードがネットワーク・アクセス制御文字列に埋め込まれていないかを調べます。
パスワードの後には,3 文字の区切り文字 ("::) が付きます。
また password という名詞を検索し,その近くにパスワードが出現していないかどうかを確認します。
-
ユーザが適切にログアウトしていることを確認します。
通常の業務時間の終わりに,物理的なチェックを行います。
-
ユーザが適切なデフォルトの保護を実施していることを確認します。
-
磁気テープ,ディスク,およびプログラム・リストの目録を常に最新の状態に保ちます。
普段からその目録をチェックして,物理的なセキュリティが低下している兆候がないかを確認します。
-
オフィスとすべての重要なリストの施錠保管を徹底します。