Skip to main content

.NET Coreエージェントを手動でインストール

IISでホストされているWebアプリケーションを使用している、もしくは、Windows、Linux、Docker上でセルフホストのWebアプリケーションを実行している場合は、この方法で.NET Coreエージェントをインストールします。

注記

コンテナへのインストールは複雑になる可能性があり、本項での手順がお客様の利用状況に合わない可能性もあります。Dockerでのインストールについては、こちらの記事を参照してください。

開始する前に

システム要件サポート対象テクノロジを確認し、インストールが可能で最適なパフォーマンスを得られる環境であるかを確認してください。

手順

  1. Contrast Webインターフェイスの右上で新規登録を選択します。アプリケーションのカードを選択します。 .NET Coreを選択し、 .NET Coreエージェントをダウンロードするリンクを選択します。

  2. Webサーバ上のディレクトリで、ダウンロードしたZIPアーカイブ(例、Contrast.NET.Core_1.0.1.zip)を解凍します。ディレクトリには、アプリケーションがアクセスするのに十分な権限を付与してください。

  3. アプリケーションのプロセスに次の環境変数を設定します。ご利用のオペレーティングシステムに適したCORECLR_PROFILER_PATHの設定を指定します。<UnzippedDirectoryRoot>をアーカイブディレクトリに置き換えます。

    • Windows

      環境変数

      CORECLR_PROFILER_PATH_64

      <UnzippedDirectoryRoot>\runtimes\win-x64\native\ContrastProfiler.dll

      CORECLR_PROFILER_PATH_32

      <UnzippedDirectoryRoot>\runtimes\win-x86\native\ContrastProfiler.dll

      CORECLR_PROFILER

      {8B2CE134-0948-48CA-A4B2-80DDAD9F5791}

      CORECLR_ENABLE_PROFILING

      1

      CONTRAST_CONFIG_PATH

      <path_to_contrast_security.yaml>

      重要

      同じサーバで、.NET Coreエージェントと.NET Frameworkエージェントを実行している場合、CONTRAST_CONFIG_PATHオプションが両方のエージェントのロードパス適用されます。各エージェントに対して個別のパスを適用するには、次のオプションを使用してデータディレクトリを指定します。

      • CONTRAST_CORECLR_DATA_DIRECTORY

      • CONTRAST_DATA_DIRECTORY

    • Linux x64

      環境変数

      CORECLR_PROFILER_PATH_64

      <UnzippedDirectoryRoot>/runtimes/linux-x64/native/ContrastProfiler.so

      CORECLR_PROFILER

      {8B2CE134-0948-48CA-A4B2-80DDAD9F5791}

      CORECLR_ENABLE_PROFILING

      1

      CONTRAST_CONFIG_PATH

      <path_to_contrast_security.yaml>

    • Linux ARM64

      環境変数

      CORECLR_PROFILER_PATH_64

      <UnzippedDirectoryRoot>/runtimes/linux-arm64/native/ContrastProfiler.so

      CORECLR_PROFILER

      {8B2CE134-0948-48CA-A4B2-80DDAD9F5791}

      CORECLR_ENABLE_PROFILING

      1

      CONTRAST_CONFIG_PATH

      <path_to_contrast_security.yaml>

  4. アプリケーションのランタイムユーザが以下のパスにアクセスできることを確認してください。

    パス

    用途

    カスタマイズ可能

    権限

    .NET CoreエージェントのYAMLへのパス

    エージェントを設定

    可、環境変数CONTRAST_CONFIG_PATHを設定

    読取り

    <UnzippedDirectoryRoot>

    「インストール」のルートディレクトリ、エージェントバイナリを格納

    不可

    読取り

    • Windows: %ProgramData%\Contrast\dotnet-core\logs

    • Linux: /var/tmp/contrast/dotnet-core/logs

    Contrastエージェントログのディレクトリ、ない場合は生成される

    可、環境変数CONTRAST_CORECLR_LOGS_DIRECTORYを設定

    読取り/書込み(または親ディレクトリから継承)

    注記

    IISで実行する場合、アプリケーションプールがこれらのパスにアクセスできることを確認してください。

    例えば、デフォルトのIDである ApplicationPoolIdentityを使用するDefault Web Siteという名前のアプリケーションプールがある場合、ユーザのIIS AppPool\Default Web Siteに、解凍されたディレクトリのルートへの有効な読み取り権限があることを確認します。

  5. Contrastサーバに接続するための認証情報やプロキシ情報をエージェントに設定します。

  6. アプリケーションがロードされたら、アプリケーションを疎通して、Contrastでサーバとアプリケーションがアクティブになり、脆弱性が報告されることを確認します。

    ヒント

    エージェントを更新するには、エージェントディレクトリ内のエージェントファイルを置き換え、アプリケーションを再起動します。エージェントはアプリケーションと一緒に実行されているため、エージェント自体を更新することはできません。

    環境が適切に設定されていれば、エージェントはアプリケーションと一緒に自動的に起動します。

    エージェントを停止するには、アプリケーションを停止し、環境からエージェントを削除します。または、CORECLR_ENABLE_PROFILINGの設定を0に変更することもできます。

    環境変数の設定は、以下の例を参考にしてください。

IISおよびIIS Express

以下のいずれかの方法によって、環境変数を設定します:

  • アプリケーションの web.configenvironmentVariablesセクション

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <system.webServer>
            <!-- ... -->
            <aspNetCore processPath="dotnet" arguments=".\ExampleNetCoreApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
                <environmentVariables>
                    <environmentVariable name="CORECLR_PROFILER_PATH_64" value="C:\contrast\dotnetcore\runtimes\win-x64\native\ContrastProfiler.dll" />
                    <environmentVariable name="CORECLR_PROFILER_PATH_32" value="C:\contrast\dotnetcore\runtimes\win-x86\native\ContrastProfiler.dll" />
                    <environmentVariable name="CORECLR_ENABLE_PROFILING" value="1" />
                    <environmentVariable name="CORECLR_PROFILER" value="{8B2CE134-0948-48CA-A4B2-80DDAD9F5791}" />
                    <environmentVariable name="CONTRAST_CONFIG_PATH" value="C:\contrast\dotnet-core\contrast_security.yaml" />           
                </environmentVariables>
            </aspNetCore>
        </system.webServer>
    </configuration>
  • サーバのアプリケーションプール設定

Bash (Linux)

Linux x64:

export CORECLR_PROFILER_PATH_64=/usr/local/contrast/runtimes/linux-x64/native/ContrastProfiler.so 
export CORECLR_ENABLE_PROFILING=1 
export CORECLR_PROFILER={8B2CE134-0948-48CA-A4B2-80DDAD9F5791} 
export CONTRAST_CONFIG_PATH=/etc/contrast/contrast_security.yaml 

Linux ARM64:

export CORECLR_PROFILER_PATH_64=/usr/local/contrast/runtimes/linux-arm64/native/ContrastProfiler.so 
export CORECLR_ENABLE_PROFILING=1 
export CORECLR_PROFILER={8B2CE134-0948-48CA-A4B2-80DDAD9F5791} 
export CONTRAST_CONFIG_PATH=/etc/contrast/contrast_security.yaml 

次に、アプリケーションを実行します。

dotnet ./MyAppWithContrastAgent.dll

Powershell または Powershell Core (Windows)

$env:CORECLR_PROFILER_PATH_64 = 'C:\contrast\dotnetcore\runtimes\win-x64\native\ContrastProfiler.dll' 
$env:CORECLR_PROFILER_PATH_32 = 'C:\contrast\dotnetcore\runtimes\win-x86\native\ContrastProfiler.dll' 
$env:CORECLR_ENABLE_PROFILING = '1' 
$env:CORECLR_PROFILER = '{8B2CE134-0948-48CA-A4B2-80DDAD9F5791}' 
$env:CONTRAST_CONFIG_PATH = 'C:\contrast\dotnet-core\contrast_security.yaml' 

次に、アプリケーションを実行します。

dotnet .\MyAppWithContrastAgent.dll

起動プロファイル(dotnet.exe)

{
    "MyAppWithContrastAgent": {
        "environmentVariables": {
            "CORECLR_PROFILER_PATH_64": "C:\\contrast\\dotnetcore\\runtimes\\win-x64\\native\\ContrastProfiler.dll",
            "CORECLR_PROFILER_PATH_32": "C:\\contrast\\dotnetcore\\runtimes\\win-x86\\native\\ContrastProfiler.dll",
            "CORECLR_ENABLE_PROFILING": "1",
            "CORECLR_PROFILER": "{8B2CE134-0948-48CA-A4B2-80DDAD9F5791}",
            "CONTRAST_CONFIG_PATH": "c:\\contrast\\config\\MyApp\\contrast_security.yaml"
        }
    }
}

次に、アプリケーションを実行します。

dotnet run --launch-profile MyAppWithContrastAgent