ライセンス | オンプレミスおよびSaas |
製品 | Assess |
製品カテゴリ | Contrast UI |
サブカテゴリ | 使い方 |
本項の内容
Contrastを使用してアプリケーションの脆弱性を管理するには、主に以下の4つのステップになります。本項では、アプリケーションの開発者や開発チームがContrastインターフェイス(以下、Contrast UI)を使用して、アプリケーションの脆弱性の検出や結果の参照、管理を行う場合の基本的な操作について説明します。初めてContrast UIをご利用される方は、Contrast UIとはもご覧ください。
1. Contrastエージェントをアプリケーションサーバに追加
まず、脆弱性を検出したいアプリケーションを組織に追加するためにContrastエージェントをアプリケーションに組み込む必要があります。Contrast UIにログインして、右上のエージェントを追加のボタンをクリックします。
Contrastエージェントをダウンロードするためのページが表示されます。アプリケーションをエージェントに組み込むための手順を説明する画面が表示されますので、アプリケーションで使用している言語を選択して、画面の指示に従います。詳細な手順や設定については、エージェントのインストール方法を参照してください。
2. Contrastエージェントを組み込んだアプリケーションを試験
Contrastエージェントを組み込んでアプリケーションを起動したら、検査対象のアプリケーションの画面を操作して、動作確認(正常系の試験)を行います。アプリケーションのサーバ名はContrast UIのサーバタブにすぐに表示されますが、アプリケーション名はアプリケーションを閲覧してトラフィックが生成されるまでアプリケーションタブに表示されません。
アプリケーション名がタブに表示されていても、ライセンスが適用されていない場合、全ての情報が表示されません。ライセンスを適用する方法については、組織のライセンスの割り当てを参照してください。
3. Contrastエージェントから脆弱性が報告
Contrastエージェントによって、アプリケーションのコードに存在する欠陥が発見されると、脆弱性としてContrastに報告されます。アプリケーションタブでアプリケーション名をクリックしてドリルダウンすると、結果の詳細情報が表示されます。
スコアの確認
アプリケーションの概要タブには、スコアが表示されます。Contrastでは、スコアによってアプリケーションにレターグレード(AからFの文字で評価)が付けられます。以下は、PetClinicというアプリケーションのスコアの例です。
アプリケーションの総合スコアは、アプリケーションのカスタムコードのスコアとライブラリのスコアの平均です。この例では、カスタムコードのスコアが70で、ライブラリのスコアが18ですので、平均値の44が総合スコアになります。スコアは、以下のようにレターグレードとマップされます。PetClinicの総合スコアは、44であるためFと判定されます。アプリケーションのスコアの詳細については、アプリケーションのスコアガイドを参照してください。
ライブラリの使用状況の確認
アプリケーションのライブラリタブにアクセスし、脆弱性のあるライブラリを確認し、必要に応じてライブラリを最新の状態にします。Contrastでは、ライブラリのスコア、既知のCVE、最新バージョンとリリース日、ライブラリで使用されているクラスと合計クラスの情報などが提供されます。ライブラリのスコアは、ライブラリの古さ、ライブラリのバージョン数、ライブラリに影響を与える既知のCVEの数という、3つの要素に基づいて計算されます。ライブラリのスコアの詳細については、ライブラリのスコアガイドを参照してください。
スコアの改善
アプリケーションを安全なものにするには、以下に対応しスコアを改善します。
- カスタムコードの脆弱性で深刻度が重大および高のものを修復
- 脆弱なライブラリへの対策
- 古いライブラリの更新
4. 結果を取得して脆弱性を管理する
アプリケーションの脆弱性タブを選択すると、アプリケーションで検出された全ての脆弱性が一覧で表示されます。ここで、対処する必要のない脆弱性を排除して、修正すべき脆弱性だけを残し、対応していきます。
脆弱性に対するワークフローや管理手順はお客様の環境やポリシー等により異なりますが、一般的な脆弱性対応の流れは次のようになります。
アプリケーションの開発者や開発チームが、この一般的なワークフローでContrast UIを使用する場合、次の3ステップを繰り返し行います。
(1) 優先して対応する脆弱性を選別(フローの②)
Contrastでは、アプリケーションの脆弱性は深刻度で分類されます。深刻度は、脆弱性の可能性(悪用されるおおよその確率)と影響度(悪用された場合の損害のレベル)を基準にしており、最も深刻度が高いものから低いものまで5つのレベルがあります。対応すべき脆弱性を選別する上で、より深刻度の高い脆弱性に優先順位をつけることをお勧めします。
- 重大(Critical)
- 高(High)
- 中(Medium)
- 低(Low)
- 注意(Note)
脆弱性にタグを追加すると、特定のキーワードによって関連付けられた脆弱性を検索・管理しやすくなります。
(2) 選別した脆弱性を調査・修正(フローの③〜⑤)
脆弱性タブで脆弱性をクリックすると、脆弱性に関する情報が表示されます。概要タブでは、脆弱とされた理由(何が起こったか?)とそのリスク(どんなリスクであるか?)を説明します。詳細タブのトレース情報により、コード内で発生している問題を具体的に理解できます。問題の修正や対策は、修正方法タブを参考にしてください。
CIツールやIDEなどから、Contrastの脆弱性の検出結果に直接アクセスすることもできます。詳細は、ツールについての説明を参照ください。
Contrastでは、 Jira、Bugzilla、VSTS/TFSなどのチケット管理システムとの連携(組織の管理者によるインテグレーションが必要)が可能です。チケット管理システムと連携されている場合は、Contrastでの脆弱性の検出結果をチケットとして起票することができます。
(3) 脆弱性のステータスを変更(フローの⑥)
対応や修正を行った問題には、脆弱性のステータスを変更して脆弱性を管理します。脆弱性のステータスを変更した場合の動きは、以下の表のようになります。
脆弱性をステータスで管理する方法としては、一般的に以下のようなものが挙げられます。ご利用の環境や脆弱性管理のフローに合わせて最適な方法をお選びください。
- 脆弱性の自動検証ポリシーの利用(組織の管理者による設定が必要)
- JIRAなどのチケット管理システムとの連携(組織の管理者によるインテグレーションが必要)
- IDEプラグインからのステータス変更
- 手動でのステータス変更
関連情報