2 推奨されるセキュリティ設定の適用
この章の内容は以下のとおりです。
TomcatでのSSLの構成
Tomcatで暗号化された接続を有効化するには、次の手順を使用してHTTPSコネクタを構成する必要があります。
Tomcatの詳細は、次の場所にある『Apache Tomcat Configuration Reference』を参照してください
http://tomcat.apache.org/tomcat-8.0-doc/config/http.html
mod_sslの詳細は、次の場所にある『Apache Module mod_ssl』を参照してください
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html
親トピック: 推奨されるセキュリティ設定の適用
プロセッサ・セキュリティ
EDQ, では、EDQプロセッサのセキュリティ・レベルを向上するために使用可能なセキュリティ制御をオプションで使用できるようになりました(スクリプト・プロセッサのセキュアでない使用をブロックするなど)。下位互換性を確保するため、プロセッサ・セキュリティはデフォルトでオフになっていますが、次の行を[EDQローカル・ホーム]/director.propertiesに追加することで有効にできます。
processor.securitymode = off/low/medium/high
プロセッサ・セキュリティ・オプションは、Javaセキュリティ・マネージャの使用と連携して動作します。Javaセキュリティ・マネージャの使用は、サーバーで指定されたJavaオプション(-Djava.security.manager)によって制御されます。これは、EDQサーバーの起動グループのJavaオプションを設定するsetStartupEnv.shスクリプトで指定されるため、WebLogic ServerにEDQを新規インストールすると、デフォルトで有効になります。他のインストールでは、手動で指定する必要があります。
次に、様々なprocessor.security設定ごとのセキュリティ・レベルをまとめます。
-
Off:
セキュリティ制限は適用されません。
-
Low
次の制限が適用されます。
-
プロセスで直接使用するためのツール・パレットからのスクリプト・プロセッサの使用は、システムでJavaセキュリティ・マネージャが実行されていない場合、無効になります。
-
システムでJavaセキュリティ・マネージャが実行されている場合、スクリプト・プロセッサは使用できますが、データ処理に制限された、デフォルト権限のごく一部のみが付与されます。スクリプトは、アプリケーションの外部でネットワーク接続を行ったり、コマンドを発行することができません。
ノート:
jarにパッケージ化されたJavaプロセッサおよびスクリプトは、制限なしで実行されますが、jarにpermissions要素が含まれる場合、それらの権限のみがプロセッサに付与されます。
-
-
Medium:
Lowと同じ制限が適用されますが、jarにパッケージ化されたJavaプロセッサおよびスクリプトには、非常に制限された権限セットが付与されます。プロセッサに必要な追加の権限は、permissions要素にリストする必要があります。
この違いを説明すると、'low'レベルでは、すべての権限が付与され、permissions要素で権限を制限するのに対し、'medium'レベルでは、権限は制限され、permissions要素で権限を拡張するということになります。どちらのレベルでも、permissions要素を持つプロセッサは、まったく同じ権限セットで実行されます。
-
High:
'medium'と同じ制限が適用されますが、Oracle EDQ証明書または承認済パートナに付与された証明書によって署名されたプロセッサのみが、プロセッサに追加の権限を付与するpermissions要素を含むことができます。
未署名のjarにpermissions要素が検出されると、そのjarのプロセッサは拒否され、プロセッサ・パレットに表示されません。
デフォルトの権限
プロセッサ・セキュリティ・セットがmediumまたはhighに設定された状態で実行されると、プロセッサに付与された権限により、次のシステム・プロパティを読み取ることができます。
-
java.version
-
java.vendor
-
java.vendor.url
-
java.class.version
-
os.name
-
os.version
-
os.arch
-
file.separator
-
path.separator
-
line.separator
-
java.specification.version
-
java.specification.vendor
-
java.specification.name
-
java.vm.specification.version
-
java.vm.specification.vendor
-
java.vm.specification.name
-
java.vm.version
-
java.vm.vendor
-
java.vm.name
他の権限は付与されません。
親トピック: プロセッサ・セキュリティ
スクリプトへの追加権限の付与
インストールはセキュアなスクリプトで実行できますが、ユーザーもアドホック・スクリプトで追加操作を実行できます。典型的な例は、Webサービス・コールの実行です。この追加機能を実現するため、システムでは、アドホック・スクリプト用の追加権限がリストされた構成ファイルがサポートされます。
追加権限ファイルは、ローカル構成ディレクトリのsecurity/permissionsフォルダにあります。スクリプト・プロセッサでは、ファイル名はscriptprocessor.xmlで、スクリプト一致ガジェットでは、ファイル名はscriptgadget.xmlです。ファイルのXML形式は次のとおりです。
<permissions> <permission type="permissionclass" [name="targetname" [action="action"]]/> … </permissions>
権限クラスは、任意のJava権限クラスの完全名です。name属性は、権限にターゲット名が含まれる場合に指定します(クラスには2つまたは3つの引数のコンストラクタがあります)。actionは、権限にアクションが含まれる場合に指定します(クラスには3つの引数のコンストラクタがあります)。
たとえば、ファイル/etc/hostsを読み取る権限を付与するには、次のようにします。
<permission type="java.io.FilePermssion" name="file:/etc/hosts" action="read"/>
システム・プロパティは、${…}置換を使用してnameに含めることができます。標準のシステム・プロパティとともに、次の追加プロパティを使用できます。
-
rootdir: Webアプリケーションのルートの場所。
-
webinfdir: WebアプリケーションのWEB-INFディレクトリの場所。
-
config.path: 構成ディレクトリのパス。そのnameに${config.path}を使用するpermissionsエントリは、パス内の各場所のエントリで置換されます。
親トピック: プロセッサ・セキュリティ
LDAP接続の暗号化
EDQからLDAPディレクトリへの接続は、SSL/TLS接続レイヤーを使用するか、接続の確立後に暗号化をネゴシエーションすることで(StartTLS)暗号化できます。
親トピック: 推奨されるセキュリティ設定の適用
データベース接続の暗号化
TLSを介した接続のためのJDBC URL構文は、使用されているデータベース・ドライバに応じて異なります。Oracle Databaseへの接続は、次のプロパティをデータソースの接続プール構成に追加することで暗号化できます。
oracle.net.encryption_client = REQUIRED
親トピック: 推奨されるセキュリティ設定の適用
同時ログインの制限
個々のユーザーによる同時ログインの数は、login.propertiesに制限を指定できます。この制限は、アプリケーションごとの同時ログインです。つまり、sessionlimitが1の場合、あるユーザーは、同時にディレクタ、サーバー・コンソール、ケース管理にログインできますが、どれにも2回ログインすることはできません。
これは、グローバルに構成するか、レルム単位で構成することができます。すべてのレルムでグローバルにこれを設定するには、次の行を使用します。
sessionlimit = 1
レルムごとに異なる設定を使用するには、次のようにパラメータの前にレルム名を指定します。
internal.sessionlimit = 1
ノート:
前述の行を使用すると、内部レルム(ユーザーがEDQ自体で設定および管理されるという意味)の同時ログインも制限できます。
<external realm name>.sessionlimit = 1
親トピック: 推奨されるセキュリティ設定の適用
FTP/SFTPアクセスの無効化
最適なセキュリティのため、不要な環境では、EDQへのFTP/SFTPアクセスを無効にする必要があります。標準のFTPは、ローカル構成フォルダ内のdirector.propertiesに次の行を追加して無効にできます。
launch.ftpserver = 0
SFTP/SCPは、同じファイル内の次の行を使用して無効にできます。
launch.sshd = 0
親トピック: 推奨されるセキュリティ設定の適用
FTP/SFTPからの構成領域の除外
管理者以外のユーザーがFTP/SFTPにアクセスできる場合、次のようにSFTPサーバーから構成フォルダに対するアクセス権を削除することをお薦めします。
親トピック: 推奨されるセキュリティ設定の適用
サービス統合のための最低限の権限を持つアカウント
SiebelやOracle Data Integratorなどのリモート・システムによって使用されるEDQアカウントには、EDQシステムに対する最低限の権限セットが必要です。具体的には、アカウントは次の権限のみを持つカスタム・グループに属している必要があり、ユーザー・アプリケーションにログインしたり、他の機能を実行するためのアクセス権は付与しません。
-
システム/メッセージング・システムへの接続 - EDQ WebサービスおよびJMSと通信する権限を付与します。
-
システム/システム管理 - EDQ管理(JMX)ポートに接続してジョブを開始できる権限を付与します。
-
コールを可能にする必要があるサービス・インタフェース(Webサービスまたはジョブ)を含む任意のプロジェクトに対する権限。
親トピック: 推奨されるセキュリティ設定の適用
JNDIデータソースの保護
特定のステップを実行しないかぎり、EDQのユーザーは、既存のデータソースのJNDI名に対する参照を使用してデータ・ストアを設定し、これらのスキーマの(機密情報を含む可能性のある)データにアクセスできます。EDQのJNDIデータソースを保護するには、次のようにdirector.propertiesに名前(または名前に一致する正規表現)を指定します。
protected.jndi.datasources = <space separated list of JNDI names>
次に例を示します。
protected.jndi.datasources = jdbc/edqconfig jdbc/edqresults
プロパティは正規表現の空白区切りのリストであるため、次の方法も使用できます。
protected.jndi.datasources = jdbc/edq.*
ノート:
この値をローカルのdirector.propertiesに設定する場合、必ずベース・プロパティ・ファイルのデフォルト設定を含めてください。この設定により、WebLogicの内部データソースとEDQデータソースの両方に対するアクセスを防止します。
親トピック: 推奨されるセキュリティ設定の適用
悪質なファイルのアップロードのブロック
ファイルの名前やタイプに従ってファイルのアップロードをブロックするようにサーバーを構成するには、director.propertiesで次のパラメータを設定します。
| パラメータ名 | 型 | デフォルト値 |
|---|---|---|
|
|
ブール値 |
true。 値をfalseに設定した場合、パラメータ名のチェックは行われません。 |
|
|
テキスト |
有効なファイル名のカンマ区切りリスト。 |
|
|
テキスト |
Javaで認識されるMIMEファイル・タイプ(text/csv、image/bmp、text/plainなど)のカンマ区切りリスト MIMEファイル・タイプのリストは、「MIMEタイプ」を参照してください。 ノート: (任意のタイプのファイルを許可するために)チェックを無効にするには、空の値をパラメータに設定します( |
|
|
テキスト |
無効なファイル名のカンマ区切りリスト。 |
注意:
upload.valid.namesパラメータおよびupload.invalid.namesパラメータには、次のプロパティが適用可能です。
-
このリスト内の名前はそれぞれ接尾辞(
.pdfなど)または~で始まる正規表現です。正規表現が使用されている場合、ファイルのフル・ネームと照合されます。 -
次の場合、ファイル名は拒否されます。
-
upload.valid.namesが指定されており、ファイル名がリストのどの項目にも一致しない場合。 -
upload.invalid.namesが指定されており、名前がリストのいずれかの項目と一致した場合。
-
-
すべてのチェックで、大文字と小文字は区別されません。
親トピック: 推奨されるセキュリティ設定の適用