システム管理およびセキュリティ
この章では、以下の項目について説明します。
[システム・セキュリティ設定] ページ
[システムセキュリティ設定] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ]) には、Caché インスタンス全体のセキュリティを構成するページへのリンクが用意されています。このページは以下のとおりです。
システム規模のセキュリティ・パラメータ
ここでは、Caché のインスタンス全体に影響するセキュリティの問題について説明します。システム規模のセキュリティ・パラメータや、メモリ・イメージに存在する機密性の高いデータの扱いなどを取り上げます。
Caché には、多数のシステム規模のセキュリティ・パラメータが用意されています。これらのパラメータは、[システムセキュリティ設定] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]) で構成できます。これらのパラメータには以下のものがあります。
-
[監査を有効に] — 監査を有効または無効にします。このチェック・ボックスの機能は、[監査] ページ ([システム管理] > [セキュリティ] > [監査]) にある [監査を有効に] リンクおよび [監査を無効に] リンクと同じです。監査の詳細は、“監査” を参照してください。 既定では無効になっています。
-
[構成セキュリティを有効に] — “Caché の構成情報の保護” の説明にあるように、構成のセキュリティを有効にするかどうかを指定します。既定では無効になっています。
-
[デフォルトセキュリティドメイン] — インスタンスの既定のセキュリティ・ドメインを選択できます。セキュリティ・ドメインの詳細は、"“Caché のセキュリティ・ドメインの管理”" を参照してください。既定のドメインは、インストールのときに設定されたドメインです。
-
[不活動上限 (0-365)] — ユーザ・アカウントを使用しない状態で保持できる最大日数を指定します。これは、2 回の正常なログインの間の時間間隔です。 アカウントを使用しない期間がこの限度に達すると、そのアカウントは無効になります。0 を指定しておくと、アカウントを使用せずに放置しても、そのアカウントは無効になりません。 最小セキュリティ・インストールでの既定値は 0、通常のインストールおよびロックダウン・インストールでの既定値は 90 です。
-
[不正ログイン回数制限 (0 - 64)] — 連続して失敗できるログインの最大回数を指定します。 ログインの失敗回数がこの限度に達すると、アカウントが無効になるか、ログインしようとするたびに遅延時間が長くなります。このアクションは、[ログイン制限に達するとアカウントを無効にする] フィールドの値で決まります。0 を指定しておくと、何回ログインに失敗しても、引き続き通常どおりにログインを試すことができます。既定値は 5 です。
-
[ログイン制限に達するとアカウントを無効にする] — チェックを付けておいた場合は、不正ログインの回数が、前に説明したフィールドで指定した回数に達すると、そのユーザ・アカウントは無効になります。
-
[パスワード有効期限 (0-99999)] — パスワードが無効になる頻度、つまりパスワードの変更が必要になる頻度を日数で指定します。最初に設定するときは、パスワードが無効になるまでの日数を指定します。0 を指定すると、パスワードはいつまでも有効です。既定値は 0 です。
Caution:この設定は、Caché 自身で使用されているアカウントも含め、該当の Caché インスタンスのすべてのアカウントに影響します。これらのアカウントでは、パスワードを更新しないとさまざまな処理が実行できず、予測できない結果となることがあります。
-
[パスワードパターン] — 新規に作成するパスワードで使用できる形式を指定します。詳細は、“パスワードの強固さとパスワードのポリシー” を参照してください。最低限のセキュリティを備えたインスタンスおよび通常のセキュリティを備えたインスタンスに対する既定値は 3.32ANP です。ロックダウン・インスタンスに対する既定値は 8.32ANP です。
-
[パスワード検証ルーチン] — パスワードを検証するためにユーザによって提供されたルーチン (またはエントリ・ポイント) を指定します。詳細は、Security.SystemOpens in a new tab クラスの PasswordValidationRoutine メソッドを参照してください。
-
[このシステムへの接続に必要なロール] — 既存のロールに設定すると、ユーザがシステムにログインするためには、そのユーザは、ログイン・ロールとしてのその既存のロールのメンバであることが必要になります。
LDAP 認証または OS ベースの LDAP 認証を使用している場合は、接続に必要なロールを作成して、このフィールドにそのロール名を指定することを強くお勧めします。詳細は、“LDAP の使用” の章の “ログインに必要なロールの設定” を参照してください。
-
[パーセントで始まるグローバルへの書き込みを有効に] — パーセントで始まるグローバルに対する書き込みアクセス権を暗黙的にすべてのユーザに与えるかどうかを指定します。チェックを外すと、書き込みアクセス権は通常のセキュリティ機能で制御されます。 パーセントで始まるグローバルおよびそれを保持しているデータベースである CACHESYS の詳細は、“アセットおよびリソース” の章の “CACHESYS (マネージャ・データベース)” のセクションを参照してください。既定の設定では、アクセス権は通常のセキュリティ機能で制御されます。
-
[複数セキュリティドメインを許可する] — 複数の Caché セキュリティ・ドメインをサポートするかどうかを指定します。セキュリティ・ドメインの詳細は、“Caché のセキュリティ・ドメインの管理” を参照してください。既定では、単一のドメインのみがサポートされています。
-
[スーパーサーバSSL/TLSサポート] — スーパーサーバがクライアント接続に SSL/TLS の使用をサポートまたは要求するかを指定します。
Important:SSL/TLS を使用するようスーパーサーバを構成する前に、%SuperServer と呼ばれる構成が存在する必要があります。Caché スーパーサーバでの SSL/TLS の使用に関する詳細は、“SSL/TLS を使用するための Caché スーパーサーバの構成” を参照してください。
オプションは以下のとおりです。
-
[無効] — SSL/TLS を使用するクライアント接続を拒否します(つまり、SSL/TLS を使用しないクライアント接続のみを受け入れます)。
-
[有効] — SSL/TLS を受け入れますが、要求はしません。
-
[必須] — SSL/TLS を使用するクライアント接続を要求します。
-
メモリ・イメージに存在する機密データの保護
エラー状態の中には、“コア・ダンプ” と呼ばれる、プロセス・メモリ・コンテンツのディスク・ファイルへの書き込みを発生させるものもあります。このファイルには、ダンプ時にプロセスで使用されていたすべてのデータのコピーが含まれます (潜在的に重要なアプリケーション・データおよびシステム・データを含む)。これを回避するには、システム全体でコア・ダンプを許可しないようにします。コア・ダンプを許可しないようにする方法は、使用しているオペレーティング・システムによって異なります。詳細は、オペレーティング・システムのドキュメントを参照してください。
認証オプション
[認証/CSPセッションオプション] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [認証/CSP オプション]) では、Caché インスタンス全体の認証メカニズムを有効または無効にできます。
-
Caché インスタンス全体で無効に設定した認証メカニズムは、どのサービスでも使用できなくなります。
-
Caché インスタンス全体で有効に設定した認証メカニズムは、それをサポートするすべてのサービスで使用できます。特定のサービスに対して認証メカニズムを有効にするには、その該当のプロパティの [サービス編集] ページを使用します。このページは、[サービス] ページ ([システム管理] > [セキュリティ] > [サービス]) からサービスを選択することで利用できます。
Note:すべてのサービスがすべてのメカニズムをサポートするわけではありません。
認証オプションは以下のとおりです。
-
[認証なしアクセスを許可] — ユーザは認証なしに接続できます(ログイン・ダイアログが表示されたら、[ユーザ名] および [パスワード] フィールドを空白にしたまま [OK] をクリックしてログインできます)。
-
[オペレーティングシステム認証を許可] — オペレーティング・システムのユーザ ID を使用して、Caché のユーザを識別します。
-
[パスワード認証を許可] — Caché 独自のネイティブ・ツールを使用して、Cach に登録されているユーザ名とパスワードを認証します。このメカニズムは “Caché ログイン” とも呼ばれます。
-
[代行認証を許可] — ユーザ定義の機能に認証プロセスを委任します。
-
[Kerberos認証を許可] — Kerberos を使用して認証を実行します。
-
[LDAP認証を許可] — 利用可能な LDAP データベースを使用してユーザを認証します。
-
[LDAPキャッシュ credentials 認証を許可] — LDAP データベースを利用できない場合でも LDAP ユーザを認証できるように、LDAP 資格情報をキャッシュしたコピーを保持します。
-
[ログイン Cookie の作成を許可] — Caché は、有効になっている Web アプリケーション間で共有される Cookie を使用してユーザを認証するため、新しいアプリケーションを初めて使用するときにユーザ名およびパスワードを入力する必要はありません。
-
[ログイン Cookie の有効期間 (秒)] — ログイン cookie の有効期間 (秒)。このフィールドは、インスタンスに対してログイン Cookie が有効になっている場合のみ関係します。
-
[2 要素のタイムベース・ワンタイム・パスワード認証を許可] — Caché は、認証デバイスまたはユーザの携帯電話上で動作しているアプリケーションを使用してユーザに検証コードを提供します。その後ユーザはこのコードを入力して認証プロセスを完了します。これを選択すると、[認証/CSPセッションオプション] ページに 2 要素認証を構成するためのフィールドが表示されます。
-
[2 要素の SMS テキスト認証を許可] — Caché は、携帯電話のテキスト・メッセージを使用してユーザにセキュリティ・コードを提供します。その後ユーザはこのコードを入力して認証プロセスを完了します。これを選択すると、[認証/CSPセッションオプション] ページに 2 要素認証を構成するためのフィールドが表示されます。
複数の認証オプションがある場合は、カスケード認証が使用されます。認証の詳細は、“認証” の章を参照してください。
保護されたデバッグ・シェル
Caché には、ルーチンを中断し、完全なデバッグ機能をサポートするシェルに入る機能が含まれています ("Caché ObjectScript の使用法" の “コマンド行ルーチンのデバッグ” の章を参照)。Caché には保護されたデバッグ・シェルも含まれています。これには、割り当てられた特権の超越や迂回をユーザができないという利点があります。
保護されたデバッグ・シェルは、機密データへのアクセスの制御に関して優れています。ユーザは、環境によって、変数のステッピングや表示などの基本的なデバッグを実行できますが、ルーチンの実行パスや結果を変更するいかなる操作も許可されません。これによって、操作、悪意のあるロール・エスカレーション、より高い権限で実行するコードの挿入などの問題を引き起こす可能性のあるアクセスを防止できます。
保護されたデバッグ・シェルは、Break コマンドが実行された時点、ブレークポイントまたはウォッチポイントが検出された時点、または捕えられていないエラーが発生した時点で開始されます。
保護されたデバッグ・シェル内では、ユーザは以下のものを実行できません。
-
変数を変更する可能性があるコマンド。
-
変数を変更する可能性がある関数。
-
他のルーチンを呼び出す可能性があるコマンド。
-
ルーチンのフローまたは環境に影響を及ぼすコマンド。
保護されたデバッグ・シェル内では、ユーザが制限されたコマンドまたは関数を実行しようとすると、Caché はそれぞれ <COMMAND> エラーまたは <FUNCTION> エラーをスローします。
保護されたシェルの使用の有効化
既定では、デバッグ・プロンプトのユーザは、現在のレベルの特権を保持します。デバッグ・プロンプトの保護されたシェルを有効にし、このことによってユーザが発行できるコマンドを制限するには、ユーザは %Secure_Break:Use 特権 (%Secure_Break リソースの Use 許可) を保持している必要があります。ユーザにこの特権を付与するには、ユーザを、事前定義の %SecureBreak ロールなどの %Secure_Break:Use 特権を含むロールのメンバにします。
制限されるコマンドと関数
この節では、保護されたデバッグ・シェル内で制限されるアクティビティのリストを示します。
制限される ObjectScript コマンド
保護されたデバッグ・シェルで制限される ObjectScript コマンドは以下のとおりです。
-
CLOSE
-
DO
-
FOR
-
引数付きの GOTO
-
KILL
-
LOCK
-
MERGE
-
OPEN
-
QUIT
-
READ
-
RETURN
-
SET
-
TCOMMIT
-
TRESTART
-
TROLLBACK
-
TSTART
-
VIEW
-
XECUTE
-
ZALLOCATE
-
ZDEALLOCATE
-
ZINSERT
-
ZKILL
-
ZREMOVE
-
ZSAVE
-
ZW と ZZDUMP 以外のユーザ・コマンド
制限される ObjectScript 関数
保護されたデバッグ・シェルで制限される ObjectScript 関数は以下のとおりです。
-
$CLASSMETHOD
-
$COMPILE
-
$DATA(,var) — 引数が 2 つのもののみ
-
$INCREMENT
-
$METHOD
-
$ORDER(,,var) — 引数が 3 つのもののみ
-
$PROPERTY
-
$QUERY(,,var) — 引数が 3 つのもののみ
-
$XECUTE
-
$ZF
-
$ZSEEK
-
$ZUTIL
-
任意の外部関数
制限されるオブジェクト構成
いかなるメソッドまたはプロパティの参照も許可されません。プロパティ参照は、propertyGet メソッドを起動する可能性があるため制限されます。制限されるオブジェクト・メソッドおよびプロパティ構文の構成の例の一部を以下に示します。
-
#class(classname).ClassMethod()
-
oref.Method()
-
oref.Property
-
$SYSTEM.Class.Method()
-
..Method()
-
..Property
参照によって変数の受け渡しを行わない場合でも、メソッドによってパブリック変数が変更される可能性があります。プロパティ参照は propGet メソッドを起動する可能性があるため、いかなるプロパティ・アクセスも許可されません。
制限される MultiValue コマンド
保護されたデバッグ・シェルで制限される MultiValue コマンドは以下のとおりです。
-
MV
-
MVCALL
-
MVDIM
パスワードの強固さとパスワードのポリシー
Caché では、以下の形式を使用することでユーザ・パスワードに対する要件を指定できます。
X.Y[ANP]
以下はその説明です。
-
X は、パスワードに使用する文字の最小数です。
-
Y は、パスワードに使用する文字の最大数です。
-
A、N、および P は、それぞれアルファベット文字、数字、および句読点文字をパスワードに使用できるかどうかを指定します。
これらの規則は、ObjectScript のパターン・マッチング機能に基づいています。この機能の説明は、“Caché ObjectScript の使用法” の “演算子と式” の章にある “パターン・マッチング” のセクションにあります。
このパラメータの設定によって、既存のパスワードが影響を受けることはありません。
管理者パスワードに推奨される強固さ
管理者パスワードは、大文字と小文字のアルファベット文字、数字、および句読点文字が無作為に混在したものとすることが理想的です。このようなランダムな文字を使用して、最低でも 12 文字のパスワードを使用することを強くお勧めします。
Caché の構成情報の保護
Caché の構成情報は、Caché の外部にあるテキスト・ファイルに格納されます。このファイルは、Caché パラメータ・ファイルと呼ばれます。また、cache.cpf ファイルとも呼ばれます。このファイルは Caché が実行されていないときに変更できるので、システムの起動時には変更済みの cache.cpf ファイルが使用されます。
意図的または偶発的な誤った構成からインスタンスを保護するには、[構成セキュリティ] チェック・ボックスに “チェックを付け” ます。Caché を前回起動したとき以降に、管理ポータルの制御下にない状況で Caché パラメータ・ファイルが変更されている場合、Caché を起動するとこの変更が検出され、Caché の起動ユーティリティによって変更を有効にするためのユーザ名とパスワードが要求されます。指定するユーザ名には、%Admin_Manage:Use 特権が付与されている必要があります。適切なユーザ名とパスワードを指定できない場合、オペレータは、以下のいずれかの選択をする必要があります。
-
ユーザ名とパスワードを再入力する。
-
最新の既知の正しい構成を使用して起動する。
-
起動を中止する。
オペレータが 2 番目のオプションを選択した場合は、起動時に呼び出したパラメータ・ファイルの名前 (file.cpf) が変更され、_rejected という接尾語が付加されます (file.cpf_rejected)。次に、最新の既知の正しい構成 (_LastGood_.cpf) によって file.cpf が上書きされ、この構成を使用して Caché が起動します。
cache.cpf に対する保護は、オペレーティング・システム・レベルのセキュリティの代用とはなりません。構成ファイルを変更できる機能を、ユーザに対してオペレーティング・システム・レベルで厳格に制限することで、構成ファイルを保護することをお勧めします。
構成ファイルの全般的な詳細は、"Caché パラメータ・ファイル・リファレンス" を参照してください。
Caché のセキュリティ・ドメインの管理
Caché のセキュリティ・ドメインでは、Kerberos レルムと Windows ドメインに対応するグループにユーザが分類されます。Kerberos を使用しているインスタンスの場合、その Caché ドメインは Kerberos レルムに対応しています。Windows ドメインを使用している場合は、そのドメインが Kerberos レルムに対応します。
セキュリティ・ドメインの名前は、インターネット・ドメインの名前と同じ形式をとることが普通ですが、必ずしもこれは必須ではありません。 セキュリティ・ドメイン名には、“@” 以外のあらゆる文字を使用できます。
単一ドメインと複数ドメイン
Caché は、単一ドメイン構成と複数ドメイン構成のどちらかで使用するように構成できます。
単一ドメインを持つインスタンスでは、以下のようになります。
-
$USERNAME 変数にはドメイン名が含まれていません。
-
システム・ユーティリティでユーザ名を表示すると、ドメイン名は表示されません。
-
既定のドメイン以外のドメインにあるユーザ名を指定することはできません (以下のセクションで説明します)。
複数ドメインを持つインスタンスでは、以下のようになります。
-
$USERNAME 変数にはドメイン名が含まれています。
-
システム・ユーティリティでユーザ名を表示すると、ドメイン名も表示されます。
複数ドメインの構成では、完全修飾のユーザ識別子はユーザ名、アット記号 (“@”)、およびドメイン名で構成され、例えば “info@intersystems.com” のようになります。
単一ドメインまたは複数ドメインのサポートを指定するには、この章の "システム規模のセキュリティ・パラメータ" のセクションで説明される、管理ポータルの [システムワイドセキュリティパラメータ] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]) の [複数セキュリティドメインを許可する] フィールドを使用します。
既定のセキュリティ・ドメイン
インスタンスごとに既定のセキュリティ・ドメインがあります。ユーザ名にドメインが指定されていない場合には、既定のドメイン名が使用されていると見なされます。 例えば、既定のドメインが “intersystems.com” である場合、“info” と “info@intersystems.com” は同じものを指します。 Caché をインストールすると、このパラメータの初期値にはローカル・ドメイン名が使用されます。
複数のセキュリティ・ドメインを持つインスタンスでは、この章の "システム規模のセキュリティ・パラメータ" のセクションで説明されているように、[システムワイドセキュリティパラメータ] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]) の [デフォルトセキュリティドメイン] フィールドを使用して既定のセキュリティ・ドメインを新規に選択できます。
ドメインの表示、編集、および作成
[セキュリティ・ドメイン] ページ ([システム管理] > [セキュリティ] > [セキュリティドメイン]) には、Caché インスタンスに既に存在するセキュリティ・ドメインを一覧したテーブルが表示されます。
このテーブルには、ドメインごとに以下の情報が収められています。
-
ドメイン名。
-
ドメインの説明。
-
[編集] ボタン。このボタンを使用してドメインの説明を編集できます (ドメイン名は編集できません)。ドメイン名は変更できないので、目的の名前のドメインが必要な場合は、その名前でドメインを新規に作成した後で既存のドメインを削除します。
-
[削除] ボタン。このボタンを使用すると、削除操作の確認を経て、インスタンスからドメインを削除できます。
このページには、[新規ドメイン作成] ボタンもあります。このボタンを選択すると、[ドメイン編集] ページが表示され、そこでドメイン名とドメインの説明 (オプション) を受け入れます。この情報を入力した後、[保存] を選択すると指定のドメインが作成されます。
セキュリティ・アドバイザ
Caché システムの保護においてシステム・マネージャを支援するために、Caché にはセキュリティ・アドバイザが用意されています。 これは、セキュリティに関連してシステム構成に収められている現在の情報が表示された Web ページです。セキュリティ・アドバイザでは、推奨の変更内容や見直すべき領域が示され、推奨の変更を行うためのシステム管理 Web ページへのリンクが提供されます。
セキュリティ・アドバイザが提供するのは一般的な推奨内容であり、そこではインスタンス固有のニーズや要件は考慮されていません。Caché のインスタンスにはそれぞれ固有の要件と制約がある点を念頭に置くことは重要です。セキュリティ・アドバイザには、目的のインスタンスに無関係な問題が表示されることもあれば、重要度の高い問題が表示されないこともあります。例えば、サービスで Kerberos 認証のみを使用することがセキュリティ・アドバイザで推奨されていても、実際の稼動環境によっては、オペレーティング・システムによる認証や Caché ログイン、さらには非認証のアクセスが適切な場合もあり得ます。
セキュリティ・アドバイザには、以下のような一般的な機能があります。
-
[詳細] ボタン — 各選択項目には [詳細] ボタンがあります。このボタンを選択すると、その選択項目に関連する Caché の詳細を管理するためのページが、セクションの制限内容に応じて表示されます。
-
[名前] ボタン — 各セクションで指定されている項目は、それぞれがリンクとして表示されます。これらの項目のいずれかを選択することで、その項目を管理するためのページが表示されます。
-
[無視] チェック・ボックス — 各セクションで指定されている項目ごとに、その項目に関連付けられた [無視] チェック・ボックスがあります。このチェック・ボックスにチェックを付けると、指定したその項目の行がグレー表示になります。セキュリティ・アドバイザの推奨に従って Caché を設定している場合は、[無視] チェック・ボックスの設定に関係なく、この行は表示されなくなります。
監査
このセクションには、監査そのものおよび特定の監査イベントに関する推奨事項が表示されます。これには以下のものがあります。
-
監査を有効にするべきです — 監査を実行すると、注意の必要なシステム・イベントや異常なシステム・イベントが発生した後で、検討作業に有用な情報を収めた記録が作成されます。
-
この種類の監査イベントは有効にするべきです — 特定のイベントを監査することで、さまざまなトピックに関する詳細な情報が得られます。特に、監査が有効になっていないときに注目されるイベントは以下のとおりです。
-
DirectMode イベント — このイベントを監査することで、ユーザに重大な特権を与える Caché 接続に関する情報が得られます。
-
Login イベント — このイベントを監査することで、疑義のあるログインに関する情報が得られます。
-
LoginFailure イベント — このイベントを監査することで、システムに対する不適切なアクセス権を得ようとする操作に関する情報が得られます。
-
サービス
ここでは、Caché のサービスに関する推奨事項について説明します。セキュリティ・アドバイザでは、サービスごとにその設定に応じて以下の点が指摘されます。
-
% グローバルを更新できる設定は無効にするべきです — パーセントで始まるグローバルにはシステム情報が保持されていることが多いので、ユーザがこれらのグローバルを操作できるようになっていると、深刻で広範囲に及ぶ予測不能な影響が出る可能性があります。
-
非認証は無効にされるべきです — 未認証の接続があると、身元が不確かな UnknownUser アカウントを含むすべてのユーザが、該当のサービスを通じて Caché に無制限にアクセスできます。
-
要求があるまでサービスを無効にするべきです — セキュリティ・アドバイザで監視されているサービスを介したアクセスでは、システムに対する過剰なレベルのアクセスが可能になります。
-
サービスは Kerberos 認証を使用するべきです — Kerberos 以外の認証メカニズムを通じたアクセスでは、Kerberos 以上のレベルのセキュリティ保護が得られません。
-
サービスにはクライアント IP アドレスを割り当てるべきです — 接続を受け入れる IP アドレスの数を制限することで、より確実に Caché への接続を監視できるようになります。
-
サービスはパブリック — パブリックなサービスがあると、身元が不確かな UnknownUser アカウントを含むすべてのユーザが、そのサービスを通じて Caché に無制限にアクセスできます。
ロール
このセクションでは、過剰な特権を持っている可能性のあるすべてのロールに関する推奨事項について説明します。それ以外のロールについては取り上げません。ロールごとに、セキュリティ・アドバイザでは以下の点が指摘されます。
-
ロールが監査データベースに対する権限を保持しています — 監査データベースに対する読み取りアクセスによって、不適切な範囲まで監査データが公開される可能性があります。また、書き込みアクセスによって、監査データベースにデータが不適切に挿入される可能性があります。
-
このロールは %Admin_Secure 権限を所有しています — この権限を使用すると、アセットに対するユーザのアクセスを設定、変更、および拒否できます。また、セキュリティ関連の他の機能を変更できます。
-
このロールは %CACHESYS データベースの書き込み権限を所有しています — %CACHESYS データベースに対する書き込みアクセスによって、システムのコードおよびデータが漏洩する可能性があります。
ユーザ
ここでは、ユーザ全般に関する推奨事項および個々のユーザ・アカウントに対する推奨事項について説明します。この領域では、セキュリティ・アドバイザで以下の点が指摘されます。
-
少なくとも 2 名から最大 5 名のユーザが %All ロールを保持する必要があります — %All ロールを持つユーザが少なすぎると、緊急時にアクセス上の問題につながることがあります。また、多すぎると、システムの公開性が高くなりすぎて機密漏洩につながる可能性があります。
-
このユーザは %All ロールを所有しています — どのユーザが %All ロールを持っているかを明示的に公表することで、無関係なユーザが %All ロールを持つことを防止できます。
-
UnknownUser アカウントは %All ロールを持つべきではありません — 匿名のユーザがすべての権限を持っていると、システムのセキュリティが確保できません。最小のセキュリティ・レベルを持つインスタンスでは、UnknownUser アカウントに %All ロールが与えられていますが、このようなインスタンスのセキュリティを計画的に確保することはできません。
-
アカウントが使用されていません — 承認されないアクセスを得ようとする侵入者にとって、使用されていないアカウントは絶好の侵入ポイントになります。
-
アカウントが休眠状態のようですので無効にするべきです — 承認されないアクセスを得ようとする侵入者にとって、休止状態のアカウント (31 日以上使用されていないアカウント) は絶好の侵入ポイントになります。
-
パスワードを既定のパスワードから変更するべきです — 既定のままのパスワードは、承認されないアクセスを得ようとする侵入者によって侵入ポイントとしてよく利用されます。
CSP アプリケーション、権限付きルーチン・アプリケーション、およびクライアント・アプリケーション
アプリケーションごとに専用のセクションがあり、そこではそれぞれのアプリケーション・タイプの詳細を容易に確認できます。これらのセクションには、アプリケーションへのアクセスおよびアプリケーションによって与えられている特権に関連する推奨事項が表示されます。この領域では、セキュリティ・アドバイザで以下の点が指摘されます。
-
アプリケーションがパブリックです — パブリックなアプリケーションがあると、身元が不確かな UnknownUser アカウントを含むすべてのユーザが、そのアプリケーションに関連付けられたデータおよびそのアプリケーションでサポートされているアクションに無制限にアクセスできます。アプリケーションによって %All ロールも与えられている場合は、それが条件付きでも無条件でも、この影響はさらに大きくなります。
-
条件によりアプリケーションは %All ロールを付与します — ユーザがすべての権限を持つ可能性があると、システムのセキュリティを確保できなくなります。アプリケーションがパブリックでもある場合、この影響はさらに大きくなります。
-
アプリケーションは %All ロールを付与します — ユーザがすべての権限を持っていると、システムのセキュリティを確保できなくなります。アプリケーションがパブリックでもある場合、この影響はさらに大きくなります。
変更内容の反映
さまざまなセキュリティ設定を変更した場合、その変更が反映されるまでの時間は以下のとおりです。
-
ユーザのプロパティ (割り当てられたロールなど) に対する変更は、そのユーザが次回ログインしたときに有効になります。 既に実行中のプロセスには反映されません。
-
サービスに対する変更 (サービスを有効にするかどうか、認証を要求するかどうかなど) は、今後そのサービスに接続しようとしたときに有効になります。 既存の接続には反映されません。
-
ロールの定義に対する変更は、以降行われる特権のチェックですぐに有効になります。 これらの変更はデータベースへのアクセスが発生するたびにチェックされるので、データベース・リソースに対しては直ちに反映されます。 サービスとアプリケーションに対しては、変更の時点以降にサービスに接続しようとしたとき、またはアプリケーションを起動したときに反映されます。
ここに挙げた時間は、変更が反映されるまでの最長時間なので、もっと早い時点で変更が有効になることもあります。
緊急アクセス
Caché には、特定の緊迫した状況下で使用できる特別な緊急アクセス・モードが用意されています。このような状況としては、セキュリティ構成情報に深刻な損傷が発生した場合、%Admin_Manage:Use 特権または %Admin_Security:Use 特権を持っているユーザが存在しない場合 (つまり、すべてのユーザがロックアウトされている場合) などがあります。Caché には、このような事態を回避するために %All ロールを付与されたユーザを常に 1 人以上確保する仕組みがありますが、そのユーザが不在であることや、そのユーザがパスワードを忘れてしまうこともあります。
Caché が緊急アクセス・モードで動作しているとき、アクセスが許可されるユーザは 1 人のみです (このユーザを 緊急ユーザ といいます)。 このユーザ名は、Caché 内であらかじめ定義されていなくてもかまいません。 実際には、ユーザ名が Caché 内で定義されていても、緊急ユーザは概念的には別のユーザです。 緊急ユーザの名前とパスワードは、緊急モードでの 1 回の起動のみに対して有効です。
緊急アクセス・モードに関するその他の重要ポイント
-
%Service_Console、%Service_Terminal および %Service_CSP のみが、有効なサービスです。
-
Caché ログインを使用するアクセスのみになります。他の認証メカニズムはサポートされません。
-
Web アプリケーションでポータル (/csp/sys および /csp/sys/*) を制御する場合、カスタム・ログイン・ページが利用できても、緊急アクセス中には標準のログイン・ページ (%CSP.Login.cls) が使用されます。カスタム・ログイン・ページでは認証が行われなくなる場合があるので、これによって緊急ユーザが確実にポータルにアクセスできるようにします。他の Web アプリケーションの場合、カスタム・ログイン・ページがあると、そのページが緊急ログインの際に使用されます。
-
2 要素認証は無効になります。これによって、2 要素認証で緊急ユーザが認証できない状況が回避されます。
緊急アクセス・モードの呼び出し
Caché を緊急アクセス・モードで起動するには、以下に示す適切なオペレーティング・システム特権を持っている必要があります。
-
Windows システムでは、このユーザは Administrators グループのメンバであることが必要です。
-
UNIX® システムおよび MacOS システムでは、インスタンスの root または所有者であることが必要です。
Caché では、オペレーティング・システム・レベルの特性をチェックすることで認証が行われます。
Windows での緊急アクセス・モードの呼び出し
Caché を緊急アクセス・モードで起動するには、以下の手順に従います。
-
コマンド・プロンプトを起動して、管理者として実行します。以下のいずれかの方法で行います。
-
Windows コマンド・プロンプト・プログラム。メニューの [コマンド プロンプト] 選択項目を右クリックして、[管理者として実行] を選択します。
-
Windows PowerShell。管理者または他の特権のないユーザとしてこれを実行できますが、この手順では管理者として実行していることを想定しています。他の特権のないユーザとして実行するには、コマンドを呼び出すときに -verb runas 引数を使用します。PowerShell のドキュメントを参照してください。
-
-
Caché のインストール先にある bin ディレクトリに移動します。
-
このディレクトリで、以下のようにコマンド行から適切なスイッチを使用し、緊急ユーザのユーザ名とパスワードを指定して、Caché を呼び出します。これは、使用しているコマンド・プロンプトによって決まります。
-
Windows コマンド・プロンプトの場合のコマンドは以下のとおりです。
ccontrol start <instance> /EmergencyId=<username>,<password>
これにより、ユーザが 1 人だけ認められる緊急モードの Caché セッションが開始します。各パラメータは以下のとおりです。
-
<instance> は、緊急モードで開始するインスタンスを指定します。
-
<username> は、システムの唯一のユーザです。
-
<password> は、そのユーザのパスワードです。
-
-
Windows PowerShell の場合のコマンドは以下のとおりです。
start-process .\ccontrol.exe -ArgumentList "start <instance> /EmergencyId=<username>,<password>"
これにより、ユーザが 1 人だけ認められる緊急モードの Caché セッションが開始します。各パラメータは以下のとおりです。
-
<instance> は、緊急モードで開始するインスタンスを指定します。
-
<username> は、システムの唯一のユーザです。
-
<password> は、そのユーザのパスワードです。
-
Note:Windows では、他のオペレーティング・システムと異なり、EmergencyId スイッチの前にスラッシュ (“/”) を記述します。
例えば、MyCache というインスタンスで、52601 というパスワードを持つユーザ Eugenia が Caché を緊急モードで起動する場合は、以下のように入力します。
ccontrol start MyCache /EmergencyId=Eugenia,52601
この状態でログインできるのは、以下のように適切なパスワードを使用する緊急ユーザのみです。
Username: Eugenia Password: ***** Warning, bypassing system security, running with elevated privileges
-
Caché が起動すると、Caché キューブからターミナルを起動できるほか、任意の CSP アプリケーションを実行することもできます。これによって、管理ポータルおよび文字ベースのすべてのユーティリティにアクセスできるようになります。これらにアクセスし、任意の設定を目的に応じて変更した後、Caché を通常のモードで再起動します。
UNIX®、および Mac OS での緊急アクセス・モードの呼び出し
Caché を緊急アクセス・モードで起動するには、以下のようにコマンド行から適切なスイッチを使用し、緊急ユーザのユーザ名とパスワードを指定して、Caché を呼び出します。
./ccontrol start <cache-instance-name> EmergencyId=<username>,<password>
これにより、ユーザが 1 人だけ認められる緊急モードの Caché セッションが開始します。各パラメータは以下のとおりです。
-
<cache-instance-name> は、緊急モードで開始するインスタンスを指定します。
-
<username> は、システムの唯一のユーザです。
-
<password> は、<username> のパスワードです。
これらのオペレーティング・システムのいずれかから Windows に移行する場合、Windows では EmergencyId スイッチの前にスラッシュ (“/”) が必要になる点に注意します。
例えば、MyCache というインスタンスで、5262001 というパスワードを持つユーザ Eugenia が Caché を緊急モードで起動する場合は、以下のように入力します。
./ccontrol start MyCache EmergencyId=Eugenia,52601
この状態でログインできるのは、以下のように適切なパスワードを使用する緊急ユーザのみです。
Username: Eugenia
Password: *****
Warning, bypassing system security, running with elevated privileges
Caché が起動すると、ターミナルまたは任意の CSP アプリケーションを実行できます。これによって、管理ポータルおよび文字ベースのすべてのユーティリティにアクセスできるようになります。これらにアクセスし、任意の設定を目的に応じて変更した後、Caché を通常のモードで再起動します。
緊急アクセス・モードの動作
緊急アクセス・モードの Caché には、以下の制約と機能があります。
-
緊急ユーザのみにアクセスが許可されます。 他のユーザはログインできません。
-
緊急ユーザは %ALL ロールを保持します。
-
有効になっているサービスは、コンソール、ターミナル、および CSP のみです。 それ以外のサービスはすべて無効化されます。 これによって、緊急モード以外のモードで Caché が起動するときに、サービスの有効または無効の状態が変化することはありません。影響を受けるのは、現時点 (緊急モード) でメモリにある、サービスに関する情報のみです。
-
有効なサービスに対しては、認証されたアクセスのみが許可されます。該当のサービスに対しては Caché 独自のパスワード認証が使用されるので、緊急ユーザのユーザ名とパスワードを使用する必要があります。
-
緊急アクセスによるログイン後、Caché は、アクティブ・プロセスに対するすべてのイベントの監査を試みます。これが不可能であっても、Caché の起動は継続します。緊急アクセス・モードでのログインの失敗は、監査されません。
-
緊急ユーザは Caché の構成を変更できますが、その変更が有効になるのは、次回に Caché を通常のモードで起動したときです。緊急モードで起動しても有効になりません。 これは、Caché の通常の動作とは異なる点です。通常の動作では、Caché を再起動しなくても、構成の変更はほとんどその場で有効になります。