Java アプリケーションの最新化は、1 回限りではありません。 新しい CVE は毎日公開され、コードの進化に合わせて新しい CWE の結果が表示され、依存関係はコンプライアンスから逸脱します。 アプリケーションのセキュリティを維持することは、 セキュリティ負債を継続的に検出して修正 することを意味します。これは、アプリケーションのセキュリティについて常に考える方法です。
GitHub Copilotモダン化は、次の 2 つの機能を使用するのに役立ちます。
- セキュリティ評価 - ISO/IEC 5055 によって導かれた CWE の結果 と、直接的および推移的な依存関係の CVE の脆弱性 についてコードをスキャンします。
- コード修復 - 選択した問題を修正するための実行プランを生成し、修正プログラムを適用します。
これらの機能は、次の機能で確認できます。
- Visual Studio Code - 対話型スキャンと修正。この記事で説明します。
- CLI の最新化 - セキュリティは バッチ評価の評価ドメインの 1 つであるため、1 回の実行でアプリケーションのポートフォリオをスキャンできます。
Visual Studio Codeでセキュリティの問題をスキャンして解決する
1 つのフローでセキュリティの問題を評価して修復するには、次の手順に従います。
1. セキュリティ スキャンを開始する
GitHub Copilot モダナイゼーション ペインで、クイック スタート ビューを開き、セキュリティの問題をスキャンして解決 を選択します。
Copilotは、プロジェクトに対してセキュリティ ドメイン評価を実行します。 スキャンの対象は次のとおりです。
- ISO/IEC 5055 に準拠したキュレーションされた CWE 規則のセット。ファイル & パス セキュリティ、インジェクション攻撃、メモリの安全性、コード品質、資格情報とシークレット、コンカレンシーと同期の 6 つのカテゴリにグループ化されています。
- GitHub Security Advisories データベースに基づく、直接および推移的な依存関係内の CVE の検出結果
CWE ルールの完全なカタログと CVE カバレッジの詳細については、「評価の 対象範囲を理解する」を参照してください。
Note
CVE チェックはGitHub認証なしで機能しますが、匿名呼び出しのレートは制限されます。 大規模なプロジェクトの場合は、調整を回避するために gh auth login でサインインします。
2. レポートを確認する
スキャンが完了すると、 評価レポート が開き、セキュリティ結果が表示されます。
どの CVE サーフェスを制御するには、評価構成で [セキュリティ: 最小 CVE 重大度 ] を設定します。 使用できる値は、 critical、 high、 medium、および lowです。既定値は high。
3. 修正する問題を選択して計画を作成する
修正する問題カテゴリを選択します。 アクション ボタンは更新されて件数が表示されます。たとえば、プランの作成 (3) のようになります。 これを選択して実行プランを生成します。
4. プランを確認する
Copilotは、実行プランを Markdown ファイルとして書き込み、プレビュー ウィンドウで開き、修正プログラムが適用される前に読み取ることができます。 このプランでは、Copilot が選択された問題をどのようにグループ化し、対処するかについて説明します。 CVE の問題は依存関係別にグループ化され、CWE の結果はファイルごとにグループ化されます。 スコープまたは順序を変更する場合は、Markdown ファイルを直接編集します。
5. プランを実行する
プランに満足したら、チャットでCopilotに実行するように指示します。 Copilot選択した問題グループをグループ別に解決し、各変更を検証するプロジェクトをビルドし、チャットの進行状況を報告します。 結果の差分を確認し、保持する変更をコミットします。
常緑を維持する
新しい CVE が公開され、アプリケーションが変更されると、セキュリティ負債が再び表示されます。 スキャンを再実行し、セキュリティ の問題 を最新化の定期的な一環として (たとえば、すべてのリリース ブランチで) 解決します。そのため、問題をビッグ アップグレードに蓄積するのではなく、継続的にキャッチして修正できます。
次のステップ
- 評価の対象範囲を理解する - CWE ルールと CVE カバレッジの詳細の完全なカタログ。
- 評価の取り扱い
- GitHub Copilotモダン化エージェントを使用したバッチ評価