Skip to main content

本番環境におけるルートカバレッジの改善

開始する前に

  • Contrastエージェントのサポート対象バージョン:

    • Java 6.6.0以降

    • Python 9.4.0以降

    • .NET Core 4.3.0以降

    • .NET Framework 51.1.0以降

  • この機能を使用する前にご質問やご不明な点がございましたら、Contrastの担当者にお問い合わせください。

ベストプラクティス

  • 本番環境でIAST(Contrast Assess)を使用してアプリケーションをデプロイする前に、本番前の環境でアプリケーションのIASTを有効にして下さい。これにより、互換性とパフォーマンスの問題を確認できます。

  • 本番環境でのIASTは、Contrast Assessでサポートされるフレームワークを使用するアプリケーションにのみ使用してください。

  • アプリケーションサーバの単一インスタンスをインストゥルメントして下さい。

    トラフィックを別のインスタンスにシフトするロードバランサーを使用している場合は、トラフィックのルーティングルールに応じて、1つ以上のコンテナをインストゥルメントすることをお勧めします。

    エージェントのデプロイを制限するにて、この状況の詳細について説明しています。

  • 本番モードでのIASTのパフォーマンスへの影響とオーバーヘッドの削減については、Contrastの担当者にお問い合わせ下さい。平均応答時間、平均CPU使用率、TPS、メモリ割り当てなどに関する詳細なデータがあります。

  • 機密情報のマスキングに関して、Contrastではいかなる機密データも保存されません。

  • エージェントの設定ファイル(YAML)のサンプリング設定を変更しないで下さい。

    エージェントの設定ファイルの設定は、Contrast Webインターフェイスでの設定よりも優先されます。サンプリングの設定を変更する必要がある場合は、Webインターフェイスを使用することをお勧めします。

    ほとんどの場合、SaaS版をご利用のお客様はサンプリング設定にアクセスできませんので、代わりにContrastが管理します。

本番環境でContrast Assessを有効にする

  1. デプロイ時に、エージェントの設定ファイルで「Assess」を有効(enable)にします。

    Assess:
        enable: true
  2. Assessを有効にしたら、Contrastにアプリケーションをデプロイし、以下のオプションのいずれかを設定します。

    • システムプロパティ-Dcontrast.server.environment= PRODUCTION

    • 環境変数CONTRAST__SERVER__ENVIRONMENT= PRODUCTION

    • エージェント設定ファイル(YAMLファイル)

      server:
        Environment: PRODUCTION

      このオプションでは、大文字と小文字が区別されます。

    Contrastエージェントをデプロイする最も簡単な方法は、ContrastのWebインターフェイスで「新規登録」ウィザードを使用することです。

代替デプロイ方法

別のデプロイオプションとして、エージェントの下位レベルのサンプリング設定を含めることもできます。このケースが該当するのは、下位の環境でテストを行い、サーバ環境を適切に設定したい場合です。以下の手順に従います。

  1. エージェント設定ファイルで、Assessの設定をenable: false のままにしておきます。Assessの解析をオフにする必要がある場合、Contrast Webインターフェイスでこの設定を更新できます。

  2. 以下の例に示すように、環境変数またはエージェントの設定ファイルの設定を使用して、エージェントの設定を更新します。

    環境変数

    CONTRAST__ASSESS__SAMPLING__ENABLE=true
    CONTRAST__ASSESS__SAMPLING__BASELINE=20
    CONTRAST__ASSESS__SAMPLING__REQUEST_FREQUENCY=2147483647
    CONTRAST__ASSESS__SAMPLING__WINDOW_MS=3600000
    CONTRAST__ASSESS__CACHE__VULNERABILITY_CACHE_PURGE_MS=3600000
    CONTRAST__ASSESS__EVENT_DETAIL=minimal
    CONTRAST__ASSESS__STACKTRACES=SINK

    エージェント設定ファイル(YAMLファイル)

    assess:
      event_detail: "minimal"
      stacktraces: "SINK"
      sampling:
        enable: true
        request_frequency: 2147483647
        baseline: 20
        window_ms: 3600000
      cache:
        vulnerability_cache_purge_ms: 3600000
    

パフォーマンスの問題に対処する

本番環境でAssessを有効にした後、パフォーマンスへの悪影響があった場合は、サンプリングレートの頻度を変更して下さい。

  1. Contrast Webインターフェイスのナビゲーションバーで、サーバを選択します。

  2. 本番環境でAssessが有効になっているサーバを選択します。

  3. 設定アイコン(icon-settings.svg)を選択します。

  4. パフォーマンス向上のためサンプリングを有効にするを選択する。

  5. 分析頻度を低い値に変更します。

注記

エージェントの設定ファイルの設定は、Contrast Webインターフェイスでの設定よりも優先されます。エージェントの設定ファイルで本番環境のAssessを有効にすると、Webインターフェイスでは、Assessの設定がグレー表示されるか、オフになります。

サンプリング設定による代替デプロイ方法を使用した場合は、この方法を使用してパフォーマンスの問題に対処して下さい。

  1. Contrast Webインターフェイスのナビゲーションバーで、「サーバ」を選択します。

  2. 本番環境でAssessが有効になっているサーバを選択します。

  3. Assessをオフにします。

    この設定は、エージェント設定ファイルでAssessがオンになっていない場合にのみ有効になります。

本番環境のトラフィックでルートカバレッジを使用した場合の影響

この機能を使用しても、データが失われることはありません。この機能を使用した場合の影響は次のとおりです。

  • サンプリング: Contrastは、分析頻度ウィンドウ(設定された期間)で1回だけ分析します。

    通常、この値は24時間です。

  • 機密データ:機密データがContrastに返されることはありません。実際のユーザデータがContrastに保存されるリスクはありません。この動作は、通常、セキュリティ上の理由から推奨されます。

  • スタックトレースとContrast Webインターフェイスの差異(Javaおよび.NETのみ):Javaおよび.NETの結果において、スタックトレースデータの深度が浅くなります。Contrast Webインターフェイスでは、全てのデータフローの情報が表示されますが、赤色のハイライトは表示されません。

パフォーマンス指標

以下のパフォーマンス指標は、本番環境でContrast Assessを使用した場合の潜在的な影響を理解するためのガイドとして使用して下さい。

各エージェントについて、ContrastはSaaS環境でアプリケーションのパフォーマンステストを実施しています。但し、お客様の環境のアプリケーションとは結果が異なる可能性があります。お客様のパフォーマンス指標は、Contrastの指標とは異なる場合があります。

言語

指標

Java

デフォルト設定でのパフォーマンスへのベースラインの影響によって、エージェントがデプロイされていないベースラインに比べて、合計リクエスト時間が2ミリ秒増加します。

.NET

ベースラインの影響により、エージェントの合計リクエスト時間は 1.5ミリ秒に増加します。これは、既に本番環境で実行されているContrast Protectのみのベースラインである0.5ミリ秒と比較した場合です。

Node.js

テストアプリケーションへのベースラインの影響により、エージェントがデプロイされていないベースラインと比較して、エージェントのリクエスト時間が平均10ミリ秒未満増加します。