Caché セキュリティを使用した システムの保護 アジェンダ

InterSystems Symposia 2014
Caché セキュリティを使用した
システムの保護
インターシステムズジャパン株式会社
カスタマーサポート部
サポートエンジニア 田中 歩
アジェンダ
• Cachéセキュリティの基本
– Cachéセキュリティの基本要素
– Cachéセキュリティ 最初のステップ
– セキュリティの考慮事項
• Caché セキュリティ実践
– システムにログインできなくなった
– その他セキュリティ関連の設定について
– エンタープライズ管理
1
1
InterSystems Symposia 2014
本セッションの目的
• Caché セキュリティを使用してどのようなシステム保護ができるかをご紹介します
– データベース中のデータを不正なアクセスから保護する
– Caché システムにユーザが不正な方法でアクセスするのを防止する
• Caché のセキュリティ設定を実際に行うよくあるケースや、セキュリティ設定に関連してよくあ
るトラブルとその対処方法についてご紹介します
2
セキュリティで考慮すべき範囲
• 以下の要素それぞれを堅牢にすることでセキュリティレベルを向上できます
–
–
–
–
–
–
–
物理アクセス
オペレーティングシステム
ネットワーク
Caché / Ensemble
開発プロセス (アプリケーション)
メンテナンス (例. バックアップ、パスワードの配布、他)
…
3
2
InterSystems Symposia 2014
セキュリティの範囲
•
•
•
•
ネットワークレベル / 物理レベル
マシン(OS)
Caché
アプリケーション
4
Cachéセキュリティの基本
5
3
InterSystems Symposia 2014
Cachéセキュリティの基本
基本要素
• 認証 : 身元の確認
– システムにアクセスするユーザを識別する
• 承認 : ユーザ・アクセスの制御
– アクセスしたユーザがどのような操作ができるかを定義する
• 監査 : 動作状況の確認
– システムへのアクセス(*1)を記録する
• データベース暗号化 : ディスク上のデータの保護
オンラインドキュメント 「Caché セキュリティ管理ガイド」 にセキュリティの情報がまとめられています
*1 「データ」(グローバル/オブジェクト/テーブルレコード)のアクセスは監査の対象外です
6
Cachéセキュリティ 最初のステップ
• これから開発/導入するシステム
– そのシステムに格納するデータ/プログラムの重要性/保護がどの程度必要か
– システムがどのような場所(物理/ネットワーク)に設置されるか
などを考慮してセキュリティレベルを検討する
• 導入済み・稼働中のシステム
– 動作中のアプリケーションに影響を与えない範囲で必要最低限の許可を与える
7
4
InterSystems Symposia 2014
インストール時のセキュリティ設定
• Caché サービスとセキュリティの 初期 状態を決めます
• ユーザ設定の違い
–
–
–
パスワード最低長 (3.32ANP または 8.32ANP)
_SYSTEM ユーザアカウントが有効か無効か
UnknownUser アカウントが %All ロールを持つかどうか
最小
通常
ロック・ダウン
• サービスの違い:
–
–
–
どのサービスが有効か
サービスを 「パブリック」にするかどうか
サービスの認証方法
「最小」は Caché による保護はほとんどない状態
インストール後に再度インストーラを実行するなどして
「初期」状態を変更することはできません
セキュリティの考慮事項
特にインストール済みのシステムでこれらの項目をチェックします
• Caché ユーザの見直し (特に 認証なしユーザ UnknownUser の扱い)
• Caché へのアクセス手段を制限する
•
•
•
•
適切な認証方法を設定する
監査を有効にする
管理ポータルのアクセスを制限する
データベース暗号化
• 「セキュリティアドバイザ」によるチェック
9
5
InterSystems Symposia 2014
セキュリティの考慮事項
Cachéユーザの見直し
• 不要なユーザは無効にする
• 必要なユーザはパスワードをデフォルトから変更する
– 特に管理者権限(%Allロール)を持った _SYSTEM, Admin, SuperUser
– 有効なユーザの権限(ロール)を最小限にする
• 認証なしユーザ UnknownUser の扱い
必要? 必要ない?
– 必要がなければユーザを 無効 にする
– アプリケーションで使用している場合、持っている権限(ロール)を最小限にする
• CSPやCacheDirectアプリケーションでは権限を追加できます
• ユーザコードで必要な場合に一時的に権限を “昇格” させることもできます
• 各ユーザの権限は 「ユーザプロファイル」ページで確認できます
– システム管理 > セキュリティ > ユーザ で各ユーザの 「プロファイル」リンク
10
セキュリティの考慮事項
Cachéユーザの見直し 注意点
• ユーザ見直しでユーザ情報を変更する場合、あらかじめ十分な権限を持った別のCachéユー
ザが使用できる状況を確保してから実施するのが安全です
– もし変更したユーザが唯一の特権ユーザ(スーパーユーザ)で、変更によりいくつかの機能にアクセス
できなくなった場合、元に戻すための準備が必要です
– Caché は最低1つの管理者権限を持つユーザ(すべての権限である %All ロールを持つ)がシステム
に存在するようにユーザの変更時にチェックを行います
– ただし、通常使用しない/パスワード等のアクセス方法が分からないユーザだった場合、変更を元に戻
すことができなくなる場合も考えられます
• ユーザの変更後に動作を確認し、アクセスができなくなったなど意図と異なる結果になった場
合は確保したユーザで変更を元に戻します
11
6
InterSystems Symposia 2014
セキュリティの考慮事項
Caché に対するアクセス手段を制限する
• 外部から Caché システムにアクセスする窓口 = サービス を制限します
• 使用していないサービスは無効にします
機能
VISM (CacheDirect)
対応するサービス
%Service_CacheDirect
スタジオ,ODBC,JDBC %Service_Bindings
Telnet(Windowsのみ)
%Service_Telnet
コールイン
%Service_Callin
12
セキュリティの考慮事項
適切な認証方法を設定する
• 認証方法 とは、ユーザを識別する方法です。
– 認証なし (UnknownUserが使われる)
– パスワード
– オペレーティングシステム (一部のみ)
– Kerberos
などがあります
• 必要なサービスは、認証方法の制限や
接続元を制限します
– 認証なし を許可しない
– 「許可済みの接続元」を設定する
• ローカルホスト 127.0.0.1 のみや、
ワイルドカードを指定して制限します
• サービスの種類によってはこの
設定がないものもあります
13
7
InterSystems Symposia 2014
セキュリティの考慮事項
監査を有効にする
• システム管理 > セキュリティ > 監査 > 監査を有効に
• どのイベントを記録するかを システムイベントを構成 で設定します
– 必要なイベントを有効にします
– 記録する必要のないイベントは無効にできます
(2009.1よりも前のバージョンでは一部のイベントは無効にできません)
– ログイン %System/%Login/Login や
ログイン失敗 %System/%Login/LoginFailure 、
権限違反 <PROTECT>エラー %System/%Security/Protect などを有効にします
• 監査で記録した内容は専用のデータベースに保存されます
• 監査は不正なアクセスの記録だけでなく、セキュリティ設定に関するトラブル解決にも役立ちま
す
14
セキュリティの考慮事項
管理ポータルのアクセスを制限する
• Caché 外部レベルの制御
– OSのファイアウォールでウェブサーバポート(デフォルト57772)をブロックする
– ウェブサーバで /csp/sys 以下へのアクセスを禁止する
• Caché レベルの制御
– 管理ポータルをパスワード認証にする
– 各ポータルページの最下層にリソースを設定する
以下は行うと以降は誰も管理ポータルにアクセスできなくなります。
再度有効にするにはターミナルから ^SECURITY ユーティリティを使用する必要があります
• 対応するCSPアプリケーション ( /csp/sys, /csp/sys/* ) を無効にする
• %Service_CSP を無効にする (CSP/ZENアプリケーションを使用しない場合)
^SECURITYについては後ほど説明します
15
8
InterSystems Symposia 2014
セキュリティの考慮事項
データベース暗号化 : データベースファイル自体の保護
• データベースファイル CACHE.DAT を暗号化します
• 鍵(キー)がなければデータベースファイルを開いてデータにアクセスできません
• ジャーナルファイルも暗号化できます(オプション)
コピー
CACHE.DAT
CACHE.DAT
16
セキュリティの考慮事項
「セキュリティアドバイザ」によるチェック
• システム管理 > セキュリティ > セキュリティアドバイザ
– 現在のセキュリティ設定に対する推奨事項を表示します
– 一般的な推奨事項を表示しています。お使いのシステムの要件に一致しない項目は「無視」できます
(「無視」はしても、しなくてもシステムの動作に影響はありません)
17
9
InterSystems Symposia 2014
Caché セキュリティ実践
18
システムにアクセスできなくなった
• 特定のユーザで「アクセスが拒否されました」
• 管理ポータルが開かない
• 一切ログインができなくなった
次のページからそれぞれの場合について説明します
19
10
InterSystems Symposia 2014
システムにログインできなくなった
特定のユーザで「アクセスが拒否されました」
• 監査ログを確認する 「監査データベースの閲覧」
• %System/%Login/LoginFailure や %System/%Security/Protect
• 詳細表示の 「イベントデータ」 を確認する
20
システムにログインできなくなった
管理ポータルが開かない
• ターミナルが開くならば ^SECURITY ユーティリティを使用する
21
11
InterSystems Symposia 2014
システムにログインできなくなった
管理ポータルが開かない (続き)
• ^SECURITY で監査を確認する
%SYS>d ^SECURITY
6) Auditing setup
• ^SECURITY 等文字ベースの管理ツールについての概要はドキュメントに記載しています。
[ドキュメント] > [Caché システム管理] >
[Caché セキュリティ管理ガイド]
付録E: 文字ベースのセキュリティ管理ルーチンの使用
http://docs.intersystems.com/cache20131j/csp/docbook/DocBook.UI.Page.cls?KEY=GC
AS_chui-mgmt#GCAS_chui-mgmt_security
22
システムにログインできなくなった
一切ログインができなくなった
• 「緊急アクセスモード」を使用します
• システムの停止が必要になります
23
12
InterSystems Symposia 2014
外部スクリプトから実行できない
%Service_Console / %Service_Terminal の許可する認証設定
• 初期セキュリティ = 通常 の場合、%Service_Console (Windows) や %Service_Terminal
(Unix/VMS) の許可する認証方法は パスワード のみに設定されています。
• このため外部スクリプト(バッチやシェルスクリプト)からルーチン/クラスを起動するための
ccontrol run/runw (Windows) や csession コマンドはユーザ名/パスワード入力が必要とな
り動作しません
• この場合、サービスに オペレーティングシステム認証 を設定し、スクリプトを実行する OS
ユーザ と同じ名前のユーザをCache内に作成します
• オペレーティングシステム認証 は
システム管理 > セキュリティ > システム・セキュリティ > 認証/CSPセッションオプション
であらかじめ許可する必要があります
24
SSL/TLS を使用したネットワーク通信の保護
• Caché サーバとクライアントとの通信を保護します
• VPNなど、 Cachéよりも外側のネットワークレベルで保護されているのであれば不要です
• クライアント – Cachéサーバ のネットワークに不特定多数がアクセスできる場合に、データの
やりとりを保護します
• ウェブサーバ – クライアントブラウザ間の保護(https)はウェブサーバで設定します
Caché の SSL/TLSでは ウェブサーバ ~ Caché の通信を保護します
25
13
InterSystems Symposia 2014
%DirectMode 監査
• ターミナル/Telnet接続でのコマンド入力を記録できます
• 本番システムのメンテナンス作業を記録できます
26
管理ポータルの特定の機能だけ許可する
• カテゴリ別の許可
– 以下のリソースで管理します
%Admin_Manage システム管理 (セキュリティと暗号化を除く)
%Admin_Operate システムオペレーション
%Admin_Secure システム管理 > セキュリティ, 暗号化
%Development システムエクスプローラ
– リソースを持ったロールを作成してユーザに割り当てます
• 管理ポータル最下層レベルでの制御もできます
– 「カスタムリソース」を追加します (バージョン2011.1~)
※ リソースとはアクセス制限を行う最小単位です。
(リソース:アクセス権) を組み合わせてロールを構成します。
27
14
InterSystems Symposia 2014
ユーザに特定のネームスペースにだけアクセスさせる
• 新規にロールを作成
– %Development:Use (ターミナルアクセスが必要な場合)
– %DB_<アクセスさせたいデータベース>:RW
• アクセスさせたいネームスペースのデフォルトデータベース
• マッピングしているデータベースがあればそちらも追加する
• このロールをユーザに割り当てる
• アクセス権がないネームスペースに移動しようとすると <PROTECT> エラーになります
28
アプリケーションでセキュリティ機能を使用する
• アプリケーションのログインに Caché セキュリティを使用している場合、ログインしたユーザの
権限に応じた処理の変更が可能 - 表示するメニュー項目の切り替え等
– ZENの一部のコンポーネントでは必要権限を定義する属性が用意されています
– プログラムのコードで現在のユーザが処理に必要な権限を持っているかをチェックできます
• Set tatus = $SYSTEM.Security.Check(“testResource1”,”Use”)
29
15
InterSystems Symposia 2014
エンタープライズ管理
• 複数Cachéインスタンス間でセキュリティ情報を共通管理できる
– 従来のインスタンス単位のセキュリティではユーザ情報は個別管理する必要がありました
• バージョン2014.1から使用可能
30
まとめ
• システム導入前に計画することが重要
– インストール時のオプション選択
– 監査はできる限り有効にする
– インストール後のシステムのチェック
• 不要な権限を持つユーザはいないか
• 必要に応じて制限を厳しくする
– 管理ポータル
– 認証なしアクセス
– 不要サービスの無効化
31
16
InterSystems Symposia 2014
「InterSystems FAQ」 について
FAQ(よくあるご質問)にもセキュリティ関連のトピックがあります
http://faq.intersystems.co.jp/
32
トレーニングのご紹介
Cachéセキュリティ は システム管理コース II でご案内しています
33
17