Skip to main content

サンプルアプリケーションでランタイムセキュリティを体験

まずは、Contrastをサンプルアプリケーションに接続することから始めましょう。Contrastエージェントがアプリケーションに組み込まれると、手動操作やテストなど、アプリケーションに対して何らかの操作があるたびにセキュリティデータが自動的に取得されます。これにより、セキュリティテストが、通常のテストプロセスの一部となり、従来のスキャンに比べて時間とコストを節約できます。

ヒント

Dockerコンテナでサンプルアプリケーションを実行したい場合は、こちらを参照してください。

開始する前に

開始する前に、必要なものが揃っているか事前に確認してください。

  • ターミナルまたはコマンドプロンプトにアクセスしてコマンドを入力できること。

  • 正しいバージョンのJava(Java 8 - 15)がインストールされていること。

1. ダウンロードと設定

エージェントとサンプルアプリケーションをダウンロードして設定します。

Contrastエージェントと脆弱性のあるサンプルアプリケーションをダウンロードしてください。

これは、Contrastエージェントを組み込んだサンプルアプリケーション(Terracotta Bank)です。アプリケーションの操作中に、エージェントはコードを解析します。

icon-arrow-down.svg

Contrast YAMLファイルをダウンロードし、サンプルアプリケーションフォルダに保存します。

moveyaml.gif

エージェント設定ファイル(YAMLファイル)には、トライアルアカウントの認証キーが含まれています。これにより、サンプルアプリケーションに組み込まれたContrastエージェントが設定を参照できるようになります。

icon-arrow-down.svg

お使いのオペレーティングシステムに応じて、ターミナルまたはPowerShellを開きます。

icon-arrow-down.svg

アプリケーションファイルとContrastエージェントを保存したフォルダに移動します。

icon-arrow-down.svg

./start.sh <environment> [port]コマンドを使用してアプリケーションを実行します。

assess_gif.gif

<environment>は以下のいずれかのオプションとなります。

  • assess:アプリケーションを開発モード(Contrast Assess)のみで起動します。

  • protect:アプリケーションを本番モード(Contrast Protect)のみで起動します。

  • all:開発モードと本番モードの両方(Contrast AssessとContrast Protect)を同時に起動します。

オプションの[port]引数を使用すると、アプリケーションのカスタムポートを指定できます。指定しない場合は、デフォルトのポートが使用されます。

これには時間がかかる場合があります。

icon-arrow-down.svg

引き続き、IASTデータを取得します。

2. IASTデータの取得と表示

インタラクティブアプリケーションセキュリティテスト(IAST)のデータを取得して表示します。

以前にallまたはassessオプションを指定してアプリケーションを実行していない場合は、 ./start.sh assess コマンドを使用して実行してください。

assessオプションによって、Contrast Assessが有効な状態でアプリケーションが起動します。

icon-arrow-down.svg

http://localhost:8080/でアプリケーションを参照します。

icon-arrow-down.svg

実行中のアプリケーション内をクリックし、ユーザ名をadminでパスワードをadminでログインしてみてください。

terracottainteract.gif

アプリケーションを操作している間、Contrastエージェントはアプリケーションのコードとライブラリデータを解析します。

icon-arrow-down.svg

Contrast Webインターフェイスにログインします。

icon-arrow-down.svg

Applicationsタブに移動し、オンボードしたアプリケーションをクリックします。

最新のデータを取得するには、ページの更新が必要な場合があります。

icon-arrow-down.svg

Vulnerabilitiesタブに移動して、Contrast Assessによって検出された脆弱性を確認します。

vulnsampleFT.png

脆弱性データには、メソッドだけでなく、パラメータやシンク情報も取得されるため、これが実際に悪用可能な脆弱性であることが分かります。

脆弱性の名前をクリックすると、何が起こったのかの概要が表示されます。

How to Fixタブには、問題を解決するための推奨手順に関する情報が表示されます。

icon-arrow-down.svg

Librariesタブに移動し、ライブラリを選択すると、ライブラリのデータが表示されます。

FreeTrialLibrary.png

エージェントは、実行時にライブラリ情報も自動的に収集するため、どのライブラリが実際に使用されているかを確認することができます。

この情報により、ライブラリの更新に優先順位を付けることが非常に容易になり、使用されていないライブラリの更新に時間を費やす必要がなくなります。

icon-arrow-down.svg

引き続き、新たにデプロイしたコードのテストを実行します。

3. 新規にデプロイしたコードのテストを実行

エージェントがアプリケーションに組み込まれたので、最新のコードの状態を把握するには、新しいコードをデプロイするたびに機能テストや手動テストを実行するのと同じくらい簡単になりました。

https://github.com/Contrast-Security-OSS/demo-terracotta-bankで、Seleniumを使用したテスト付きのエージェントをダウンロードします。

icon-arrow-down.svg

Firefoxブラウザをインストールします。

icon-arrow-down.svg

./gradlew cleanTest testを使用してアプリケーションを実行します。

icon-arrow-down.svg

より多くのデータを取得して、より多くのルートを解析するために、手動または提供された自動テストを使用してアプリケーションをテストし続けてください。

icon-arrow-down.svg

CLIでstopコマンドを使用して、アプリケーションとエージェントを停止します:./stop.sh

アプリケーションは、startコマンドで再起動できます:./start.sh <environment> [port]

icon-arrow-down.svg

続けて、RASPを有効にして、既知の脆弱性を攻撃してみます。

4. RASPの有効化とIASTで検出された既知の脆弱性の攻撃

以前にContrast Asesseを使用していた場合は、ContrastのWebインターフェイスで、Terracotta BankのSQLインジェクションの脆弱性が検出されたことを確認できます。その脆弱性を攻撃で悪用してみましょう。

Contrastランタイムアプリケーションセルフプロテクション(RASP)を有効にします。

以前にallまたはprotectオプションを指定してアプリケーションを実行していない場合は、./start.sh protectコマンドを使用して実行してください。

このprotectオプションによって、Contrast Protectが有効な状態でアプリケーションが起動します。

icon-arrow-down.svg

http://localhost:8082/でアプリケーションを参照します。

攻撃をブロックする方法を示すために、 SQLインジェクションを使用してTerracotta Bankを攻撃する方法について説明します。

icon-arrow-down.svg

ユーザのログインで以下の文字列を入れて攻撃します:admin' --

これを実行すると、SQLクエリの残りの部分は無視されるため、adminユーザとしてログインできます。

この操作は、本番環境における攻撃のようなものです。

icon-arrow-down.svg

Contrast Webインターフェイスにログインします。

最新のデータを取得するには、更新が必要な場合があります。

icon-arrow-down.svg

Attacksタブに移動し、Monitorを選択します。

Contrastで表示される攻撃データには、Source IPStatusApplicationServerRuleStartEnd、およびEventsがあります。

icon-arrow-down.svg

SQLインジェクション攻撃を選択すると、攻撃者のIPや攻撃値などの詳細が表示されます。

icon-arrow-down.svg

攻撃をブロックするように、Protectルールを設定します。SQLインジェクションのルールを選択し、 Change Modeを選択し、全ての環境でBlockを選択してください。

(設定を忘れずに保存してください。)

Protectルールを設定することで、攻撃方法はブロックであることがエージェントに指定されます。

icon-arrow-down.svg

ルールが機能していることを確認するには、Terracotta Bankに戻り、攻撃を再試行します。

FreeTrialBlocked.png

ログインできなくなっているはずです。

icon-arrow-down.svg

Contrastに戻り、新しい攻撃がブロックされたことを確認します。

FreeTrialAttackEventBlocked.png
icon-arrow-down.svg

引き続き、他の攻撃をお試しください。

icon-arrow-down.svg

./stop.shコマンドで、サンプルアプリケーションとエージェントを停止します。

アプリケーションは、startコマンドで再起動できます:./start.sh <environment> [port]