セキュリティのベストプラクティス

Version 24.3.9106


セキュリティのベストプラクティス


このページでは、CData Arc で利用可能なセキュリティ関連の機能に関する情報、および推奨するベストプラクティスについて説明します。セキュリティのトピックは、大きく2つのカテゴリに分類されます。

  • Arc が動作するインフラストラクチャの保護
  • Arc 内のデータの保護

これらのセクションはどちらも、関連するセキュリティ概念について説明し、ベストプラクティスの推奨事項を備えたサブセクションを含んでいます。

CData Arc インフラストラクチャの保護

多くのセキュリティ設定は、サーバーの設定ファイルによって管理されます。Arc に含まれる組み込みWeb サーバーを使用する場合、サーバー設定ファイルは次の場所にあります。

  • .NET 版—Arc インストールディレクトリ内のwww フォルダにあるWeb.Config ファイル(デフォルトではC:\Program Files\CData\CData Arc

  • Java 版—Arc インストールディレクトリにあるarc.properties ファイル

Arc を外部サーバーにデプロイする場合は、その外部サーバーの設定ファイルを代わりに使用する必要があります。

インバウンドトラフィックのTLS / SSL の有効化

CData では、サーバーでTLS / SSL を有効にすることを強くお勧めします。TLS / SSL は、公開鍵 / 秘密鍵暗号化を使用して、クライアントとサーバー間の通信チャネルを暗号化します。この暗号化により、Arc においてデータの機密性、信頼性、完全性が保護されます。さらに、デジタル証明書を使用することで、TLS はクライアント / サーバーのID 確認機能を提供します。

インバウンドTLS / SSL の有効化は、2つのカテゴリに分類できます。

  • ホストWeb サーバーのTLS。これは、下位でHTTP を使用するプロトコル(AS2AS4 など)を含むHTTP トラフィックに関連します。これらのリクエストの処理には、Arc をホストするWeb サーバーが使用されるため、Web サーバーレベルでTLS を有効にする必要があります。
  • その他すべてのサーバーのTLS。これは、FTPOFTP のような非HTTP トラフィックに関連します。これらのインバウンド接続を処理するサーバーはArc をホストするWeb サーバーとは異なるため、Arc インターフェースのプロファイルページのタブで、適切なプロトコルに対しこれらのオプションを有効にする必要があります。

Web サーバーのTLS / SSL

その他のサーバーのTLS / SSL

次のサーバーのTLS / SSL を有効化するには、プロファイルページを使用します。

各サーバーには、プロファイルページにTLS / SSL を有効または無効にできるタブがあります。

ファイアウォールの設定とDMZ の使用

Arc がメッセージを送受信するには、関連する送信ポートと受信ポートでファイアウォールの干渉を受けないようにする必要があります。ファイアウォール内で特定のIP をホワイトリストに登録し、予想されるソースからのみトラフィックが送信されるようにすることが最善のオプションです。これが不可能な場合は、Arc がインバウンドメッセージをリッスンする重要なポートでファイアウォールを開く必要があります。Arc は、ログインポータルの背後で構成リソースを保護します。

デフォルトでは、Arc Web サーバーはポート8001 をリッスンします。非Web プロトコルのポートは、アプリケーションで直接構成できます。例えば、OFTP サーバーのリスニングポートは、プロファイルページのOFTP サーバータブで設定可能です。

DMZ

.NET 版Arc には、非武装地帯(DMZ)内でArc をホストするためのリバースSSH トンネルを確立するためのサポートが含まれており、プライベートネットワークのファイアウォールを直接開かないようにすることができます。クラウドホスティングについての詳細は、DMZ Gateway を参照してください。

パブリックエンドポイントをWeb インターフェースから分離

デフォルトでは、Arc は同じWeb サーバーポートを使用して、管理コンソール(Arc が構成および管理される場所)と、リモートパートナーがアプリケーションにデータを送信するために使用するパブリック受信エンドポイントの両方をホストします。管理コンソールは、リモートパートナーがアクセスできないように認証情報によって保護されています。しかし、パブリック受信エンドポイントを別のポートでホスティングすることで、ネットワーク / ファイアウォールのルールを使用して冗長性を追加し、セキュリティを強化することができます。別のネットワークポートでパブリック受信エンドポイントをホストする方法の詳細については、個別のAPI エンドポイントを参照してください。

サーバーのセキュリティ設定の強化

Arc の設定ファイルにScriptingEngineHardeningLevel コンフィギュレーションパラメータを設定することで、Arc サーバーのセキュリティを高めることができます。デフォルトでは、このパラメータは0 に設定されており、いかなる操作もブロックされません。値は0 から3 まで設定でき、値が大きいほど特定の操作が無効になり、セキュリティが強化されます。次のテーブルは、各ハードニングレベルでどの操作が無効になるかを示しています。

レベル 無効な操作
0 すべての操作が許可されます。これがデフォルトです。
1 最も脆弱な操作は無効になります。これには、ユーザーが任意の方法でホストシステムと対話できるようにするあらゆる操作が含まれます。
2 レベル1で禁止されている操作に加えて、このレベルでは、新規ユーザーの作成、ディスク上のファイルへの恣意的でないアクセス、および繰り返しタスクの導入などの操作が無効になります。
3 レベル1および2で禁止されている操作に加えて、このレベルでは、サーバーから機密情報を取得する操作や、任意のhttp リクエストを実行する操作が無効になります。

次のセクションを参考に、インストールのハードニングレベルを設定します。

.NET

テキストエディタを使用して、インストールディレクトリ内のwww フォルダにあるWeb.Config ファイルを開きます。一番下の<appSettings> タグの中に次の行を追加し、value を希望のレベルに設定します。

<appSettings>
     <add key="ScriptingEngineHardeningLevel" value="0"/>
</appSettings>

Java

テキストエディタを使用して、インストールディレクトリにあるarc.properties ファイルを開きます。次のプロパティの行を追加し、数値を希望のレベルに設定します。

cdata.initParameters=ScriptingEngineHardeningLevel:0

外部マルウェアおよびアンチウイルスファイルスキャナーとの関係

Arc は、ファイル処理中にアプリケーションディレクトリのコンテンツに排他的にアクセスできることを想定しています。アプリケーションは、複数のスレッドが同じファイルを処理しないように、アプリケーションディレクトリのリソースロックなど、時間に敏感なリソースを使用します。コネクタのインプットタブ内のファイルをスキャンしてメッセージにメタデータを適用し、コネクタ間でファイルを移動するときは、コネクタのディレクトリ間で即座にファイルを移動してフロー内の複数ステップにわたる迅速な処理を保証します。

ファイルやファイルハンドルをスキャンするプロセスはArc のパフォーマンスに影響を与え、ファイル自動化の中断、トラフィックのログの失敗、コネクタ間のメッセージ移動の失敗、処理パフォーマンスの低下など、アプリケーションで予期せぬ動作を引き起こす可能性があります。

CData では、ファイルスキャンユーティリティをArc のアプリケーションディレクトリまたはそのサブディレクトリに指定しないことをお勧めします。ローカルシステムに到着したファイルに対してウイルスやマルウェアのスキャンを実行する必要がある場合は、File コネクタ を使用して、ファイルをアプリケーションディレクトリ外のディスク上のパスに移動することをお勧めします。その場所は、ファイルスキャン用のステージングフォルダとして使用できます。

File コネクタを使用してスキャンしたファイルの処理を続行する

他のプロセスと共有されているディスク上のフォルダからファイルを受信する場合、File コネクタを使用して受信の遅延を設定し、コネクタが受信ファイルを受信および処理するまでの待機時間(秒単位)を設定できます。デフォルトの間隔は5秒です。この値を大きくすると、ファイルスキャナーが完了するまでの時間が長くなります。

CData Arc 内のデータの保護

次のセクションは、Arc 内のデータのセキュリティに関するものであり、アプリケーションを流れるメッセージ / データ、およびフロー設定そのものを含みます。

アウトバウンドトラフィックのTLS / SSL の有効化

Arc は、アウトバウンド接続のターゲットURL に基づいて、TLS / SSL をネゴシエートするかどうかを自動的にパースします。例えば、AS2 アウトバウンド接続がhttps URL をターゲットにしている場合、Arc はTLS をネゴシエートします。

TLS / SSL は、暗号化メカニズムが組み込まれていないプロトコルを介してデータを転送する場合に強く推奨されます。つまり、Web トラフィックはhttps エンドポイントに送信され、FTP トラフィックはftps エンドポイント送信される必要がある、などです。ターゲットURL を正しく設定する以外に、Arc がTLS / SSL 暗号化をネゴシエートするために追加の手順は必要ありません。

TLS / SSL サーバー証明書とSSH キーの検証

TLS / SSL またはSSH サーバーへのアウトバウンド接続を行う場合、接続を確立するコネクタ(例えば、RESTAS2SFTP)は、サーバーから提供された証明書またはキーの検証を試みます。コネクタ設定にサーバー証明書 / キーが設定されていない場合、Arc は基盤となるシステム(OS やJRE)に存在する検証プロセスを使用して、サーバーの証明書が信頼できるかどうかを判断します。

特定のTLS / SSL 証明書またはSSH キーのサムプリントを使用してコネクタを構成して、基盤となるシステム動作をオーバーライドできます。アウトバウンド接続を行うときに、サーバーの証明書がコネクタで構成されている証明書と一致する場合、コネクタはサーバーを信頼します。このオプションは最高レベルのセキュリティを提供します。

TLS サーバー証明書フィールドを Any Certificate に設定すると、コネクタはサーバーのID を暗黙的に信頼します。サーバーのなりすまし攻撃の心配がない場合にのみ、これを実行してください。

ユーザーと管理者の管理およびAPI へのアクセス

Arc は、Arc Web インターフェースにログインしてアプリケーションを使用する権限を持つユーザーの一連のユーザー名とパスワード資格情報を保持します。Admin ロールを含むユーザーとロールの詳細については、ユーザー管理とロールを参照してください。

Admin ロールを持つユーザーは、他のユーザーのパスワードにアクセスして変更することができます。Arc の最初の起動時に作成されたAdmin ユーザーの資格情報は、このアカウントが安全で回復可能であることを保証するために、外部の場所に安全に保存する必要があります。

管理API

ユーザーは、管理API への呼び出しを通じてすべてのアプリケーション管理タスクを実行できるため、このAPI へのアクセスを保護することは、Web インターフェースへのアクセスを保護することと同じくらい重要です。Arc ユーザーが作成されると、このユーザーにAPI へのアクセスを許可する認証トークンを生成できます(アプリケーション内でのユーザーのロールに応じた制限があります)。認証トークンを使用して管理API にアクセスする方法の詳細については、認証を参照してください。

Note:ユーザーの認証トークンは作成後は表示されないため、外部の場所に安全に保管する必要があります。