Deep Security Managerとデータベース間の通信の暗号化

初期設定では、Deep Security Managerとデータベース間の通信は暗号化されません。これは、パフォーマンス上の理由と、Managerとデータベースが同じコンピュータ上で実行されているか、または両者がクロスケーブルやプライベートネットワークセグメント、IPSec経由のトンネリングのいずれかで接続されているかにかかわらず、両者間のチャネルがすでに保護されているということを前提にしているからです。

したがって、Deep Security Managerとデータベース間の通信チャネルが保護されていない場合は、その間の通信を暗号化する必要があります。これを実行するには、\[Deep Security Managerインストールディレクトリ]\webclient\webapps\ROOT\WEB-INF\内のdsm.propertiesファイルを編集します。

この手順は、使用するデータベースによって異なります。

複数ノードモードでDeep Security Managerを実行している場合は、以下の変更をノードごとに適用する必要があります。

このセクションでは、データベースサーバでAgentを実行するに関する情報と、Managerとデータベース間の暗号化を無効にする方法も示します。

Managerとデータベースの間の通信を暗号化する

Microsoft SQL Serverデータベース (Linux)

  1. Deep Security Managerのサービスを停止します。
    # service dsm_s stop
  2. /opt/dsm/webclient/webapps/ROOT/WEB-INF/dsm.propertiesを編集して次の行を追加します。
    database.SqlServer.encrypt=true
    database.SqlServer.trustServerCertificate=true

    Deep Security 10.1以前のバージョンからアップグレードし、データベースへの接続にトランスポートとして名前付きパイプを使用する場合は、代わりに次の行を追加します。
    database.SqlServer.ssl=require

  3. Deep Security 10.1以前のバージョンからアップグレードし、データベースへの接続にトランスポートとして名前付きパイプを使用する場合は、/opt/dsmに次の行を含む「dsm_s.vmoptions」という名前のファイルを作成します。
    -Djsse.enableCBCProtection=false
  4. SQL Server構成マネージャを開き、インスタンスのプロトコルプロパティで [強制的に暗号化] を有効にします。

  5. Deep Security Managerのサービスを開始します。
    # service dsm_s start

詳細については、Microsoft MSDNサイトの「データベース エンジンへの暗号化接続の有効化」を参照してください。

Microsoft SQL Server (Windows)

  1. Deep Security Managerのサービスを停止します。
  2. \Program Files\Trend Micro\Deep Security Manager\webclient\webapps\ROOT\WEB-INF\dsm.propertiesを編集して次の行を追加します。
    database.SqlServer.encrypt=true
    database.SqlServer.trustServerCertificate=true

    Deep Security 10.1以前のバージョンからアップグレードし、データベースへの接続にトランスポートとして名前付きパイプを使用する場合は、代わりに次の行を追加します。
    database.SqlServer.ssl=require

  3. Deep Security 10.1以前のバージョンからアップグレードし、データベースへの接続にトランスポートとして名前付きパイプを使用する場合は、\Program Files\Trend Micro\Deep Security Managerに次の行を含む「Deep Security Manager.vmoptions」という名前のファイルを作成します。
    -Djsse.enableCBCProtection=false
  4. SQL Server構成マネージャを開き、インスタンスのプロトコルプロパティで [強制的に暗号化] を有効にします。

  5. Deep Security Managerのサービスを開始します。

詳細については、Microsoft MSDNサイトの「データベース エンジンへの暗号化接続の有効化」を参照してください。

Oracle Database

  1. 次の行をdsm.propertiesに追加します (例)。
    database.Oracle.oracle.net.encryption_types_client=(AES256)
    database.Oracle.oracle.net.encryption_client=REQUIRED
    database.Oracle.oracle.net.crypto_checksum_types_client=(SHA1)
    database.Oracle.oracle.net.crypto_checksum_client=REQUIRED
  2. ファイルを保存して、閉じます。Deep Security Managerのサービスを停止して再開します。

先頭に「database.Oracle.」が付いているすべてのパラメータがOracleドライバに渡されます。

encryption_types_clientに指定できる値は次のとおりです。

  • AES256
  • AES192
  • AES128
  • 3DES168
  • 3DES112
  • DES56C
  • DES40C
  • RC4_256
  • RC4_128
  • RC4_40
  • RC4_56

crypto_checksum_types_clientに指定できる値は次のとおりです。

  • MD5
  • SHA1

その他のオプションについては、https://docs.oracle.com/cd/B28359_01/java.111/b31224/clntsec.htmを参照してください。

PostgreSQL

  1. PostgreSQLでSSLを有効にします。オンプレミスのPostgreSQLデータベースでのこの方法の詳細については、「Secure TCP/IP Connections with SSL」を参照してください。Amazon RDS for PostgreSQLの場合は、「PostgreSQL DB インスタンスで SSL を使用する」を参照してください。
  2. Trend Micro Deep Security Managerサービスを停止します。
  3. dsm.propertiesファイルに次の行を追加します。
    database.PostgreSQL.connectionParameters=ssl=true
  4. Trend Micro Deep Security Managerサービスを再起動します。
  5. ManagerがTLSを使用して接続していることを確認するには、次のクエリを使用して [SSL] 列を確認します。
    select a.client_addr, a.application_name, a.usename, s.* from pg_stat_ssl s join pg_stat_activity a using (pid) where a.datname='<Deep Securityデータベース名>';

データベースサーバでAgentを実行する

Agentを使用してデータベースを保護している場合は、暗号化を有効にする必要があります。セキュリティアップデートを実施すると、Deep Security Managerはデータベースに新規の侵入防御ルールを格納します。データが暗号化されていないと、Agentによるルールの解析の際に、ルール名が原因である誤判定がほぼ間違いなく発生してしまいます。

Managerとデータベース間の暗号化を無効にする

Deep Security Managerとデータベース間の通信を暗号化している場合、Deep Security Managerへのアップグレードを実行する前に、暗号化を無効にする必要があります。

Microsoft SQL Serverデータベース (Linux)

  1. Deep Security Managerのサービスを停止します。
    # service dsm_s stop
  2. /opt/dsm/webclient/webapps/ROOT/WEB-INF/dsm.propertiesを編集して次の行を削除します。
    database.SqlServer.encrypt=true
    database.SqlServer.trustServerCertificate=true

    Deep Security 10.1以前のバージョンからアップグレードし、データベースへの接続にトランスポートとして名前付きパイプを使用する場合は、代わりに次の行を削除します。
    database.SqlServer.ssl=require

  3. SQL Server構成マネージャを開き、インスタンスのプロトコルプロパティで [強制的に暗号化] を無効にします。
  4. Deep Security Managerのサービスを開始します。
    # service dsm_s start

Microsoft SQL Server (Windows)

  1. Deep Security Managerのサービスを停止します。
  2. \Program Files\Trend Micro\Deep Security Manager\webclient\webapps\ROOT\WEB-INF\dsm.propertiesを編集して次の行を削除します。
    database.SqlServer.encrypt=true
    database.SqlServer.trustServerCertificate=true

    Deep Security 10.1以前のバージョンからアップグレードし、データベースへの接続にトランスポートとして名前付きパイプを使用する場合は、代わりに次の行を削除します。
    database.SqlServer.ssl=require

  3. SQL Server構成マネージャを開き、インスタンスのプロトコルプロパティで [強制的に暗号化] を無効にします。
  4. Deep Security Managerのサービスを開始します。

Oracle Database

  1. 次の行をdsm.propertiesから削除します (例)。

    database.Oracle.oracle.net.encryption_types_client=(AES256)
    database.Oracle.oracle.net.encryption_client=REQUIRED
    database.Oracle.oracle.net.crypto_checksum_types_client=(SHA1)
    database.Oracle.oracle.net.crypto_checksum_client=REQUIRED

  2. ファイルを保存して、閉じます。Deep Security Managerのサービスを停止して再開します。

PostgreSQL

  1. Trend Micro Deep Security Managerサービスを停止します。
  2. dsm.propertiesファイルの次の行を削除します。
    database.PostgreSQL.connectionParameters=ssl=true
  3. Trend Micro Deep Security Managerサービスを再起動します。