.NET Coreエージェントを手動でインストール
IISでホストされているWebアプリケーションを使用している、もしくは、Windows、Linux、Docker上でセルフホストのWebアプリケーションを実行している場合は、この方法で.NET Coreエージェントをインストールします。
注記
コンテナへのインストールは複雑になる可能性があり、本項での手順がお客様の利用状況に合わない可能性もあります。Dockerでのインストールについては、こちらの記事を参照してください。
開始する前に
システム要件とサポート対象テクノロジを確認し、インストールが可能で最適なパフォーマンスを得られる環境であるかを確認してください。
手順
Contrast Webインターフェイスの右上で新規登録を選択します。アプリケーションのカードを選択します。 .NET Coreを選択し、 .NET Coreエージェントをダウンロードするリンクを選択します。
Contrast Webインターフェイスの右上にある新規登録を選択します。
アプリケーションのカードを選択します。
使用しているオペレーティングシステムを選択します。
エージェントをインストールする方法を選択します。
エージェント設定ファイルをダウンロードします。
ヒント
Contrastエージェント設定エディタを使用すると、エージェントの設定が簡単になります。
エージェントをダウンロードします。
Webサーバ上のディレクトリで、ダウンロードしたZIPアーカイブ(例、Contrast.NET.Core_1.0.1.zip)を解凍します。ディレクトリには、アプリケーションがアクセスするのに十分な権限を付与してください。
アプリケーションのプロセスに次の環境変数を設定します。ご利用のオペレーティングシステムに適した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>
アプリケーションのランタイムユーザが以下のパスにアクセスできることを確認してください。
パス
用途
カスタマイズ可能
権限
エージェントを設定
可、環境変数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
に、解凍されたディレクトリのルートへの有効な読み取り権限があることを確認します。Contrastサーバに接続するための認証情報やプロキシ情報をエージェントに設定します。
アプリケーションがロードされたら、アプリケーションを疎通して、Contrastでサーバとアプリケーションがアクティブになり、脆弱性が報告されることを確認します。
ヒント
エージェントを更新するには、エージェントディレクトリ内のエージェントファイルを置き換え、アプリケーションを再起動します。エージェントはアプリケーションと一緒に実行されているため、エージェント自体を更新することはできません。
環境が適切に設定されていれば、エージェントはアプリケーションと一緒に自動的に起動します。
エージェントを停止するには、アプリケーションを停止し、環境からエージェントを削除します。または、
CORECLR_ENABLE_PROFILING
の設定を0
に変更することもできます。環境変数の設定は、以下の例を参考にしてください。
IISおよびIIS Express
以下のいずれかの方法によって、環境変数を設定します:
アプリケーションの web.configの
environmentVariables
セクション<?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