エージェント
Contrastエージェントは、アプリケーションからセキュリティに関連するデータを収集し、そのデータを解析して、必要に応じて検出結果をContrastに報告します。特定の条件で、Contrastエージェントは悪用を防止したり、セキュリティ防御を有効にしたりするために、アプリケーション内で処理を実行することもあります。
Contrastエージェントをインストールすることで、コードスキャン、ライブラリスキャン、アプリケーションの解析、設定ファイルのスキャンなど、さまざまなセキュリティ計測技術を使用してセキュリティに関連する情報を収集できます。このさまざまなセキュリティ計測技術となって情報を収集するのが、センサーです。
センサーによって、アプリケーション内からスナップショットで直接情報が取得されイベントが生成されます。例えば、センサーは、受信したHTTPパラメータやデータベースに対して実行されるSQLクエリの詳細を取得します。センサーによっては、必要に応じて、防御機能を強化したり悪意のある攻撃をブロックしたりするために、脆弱性を迂回させるセキュリティ例外をスローする処理などを行う場合もあります。
センサーによって生成されたイベントは全て、エージェントによる追跡と解析対象としてContrastサーバに報告されます。解析エンジンはアプリケーションのあらゆるコードからイベントを受け取り、それらのイベントによって次第にトレースが構築されていきます。解析エンジンは、これらのトレースを監視して、Contrastルールに違反する動作パターンを探します。
例えば、解析エンジンは以下のようなデータフローを確認します。
受信したHTTPリクエストのパラメータに関するイベント
次に、そのパラメータがSQLクエリに追加されていることを示す別のイベント
最後に、そのクエリがデータベースに送信されていることを示す別のイベント
適切な防御策(エスケープ処理やパラメータ化)がないデータフローを解析エンジンが検出した場合は、そのトレースがSQLインジェクションのContrastルールに一致すると認識され、Contrastサーバに報告されます。解析の大部分はエージェント内でローカルに行われるため、Contrastの拡張性とパフォーマンスが向上します。
検査対象のアプリケーションの言語と一致するエージェントを使用してください。
Javaエージェントは、コンテナで実行されるJavaのWebアプリケーションおよびWeb APIを計測します。
.NET Frameworkエージェントは、IISで実行される.NET FrameworkのWebアプリケーションおよびAPIを計測します。
.NET Coreエージェントは、.NET Coreランタイムで実行されるアプリケーションおよびAPIを計測します。
Node.jsエージェントは、Node.jsのWebアプリケーションおよびAPIを計測します。
PHPエージェントは、PHPのWebアプリケーションを実行時に解析し、ライブラリの使用状況や脆弱性の検出を行います。
Pythonエージェントは、Django、FlaskおよびPyramidのWebアプリケーションを計測します。
Rubyエージェントは、Ruby on RailsのWebアプリケーションを計測します。
Goエージェントは、ライブラリのサポートと脆弱性報告のために、GoのWebアプリケーションを計測します。
注記
Contrastエージェントは、リリース後1年間サポートされます。古いエージェントは、引き続き機能し互換性を維持できる可能性もありますが、完全にサポート対象外になります。
Contrastでは、バグの修正の適用や新機能の開発は、エージェントの最新バージョンが対象となります。コードの修正は、古いバージョンにはバックポートされません。バグに対して回避策が提供されている場合でも、問題を解決するには、その問題が修正されたリリースに更新してください。