GitHub Copilot によるモダナイゼーションで Java アプリケーションを保護する

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 モダナイゼーション ペインで、クイック スタート ビューを開き、セキュリティの問題をスキャンして解決 を選択します。

[セキュリティの問題のスキャンと解決] ボタンのクイック スタート ビューを示すVisual Studio Codeのスクリーンショット。

Copilotは、プロジェクトに対してセキュリティ ドメイン評価を実行します。 スキャンの対象は次のとおりです。

  • ISO/IEC 5055 に準拠したキュレーションされた CWE 規則のセット。ファイル & パス セキュリティインジェクション攻撃メモリの安全性コード品質資格情報とシークレットコンカレンシーと同期の 6 つのカテゴリにグループ化されています。
  • GitHub Security Advisories データベースに基づく、直接および推移的な依存関係内の CVE の検出結果

CWE ルールの完全なカタログと CVE カバレッジの詳細については、「評価の 対象範囲を理解する」を参照してください。

Note

CVE チェックはGitHub認証なしで機能しますが、匿名呼び出しのレートは制限されます。 大規模なプロジェクトの場合は、調整を回避するために gh auth login でサインインします。

2. レポートを確認する

スキャンが完了すると、 評価レポート が開き、セキュリティ結果が表示されます。

CWE と CVE の結果を示すVisual Studio Codeの評価レポートのスクリーンショット。

どの CVE サーフェスを制御するには、評価構成で [セキュリティ: 最小 CVE 重大度 ] を設定します。 使用できる値は、 criticalhighmedium、および lowです。既定値は high

3. 修正する問題を選択して計画を作成する

修正する問題カテゴリを選択します。 アクション ボタンは更新されて件数が表示されます。たとえば、プランの作成 (3) のようになります。 これを選択して実行プランを生成します。

セキュリティの問題カテゴリが選択され、[プランの作成] ボタンが強調表示されている評価レポートのスクリーンショット。

4. プランを確認する

Copilotは、実行プランを Markdown ファイルとして書き込み、プレビュー ウィンドウで開き、修正プログラムが適用される前に読み取ることができます。 このプランでは、Copilot が選択された問題をどのようにグループ化し、対処するかについて説明します。 CVE の問題は依存関係別にグループ化され、CWE の結果はファイルごとにグループ化されます。 スコープまたは順序を変更する場合は、Markdown ファイルを直接編集します。

Visual Studio Code の Markdown プレビューで開かれたセキュリティ実行プランのスクリーンショット。

5. プランを実行する

プランに満足したら、チャットでCopilotに実行するように指示します。 Copilot選択した問題グループをグループ別に解決し、各変更を検証するプロジェクトをビルドし、チャットの進行状況を報告します。 結果の差分を確認し、保持する変更をコミットします。

常緑を維持する

新しい CVE が公開され、アプリケーションが変更されると、セキュリティ負債が再び表示されます。 スキャンを再実行し、セキュリティ の問題 を最新化の定期的な一環として (たとえば、すべてのリリース ブランチで) 解決します。そのため、問題をビッグ アップグレードに蓄積するのではなく、継続的にキャッチして修正できます。

次のステップ