サンプルアプリケーションでランタイムセキュリティを体験
まずは、Contrastをサンプルアプリケーションに接続することから始めましょう。Contrastエージェントがアプリケーションに組み込まれると、手動操作やテストなど、アプリケーションに対して何らかの操作があるたびにセキュリティデータが自動的に取得されます。これにより、セキュリティテストが、通常のテストプロセスの一部となり、従来のスキャンに比べて時間とコストを節約できます。
ヒント
Dockerコンテナでサンプルアプリケーションを実行したい場合は、こちらを参照してください。
開始する前に
開始する前に、必要なものが揃っているか事前に確認してください。
ターミナルまたはコマンドプロンプトにアクセスしてコマンドを入力できること。
正しいバージョンのJava(Java 8 - 15)がインストールされていること。
1. ダウンロードと設定
エージェントとサンプルアプリケーションをダウンロードして設定します。
Contrastエージェントと脆弱性のあるサンプルアプリケーションをダウンロードしてください。 | これは、Contrastエージェントを組み込んだサンプルアプリケーション(Terracotta Bank)です。アプリケーションの操作中に、エージェントはコードを解析します。 |
Contrast YAMLファイルをダウンロードし、サンプルアプリケーションフォルダに保存します。 | エージェント設定ファイル(YAMLファイル)には、トライアルアカウントの認証キーが含まれています。これにより、サンプルアプリケーションに組み込まれたContrastエージェントが設定を参照できるようになります。 |
お使いのオペレーティングシステムに応じて、ターミナルまたはPowerShellを開きます。 | |
アプリケーションファイルとContrastエージェントを保存したフォルダに移動します。 | |
|
オプションの これには時間がかかる場合があります。 |
引き続き、IASTデータを取得します。 |
2. IASTデータの取得と表示
インタラクティブアプリケーションセキュリティテスト(IAST)のデータを取得して表示します。
以前に |
|
http://localhost:8080/でアプリケーションを参照します。 | |
実行中のアプリケーション内をクリックし、ユーザ名をadminでパスワードをadminでログインしてみてください。 | アプリケーションを操作している間、Contrastエージェントはアプリケーションのコードとライブラリデータを解析します。 |
Contrast Webインターフェイスにログインします。 | |
Applicationsタブに移動し、オンボードしたアプリケーションをクリックします。 | 最新のデータを取得するには、ページの更新が必要な場合があります。 |
Vulnerabilitiesタブに移動して、Contrast Assessによって検出された脆弱性を確認します。 | 脆弱性データには、メソッドだけでなく、パラメータやシンク情報も取得されるため、これが実際に悪用可能な脆弱性であることが分かります。 脆弱性の名前をクリックすると、何が起こったのかの概要が表示されます。 How to Fixタブには、問題を解決するための推奨手順に関する情報が表示されます。 |
Librariesタブに移動し、ライブラリを選択すると、ライブラリのデータが表示されます。 | エージェントは、実行時にライブラリ情報も自動的に収集するため、どのライブラリが実際に使用されているかを確認することができます。 この情報により、ライブラリの更新に優先順位を付けることが非常に容易になり、使用されていないライブラリの更新に時間を費やす必要がなくなります。 |
引き続き、新たにデプロイしたコードのテストを実行します。 |
3. 新規にデプロイしたコードのテストを実行
エージェントがアプリケーションに組み込まれたので、最新のコードの状態を把握するには、新しいコードをデプロイするたびに機能テストや手動テストを実行するのと同じくらい簡単になりました。
https://github.com/Contrast-Security-OSS/demo-terracotta-bankで、Seleniumを使用したテスト付きのエージェントをダウンロードします。 | |
Firefoxブラウザをインストールします。 | |
| |
より多くのデータを取得して、より多くのルートを解析するために、手動または提供された自動テストを使用してアプリケーションをテストし続けてください。 | |
CLIでstopコマンドを使用して、アプリケーションとエージェントを停止します: | アプリケーションは、startコマンドで再起動できます: |
続けて、RASPを有効にして、既知の脆弱性を攻撃してみます。 |
4. RASPの有効化とIASTで検出された既知の脆弱性の攻撃
以前にContrast Asesseを使用していた場合は、ContrastのWebインターフェイスで、Terracotta BankのSQLインジェクションの脆弱性が検出されたことを確認できます。その脆弱性を攻撃で悪用してみましょう。
Contrastランタイムアプリケーションセルフプロテクション(RASP)を有効にします。
以前に | この |
http://localhost:8082/でアプリケーションを参照します。 | 攻撃をブロックする方法を示すために、 SQLインジェクションを使用してTerracotta Bankを攻撃する方法について説明します。 |
ユーザのログインで以下の文字列を入れて攻撃します: | これを実行すると、SQLクエリの残りの部分は無視されるため、adminユーザとしてログインできます。 この操作は、本番環境における攻撃のようなものです。 |
Contrast Webインターフェイスにログインします。 | 最新のデータを取得するには、更新が必要な場合があります。 |
Attacksタブに移動し、Monitorを選択します。 | Contrastで表示される攻撃データには、Source IP、Status、Application、Server、Rule、Start、End、およびEventsがあります。 |
SQLインジェクション攻撃を選択すると、攻撃者のIPや攻撃値などの詳細が表示されます。 | |
攻撃をブロックするように、Protectルールを設定します。SQLインジェクションのルールを選択し、 Change Modeを選択し、全ての環境でBlockを選択してください。 (設定を忘れずに保存してください。) | Protectルールを設定することで、攻撃方法はブロックであることがエージェントに指定されます。 |
ルールが機能していることを確認するには、Terracotta Bankに戻り、攻撃を再試行します。 | ログインできなくなっているはずです。 |
Contrastに戻り、新しい攻撃がブロックされたことを確認します。 | |
引き続き、他の攻撃をお試しください。 | |
| アプリケーションは、startコマンドで再起動できます: |